前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >4.表记录的更新操作

4.表记录的更新操作

作者头像
卡伊德
发布2022-09-13 14:44:34
1.2K0
发布2022-09-13 14:44:34
举报
文章被收录于专栏:caidblog

表记录的插⼊

批量插⼊多条记录

例如: insert…select插⼊结果集 注意:字段列表1与字段列表2的字段个数必须相同,且对应字段的数据类型尽量保持⼀致。例如:

使⽤replace插⼊新记录 insert into表名[(字段列表)] values(值列表) insert into表名[(字段列表)] values (值列表1), (值列表2), (值列表n); insert into student values ('2012001','张三','15000000000',1), ('2012002','李四','16000000000',1), ('2012003','王五','17000000000',3), ('2012004','⻢六','18000000000',2), ('2012005','⽥七','19000000000',2);

insert into⽬标表名[(字段列表1)] select (字段列表2) from源表 where 条件表达式; insert into new_student select * from student; replace into表名[(字段列表)] values(值列表) replace [into]⽬标表名[(字段列表1)] select (字段列表2) from源表where条件表达式

replace [into]表名 set字段1=值1,字段2=值2

MySQL中的特殊字符序列 转义后的字符

\" 双引号“ \' 单引号‘ \\ 反斜线\ \n 换⾏符 \r 回⻋符 \t 制表符 \0 ASCII 0(NUL) \b 退格符

replace语句的功能与insert语句的功能基本相同,不同之处在于,使⽤replace语句向表插⼊新记录 时,如果新记录的主键值或者唯⼀性约束的字段值与旧记录相同,则旧记录先被删除(注意:旧记录删 除时也不能违背外键约束条件),然后再插⼊新记录。

表记录的修改

表记录的删除

使⽤truncate清空表记录

从逻辑上说,该语句与“delete from表名”语句的作⽤相同,但是在某些情况下,两者在使⽤上有所区 别。例如,如果清空记录的表是⽗表,那么truncate命令将永远执⾏失败。如果使⽤truncate table成 功清空表记录,那么会重新设置⾃增型字段的计数器。truncate table语句不⽀持事务的回滚,并且不 会触发触发器程序的运⾏。

MySQL特殊字符序列

update表名 set字段名1=值1,字段名2=值2,…,字段名n=值n [where条件表达式] delete from表名[where条件表达式] truncate [table]表名 注意:NUL与NULL不同。例如,对于字符集为gbk的char(5)数据⽽⾔,如果其中仅仅存储了两个汉字 (例如“张三”),那么这两个汉字将占⽤char(5)中的两个字符存储空间,剩余的3个字符存储空间将存 储“\0”字符(即NUL)。“\0”字符可以与数值进⾏算术运算,此时将“\0”当作整数 0处理;“\0”字符还可 以与字符串进⾏连接,此时“\0”当作空字符串处理。⽽NULL与其他数据进⾏运算时,结果永远为 NULL。

表记录的检索

select语句基本格式

使⽤谓词过滤记录 使⽤谓词distinct过滤结果集中的重复记录。 使⽤谓词limit查询某⼏⾏记录多表连接

多表连接

内连接

外连接(左、右、完全) 注意:MySQL暂不⽀持完全连接 使⽤逻辑运算符 逻辑与(and)、逻辑或(or)以及逻辑⾮() 使⽤like进⾏模糊查询 %:匹配零个或多个字符 _:匹配任意⼀个字符 使⽤聚合函数汇总结果集 sum()函数、平均值avg()函数、统计记录的⾏数count()函数、最⼤值max()函数和最⼩值min()函数 group by⼦句与with rollup选项 group by⼦句将结果集分为若⼲个组,使⽤聚合函数可以对每个组内的数据进⾏信息统计,有时对各个 组进⾏汇总运算时,需要在分组后加上⼀条汇总记录,这个任务可以通过with rollup选项实现。

合并结果集

select字段列表 from数据源 [ where条件表达式] [ group by分组字段[ having条件表达式] ] [ order by排序字段[ asc | desc ] ] union与union all的区别:当使⽤ union时,MySQL会筛选掉select结果集中重复的记录(结果集合并 后会对新产⽣的结果集进⾏排序运算,效率稍低)。⽽使⽤union all时,MySQL会直接合并两个结果 集,效率⾼于 union。如果可以确定合并前的两个结果集中不包含重复的记录,则建议使⽤ union all。

⼦查询

如果⼀个select语句能够返回单个值或者⼀列值,且该select语句嵌套在另⼀个SQL语句(例如select语 句、insert语句、update语句或者delete语句)中,那么该select语句称为“⼦查询”(也叫内层查询), 包含⼦查询的SQL语句称为“主查询”(也叫外层查询)。为了标记⼦查询与主查询之间的关系,通常将 ⼦查询写在⼩括号内。⼦查询⼀般⽤在主查询的where⼦句或having⼦句中,与⽐较运算符或者逻辑运 算符⼀起构成where筛选条件或having筛选条件。 当⼦查询返回⼀个值时,⼀般使⽤⽐较运算符(=、>等等),当返回⼀列值时,⼀般使⽤关键字IN、 exists、any、all 如果检索A班⽐B班最低分⾼的学⽣信息,则可以使⽤select ..... from A where score >any(select score from b),检索A班⽐B班最⾼分⾼的学⽣信息,则可以使⽤select ..... from A where score >all(select score from b)

使⽤正则表达式模糊查询

需要⾃学正则表达式 select字段列表1 from table1 union [all] select字段列表2 from table2...

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 表记录的插⼊
    • 批量插⼊多条记录
      • MySQL中的特殊字符序列 转义后的字符
      • 表记录的修改
        • 表记录的删除
          • 使⽤truncate清空表记录
          • MySQL特殊字符序列
      • 表记录的检索
        • select语句基本格式
          • 多表连接
            • 合并结果集
              • ⼦查询
              • 使⽤正则表达式模糊查询
              相关产品与服务
              云数据库 SQL Server
              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档