-- DML语言 /* 数据操作的语言 插入:insert 修改:update 删除:delete */
1.插入
-- 插入语句 /* 语法:insert into 表名(列名...) values(值...); */ -- 方式一 -- 1.插入值的类型要与列的类型一致或兼容 INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`) VALUES(13,'麦克雷','男','1984.7.1','13535356464',NULL,2); -- 2.可以为Null的列如何插入值? -- 方式一 写null值 -- 方式二 插入的字段不写 自动填充默认值或Null INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`boyfriend_id`) VALUES(13,'麦克雷','男','1984.7.1','13535356464',2); -- 3.列的顺序是否可以调换,可以 -- 4.列数和值数必须一致 -- 5.可以省略列名,默认所有列,并且列的顺序和表中的顺序一致。 -- 方式二 /* insert into 表名 set 列名=值,列名=值...; */ INSERT INTO beauty SET id=19,NAME='张飞',phone='110'; -- 两种方式比较 -- 1.方式一支持多行插入,方式二不支持 INSERT INTO beauty VALUES(13,'麦克雷','男','1984.7.1','13535356464',NULL,2), VALUES(14,'天使','女','1999.6.1','120',NULL,3), ...; -- 2.方式一支持子查询,方式二不支持 INSERT INTO beauty(id,NAME,phone) SELECT 55,'骚猪','13929292929';
2.修改
-- 修改 /* 1.修改单表的记录☆ 语法:update 表名 set 列=新值,列=新值... where 筛选条件 2.修改多表的记录 sql92: update 表1 别名,表2 别名 set 列=新值.. where连接条件 and 筛选条件 sql99: update 表1 别名 inner(left)right join 表2 别名 on 连接条件 set列=新值 where 筛选条件; */ -- 修改单表记录 -- 1.修改beauty表中,姓苍的电话为110 UPDATE beauty SET phone = '110' WHERE NAME LIKE '苍%'; -- 2.修改boys表中id=2的名称为张飞,魅力值为10 UPDATE boys SET boyName = '张飞',userCP = 10 WHERE id = 2; -- 修改多表记录 -- 1.修改张无忌的女朋友的手机号为114 UPDATE boys bo JOIN beauty be ON bo.`id`=be.`boyfriend_id` SET be.`phone`='110' WHERE bo.`boyName`='张无忌'; -- 2.修改没有男朋友的 女神的男朋友编号都为2号 UPDATE beauty SET boyfriend_id =2 WHERE boyfriend_id IS NULL;
3.删除
-- 删除语句 /* delete 1.单表删除 语法一:delete from 表名 where 筛选条件 2.多表删除 sql92: delete 别名 from 表1 别名,表2 别名 where 连接条件 and 筛选条件; sql99: delete 别名 from 表1 别名 inner left right join 表2 别名 on 连接条件 where 筛选条件 truncate trancate table 表名; */ -- delete -- 单表删除 -- 删除手机号以9结尾的女神信息 DELETE FROM beauty WHERE phone LIKE '%9'; -- 多表删除 -- 删除张无忌的女朋友的信息 DELETE be FROM beauty be INNER JOIN boys bo ON be.`boyfriend_id`=bo.`id` WHERE bo.`boyName`='张无忌'; -- 删除黄晓明的信息和它女朋友的信息 DELETE be,bo FROM beauty be INNER JOIN boys bo ON be.`boyfriend_id`=bo.`id` WHERE bo.`boyName`='黄晓明'; -- truncate语句 -- 只能删除整个表,后面不能加筛选条件 -- delete 和 truncate比较 /* 1.delete可以加where条件,truncate不能加 2.truncate删除,效率高一些 3.加入要删除的表中有自增长列 如果用delete删除后,再插入值,自增长列的值从断点开始 而truncate删除后,再插入值,自增长列的值从1开始 4.truncate删除没有返回值,delete删除有返回值 5.truncate删除不能回滚,delete删除可以回滚 */