mysql-11-DML
#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删除可以回滚
----想成为合格的算法工程师----

浙公网安备 33010602011771号