数据操纵语言DML
(Data Manipulation Language
)是SQL
语言的一个分类,用于对表的内容或者说数据进行增删改查等操作,通过SELECT
(查询)、INSERT
(插入)、UPDATE
(更新修改)、DELETE
(删除)实现。
添加数据
给指定字段添加数据
1 | INSERT INTO 表名 (字段名1, 字段名2, …) VALUES 1 (值1, 值2, …); |
案例: 给emp表所有的字段添加数据 ;
1 | insert into emp(id,workno,name,gender,age,idcard,entrydate) values(1,’1′,’Itcast’,’男’,10,’123456789012345678′,’2000-01-01′); |
插入数据完成之后,查询数据库的数据
案例: 给emp
表所有的字段添加数据执行如下SQL
,添加的年龄字段值为-1。
1 | insert into emp(id,workno,name,gender,age,idcard,entrydate) values(1,’1′,’Itcast’,’男’,-1,’123456789012345678′,’2000-01-01′); |
执行上述的SQL
语句时,报错了,具体的错误信息如下:
1 | ERROR 1264 (22003): Out of range value for column ‘age’ at row 1 |
因为 emp
表的age字段类型为 tinyint
,而且还是无符号的 unsigned ,所以取值只能在0-255 之间。
给全部字段添加数据
1 | INSERT INTO 表名 VALUES (值1, 值2, …); |
案例:插入数据到employee表,具体的SQL
如下:
1 | insert into employee values(2,’2′,’张无忌’,’男’,18,’123456789012345670′,’2005-01-01′); |
批量添加数据
1 2 | INSERT INTO 表名 (字段名1, 字段名2, …) VALUES (值1, 值2, …), (值1, 值2, …), (值1, 值2, …) ; INSERT INTO 表名 VALUES (值1, 值2, …), (值1, 值2, …), (值1, 值2, …) ; |
案例:批量插入数据到employee表,具体的SQL如下:
1 | insert into employee values(3,’3′,’韦一笑’,’男’,38,’123456789012345670′,’2005-01-01′),(4,’4′,’赵敏’,’女’,18,’123456789012345670′,’2005-01-01′); |
注意事项:
- 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
- 字符串和日期型数据应该包含在引号中。
- 插入的数据大小,应该在字段的规定范围内。
修改数据
修改数据的具体语法为:
1 | UPDATE 表名 SET 字段名1 = 值1 , 字段名2 = 值2 , …. [ WHERE 条件 ] ; |
案例:
A. 修改id为1的数据,将name修改为itheima
1 | update employee set name = ‘itheima’ where id = 1; |
B. 修改id为1的数据, 将name修改为小昭, gender修改为 女
1 | update employee set name = ‘小昭’ , gender = ‘女’ where id = 1; |
C. 将所有的员工入职日期修改为 2008-01-01
1 | update employee set entrydate = ‘2008-01-01’; |
注意事项:
修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
删除数据
删除数据的具体语法为:
1 | DELETE FROM 表名 [ WHERE 条件 ] ; |
案例:
A. 删除gender为女的员工
1 | delete from employee where gender = ‘女’; |
B. 删除所有员工
1 | delete from employee; |
注意事项:
• DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数
据。
• DELETE 语句不能删除某一个字段的值(可以使用UPDATE,将该字段值置为NULL即
可)。