场景一 : select后面
语法 :
select 字段名,(查询语句) from 表名;
如 : 查询所有学生的信息并显示老师的名字
select *,(
select name from teacher where id=teacher_id
) as teacher_name from student ;
如 : 查询每个老师的学生的 最大分数,最小分数,平均分数,分数总和,学生人数,老师名字
select max(score),min(score),sum(score),avg(score),count(*),(
select name from teacher where id=teacher_id
) as teacher_name from student group by teacher_id ;
注意 :
当位于SELECT后面时,要注意
1.一定要在两个表之间找好对应关系(teacher.id必须是主键或者必须保证teacher.id在teacher表中是唯一的)
2.子查询中只能有一个字段(子查询的结果必须是一行一列)
使用子查询的时候,建议大家养成使用别名的好习惯,这样可以让我们的查询语句更加清晰。别名可以用来命令新字段,也可以用来命名新表.
场景二 : from后面
还是学生表student,我们要将成绩进行分级,并且显示汉字的分级与字母的分级。这里可以使用子查询。相当于给student“新增”了2个字段
如 : 使用子查询 对成绩划分等级, score<60 ,评级C 并且是差,score>=60 且 score<80 评级B并且是良,score>=8 评级是A并且是优
select *,
case rank
when 'A' then '优'
when 'B' then '良'
when 'C' then '差'
end rank_ch
from (
select *,
case
when score < 60 then 'C'
when score >=60 and score <80 then 'B'
when score >=80 then 'A'
end as rank
from student
) a;
注意 :
当位于FROM后面时,要注意
1.我们可以把子查询当成一张表
2.必须要有别名,因为子查询优先被执行,子查询的别名,可以让别的查询当做表或者列去操作
场景三 : where后面
如 : 在不知道teacher_id 和 老师名字的对应关系的情况下,想查询出张老师下面的所有学生信息
select * from student where teacher_id in (
select id from teacher where name='张老师'
);
注意 :
当位于WHERE后面时,要注意
1.多条数据要用in而不要用=,如果确定子查询的结果为一行一列的话,就可以用 = 等于
2.如果返回结果为多行一列的话 要用 in , 一列是必须的,必须是一列
3.子查询中的SELECT后面只能有一个字段(多个字段的话会报错)
Union与 union all
合并查询,合并查询的结果
Union 会去除重复项
Union all 不会去除重复项
如 : 查询出 teacher_id = 1 的所有学生信息
select * from student where teacher_id=1;
如 : 查询出 学生分数大于60的所有学生信息
select * from student where score > 60;
如 : 查询出 学生分数大于60 或 teacher_id = 1 的所有学生信息(去除重复)
// 用 or 实现
select * from student where teacher_id=1 or score > 60;
// 用 union实现
select * from student where teacher_id=1
union
select * from student where score > 60;
如 : 查询出 学生分数大于60 或 teacher_id = 1 的所有学生信息(可重复)
select * from student where teacher_id=1
union all
select * from student where score > 60;
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
MySQL基础知识以及简单练习题 (168个子文件)
UserDao_PreparedStatement.class 2KB
UserDao_PreparedStatement.class 2KB
UserDao_PreparedStatement.class 2KB
UserDao_PreparedStatement.class 2KB
UserDao_PreparedStatement.class 2KB
UserDao_Statement.class 2KB
UserDao_Statement.class 2KB
UserDao_Statement.class 2KB
UserDao_Statement.class 2KB
UserDao_Statement.class 2KB
User.class 2KB
User.class 2KB
User.class 2KB
User.class 2KB
User.class 2KB
DBUtil.class 1KB
BasicDataSourceUtil.class 1KB
test.class 1KB
test.class 1KB
test.class 1KB
test.class 1KB
test.class 1KB
DBUtil.class 1KB
DBUtil.class 1KB
DBUtil.class 1KB
DBUtil.class 1KB
DBCPTest.class 1KB
PropertiesUtil.class 995B
IUserDao.class 233B
IUserDao.class 233B
IUserDao.class 233B
IUserDao.class 233B
IUserDao.class 233B
.classpath 508B
.classpath 310B
.classpath 310B
.classpath 310B
.classpath 310B
MySQL第三天.docx 1.34MB
MySQL第一天.docx 488KB
MySQL第四天.docx 237KB
MySQL第二天.docx 52KB
mysql-connector-java-5.1.38-bin.jar 961KB
mysql-connector-java-5.1.38-bin.jar 961KB
mysql-connector-java-5.1.38-bin.jar 961KB
mysql-connector-java-5.1.38-bin.jar 961KB
mysql-connector-java-5.1.38-bin.jar 961KB
mysql-connector-java-5.1.38-bin.jar 961KB
mysql-connector-java-5.1.38-bin.jar 961KB
commons-dbcp2-2.2.0.jar 182KB
commons-dbcp2-2.2.0.jar 182KB
commons-pool2-2.5.0.jar 125KB
commons-pool2-2.5.0.jar 125KB
commons-logging-1.2.jar 60KB
commons-logging-1.2.jar 60KB
_08_MySQLUtil.java 4KB
JDBC_01_Base_DQL_00.java 3KB
DBUtil.java 2KB
UserDao_PreparedStatement.java 2KB
UserDao_Statement.java 2KB
UserDao_PreparedStatement.java 2KB
UserDao_PreparedStatement.java 2KB
UserDao_PreparedStatement.java 2KB
DBUtil.java 2KB
JDBC_01_Base_DQL_01.java 1KB
UserDao_Statement.java 1KB
JDBC_02_DML.java 1KB
JDBC_03_PreparedStatement_load.java 1KB
JDBC_03_PreparedStatement_add.java 1KB
JDBC_02_Transaction.java 1KB
BasicDataSourceUtil.java 1KB
test.java 1KB
DBUtil.java 979B
JDBC_01_NoTransaction.java 975B
JDBC_05_Batch_PreparedStatement.java 974B
User.java 955B
User.java 955B
User.java 955B
User.java 955B
User.java 955B
JDBC_05_Batch_Statement.java 908B
DBUtil.java 815B
DBUtil.java 815B
test.java 796B
DBUtil.java 788B
DBUtil.java 788B
test.java 771B
test.java 771B
test.java 771B
JDBC_04_TestDBUtil.java 679B
DBCPTest.java 593B
PropertiesUtil.java 518B
PropertiesUtil.java 518B
IUserDao.java 183B
IUserDao.java 183B
IUserDao.java 183B
IUserDao.java 183B
IUserDao.java 183B
.project 384B
.project 384B
共 168 条
- 1
- 2
Leach_Astesia
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0