#插入语句
/*
语法:
INSERT 表名(列名,.....) VALUES(值,......);
这种写法需要注意:
1、列名与值要一一对应
2、遇到有默认值(可为空)的可以 不写列名和值 如 案列2
3、可以用null代替 可为空的值
*/
INSERT girls.beauty (id, NAME, sex, borndate,
phone,photo,boyfriend_id) VALUES(13,'波多野结衣','女',
'1996-10-1','1888622234',NULL,1);
SELECT *FROM girls.beauty;
#案列2
INSERT girls.beauty(id,NAME,sex,phone)
VALUES(14,'刘诗诗','女','111');
#2、第二种插入的方式
/*
INSERT INTO 表名 SET 列名=值,列名=值.......;
*/
INSERT INTO girls.beauty SET id=17,sex='女',name='胡一菲',phone='111';
/*两种方式的对比
方式一:支持多行插入
方式一:支持子查询,(可以用作转表,合并两表)
*/
#eg:多行插入
INSERT girls.beauty (id, NAME, sex, borndate,
phone,photo,boyfriend_id) VALUES(21,'杨超越','女',
'1996-10-1','1888622234',NULL,1),(22,'热巴','女',
'1996-10-1','1888622234',NULL,1);
#eg:子查询
INSERT INTO girls.beauty (id, NAME,phone)
SELECT 24,'葵司','111';
#二、修改语句
/*
1、修改单表的记录
语法:
UPDATE 表名
SET 列=新值,列=新值,......
WHERE 筛选条件; //执行顺序,确定表,筛选,更新值
2、修改多表的记录
*/
#1、修改单表的记录
#案列1、修改beauty表中姓刘的女神电话为11987
UPDATE girls.beauty SET phone='11987',sex='i'
WHERE `name` LIKE '%刘%';
#2、修改多表的记录
#案列1: 修改张无忌的女朋友的电话为 114
UPDATE girls.beauty g INNER JOIN girls.boys b ON g.boyfriend_id = b.id
SET g.phone='114'
WHERE b.boyName='张无忌';
#案列2: 修改女神表中没有男朋友的boyid 为2
UPDATE girls.beauty g LEFT JOIN girls.boys b ON g.boyfriend_id=b.id
SET g.boyfriend_id=2
WHERE b.id IS NULL;
SELECT *FROM girls.beauty g LEFT JOIN girls.boys b ON g.boyfriend_id=b.id;#外连接
/*
内连接:是两个表取交集,外连接是取余下的
*/
#三、删除
/*
方式一: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 表名;
*/
#案列1:删除手机号中以9号结尾的女神信息
DELETE g FROM girls.beauty g WHERE g.phone LIKE '%9';
DELETE FROM girls.beauty WHERE phone LIKE '%9';
#需要把表的别名放在前面
#多表的删除
#案咧2:删除张无忌女朋友的信息
#分解 最开始的数据
SELECT * FROM girls.beauty g INNER JOIN girls.boys b ON g.boyfriend_id=b.id;
DELETE g FROM girls.beauty g INNER JOIN girls.boys b ON g.boyfriend_id=b.id
WHERE b.boyName='张无忌';
#方式二:truncate 语句
#案例2:将魅力值>100的男神信息删除
#不能加 where语句,作用是清空列表,全部删除
/*
1.delete 可以加where 条件,truncate不能加
2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列,
如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长列的值从1开始。
//设计表中有自增的
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚.
*/