本篇博客介绍DML,中文名称是数据操作语言,包括 插入 insert,修改 update,删除 delete。
插入语句
方法一
语法:
insert into 表名(列名,...) values (值1,...);
- 要求插入的值的类型和列类型一致或兼容。
insert into beauty (id, name, sex, borndate, photo)
values (13, '唐小花', 'femal','1994-04-03',null)
- 如何在可以 null 的列插入值?
- 不可以为 null 的列必须要插入值
- 可以为 null 的列:值取 null 或者 列名和值都省略
- 字段的顺序是可以变换的
- 列数和值的个数必须一致
- 可以省略列名,这时候默认是所有的列,并且列的顺便表和表中的列的顺序一致。
方法二
语法:
insert into 表名
set 列名 = 值, 列名 = 值...
案例:
INSERT INTO beauty
SET id = 19, NAME = '刘涛', phone='999';
一 VS 二
- 方式一支持插入多行,方式二不支持
INSERT INTO beauty
VALUES (13,"高圆圆",'女','1998-8-9','18810567765',NULL,2),
VALUES (14,"佟丽娅",'女','1989-8-9','18810567765',NULL,2);
- 方式二支持子查询,方式二不支持(相当于先 select,然后插入到表中)
INSERT INTO beauty (id,name,phone)
SELECT 26,'宋茜','18810778989';
修改语句
修改单表的记录 ※
语法:
update 表名 ①
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;
修改多表的记录
注意:这里主要针对 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 = '张无忌';
案例2:修改没有男朋友的女神的男朋友编号都为2号
update beauty b
left join boys bo on bo.id = b.boyfriend_id
set b.boyfriend_id = 2
where b.id is null
删除语句
方式一:delete
单表删除
语法:
delete from 表名 where 筛选条件;
案例:删除手机编号最后一位为9的记录
delete from beauty where phone like '%9';
多表删除
语法:
# sql92语法
delete 表1的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件
# sql99语法
delete 表1的别名 / 表2的别名
from 表1 别名
inner | left | right join 表2 别名 on 连接条件
where 筛选条件
案例1:删除张无忌的女朋友的信息【删除单个表的信息】
delete b
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 bo.boyfriend_bo = b.id
where bo.boyName = '黄晓明';
方式二:truncate
语法:
truncate table 表名;
案例:删除魅力值 > 100 的男神信息
truncate table boys;
特点:不能加 where 条件,一删全删。
一 VS 二
两种方式 delete 和 truncate 大 PK:
- delete 可以加 where 条件,truncate 不能加
- truncate 删除效率高一点
- 如果用delete删除后,再插入数据,自增长列的值从断点开始
- 如果用truncate删除后,再插入数据,自增长列的值从 1 开始
- truncate 删除没有返回值,delete 删除有返回值
- 如希望返回受影响的行数,则用 delete
- truncate 删除不能回滚,delete删除可以回滚。
本文深入讲解数据操作语言(DML),涵盖插入(insert)、修改(update)、删除(delete)语句的使用方法,包括不同方法的语法、特点及应用场景,如单表与多表操作、子查询等,帮助读者掌握数据库管理核心技能。

被折叠的 条评论
为什么被折叠?



