二、数据操作语言(DML语言)
(观看这一小节的同学,可以先观看上一小节DQL语言的一些相关概念的笔记讲解,观看链接可以点击这里)
1.1数据操作语言:
插入:insert
修改:update
删除:delete
1.2插入语句语法:
方式一:
insert into 表名(列名,…)
values(值1,…);#该值要和列名依次对应,并且类型要和列的类型一致或兼容
语法举例
#1.插入的值的类型要与列的类型一致或者兼容
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'范大大','女','1992-2-24','11111111',NULL,2);
#2.不可以为null的列必须插入值,可以为null的列如何插入值?
#方式一:用值为null
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'范大大','女','1992-2-24','1111111111',NULL,2);
#方式二:去掉该列表
INSERT INTO beauty(id,NAME,sex,phone)
VALUES(14,'超然','女','1008611');
#3.列的顺序可以调换
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('关晓彤','女',15,'15656329665');
#4.列数和值的个数必须一致
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('热巴','女',16,'16656329665');
#5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致(这时为空的列则值必须写出null)
INSERT INTO beauty
VALUES(18,'凤凰传奇','男',NULL,'120',NULL,NULL);
方式二(语法):
insert into 表
set 列名 = 值,列名 = 值,…
举例
INSERT INTO beauty
SET id = 19,NAME = '贾假',phone = 0000000000;
1.3修改语句语法
1.3.1修改单表的记录
语法: 执行顺序
update 表名 (1)
set 列=新值,列=新值,....... (3)
where 筛选条件 (2)
#修改boys表中id号为2的名称为张飞,魅力值为10
UPDATE boys
SET `boyName` = '张飞',`userCP` = 10
WHERE `id` = 2;
1.3.2修改多表的记录【补充】
sql92语法:
update 表1 别名,表2 别名
set 列 = 值,.......
where 连接条件
and 筛选条件
sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列 = 值,.......
where 筛选条件;
1.4删除语句
使用delete语法
1.4.1单表的删除
delete from 表名 where 筛选条件
#案例:删除手机号以9结尾的女神的信息
DELETE FROM beauty WHERE phone LIKE '%9';
1.4.2多表删除
方式一:使用delete语法
sql92语法:
delete 表的别名(删除那个表就为谁的别名,两个都删除则为两个的别名一起)
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
sql99语法:
delete 表的别名(删除那个表就为谁的别名,两个都删除则为两个的别名一起)
from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件;
方式二:使用truncate语法(清空,不能加where条件)
truncate table 表名 (删除整个表的记录)
1.4.3以上两种方式的对比
1、delete可以加where条件,而truncate不可以
2、truncate删除效率高一丢丢
3、假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除后有返回值
5.truncate不能回滚,而delete删除可以回滚