一、查询


二、插入数据

用于向表中插入记录

方式一:insert into 表名(属性列表) values(值列表)
方式二:insert into 表名 set col1 = val1,col2 = val2 …
区别:
1. 方式一支持一次插入多行数据而方式二不支持
2. 方式一支持子查询插入数据方式二不支持
来看案例

案例1
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','1898888888',NULL,2);

案例2 省略列名,默认所有列
INSERT INTO beauty
VALUES(18,'张飞','男',NULL,'119',NULL,NULL);

案例3:插入多行
INSERT INTO beauty
VALUES(23,'唐艺昕1','女','1990-4-23','1898888888',NULL,2)
,(24,'唐艺昕2','女','1990-4-23','1898888888',NULL,2)
,(25,'唐艺昕3','女','1990-4-23','1898888888',NULL,2);

案例4 用子查询插入数据
INSERT INTO beauty(id,NAME,phone)
SELECT id,boyname,'1234567'
FROM boys WHERE id<3;

注意点:
1. 插入的值要与属性列表相对应
2. 不允许为null的属性必须插入值

三、修改数据

首先对表的记录进行筛选,把筛选出来的记录的属性改变

语法:
1.修改单表 :update 表名set 列=新值,列=新值,…where 筛选条件;
2.修改多表:update 表1 连接 表2 on 连接方式 set set 列=新值,列=新值,…where 筛选条件

单表案例
案例1:修改beauty表中姓唐的女神的电话为13899888899
UPDATE beauty SET phone = '13899888899'
WHERE NAME LIKE '唐%';

多表案例
1.修改张无忌的女朋友的手机号为114
UPDATE boys bo
JOIN beauty b ON bo.`id`=b.`boyfriend_id`
SET b.`phone`='119',bo.`userCP`=1000
WHERE bo.`boyName`='张无忌';

2.修改没有男朋友的女神的男朋友编号都为2号
UPDATE boys bo
RIGHT JOIN beauty b ON bo.`id`=b.`boyfriend_id`
SET b.`boyfriend_id`=2
WHERE bo.`id` IS NULL;

四、删除记录

语法:
delete 表1的别名,表2的别名from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件;

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
JOIN boys bo ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黄晓明';

truncate语句:truncate table 表名
用来清空表中的所有记录

delete 与 truncate的区别:
1.delete 可以加where 条件,truncate不能加
2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列,
如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚