DML是数据操作语言,包括对数据库表记录的添加、删除与修改。今天我们先来学习向表中插入数据,向表中插入数据后需要查看数据是否插入成功,这时就需要使用DQL,DQL是数据查询语言,它的语法是:
- SELECT * FROM 表名:表示查询指定表的所有记录;
使用DML语句向表中插入记录的语法是:INTERT INTO 表名(列名1,列名2, ...) VALUES(列值1, 列值2, ...);其中,“列名1,列名2…”指的是要向哪些列插入数据,而values关键字后面的“列值1,列值2…”要与列名一一对应,表示插入的列值。
向表中插入数据有以下三种方式:
1.插入所有列
插入所有列指的是在插入的时候指定表的所有列名,如:
insert into 表名(列名1,列名2, ...) values(列值1, 列值2, ...)
(1)在user数据库中有一张表emp,点击此处

下载对应sql语句,首先使用DQL语句查看该表的记录,查询语句是:select * from emp,如图1-1所示:

图1-1 emp表的所有记录
(2)在查询表记录时,如果表记录中包含中文,那么在dos窗口中可能会出现乱码,如图1-2所示:

图1-2 中文乱码
(3)解决图1-2中的乱码,首先查看数据库的字符集,命令为:show variables like 'character_set_%',如图1-3所示:

图1-3 查看数据库字符集
(4)因为在安装数据库服务器,我们设置的编码是utf8,而dos窗口的编码是gbk,因此我们需要将character_set_client以及character_set_results的值设置为gbk,如图1-4所示:

(5)这时再来查看emp数据库的所有记录,如图1-5所示:

图1-5 无乱码的emp
(6)然后再来查看另外一张表,student表,如图1-6所示:

图1-6 student表中的记录
(7)student表的结构如图1-7所示:

图1-7 student的表结构
(8)由图1-7可知,student表中有四列,现在向student表中插入数据,如图1-8所示:

图1-8 插入数据
图1-8中,向student表中插入数据,每一列都有对应的数据,其中“itcast_0001”对应的是number列,“zhangsan”对应的是name列,“23”对应的是age列,“male”对应的是gender列。需要注意的是在数据库中,所有的字符串类型必须使用单引号引起来,不能使用双引号,日期类型也要使用单引号引起,数字类型不需要使用单引号引起。
2.插入部分列
插入部分列是指在插入数据时只插入部分数据,例如:insert into student(number,name) values(‘xxx’,’xxx’);只插入了number,name两列数据,其他两列没有插入数据,默认值就为null,如图1-9所示:

图1-9 插入部分列
插入数据时如果指定了列名,那么可不按照创建表时给出的列的顺序,例如:insert into student(age,name,number,gender) values(23,’lisi’,’itcast_0003’,’female’),values后给出的列值,值的顺序和个数必须与前面指定的列对应。
3.不给出插入的列名
insert into student values(‘xxx’,’xxx’,33,’xxx’)就是不给出要插入的列名,使用这种方式插入数据时有以下要求:
- 没有给出要插入的列,那么表示插入所有列;
- 值的个数必须是该表的列的个数;
- 值的顺序,必须与表创建时给出的列的顺序相同。
下面我们使用这种方式向数据库中插入数据,如图1-10所示:

图1-10 插入的数据
使用左外连接查询,左表是e1,因此e1表中的所有员工姓名都被查询出来,e2表中不满足条件的位置用null代替。
本文版权归传智播客Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Java培训学院
首发:http://www.itcast.cn/javaee
本文版权归传智播客java学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客java学院