参考url:https://www.bilibili.com/video/BV12b411K7Zu
数据操作语言:
插入:insert
修改:update
删除:delete
1、插入语句(方式一)
语法:
Insert into 表名(列名,...) Values(值1,...);
1) 插入的值的类型要与列的类型一致或兼容
INSERT INOT
Beauty(id,name,sex,borndate,phone,photo,boybriend_id)
VALUES(13,’唐宜兴’,‘女’,‘1996-2-3’,’1999999’,NULL,2);
2) 不可以为null的列必须插入值,可以为null的列如何插入值?
方式一:
INSERT INOT
Beauty(id,name,sex,borndate,phone,photo,boybriend_id)
VALUES(13,’唐宜兴’,‘女’,‘1996-2-3’,’1999999’,NULL,2);
方式二:
INSERT INOT
Beauty(id,name,sex,borndate,boybriend_id)
VALUES(13,’唐宜兴’,‘女’,‘1996-2-3’,2);
3) 列的顺序可以调换
INSERT INTO
beauty(name,sex,id,phone)
VALUES(‘将星’,‘女’,16,’11000002’)
4) 列数和值的个数必须一致
5) 可以省略列名,默认为所有列,而且列的顺序和表中列的顺序一致
2、插入语句(方式二)
语法:
Insert into 表名
Set 列名=值,列名=值,...
例子:
INSERT INTO beauty
SET id=19,name=’刘涛’,phone=’999’
3、插入方式比较
1) 方式一支持插入多行,方式二不支持
INSERT INTO
beauty(name,sex,id,phone)
VALUES(‘将星1’,‘女’,16,’11000002’),
VALUES(‘将星2’,‘女’,16,’11000002’),
VALUES(‘将星3’,‘女’,16,’11000002’);
2) 方式一支持子查询,方式二不支持
INSERT INTO beauty(id,name,phone)
SELECT 26,‘宋强’,’112134’
4、修改语句
1) 修改单表的记录
语法:
Update 表名
Set 列=新值,列=新值,...
Where 筛选条件;
案例1:修改beauty表中姓唐的女孩的电话为123456789
UPDATE beauty
SET phone=’123456789’
WHERE name LIKE ‘唐%’;
案例2:修改boys表中id号为2的名称为张飞,魅力值为10
UPDATE boys
SET name=’张飞’,usercp=10
WHERE id=2;
2) 修改多表的记录
语法:
SQL92语法
Update 表1 别名,表2 别名
Set 列=值,...
WHERE 连接条件
AND 筛选条件;
SQL99语法
UPDATE 表1 别名
INNER|LEFT|RIGHT JOIN 表2 别名
ON 连接条件
SET 列=值,...
WHERE 筛选条件;
案例1:修改张无忌的女朋友的手机号为114
UPDATE boys AS bo
INNER JOIN beauty AS b
ON bo.id=b.boyfirend_id
WHERE bo.boyname=’张无忌’;
案例2:修改没有男朋友的女孩的男朋友编号都为2号
UPDATE boys AS bo
RIGHT JOIN beauty AS b
ON bo.id=b.boyfriend_Id
SET b.boyfriend_id=2
WHERE b.id IS NULL;
5、删除语句
1) 方式一:delete(删除单行)
语法:
i) 单表的删除
Delete from 表名 where 筛选条件;
案例1:删除手机号以9结尾的女生信息
DELETE FROM beauty WHERE phone LIKE ‘%9’;
ii) 多表的删除
语法:
Sql92语法:
Delete 表1的别名,表2的别名
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
INNNER JOIN boys bo
ON b.boyfriend_id=bo.id
WHERE bo.boyname=’黄小名’;
2) 方式二:truncate(删除表中所有数据)
语法:
Truncate table 表名;
案例:将魅力值>100的男神信息删除
TRUNCATE TABLE boys;
3) Delete和truncate对比分类:
i. Delete可以加where条件,truncate不能加
ii. Truncate删除效率高一些
iii. 假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
iv. Truncate删除没有返回值,delete删除有返回值。
v. Truncate删除不能回滚,delete删除可以回滚