DML语言
概念:数据操作语言,对数据表的增删改操作。
插入语句
一、方式一
语法:
insert into 表名(字段名,...) values(值,...);
特点:
1、要求值的类型和字段的类型要一致或兼容
2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致 但必须保证值和字段一一对应
3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值
①字段和值都省略
②字段写上,值使用null
4、字段和值的个数必须一致
5、字段名可以省略,默认所有列
INSERT INTO beauty(NAME,sex,id,phone) VALUES('关晓彤','女',17,'110');
INSERT INTO beauty VALUES(18,'张飞','男',NULL,'119',NULL,NULL);
二、方式二
语法:
insert into 表名 set 字段=值,字段=值,...;
INSERT INTO beauty SET id=19,NAME=‘刘涛’,phone=‘999’;
两种方式 的区别:
1.方式一支持一次插入多行,方式二不支持,语法如下:
insert into 表名【(字段名,..)】 values(值,..),(值,...),...;
INSERT INTO beauty
VALUES(23,'唐艺昕1','女','1990-4-23','1898888888',NULL,2) ,
(24,'唐艺昕2','女','1990-4-23','1898888888',NULL,2) ,
(25,'唐艺昕3','女','1990-4-23','1898888888',NULL,2);
2.方式一支持子查询,方式二不支持,语法如下:
insert into 表名 查询语句;
INSERT INTO beauty(id,NAME,phone) SELECT 26,'宋茜','11809866';
INSERT INTO beauty(id,NAME,phone) SELECT id,boyname,'1234567' FROM boys WHERE id<3;
修改语句
一、修改单表的记录 ★
语法:update 表名 set 字段=值,字段=值 【where 筛选条件】;
UPDATE boys SET boyname='张飞',usercp=10 WHERE id=2;
注意:绝大多数情况都要加where条件,指定修改,否则为整表更新。
二、修改多表的记录【补充】
sql92语法:
update 表1 别名,表2 别名 set 列=值,… where 连接条件 and 筛选条件;
sql99语法:
update 表1 别名 left|right|inner join 表2 别名 on 连接条件 set 字段=值,字段=值 【where 筛选条件】;
修改多表的记录
案例 1:修改张无忌的女朋友的手机号为119
UPDATE boys bo INNER JOIN beauty b ON bo.`id`=b.`boyfriend_id` SET b.`phone`='119',bo.`userCP`=1000 WHERE bo.`boyName`='张无忌';
案例2:修改没有男朋友的女神的男朋友编号都为2号
UPDATE boys bo RIGHT JOIN beauty b ON bo.`id`=b.`boyfriend_id` SET b.`boyfriend_id`=2 WHERE bo.`id` IS NULL;
删除语句
方式一:使用delete
1.、删除单表的记录★
语法:delete from 表名 【where 筛选条件】【limit 条目数】
注意:删除时若不加WHERE条件,删除的是整张表的数据。
2.、级联删除[补充]
语法:
delete 表1的别名1,表2的别名2 from 表1 别名
inner|left|right join 表2 别名
on 连接条件
【where 筛选条件】
1.单表的删除
案例:删除手机号以9结尾的女神信息
DELETE FROM beauty WHERE phone LIKE '%9';
2.多表的删除
案例:删除张无忌的女朋友的信息
DELETE b FROM beauty b INNER JOIN boys bo ON b.`boyfriend_id` = bo.`id` WHERE bo.`boyName`='张无忌';
案例:删除黄晓明的信息以及他女朋友的信息
DELETE b,bo FROM beauty b INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id` WHERE bo.`boyName`='黄晓明';
方式二:使用truncate 清空整张表
语法:truncate table 表名
将魅力值>100的男神信息删除
TRUNCATE TABLE boys ;
两种方式的区别【面试题】★
1.truncate删除后,如果再插入,标识列从1开始,delete删除后,如果再插入,标识列从断点开始
2.delete可以添加筛选条件,truncate不可以添加筛选条件
3.truncate效率较高,是把表销毁,再按原表的格式创建一张新表
4.truncate没有返回值、delete可以返回受影响的行数
5.truncate不可以回滚, delete可以回滚