Mysql 基础学习(七) 插入修改语句学习

DML 语言

数据操作语言:
插入:insert
修改:update
删除:delete

  1. 插入语句
    语法:
insert into 表名 (列名, ...) values (值1, ...);

插入的值的类型要与列的类型一致或者兼容

INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐','女','1994-08-13','15152268067',NULL,2)

不可以为NULL的列必须插入值,可以为NULL的列 如何插入值?
方式一:直接值为NULL

INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐','女','1994-08-13','15152268067',NULL,2)

方式二:不指定字段

INSERT INTO beauty (id,NAME,sex,borndate,phone,boyfriend_id)
VALUES(13,'唐','女','1994-08-13','15152268067',2)

方式三:列的顺序可以随意调换。但是值必须符合要求
方式四:列数和值的个数必须一致
方式五:可以省略列明,默认所有列,而且列的顺序和表中列的顺序一致

方式一和方式二比较:

INSERT INTO beauty
VALUES (13,'唐','女','1994-08-13','15152268067',2),
(14,'刘','女','1994-01-13','15152111117',2),
(13,'张','女','1994-08-13','15152268067',2)

方式一支持子查询,方式二不支持

INSERT INTO beauty(id,name,phone)
SELECT 26,'宋茜','10086';

通过SELECT 子查询。可以作为结果集插入到beauty表格中

INSERT INTO beauty(id,name,phone)
SELECT id, boyname, '123456464'
FROM boy 
WHERE id < 3;
  1. update 修改
    修改单表的记录
update 表明
set 列 = 新值, 列 = 新值 , ....
where 筛选条件

案例1: 修改beauty 表中的姓唐的女生电话为13899888888

update beauty 
SET phone = '13899888888'
where name like '唐%';

修改多表的记录
语法
SQL 92语法

update 表1 别名, 表2 别名
set 列=值,...
where 连接条件
and 筛选条件

SQL 99语法

update 表1 别名
inner | left | right join 表2  别名
on 连接条件
set 列= 值
where 筛选条件

案例1: 修改张无忌的女朋友手机号为 114

UPDATE boys bo
INNER JOIN beauty b ON bo.id = b.boyfriend_id
SET b.phone = '114'
WHERE bo.boyName= '张无忌';
  1. 删除条件
    方式一: delete
    语法:
DELETE FROM 表名 WHERE 筛选条件

单表的删除
案例1: 删除手机号码9结尾的女神信息

DELETE FROM beauty WHERE phone like "%9";

多表删除
SQL92写法

delete 别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件

SQL 99写法

DELETE 表一别名, 表二别名
FROM 表1 别名
inner | left | right | join 表2 别名 on 连接条件
where 筛选条件;

案例1: 删除张无忌的女朋友的女朋友的信息

DELETE b,bo
FROM beauty b
INNER JOIN boys bo ON b.boyfriend_id = bo.id
WHERE bo.boyName = "张无忌"

案例2:删除黄晓明的信息以及他女朋友的信息(级联删除)

DELETE b,bo
FROM beauty b
INNER JOIN boys bo ON b.boyfriend__id = bo.id
WHERE bo.boyName = "黄晓明"

方式二 : truncate 语法 (不允许加 where)

runcate table 表名

案例1:将魅力值 > 100 的男神信息删除

TRUNCATE TABLE boys WHERE ml > 100

会报错。 truncate 语句没办法添加 WHERE 筛选条件

两种方式 DELETE 和 TRUNCATE 比较

  1. delete 可以添加 筛选条件, truncate 不能添加
  2. truncate 删除 效率高一点点
  3. DELETE 加入要删除的表中有自增长列,再插入数据,自增列的值从断点开始,
    而 TRUNCATE 删除后,再插入数据,自增长的值从1 开始
  4. TRUNCATE 删除没有返回值, delete 删除有返回值
  5. TRUNCATE 删除不能回滚,delete 删除可以回滚
上一篇:mysql 插入语句


下一篇:寻找高颜值小姐姐,难吗!直到我发现了这个Python库