- 一、插入语句
- 1、方式一
- ①语法
- ②使用注意
- 2、方式二
- ①语法
- ②案例
- 3、两种插入的比较
- 二、修改语句
- 1、修改单表数据
- ①语法
- ②案例
- 2、修改多表数据【了解】
- ①语法
- ②案例
- 三、删除语句
- 1、方式一(DELETe)
- ①单表数据的删除
- ②多表数据的删除【了解】
- 2、方式二(truncate)
- ①语法:
- 3、两种方式的比较
所有数据库学习总结文章均是根据B站尚硅谷视频总结而来,视频链接如下:
[https://www.bilibili.com/video/BV12b411K7Zu]
一、插入语句 1、方式一 ①语法数据操作语言关键词:
插入:insert
修改:update
删除:delete
INSERT INTO 表名(列1,列2,列3,·····) VALUES(值1,值2,值3,····)②使用注意
beauty表内容:
(1)插入的值的类型要与列的类型一致或兼容;
INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id) values(13,'唐艺昕','女','1990-4-23','1233344444',NULL,2);
(2)值不可为null的列必须插入,可以为null的有以下两种插入方式;
方式一:在可以为空的字段对应的值处输入null即可。
INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id) VALUES(14,'小李','男','1999-08-15','1212121212',null,15);
方式二:同时去掉可以为空的字段和值(例如:photo字段)。
INSERT INTO beauty(id,name,sex,borndate,phone,boyfriend_id) VALUES(15,'小王','女','2000-08-29','112121211',14)
(3)列的顺序可以掉换,但列数和值的个数必须一致;
INSERT INTO beauty(name,sex,id,phone)
VALUES('蒋欣','男','16','12344253');
(4)可以省略列名,默认为全部列,且字段顺序与表中的顺序一致。
INSERT INTO beauty VALUES(17,'唐艺昕','女','1990-4-23','1233344444',NULL,2);2、方式二 ①语法
需要注意set后边必须要有不能为null的字段的“列名=值“。
INSERT INTO 表名 SET 列名1=值1,列2=值2,···列n=值n;②案例
INSERT INTO beauty SET NAME='刘涛',id=27,sex='女',phone='9999';3、两种插入的比较
①方式一支持插入多行,方式二不支持。
INSERT INTO beauty
VALUES(18,'杨幂','女','1999-4-23','12333499444',NULL,2),
(19,'杨颖','女','1979-9-23','12499444',NULL,3),
(20,'关晓彤','女','1999-4-20','123334333',NULL,5);
②方式一支持子查询,方式二不支持。
INSERT INTO beauty(id,NAME,phone) SELECT 26,'宋茜','1123222';二、修改语句 1、修改单表数据 ①语法
UPDATE 表名 #(1) SET 列=新值,列=新值,... #(3) WHERe 筛选条件(查询中的所有筛选类型都支持) #(2)②案例
案例1:修改beauty表中姓周的女生的电话为:112212211111,男朋友为3.
UPDATE beauty SET phone='112212211111',boyfriend_id =3 WHERe name like '周%';2、修改多表数据【了解】 ①语法
sql92语法: UPDATE 表1 别名,表2 别名 SET 列=值,··· WHERe 连接条件 AND 筛选条件; sql99语法: UPDATE 表1 别名 INNER/LEFT/RIGHT JOIN 表2 别名 ON 连接条件 SET 列=值,··· WHERe 筛选条件 */②案例
案例1:修改张无忌的女朋友的手机号为114。
UPDATE boys b INNER JOIN beauty be ON b.id=be.boyfriend_id set phone ='111' WHERe boyname ='张无忌';
案例2:修改没有男朋友的女生的男朋友编号都为2号。
UPDATE beauty be LEFT JOIN boys b ON be.`boyfriend_id`=b.`id` SET boyfriend_id=2 WHERe b.id IS NULL ;三、删除语句 1、方式一(DELETE) ①单表数据的删除
(1)语法:
#删除表中特定的数据 DELETE FROM 表名 WHREE 筛选条件; #删除表中所有的数据 DELETe FROM 表名;
(2)案例1:删除手机号以9结尾的女生信息.
DELETe FROM beauty WHERe phone LIKE '%9';②多表数据的删除【了解】
(1)语法:
sql92语法: DELETe 表1别名,表2别名(删除哪个表中的数据写那个,删两个就都写) FROM 表1 别名,表2 别名 WHERe 连接条件 AND 筛选条件; sql99语法: DELETe 表1别名,表2别名(删除哪个表中的数据写那个,删两个就都写) FROM 表1 别名 INNER | LEFT | RIGHT JOIN 表2 别名 ON 连接条件 WHERe 筛选条件;
(3)案例:
案例1:删除张无忌的女朋友的信息。
DELETe b FROM beauty b INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id` WHERe bo.`boyName`='张无忌';
案例2:删除黄晓明夫妇的信息。
DELETe bo,b FROM boys bo INNER JOIN beauty b ON b.`boyfriend_id`=bo.`id` WHERe bo.`boyName`='黄晓明';2、方式二(truncate) ①语法:
TRUNCATE TABLE 表名;3、两种方式的比较
①delete可以添加where条件,truncate不可以;
②truncate删除效率略高于delete;
③truncate删除没有返回值,delete删除有返回值。
④truncate删除不可以回滚,delete删除可以回滚。
⑤删除的表中有自增长列:如果delete删除后,再插入数据,自增长列值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。举例如下图:
boys表数据:
DELETE删除后插入数据(注意看ID列)
truncate删除后插入数据(注意看ID列)



