38.SQL详解之DML
我们接着上一课中创建的学校选课系统数据库,为大家讲解 DML 的使用。DML 可以帮助将数据插入到二维表(insert操作)、从二维表删除数据(delete操作
课程内容
SQL详解之DML
我们接着上一课中创建的学校选课系统数据库,为大家讲解 DML 的使用。DML 可以帮助将数据插入到二维表(insert操作)、从二维表删除数据(delete操作)以及更新二维表的数据(update操作)。在执行 DML 之前,我们先通过下面的use命令切换到school数据库。
USE `school`;
insert操作
顾名思义,insert是用来插入行到二维表中的,插入的方式包括:插入完整的行、插入行的一部分、插入多行、插入查询的结果。我们通过如下所示的 SQL 向学院表中添加一个学院。
INSERT INTO `tb_college`
VALUES
(DEFAULT, '计算机学院', '学习计算机科学与技术的地方');
其中,由于学院表的主键是一个自增字段,因此上面的 SQL 中用default表示该列使用默认值,我们也可以使用下面的方式完成同样的操作。
INSERT INTO `tb_college` (`col_name`, `col_intro`)
VALUES
('计算机学院', '学习计算机科学与技术的地方');
我们推荐大家使用下面这种做法,指定为哪些字段赋值,这样做可以不按照建表时设定的字段顺序赋值,可以按照values前面的元组中给定的字段顺序为字段赋值,但是需要注意,除了允许为null和有默认值的字段外,其他的字段都必须要一一列出并在values后面的元组中为其赋值。如果希望一次性插入多条记录,我们可以在values后面跟上多个元组来实现批量插入,代码如下所示。
INSERT INTO `tb_college`
(`col_name`, `col_intro`)
VALUES
('外国语学院', '学习歪果仁的语言的学院'),
('经济管理学院', '经世济民,治理国家;管理科学,兴国之道'),
('体育学院', '发展体育运动,增强人民体质');
在插入数据时,要注意主键是不能重复的,如果插入的数据与表中已有记录主键相同,那么insert操作将会产生 Duplicated Entry 的报错信息。再次提醒大家,如果insert操作省略了某些列,那么这些列要么有默认值,要么允许为null,否则也将产生错误。在业务系统中,为了让insert操作不影响其他操作(主要是后面要讲的select操作)的性能,可以在insert和into之间加一个low_priority来降低insert操作的优先级,这个做法也适用于下面要讲的和操作。