#DML语言 /* 数据操作语言 插入:insert 修改:update 删除:delete */ #一、插入语句 /* 语法: insert into 表名(列名...) values(新值...); */ USE girls; INSERT INTO beauty(id, NAME, sex, borndate, phone, photo, boyfriend_id) VALUES(13, ‘唐艺昕‘, ‘女‘, ‘1990-4-23‘, ‘18988888888‘, NULL, 2); SELECT * FROM beauty; #可以为null的列,如何插入null值 #1、写列名,值为null;2、列直接不写 #列的顺序随便换,只要和值一一对应上即可 INSERT INTO beauty(NAME, sex, id, phone) VALUES(‘蒋欣‘, ‘女‘, 16, ‘111‘); SELECT * FROM beauty; #可以省略列名,但默认是所有列 #插入的方式二 /* 语法: insert into 表名 set 列名=值, 列名=值, ... */ INSERT INTO beauty SET id=19, NAME=‘刘涛‘, phone=‘999‘; SELECT * FROM beauty; # 方式一可以插入多行,方式二不支持 /* INSERT INTO 表名 (列名) VALUES (), (), ()... */ #方式一支持子查询,方式二不支持 #把查询结果插入 INSERT INTO beauty(id, NAME, phone) SELECT 26, ‘宋茜‘, ‘11809866‘; SELECT * FROM beauty; #二、修改语句 /* 1、修改单表的记录 语法: UPDATE 表名 SET 列=新值, 列=新值, ... WHERE 筛选条件; 2、修改多表的记录 语法: UPDATE 表1 别名 INNER|LEFT OUTTER JOIN 表2 别名 ON 连接条件 SET 列=值, ... WHERE 筛选条件; */ #1、修改单表 #案例1:修改beauty表中姓唐的电话为100000 UPDATE beauty SET phone = ‘100000‘ WHERE NAME LIKE ‘唐%‘ AND id >= 0; # where后的条件需要包含主键 SET SQL_SAFE_UPDATES = 0; # 或者修改模式 SELECT * FROM beauty; #2、修改多表 #案例2:修改张无忌的女朋友的手机号为114 UPDATE beauty as b INNER JOIN boys as bo ON b.boyfriend_id = bo.id SET b.phone = 114 WHERE bo.boyName = ‘张无忌‘; SELECT * FROM beauty; #案例3:修改没有男朋友的女神的男朋友编号都为2号 #这个应该没必要连接 UPDATE beauty as b LEFT OUTER JOIN boys as bo ON b.boyfriend_id = bo.id SET b.boyfriend_id = 2 WHERE bo.id IS NULL; SELECT * FROM beauty; #三、删除语句 /* 1、delete 语法: delete from 表名 where 筛选条件; 筛选满足的条件的行 truncate table 表名; 整表记录全删了,不允许用where 2、多表删除 语法: DELETE 表1的别名,表2的别名 FROM 表1 as 别名 INNER | LEFT OUTER JOIN 表2 as 别名 ON 连接条件 WHERE 筛选条件; */ #案例1:删除手机号以9结尾的信息 # DELETE FROM beauty WHERE phone LIKE ‘%9‘; #案例2:删除张无忌的女朋友的信息 /* DELETE b FROM beauty as b INNER JOIN boys as bo ON b.boyfriend_id = bo.id WHERE bo.boyName = ‘张无忌‘; */ #用delete删除后再插入数据,自增长列的值从断点开始 #用truncate删除后再插入数据,自增长列的值从1开始 # truncate删除不能回滚,delete删除可以回滚