1、集合查询

  • 并操作UNION (相当于or)
  • 交操作INTERSECT (相当于and)
  • 差操作EXCEPT

2、写第5题时重要的参考

数据库SQL语句中 查询选修了全部课程的学生的学号和姓名 - Angel_Q - 博客园

3、DATEPART() 函数用于返回日期/时间的单独部分,比如年yy、月mm、日dd、小时hh、分钟mi、秒ss等等。

eg:截取年份:DATEPART (yy,'2022-1-1') 返回:2022

GETDATE():获取当前日期函数

课上实训 3个表+15道题

police(pno警号,pid身份证号)

pcase(cno案件编号,cname案件名称,ctype案件类型,cbrief案件简介)

pc(pno警号,cno案件编号,ptime出警时间)

(1) 查询“100010”和“100043”警员同时处警的案件编号(分别使用嵌套查询和集合查询实现);

嵌套查询:

select cno
from PC
where pno ='100010' and cno in
(select cno
from PC
where pno ='100043');

集合查询:

(select cno from PC where pno ='100010' )
intersect
(select cno from PC where pno ='100043');

(2) 查询年龄超过平均值的所有警员名单,按年龄的降序显示;

select pname 
from Police 
where page>(select avg(page) from Police ) 
order by page desc;

(3) 按人数降序显示各个案件处警的总人数;

select cno,count(cno)
from pc
group by cno
order by count(cno) desc;

(4) 查询“100010”或“100043”警员处警的案件编号;

select pno,cno from pc where pno = '100010'
union
select pno,cno from pc where pno = '100043';

(5) 查询参与处警全部案件的警员的警号;

select pno 
from pc 
group by pno having count(cno) = (select count(distinct cno) from pc);

逻辑就是查询全部案件有几个,然后分组查询每个警员处警次数,当每个警员的处警次数等于全部案件数量时,满足题意,输出

还有一种方法是

 双重否定表肯定

(6) 查询各警衔的警员人数,显示警衔、人数;

select prank,count(prank)
from police
group by prank
order by count(prank);

(7) 使用嵌套查询列出“孙宾”处警的案件编号、案件名称、简要案情;

select cno,cname,cbrief
from pcase
where cno in(select cno from PC where pno in(select pno from police where pname='孙宾'));

(8) 使用集合查询列出同时参与案件“201901050081”和“202001100005”处警的警员的警号、警员姓名、职务;

select pno,pname,pduty from police where pno in (select pno from pc where cno='201901050081')
intersect
select pno,pname,pduty from police where pno in (select pno from pc where cno='202001100005')

(9) 查询与“杨刚”警衔相同的警号、姓名、警衔;

select pno,pname,prank from police where prank = (select prank from police where pname='杨刚') and pname != '杨刚';

(10) 分性别统计警员中,年龄小于45岁的警员人数,显示性别、人数;

select psex,count(pno)
from police
where page<45
group by psex;

(11) 查询所有处警警员中男、女警员各多少人;

select psex,count(pno)
from police
where pno in (select distinct pno from pc)
group by psex;

(12) 使用嵌套查询显示“一级警督”的处警情况,显示警号、案件编号;

select pno,cno
from pc
where pno in (select pno from police where prank ='一级警督');

(13) 使用集合查询列出没有处警的警员的警号。

select pno
from police
where pno not in (select pno from pc);

(14) 查询处警时间1年以上的案件编号及处警时间(只计算处警的年份);

select cno,ptime
from pc
where 2022-datepart(yy,ptime)>1
order by cno;

(15) 按照“案件名,处警结束时长”的顺序列出案件的处警情况(其中处警结束时长为当前年份与处警年份的差)

select pcase.cname,2022-datepart(yy,pc.ptime) as '出警结束时长',pcase.ctype,pcase.cno,pcase.cbrief,pc.pno,police.pname
from pcase
inner join pc
on pcase.cno=pc.cno
inner join police
on police.pno=pc.pno
order by pcase.cname,2022-datepart(yy,pc.ptime);

SQL Server数据库实操 第二波 集合查询、datepart()相关推荐

  1. SQL Server数据库实操 第一波 数据查询

    课上实训 3个表+15道题 警员信息police(pno警号,pid身份证号) 接警信息pcase(cno案件编号,cname案件名称,ctype案件类型,cbrief案件简介) 处警信息pc(pno ...

  2. SQL Server数据库实操 第五波 完整性约束和触发器

    课上实训 3个表+16道题 police(pno警号,pid身份证号) pcase(cno案件编号,cname案件名称,ctype案件类型,cbrief案件简介) pc(pno警号,cno案件编号,p ...

  3. SQL Server数据库实操 第四波 视图、索引

    1.创建视图 Create View <视图名> AS Select 子查询 2.修改视图 Alter View <要修改的视图名> AS Select 子查询 3.删除视图 ...

  4. SQL Server数据库实操 第三波 数据更新

    1. 插入数据 Insert into <表名> [(属性列1,属性列2--)] values(常量1,常量2--) 或者 Select [ALL|Distinct] <目标列> ...

  5. 合肥工业大学—SQL Server数据库实验七:数据查询

    数据查询 1. 单表查询 2. 多表连接查询 1. 单表查询 1. 查询全体学生的信息: -- 查询全体学生的信息 select * from student 2. 根据专业编号(21)查询学生的学号 ...

  6. Java连接sql server数据库实现简单版人力资源系统

    首先展示运行界面及功能(java.数据库代码在后头): 这篇文章中红色字体所代表的的是此人力资源系统的使用顺序. 主界面,选择身份. 先选择进入薪酬专员界面,因为要先定义薪酬标准,为后续人事专员录入员 ...

  7. VS2017操做sql server数据库

    VS2017操做sql server数据库 安装sql server数据库 摸鱼怪在这里就不总结了,相信大家都会,实在不行就去问问度娘吧! 摸鱼怪在这里提醒大家,如果版本太新可能会出现不兼容问题,最开 ...

  8. delphi使用MS Sql Server数据库的分布式查询

    目录 delphi使用MS Sql Server数据库的分布式查询 一.链接服务器 1.1.简单的链接服务器 1.2.含多数据库架构的全链接服务器 1.3.链接服务器的理论与总结 语法: 参数: 本系 ...

  9. SQL Server数据库查询速度慢的原因和解决方法

    SQL Server数据库查询速度慢的原因和解决方法 参考文章: (1)SQL Server数据库查询速度慢的原因和解决方法 (2)https://www.cnblogs.com/MyChange/p ...

最新文章

  1. 病情高度活动的RA病人的感染风险增加
  2. 关于 JVM 内存的 N 个问题
  3. Linux学习准备工作
  4. python 画柱状图-python使用Plotly绘图工具绘制柱状图
  5. 参数迁移表达的第三种形态相互作用
  6. Node.js实践第一天
  7. 机器学习理论与实战(十五)概率图模型03
  8. winform 以不规则图形背景显示窗体
  9. Bug : Bash on Ubuntu on Windows scp work on window but not in shell file
  10. 让使用MSN就像访问网页一样容易!
  11. 3.c++模式设计-抽象工厂模式
  12. mysql数据库别名_MySQL数据库表名、列名、别名区分大小写的问题
  13. wireless 时好时断的一些解决的建议
  14. c语言打印uint64, int64
  15. python网络爬虫项目——翻译英文单词
  16. MISRA C编程规范标准
  17. 动画设计要考计算机证书吗,影视动画要考哪些证书
  18. 5.1.1 电商离线数仓(数仓需求分析、日志采集、表数据加载、json数据处理、 Datax 数据导出、Tez高仿日启动测试)
  19. “笨办法学python”学习笔记-一些附加题
  20. win7系统笔记本配置双屏

热门文章

  1. 如何简单快速的破解PDF加密文档
  2. 为何优秀的程序员不断离开?,字节跳动8年老Java面试官经验谈
  3. Remix编辑器连接本地(最新)
  4. 纯 CSS3 实现波浪效果
  5. 易方达e钱包汇添富现金宝-竞品分析
  6. 小程序应用在未来会发展成什么方向?
  7. 6款强烈推荐的 SD卡/内存卡数据恢复软件
  8. IDE SATA SCSI 三种常见硬盘之间的区别(二)
  9. 原来陈寿福进去了~~~
  10. 用个人电脑搭建服务器