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删除可以回滚

  

mysql-11-DML

上一篇:mysql-17-procedure


下一篇:mysql-16-variables