一、创建三张表

①Sailors(sid char(10),sname char(20),rating int,age int),

其中sid是主关键字,sid表示水手的编号,sname表示水手的姓名,rating表示水手的级别,age表示水手的年龄。

②Boats(bid char(10),bname char(20),color char(10)),

其中bid表示船的编号是主关键字,bname是船的名字,color是船的颜色

③Reserves(sid char(10),bid char(10),rdate date),

Reserves中记录水手在哪天定了那只船,其中sid是指向Sailors的外关键字,bid是指向Boats的外关键字,(sid,bid,rdate)合起来构成Reserves的主关键字。

1.查找定了103号船的水手
select s.*, r.bid
from sailors s, reserves r
where s.sid = r.sid and r.bid = '103';2.查找定了红色船水手的姓名
select s.sname
from sailors s
where s.sid in (select sid from reserves where bid in (select bid from boats where color = 'red'));3.查找定了红色船而没有定绿色船的水手姓名
select distinct s.sname
from sailors s
where s.sid in (select sid from reserves where bid in (select bid from boats where color = 'red'))
and s.sid not in (select sid from reserves where bid in (select bid from boats where color = 'green'));4.查找没有定过船的水手信息
select s.*
from sailors s
where s.sid not in (select sid from reserves);5.查找定过船而没有定过红色船的水手信息
select s.*
from sailors s
where exists (select * from reserves r where s.sid = r.sid)
and not exists (select * from reserves r, boats b where b.bid = r.bid and s.sid = r.sid and b.color = 'red');6.查找没有定过红色船的水手信息
select s.*
from sailors s
where not exists (select * from reserves r where s.sid = r.sid)
and not exists (select * from reserves r, boats b where b.bid = r.bid and s.sid = r.sid and b.color = 'red');7.查找定过所有船的水手姓名和编号
select s.sname, s.sid
from sailors s
where not exists (select * from boats b where not exists (select * from reserves r where s.sid = r.sid));8.查找年龄最大的水手姓名和年龄
select s.sname, s.age
from sailors s
where s.age >= all(select age from sailors);9.统计水手表中每个级别组的平均年龄和级别组
select s.rating, avg(s.age)
from sailors s
group by s.rating;10.统计水手表中每个人数不少于2人的级别组中年满18岁水手的平均年龄和级别组
select s.rating, avg(s.age)
from sailors s
where s.age > 18
group by s.rating having count(s.rating) >= 2;11.统计水手表中每个级别组的人数
select s.rating, count(s.rating)
from sailors s
group by s.rating;12.统计水手表中人数最少的级别组及人数
select s.rating, count(s.rating)
from sailors s
group by s.rating
having count(s.rating) <= all(select count(rating) from sailors group by rating);13.查找定过船而没有定过相同的船的水手姓名
select s.sname
from sailors
where s.sid in (select sid from reserves)
and s.sid not in (select sid from reserves group by bid having count(bid) >= 2);14.将年龄小于30的水手级别+1
update sailors
set rating=rating+1
where age < 30;15.删除名字叫lubber的水手的定船信息.
delete from reserves where sid = (select sid from sailors where sname = 'lubber');

数据库SQL查询作业二--水手船相关推荐

  1. 数据库SQL查询作业

    --设有三个关系 --S(S#,SNAME,AGE,SEX) --SC(S#,C#,GRADE) --C(C#,CNAME,TEACHER)--(1)检索LIU老师所授课程的课程号.课程名 selec ...

  2. Python学习日志16 - 数据库SQL查询

    Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 Python学习日志16课 - 数据库SQL查询 DQL ...

  3. 视频教程-数据库SQL查询,最佳案例讲解-SQL Server

    数据库SQL查询,最佳案例讲解 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ¥19.00 立即订阅 ...

  4. 数据库SQL查询练习

    --重点推荐使用natural join,inner join!!!,尽量避免使用广义的笛卡尔积 --重点推荐使用natural join,inner join!!!,尽量避免使用广义的笛卡尔积 -- ...

  5. 从零开始java数据库SQL优化(二):多个LEFT JOIN的SQL优化

    一:场景 我代码里需要在用户登录时将所有用户相关的用户,角色,部门,岗位,权限(其中权限放在菜单中,每2张表有一张关联表),不多说直接上SQL SELECT a.fk_user_id AS " ...

  6. PostgreSQL数据库sql查询如何获取汉字拼音首字母

    一.前言 在实际开发过程中,经常会使用模糊查询,根据某个关键字模糊搜索,一般是 name like '%123%' 这样查,但是如果某个关键字用户不记得呢,只知道首字母,又如何模糊查询呢?例如,查询 ...

  7. WordPress 常用数据库SQL查询语句大全

    https://www.wpdaxue.com/wordpress-sql.html 在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容 ...

  8. [数据库] SQL查询语句表行列转换及一行数据转换成两列

    本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两列数据的方法.子查询的应用.decode函数的用法.希望文章对你有所帮助~ 1.创建数据库表及插入数据 2.子查询统计不同 ...

  9. 各数据库SQL查询结果多行数据合并成一行

    SQL查询结果多行数据合并成一行 一.Oracle函数多行数据合并成一行 二.Mysql函数多行数据合并成一行 三.sqlserver函数多行数据合并成一行 四.postgresql函数多行数据合并成 ...

最新文章

  1. 自动创建阿里云抢占式实例
  2. c语言x1=abc什么意思,c语言起步(课件)2.1
  3. 通过案例对 spark streaming 透彻理解三板斧之一: spark streaming 另类实验
  4. java多线程编程_Java多线程编程实战指南+设计模式篇.pdf
  5. C++打印STAIRS 图案算法(附完整源码)
  6. BZOJ1725 牧场的安排
  7. clistctrl 单机空白处 会取消选中_官方默许BUG:无法选中也能被控制?这些秘密很多玩家到现在都没发现!...
  8. 使用account lock或者account unlock语句
  9. java网络通信:HTTP协议
  10. python字典数据类型笔记_python笔记2-数据类型:元组、字典常用操作
  11. 终于圆了天文梦!马化腾称腾讯将发布探星计划 还提到了《王者荣耀》
  12. 吴恩达机器学习 10.支持向量机
  13. mysql 出现 “1067 - Invalid default value for ‘UPDATE_TIME‘ “ 错误提示的解决办法
  14. Android文件操作代码示例,sd卡数据储存
  15. python有什么用-python有什么用处?
  16. _如何在 Linux 上安装 Minecraft 服务器
  17. 【李宏毅机器学习】04:梯度下降Gradient Descent
  18. Windows平台上实现P2P服务(一)
  19. 2014 usnews 计算机科学 排名 天道留学,2014年USNews美国公立大学排名
  20. 使用get传参的时候,参数在后头获取不到或者出现别的错误。

热门文章

  1. conan修改包下载的路径
  2. IP-GUARD申请审批支持企业微信使用说明
  3. 正则表达式在线生成工具txt2re
  4. 虚拟现实MR VR AR三维数字沙盘电子沙盘开发教程第2课
  5. 【Qt】 关于垂直同步 以及在Window 下的一个关闭垂直同步动画过快的问题-暂未找到解决方案
  6. 魅族16s是Android几,魅族16s真机上手:骁龙855+全球最小前摄,仅需3198
  7. 【经验】超全面:这份设计师晋升答辩指南 值得收藏!
  8. Android游戏音效控制
  9. Android 保存图片到相册
  10. solr的schema.xml配置属性解释