延续上次的MySQL数据查询,今天复习的是数据查询和数据更新。专升本冲冲冲,大家都一定可以上岸的~
数据查询与数据更新
1.1 数据插入
数据插入insert 语句中使用 select 语句,可以将数据表的查询结果添加到目标表中,语法格式为:insert into 目标表名[(字段列表1)] select 字段列表2 from 数据源 [where 条件表达式];
注意:1)字段列表1与字段列表2的字段个数必须相同,对于字段的数据类型保持一致,字段列表1如果省略,则字段列表2必须和目标表的结构一致。
2)数据源可以是多张数据表,where子句可省略。
例:复制表结构:复制student表结构为学生表
create table 学生 like student;
插入数据:将student表中的女生 学生的信息添加到学生表中
insert into 学生 select 学号,姓名,性别,出生日期,班级编号 from student
where 性别='女';
查询结果:
select * from 学生;
1.2 数据修改
update 目标表名
set 字段名=(
select 字段名或表达式 from 数据源 where 条件表达式)
where 目标表中的字段名 运算符(select 字段名或表达式 from 数据源
where 条件表达式);
某个学生转班,19生工1班转入19传媒1班。
update student
set 班级编号=(select 班级编号 from classes where 班级名称='19传媒1班')
where 班级编号=(select 班级编号 from classes where 班级名称='19生工1班');
1.3 数据删除
delete from 表名
where 字段名 运算符(select 字段列表
from 数据源
where 条件表达式);
删除学生孙悟空选修龙卷风的记录
delete from choose
where 学号=(select 学号 from student where 姓名='孙悟空')
and 课程号=(select 课程号 from course where 课程名称='龙卷风');
1.4 合并查询结果(union)
合并查询结果使用union和union all关键字。
union关键字是将所有的查询结果合并到一起,然后去除相同的记录;
union all 关键字只是简单地将结果合并到一起。
select 字段列表 from 表1
union [all]
select 字段列表 from 表2;
select * from course where 学分=3
union
select * from course where 学分=4;