DML(数据操作语言)
- 涉及到数据的
- 插入:insert
- 修改:update
- 删除:delete
1. 插入语句
- 方式1:
- 语法:insert into 表名(列名,…) values(值1,…)
- 示例1:插入的值的类型要与列的类型一致或兼容
INSERT INTO beauty (
id,
NAME,
sex,
borndate,
phone,
photo,
boyfriend_id
)
VALUES
(
13,
'唐艺昕',
'女',
'1990-4-23',
'18934531234',
NULL,
2
);
-
- 示例2:不可以为null的列必须插入值。可以为null的列如何插入值?
方式1:字段的值写null
方式2:不写该字段
-
- 示例3:列的顺序是否可以调换
INSERT INTO beauty(NAME, sex, id, phone)
VALUES('蒋欣', '女', 16, '110');
-
- 示例4:列数和值的个数必须一致
- 示例5:可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
INSERT INTO beauty
VALUES(18, '李易峰', '男', NULL, '19', NULL, NULL);
- 方式2:
- 语法:insert into 表名 set 列名=值,列名=值,…
INSERT INTO beauty SET id = 19,
NAME = '刘涛',
phone = '999' ;
- 两种方式大pk
- 方式1支持插入多行,但是方式2不支持
INSERT INTO beauty
VALUES
(20, '李易峰', '男', NULL, '19', NULL, NULL),
(21, '李易峰', '男', NULL, '19', NULL, NULL),
(22, '李易峰', '男', NULL, '19', NULL, NULL);
-
- 方式1支持子查询,方式2不支持
INSERT INTO beauty(id, NAME, phone)
SELECT 26, '送钱', '12341234';
2.修改语句
- 语法:
- 修改单表的记录
update 表名
set 列=新值,列=新值…
where 筛选条件;
-
- 修改多表的记录
sql99语法:
update 表1 别名
inner | left | right join 表2 别名
on 连接条件
set 列=值,…
where 筛选条件;
修改单表的记录
- 案例1:修改beauty表中姓唐的女神电话为109090909
UPDATE
beauty
SET
phone = '109090909'
WHERE NAME LIKE '唐%' ;
- 案例2:修改boys表中id号位2的名称为张飞,魅力值为10
UPDATE
boys
SET
boyname = '张飞',
usercp = 10
WHERE id = 2 ;
修改多表的记录
- 案例1:修改张无忌的女朋友的手机号为114
UPDATE
boys b
INNER JOIN beauty be
ON b.`id` = be.`boyfriend_id` SET be.`phone` = '114'
WHERE b.`boyName` = '张无忌' ;
- 案例2:修改没有男朋友的女神的男朋友编号都为 2号
UPDATE
boys b
RIGHT JOIN beauty be
ON b.`id` = be.`boyfriend_id` SET be.`boyfriend_id` = 2
WHERE be.`boyfriend_id` IS NULL ;
3.删除语句
- 方式1:delete
- 语法
- 单表的删除
- 语法
delete from 表名 where 筛选条件
-
-
- 多表的删除
-
sql99语法
delete 别名(要删哪个表就写哪个表的别名,都删就都写)
from 表1 别名
inner | left | right join 表2 别名 on 连接条件
where 筛选条件
limit 条目数;
- 案例1:删除手机号以9结尾的女神信息
DELETE
FROM
beauty
WHERE phone LIKE '%9' ;
- 案例2:删除张无忌的女朋友的信息
DELETE
be
FROM
beauty be
INNER JOIN boys b
ON b.`id` = be.`boyfriend_id`
WHERE b.`boyName` = '张无忌' ;
- 案例3:删除黄晓明的信息以及他女朋友的信息
DELETE
b,
be
FROM
beauty be
INNER JOIN boys b
ON b.`id` = be.`boyfriend_id`
WHERE b.`boyName` = '黄晓明' ;
- 方式2:truncate
- 语法
truncate table 表名;
-
- truncate语句中不许加where
- 一删全删
TRUNCATE TABLE boyes ;
- delete pk truncate(重点)
- delete可以加where条件,truncate不可以
- truncate删除效率高一些
- 假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
- truncate删除没有返回值,delete删除有返回值
- truncate删除不能回滚,delete删除可以回滚
原文链接:https://blog.csdn.net/qq_21579045/article/details/98111827
浙公网安备 33010602011771号