DML 语言
数据操作语言:
插入:insert
修改:update
删除:delete
插入语句
方式一:经典的插入
语法:
insert into 表名(列名1,列名2,.....) values(值1,值2,....)
1.插入的值的类型要与列的类型一致或兼容
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺','女','1990-4-23','18933332223',NULL,3)
SELECT * FROM beauty
2,不可以为null的列必须插入值,可以为null的列如何插入值?
方式一:
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺','女','1990-4-23','18933332223',NULL,3)
方式二:
INSERT INTO beauty(id,NAME,sex,borndate,phone,boyfriend_id)
VALUES(14,'金星','女','1990-4-23','14965152223',9)
INSERT INTO beauty(id,NAME,sex,phone)
VALUES(15,'娜扎','女','14965152223')
3.列的顺序是否可以调换
INSERT INTO beauty(NAME,sex,id,phone)
VALUES ("蒋魅","女",16,'110')
4,列数和值的个数必须一致
INSERT INTO beauty(NAME,sex,id,phone,boyfriend_id)
VALUES ("关子","女",17,'110') #报错
5, 可以省略列名,默认所有列,而且列的顺序和表中的顺序一致,值也要和列名的顺序一致
INSERT INTO beauty
VALUES(18,'花花','女',NULL,'1232',NULL,32)
方式二:
语法:
insert into 表名
set 列名=值,列名=值,.......
INSERT INTO beauty
SET id=19,NAME='刘涛',phone='3212';
两种方式大pk
1,方式一支持插入多行,方式二不支持
INSERT INTO beauty
VALUES(20,'李秘','女','1980-4-2','12345234',NULL,3)
,(21,'吴真','女','1988-5-4','13412545',NULL,4)
,(22,'丽丽','女','1989-4-23','1345125',NULL,332);
2,方式一支持子查询,方式二不支持
INSERT INTO beauty(id,NAME,phone)
SELECT 28,'宋西','1465345234'
INSERT INTO beauty(id,NAME,phone)
SELECT id,boyname,'23152142'
FROM boys WHERE id<3;
INSERT INTO beauty
VALUES(25,'张三1','女','1980-4-2','12345234',NULL,3)
,(26,'张三2','女','1988-5-4','13412545',NULL,4)
,(27,'张三3','女','1989-4-23','1345125',NULL,332);
SELECT * FROM beauty
修改语句
1,修改单表的记录
语法:
update 表名
set 列=新值,列=新值,.....
where 筛选条件
2,修改多表的记录【补充】
1.修改单表的记录
案例1:修改beauty表中姓唐的女神的电话为13899888899
UPDATE beauty SET phone = '13899888899'
WHERE NAME LIKE '唐%';
案例2:修改boys表中id号为2的名称为张飞,魅力值为10
UPDATE boys SET boyName='张飞',userCP=10
WHERE id=2;
删除语句
方式一:delete
语法:
1.单表的删除【重点】
delete from 表名 where 筛选条件
2,多表的删除【补充】
sql92 语法
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件
sql99 语法:
delete 表1的别名,表2的别名
from 表1 别名
inner | left | right join 表2 别名 on 连接条件
where 筛选条件;
方式一:truncate
语法:truncate table 表名
方式二;delete
1.单表的删除
案例1:删除手机号以9结尾的女神信息
DELETE FROM beauty WHERE phone LIKE '%9';
SELECT * FROM beauty;
2.多表的删除
案例:删除张无忌的女朋友的信息
DELETE b
FROM beauty b
INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='张无忌';
案例:删除黄晓明的信息以及他女朋友的信息
DELETE b,bo
FROM beauty b
INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黄小明'
方式二:truncate 语句
案例:将魅力值>100的男神信息删除
TRUNCATE TABLE boys; #删除整个表
delete pk truncate
1.delete可以加where条件,truncate不能加
2.truncate 高效一点
3.假如要删除的表中有自增长列
如果用delete删除后,再插入数据,自增长列的值从断点开始
而truncate删除后,再插入数据,自增长列的值从1开始
4.truncate删除没有返回值,delete删除有返回值
5,truncate删除不能回滚,delete删除可以回滚
SELECT * FROM boys;
DELETE FROM boys;
TRUNCATE TABLE boys;
INSERT INTO boys (boyName,usercp)
VALUES('张飞',100),('刘备',200),('关云长',300);