学习笔记:mysql增删改
一、插入语句
语法:
方式一:insert into 表名(列名) values(值1,值2,...)
方式二:insert into 表名 set 列名=值,列名=值...
注意:
列的顺序可以调换,但是插入值必须与列一一对应
#一、插入语句
#1.插入值的类型要与列的类型一致或兼容,不可以为null的列必须插入值
INSERT INTO beauty(`name`,sex,borndate,phone,photo)
VALUES('张雨琦','女','1990-03-20','18209876577',NULL);
#2.列的顺序可以调换
INSERT INTO beauty(id,sex,`name`,phone)
VALUES(16,'女','刘亦菲','18209876575');
#3.可以省略列名,默认所有列,而且列的顺序与表中列的顺序一致
INSERT INTO beauty VALUES(17,'周丽丹','女','1992-2-21','18209876575',NULL,NULL);
#方式二
INSERT INTO beauty
SET id = 18,`name` = '刘涛',phone ='18209876575';
#方式一支持插入多行,方式二不支持
INSERT INTO beauty(id,`name`,phone)
VALUES(19,'孙俪','18209876575'),(20,'孙莉','18209876575'),(21,'张天爱','18209876575');
#方式一支持子查询,方式二不支持
INSERT INTO beauty(id,`name`,phone)
SELECT 22,'宋茜','18209876575';
二、修改语句
语法:
修改单表
update 表名 set 列=新值,列=新值,...
where 筛选条件;
修改多表
update 表1 别名
inner/left/right join 表2 别名
on 连接条件
set 列名=值
where = 筛选条件;
#二、修改单表中的记录
#1.修改beauty表中姓柳女神的电话为13745678765
UPDATE beauty SET phone ='13745678765'
WHERE `name` LIKE '柳%';
#2.修改boys表中id为2的男神名字为张飞,魅力值为400
UPDATE boys SET boyName = '张飞',userCP = 400
WHERE id = 2;
#修改多表的记录
#1.修改张无忌的女朋友的手机号为114
UPDATE beauty be
LEFT JOIN boys bo ON be.boyfriend_id = bo.id
SET be.phone = '114'
WHERE bo.boyName = '张无忌';
#2.修改没有男朋友的女神的男朋友编号都为2号
UPDATE beauty be
LEFT JOIN boys bo ON be.boyfriend_id = bo.id
SET boyfriend_id = 2
WHERE boyfriend_id IS NULL;
三、删除语句
语法:
方式一:
单表
delete from 表名 where 筛选条件;
多表
delete 表1的别名,表2的别名
from 表1 别名
inner/left/right join 表2 别名 on连接条件
where 筛选条件
方式二:
truncate table 表名;
区别:
1.delete可以加where条件,truncate不能加
2.truncate删除,效率高
3.删除的表中有自增长列,delete删除后插入数据,自增长列从断点开始,truncate删除后再插入数据,自增长列从1开始
4.truncate删除不能回滚,delete删除可以回滚
#单表的删除
#1.删除手机号以9结尾的女神信息
DELETE FROM beauty WHERE phone LIKE '%9';
#2.删除张无忌的女朋友的信息
DELETE be FROM beauty be
INNER JOIN boys bo ON be.boyfriend_id = bo.id
WHERE bo.boyName = '张无忌';
#3.删除黄晓明及他女朋友的信息
DELETE be,bo FROM boys bo
INNER JOIN beauty be ON be.boyfriend_id = bo.id
WHERE bo.boyName = '黄晓明';
#truncate语句
#将魅力值大于300的男神信息删除
TRUNCATE TABLE boys;