数据操作语言 - DML

举报
一头小山猪 发表于 2021/03/26 00:51:31 2021/03/26
【摘要】 写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注...

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

  • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
  • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
  • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

数据操作语言 - DML

本文关键字:数据库、数据操作语言、DML


一、INSERT

INSERT语句用于向数据表中插入数据,我们主要需要注意数据类型的匹配以及插入数据的顺序。

1. 全字段插入

全字段插入是指:根据数据表的表结构,向所有的列中均插入数据,此时可以在INSERT后省略列名,直接使用INSERT INTO语句即可,在插入之前可以先查看一下表结构,或使用DESC命令查看一下表结构。

DESC Student;

  
 
  • 1


当进行全字段插入时,我们需要完全按照定义数据表时预设的字段顺序,来调整插入数据的顺序。数据库在进行插入数据校验时,只能进行数据类型是否匹配的校验。

INSERT INTO Student VALUES('001103','js0001','王小明','男','1981-10-07 00:00:00');

  
 
  • 1

2. 指定字段插入

指定字段插入可以只向数据表中的某几列插入数据,其他列会被默认值或NULL值填充,在操作时需要注意未插入数据的列已经设置好了默认值或者允许为空,否则必须向该列插入数据。
由于我们插入的是数据表中的某几列,数据库自身并不能判断我们要向那几列插入数据,所以在表名后一定要指定目标列,并且VALUES中的值的顺序要与列的顺序一致。

INSERT INTO Student(S_no,Class_no,S_name) VALUES('001103','js0001','王小明');

  
 
  • 1

3. 同时插入多条数据

如果想向一个数据表中插入多条数据,直接在VALUES后用逗号隔开。

INSERT INTO 
Student(S_no,Class_no,S_name) 
VALUES
('001103','js0001','王小明'),
('001104','js0002','张小明'),
('001105','js0003','李小明');

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4. 将查询结果直接插入

如果想要复制一个表的数据到名外一个表,可以使用INSERT INTO SELECT语句。前提是两个表具有相似的结构,在数据类型上匹配,数据长度上能够兼容,即:查询出的数据到能够放入到目标数据表。

INSERT INTO `目标表`
SELECT * FROM `源数据表`;

  
 
  • 1
  • 2
INSERT INTO `目标表`(`列名`,...)
SELECT `列名`,... FROM `源数据表`;

  
 
  • 1
  • 2

二、DELETE

1. 清空数据

在使用DELETE时要尤其注意,在不加任何条件时,会清空数据表中的数据。

DELETE FROM `表名`;

  
 
  • 1

2. DELETE与DROP的区别

之前在讲解DDL时介绍了DROP(传送门地址:数据定义语言 - DDL),在最开始的时候容易混淆,其实很容易理解。DROP删除的是表结构,既然结构都没有了,那数据也就一同被清除了。DELETE只是删除数据,而表结构依然存在。

3. 筛选删除

在执行删除操作时,只能以行为单位(如果要清空某一列,需要使用UPDATE),通过添加WHERE子句来实现,使用规则与查询时相同,可进传送门:数据库单表查询 - 简单筛选查询

DELETE FROM `表名`
WHERE 筛选条件;

  
 
  • 1
  • 2

三、UPDATE

1. 全量更新

与DELETE类似,当不添加筛选条件时将会更新整表的数据,可以同时更新多个列,使用逗号隔开,需要用到赋值运算符(=)。

UPDATE `表名` SET `列名` = 值或表达式,`列名` = 值或表达式;

  
 
  • 1

2. 选择更新

通过WHERE子句可以添加筛选条件,对符合条件的数据进行更新。

UPDATE `表名` SET `列名` = 值或表达式,`列名` = 值或表达式
WHERE 筛选条件;

  
 
  • 1
  • 2

在这里插入图片描述

文章来源: blog.csdn.net,作者:小山猪的沙塔,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/u012039040/article/details/106248225

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。