MySQL基础——DML语言(数据操纵语言)
DML是Data Manipulation Language的缩写,意思是数据操纵语言,bai是指在SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令。
一、插入语句
语法:
Insert into 表名(列名,…) value (值1,…)
1.插入的值的类型要与列的类型一致或兼容
Insert into beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
Value(13,’唐艺欣’,’女’,’1990-4-23’,’1898888888’,’null’,2);
2.不可以为null的列必须插入值,可以为null的列如何插入值??
Insert into beauty(id,name,sex)
Value(13,’唐艺欣’,’女’);
3.列的顺序是否可以调换
Insert into beauty(name,id,sex)
Value(‘蒋欣’,’15’,’女’);
4.列数和值的个数必须一致
Insert into beauty(name,id)
Value(‘蒋欣’,’15’,’女’); #将会报错,值和列不匹配
5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
Insert into beauty
Values
6.支持子查询
Insert into beauty(id,name,phone)
Select 26,’宋茜’,‘11809866’;
二、修改语句
1.修改单表的记录
语法:
Update 表名
Set 列 = 新值,列 = 新值,…
Where 筛选条件
案例一:修改beauty表中姓唐的女神的电话为13899888899
Update beauty set phone = ‘13899888899’
Where name like '唐%';
案例二:修改boys表中id号为2的名称为张飞,魅力值10
Update boys set boyname = '张飞',usercp = 10
Where id = 2;
2.修改多表的记录
语法:
Sql92语法:
Update 表1 别名,表2 别名
Set 列 = 值,…
Where 连接条件
And 筛选条件;
Sql99语法:
Update 表1 别名
Inner | left | right join 表2 别名
On 连接条件
Set 列 = 值,…
Where 筛选条件;
案例一:修改张无忌的女朋友的手机号为114
Update boys bo
Inner join beauty b on bo.id = b.boyfriend_id
Set b.phone = 114
Where bo.boyname = '张无忌';
案例二:修改没有男朋友的女神的男朋友编号都为2号
Update boys bo
Right join beauty b on bo.id = b.boyfriend_id
Set b.boyfriend_id = 2
Where bo.id is null;
Select *from boys;
三、删除语句
方式一:delect
语法:
1. 单表的删除
Delect from 表名 where 筛选条件
2. 多表的删除
Sql92语法:
Delect 表1的别名,表2的别名
From 表1 别名,表2 别名
Where 筛选条件
And 筛选条件;
Sql99语法:
Delect 表1的别名,表2的别名
From 表1 别名
Inner | left | right join 表2 别名
On 连接条件
Where 筛选条件;
方式二:truncate
语法:
truncate table 表名;
1、方式一:delect 单表的删除
案例一:删除手机号以9结尾的女神信息
Delect from beauty where phone like '%9';
2、方式一:delect 多表的删除
案例:删除张无忌的女朋友的信息
Delect b
From beauty b
Inner join boys bo on b.boyfriend_id = bo.id
Where bo.boyname = '张无忌';
案例二:删除黄晓明的信息以及他女朋友的信息
Delect b,bo
From beauty b
Inner join boys bo
On b.boyfriend_id = bo.id
Where bo.name = '黄晓明';
3、方式二:truncate
案例:将魅力值>100的男神信息删除
Truncate table boys;
4、delect vs truncate
a. delect 可以加where 条件,truncate 不能加
b. truncate 删除,效率快一点
c. 假如要删除的表中有自增长列,如果用delect删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
d. truncate 删除没有返回值,delect删除有返回值
e. truncate 删除不能回滚,delectable 删除可以回滚