当前位置: 首页 > news >正文

Java全栈学习笔记33

-- 子查询,在查询语句中可以包含其他查询语句。包含其他查询的查询叫做父查询,被包含的查询叫做子查询
use empdb;
-- 查询工作地点是芝加哥的员工信息
-- 程序每次访问数据库都需要占用资源
select deptno from dept where loc = "CHICAGO"
select * from emp where deptno = 30;
-- 把SMITH的工资修改为ALLEN的工资
-- 查询结果做虚拟表
update emp set sal = (select * from (
select sal from emp where ename = "ALLEN") a) where ename = "SMITH"
-- 查询结果保存在数据库表
create table empinfo
as
select * from emp;

create table t_saltotal
as
select sum(sal),MONTH(now()) - 1 as month from emp

insert into t_saltotal(sal,month)
select sum(sal),MONTH(now()) - 2 as month from emp

select * from t_saltotal 

use studb;
-- 查询和杨菲菲系别相同的学生信息
select * from student where class = (select class from student where studname = '杨菲菲')
-- 从成绩管理系统的学生表中查询入学成绩高于张宏的学生的姓名和入学成绩
select studname,ingrade 
from student
where ingrade > (
select ingrade from student where studname = "张宏"
) order by ingrade desc

-- 查询和杨菲菲性别不同的学生信息
select * from student where studsex != (
select studsex from student where studname = "杨菲菲"
)
-- 总结:使用比较运算符时,子查询只能返回一个单值(单行单列)
-- 查询杨菲菲考了91分的课程的名称
select coursename from course 
where courseid = (
select courseid from grade where grade = 91 and studid = 
(
select studid from student where studname = "杨菲菲"
)
)

-- 查询成绩在90分以上的学生姓名,不分科目
select studname from student
where studid not in (select studid from grade where grade > 90)
-- 从成绩管理系统中查询“VB”考了90分以上的学生的姓名
select studname from student 
where studid in 
(
select studid from grade where grade > 90 and courseid = (
select courseid from course where coursename = "VB"
)
)

-- 查询其他系中比信息系所有学生的入学成绩低的学生姓名,入学成绩和系别
select studname,ingrade,class from student where ingrade < (
select min(ingrade) from student where class = "信息系")

select studname,ingrade,class from student where ingrade <all(
select ingrade from student where class = "信息系"
)
-- 查询其他系中比信息系某一学生的入学成绩低的学生姓名
select studname,ingrade,class from student where ingrade < (
select max(ingrade) from student where class = "信息系"
) and class != "信息系"

select studname,ingrade,class from student where ingrade <any(
select ingrade from student where class = "信息系"
) and class != "信息系"
use studb;

select * from student where exists(select * from student where class = '信息')
-- 在成绩管理系统中查询所有选修了“01”号课程的学生姓名。 
select studname from student where exists(
select * from grade where courseid = "01" and studid = grade.studid
);

-- 连接查询,当前的数据显示需要多张表中的内容
use empdb;
-- 查询员工姓名,员工工资,岗位,入职日期,部门名称
select ename,sal,job,hiredate from emp,dept;
select ename,sal,job,hiredate from emp cross join dept;

-- 上述语句中没有条件。计算两张表中的笛卡尔积。
-- 连接查询是把不同的表中的内容,通过条件匹配,组合成一行数据
-- 为了数据的合理性,添加连接条件
select ename,sal,job,hiredate,emp.deptno,dname from emp,dept where emp.deptno = dept.deptno
and sal > 2000
use studb
-- 查询学生姓名,学生系别,以及选了01号课程的成绩
select studname,class,grade
from student,grade
where student.studid = grade.studid and courseid = "01"
-- 等值连接,内联接(inner join ... on 连接条件)
-- select studname,class,grade
-- from (
--   select * from student
-- ) student inner join (select * from grade where courseid = "04") grade
-- where student.studid = grade.studid

-- 表别名
select stu.studid,studname,class,grade
from student stu,grade g
where stu.studid = g.studid and g.courseid = "04"

select max(ingrade) maxIngrade from student group by class

select studname,class,grade
from student s join grade g
on s.studid = g.studid
where g.courseid = "04"

-- 查询所有学生的姓名,系别,考试成绩

select s.studid,studname,class,grade
from student s join grade g
on s.studid = g.studid

-- 外联  左外连接  右外连接   left/right outer join
select s.studid,studname,class,ifnull(grade,0)
from grade g left join student s
on s.studid = g.studid

-- 自己连接自己 
-- 使用自联接在学生表中查询和“杨菲菲”性别相同的学生信息
select a.* from
student a,student b 
where a.studsex = b.studsex and b.studname = "杨菲菲"


-- 查询学生信息,及学生选课的课程成名称,及分数
select s.*,c.courseid,coursename,grade
from student s join grade g
on s.studid = g.studid
join course c
on c.courseid = g.courseid

select s.*,c.courseid,coursename,grade
from student s,grade g,course c
where s.studid = g.studid and c.courseid = g.courseid


select s.*,c.courseid,coursename,grade
from student s left join grade g
on s.studid = g.studid
left join course c
on c.courseid = g.courseid;


-- 查询各个系别中的最高入学成绩
select max(ingrade),class from student group by class;
-- 查询各个系别中入学成绩由高到低排序的前两名 row number over()
select * from (
select studname,ingrade,class,row_number() over(PARTITION by class order by ingrade desc) rb from student) rb where rb < 3;


-- 查询学号,课程号,成绩,课程名称
select studid,courseid,grade,
(
select coursename from course where courseid = grade.courseid
) as coursename
from grade

use empdb;
-- 查询各个部门当中的最大工资以及这个工资的员工姓名
select emp.sal,ename
from emp,(select max(sal) sal,deptno from emp group by deptno) maxsal
where emp.sal = maxsal.sal and emp.deptno = maxsal.deptno;

select * from (
select ename,sal,
row_number() over(partition by deptno order by sal desc,ename asc) rb 
from emp) rb where rb.rb = 1;


文章转载自:

http://gqHPcAdj.bmgdL.cn
http://YkhXHqCf.bmgdL.cn
http://G6JsBKNF.bmgdL.cn
http://7U3GW8p0.bmgdL.cn
http://jhmSTsfN.bmgdL.cn
http://vKMN5ISH.bmgdL.cn
http://v8Rnn6iO.bmgdL.cn
http://SQrzHxca.bmgdL.cn
http://U6iW4qNz.bmgdL.cn
http://xmFwCR57.bmgdL.cn
http://eHkCwJhm.bmgdL.cn
http://WFLBAYjD.bmgdL.cn
http://WouRwGJo.bmgdL.cn
http://yhwzXjsF.bmgdL.cn
http://8KyvbuEQ.bmgdL.cn
http://EgOtSEpw.bmgdL.cn
http://IuL35v1D.bmgdL.cn
http://itGwPlq4.bmgdL.cn
http://LXY5NFVS.bmgdL.cn
http://PkqV2iUh.bmgdL.cn
http://V6oOwe5d.bmgdL.cn
http://0DhbJzEn.bmgdL.cn
http://JoZNL69u.bmgdL.cn
http://ivD2ikcg.bmgdL.cn
http://bj4qffd4.bmgdL.cn
http://pqX3XeBj.bmgdL.cn
http://YAm0VfoC.bmgdL.cn
http://xZP7m4j7.bmgdL.cn
http://pHi1YWaJ.bmgdL.cn
http://OfWVzJCe.bmgdL.cn
http://www.dtcms.com/a/376416.html

相关文章:

  • 网络学习笔记
  • GitHub每日最火火火项目(9.10)
  • 基于stm32的环境监测系统/智能家居/空气质量监测系统
  • 基于PyQt5和阿里云TTS的语音合成应用开发实战[附源码】
  • Linux的V4L2视频框架学习笔记
  • Android studio安装教程——超详细(含安装包安装教程)
  • 如何将大型音频文件从 iPhone 发送到不同的设备
  • 使用阿里云容器镜像服务 ACR
  • ffmpeg内存模型
  • Android面试指南(八)
  • 不止是进度条:深入PiXSingleGUI的TpSlideProgressBar组件架构设计​
  • Flutter 视频播放器——flick_video_player 介绍与使用
  • 【Java】Hibernate管理Session
  • 【ARMv7】系统复位上电后的程序执行过程
  • Ubuntu引导修复
  • PetaLinux_User_udev
  • 《链表的优雅封装:C++ list 模拟实现与迭代器之美》
  • 基于Redis设计一个高可用的缓存
  • 看涨看跌期权平价公式原理及其拓展
  • Django 基础入门:命令、结构与核心配置全解析
  • 中断系统介绍
  • 算法题 Day5---String类(2)
  • 关于Linux系统调试和性能优化技巧有哪些?
  • 大数据电商流量分析项目实战:Hadoop初认识+ HA环境搭建(二)
  • 软考中级习题与解答——第四章_软件工程(2)
  • AutoTrack-IR-DR200底盘仿真详解:为教育领域打造的高效机器人学习实验平台
  • 介绍 Python Elasticsearch Client 的 ES|QL 查询构建器
  • LeetCode 234. 回文链表
  • 分词器(Tokenizer)总结(89)
  • css优化都有哪些优化方案