1.查询全体学生的学号与姓名
select sno,sname
from student;
3.查询全体学生的详细信息
select *
from student;
4.查询全体学生的姓名及其出生年份
select sname,2004-sage
from student;
5.查询全体学生的姓名,出生年份和所在院系,要求用小写字母表示所有系名
select sname,'year of birth:',2004-sage,lower(sdept)
from student;
6.查询选修课程的学生学号,DISTINCT去掉重复行
select DISTINCT sno
from SC;

select sno
from SC;
等价于
select ALL sno
from SC;
7.查询计算机科学系全体学生的名单
select sname
from student
where sdept='cs';
8.查询所有年龄在20岁以下的学生姓名及其年龄
select sname,sage
from student
where sage<20;
9.查询考试成绩有不及格的学生的学号
select DISTINCT sno
from sc
where grade<60;
10.查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名,系别和年龄
select sname,sdept,sage
from student
where sage between 20 and 23;
11查询年龄不在20~23岁之间的学生的姓名,系别和年龄
select sname,sdept,sage
from student
where sage not between 20 and 23;
12.查询计算机科学系cs,数学系ma和信息系is学生的姓名和性别
select sname,ssex
from student
where sdept in('cs','ma','is');
13.查询不是计算机科学系cs,数学系ma和信息系is学生的姓名和性别
select sname,ssex
from student
where sdept not in('cs','ma','is');
14.查询学号为200215121的学生的详细情况
select *
from student
where sno like '200215121';
等价于
select *
from student
where sno='200215121';
15.查询所有姓刘的学生的姓名,学号和性别
select sname,sno,ssex
from student
where sname like '刘%';
16.查询所有不姓刘的学生的姓名,学号和性别
select sname,sno,ssex
from student
where sname not like '刘%';
17.查询姓欧阳且全名为3个汉字的学生的姓名
select sname
from student
where sname like '欧阳_';
19.查询DB_Design课程的课程号和学分
select cno,ccredit
from course
where cname like 'DB\_Design'ESCAPE'\';
ESCAPE'\'表示"\"为换码字符。这样匹配串中紧跟着"\"后面的字符"_"不再具有通配符的含义,转义为普通的"_"字符
20.查询以"DB_"开头,且倒数第3个字符为i的课程的详细情况
select *
from course
where cname like 'DB\_%i__'ESCAPE'\';
21.查询缺少成绩的学生的学号和相应的课程号
select sno,cno
from sc
where grade is null;
22.查询计算机科学系年龄在20岁以下的学生姓名
select sname
from student
where sdept='cs' and sage<20;
23.查询计算机科学系cs,数学系ma和信息系is学生的姓名和性别
select sname,ssex
from student
where sdept='cs' or sdept='ma' or sdept='is';
24.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排序
select sno,grade
from sc
where cno='3'
order by grade DESC;
25.查询全体学生情况,查询结果按所在系的系号升序排列,同一系的学生按年龄降序排列
select *
from student
order by sdept,sage DESC;
26.查询学生总人数
select COUNT(*)
from student;
27.查询选修了课程的学生人数
select COUNT(DISTINCT sno)
from sc;
28.计算1号课程的学生的平均成绩
select AVG(grade)
from sc
where cno='1';
29.查询选修1号课程的学生的最高分数
select MAX(grade)
from sc
where cno='1';
30.查询学生200215012选修课程的总学分数
select SUM(ccredit)
from sc,course
where sno='200215012' and sc.cno=course.cno;
31.求各个课程号及相应的选课人数
select cno,count(sno)
from sc
group by cno;
32.查询选修了3门以上课程的学生学号
select sno
from sc
group by sno
having count(*) >3;
33.查询每个学生及其选课情况
select student.*,sc.*
from student,sc
where student.sno=sc.sno;
35.查询每一门课的间接先修课
select first.cno=second.cpno
from course first,course second
where first.cpno =second.cno;
36.
select student.sno,sname,ssex,sage,sdept,cno,grade
from student left out join sc on (student.sno=sc.sno);
37.查询选修2号课程且成绩在90分以上的所有学生
select student.sno,sname
from student,sc
where student.sno=sc.sno and
sc.cno='2' and sc.grade>90;
38.查询每个学生的学号,姓名,选修的课程名及成绩
select student.sno,sname,cname,grade
from student,sc,course
where student.sno=sc.sno and sc.cno=course.cno;
39.查询与刘晨在同一系学习的学生
select sno,sname,sdept
from student
where sdept in
(select sdept
from student
where sname='刘晨');
等同于
select s1.sno,s1.sname,s1.sdept
from student s1,student s2
where s1.sdept=s2.sdept and
s2.sname='刘晨';
40.查询选修了课程名为“信息系统”的学生学号和姓名
select sno,sname
from student
where sno in
(select sno
from sc
where cno in
(select cno
from course
where cname='信息系统'
)
);
等价于
select student.sno,sname
from student,sc,course
where student.sno=sc.sno and
sc.cno=course.cno and
course.cname='信息系统';
41.找出每个学生超过他选修课程平均成绩的课程号
select sno,cno
from sc x
where grade>=(select AVG(grade)
from sc y
where y.sno=s.sno
);
42.查询其他系中比计算机科学系某一学生年龄小的学生姓名和年龄
select sname,sage
from student
where sage<ANY(select sage
from student
where sdept='cs'
)
and sdept <> 'cs';
43.查询其他系中比计算机科学系所有学生年龄都小的学生姓名及年龄
select sname,sage
from student
where sage < all
(select sage
from student
where sdept='cs'
)
and sdept <> 'cs';
44.查询所有选修了1号课程的学生姓名
select sname
from student
where EXISTS
(select *
from sc
where sno=student.sno and cno='1');
使用存在量词EXISTS后,若内层查询结果非空,则外层的WHERE子句返回真值,否则返回假值
45.查询没有选修1号课程的学生姓名
select sname
from student
where not exists
(select *
from sc
where sno=student.sno and cno='1');
46.查询选修了全部课程的学生姓名
select sname
from student
where not exists
(select *
from course
where not exists
(select *
from sc
where sno=student.sno
and cno=course.cno));
47.查询至少选修了学生200215122选修的全部课程的学生号码
select distinct sno
from sc scx
where not exists
(select *
from sc scy
where scy.sno='200215122' and
not exists
(select *
from sc scz where scz.sno=scx.sno and scz.cno=scy.cno));
48.查询计算机科学系的学生及年龄不大于19岁的学生
select *
from student
where sdept='cs'
union
select *
from student
where sage<=19;
union会自动去掉重复元组,而union all操作符可以保存重复元组
49.查询选修了课程1或者课程2的学生集合的并集
select sno
from sc
where cno='1'
union
select sno
from sc
where cno='2';
50.查询计算机科学系的学生与年龄不大于19岁的学生的交集
select *
from student
where sdept='cs'
intersect
select *
from student
where sage<=19;

转载于:https://www.cnblogs.com/daochong/p/5009759.html

2015-12-01 SQL查询语句基础相关推荐

  1. SQL查询语句基础构成

    本文是基本的SQL查询语句用法,内容主要来自Alan Learning SQL这本书第3章,包括select,from,where,group by,having,order by六个查询子句,后续会 ...

  2. MySQL数据库高级SQL查询语句(单表查询,多表联合查询)

    目录 SQL查询语句 基础查询 条件查询 模糊查询 字段控制查询 排序 聚合函数 分组查询 having子句 limit分页查询 多表连接查询 SQL查询语句 数据查询语言. 数据库执行DQL语句不会 ...

  3. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

  4. SQL查询语句大全(转)

    转自https://www.cnblogs.com/chenglc/p/8421492.html 重点参考https://blog.csdn.net/g1418377085/article/detai ...

  5. (转)经典SQL查询语句大全

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  6. orcal SQL查询语句大全集锦

    orcal   SQL查询语句大全集锦 一. 简单查询   简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例 ...

  7. 从Mysql某一表中随机读取n条数据的SQL查询语句

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

  8. 「MySQL」- 复杂的SQL查询语句

    任意门 前言 聚合查询 1.聚合函数 count函数 sum函数 avg函数 max函数 min函数 2.分组查询 having子句 多表查询 1.笛卡尔积 2.内连接 3.外连接 左外连接 右外连接 ...

  9. 听说你写sql很溜,一条sql查询语句是如何执行的?

    我们项目中必不可少要与数据库接触,那么一条sql查询语句是如何执行的呢? 本文以MySQL数据库为例.MySQL是典型的C/S架构(client客户端/server服务端),客户端进程向服务端进程发送 ...

最新文章

  1. iOS开发 - OC - block的详解 - 基础篇
  2. 用python打开视频_python读取视频流提取视频帧的两种方法
  3. 设计模式实战-策略模式(Strategy Pattern)
  4. Memcache查看运行状况
  5. idea代码上传到gitee组织流程
  6. 第三,四章 数据库和数据表的(增删改查,重命名等)基本操作
  7. 在线数学函数画图工具 2D 3D
  8. linux 命令查看内存和cpu信息
  9. 【无标题】互联网广告投放优势和前景
  10. 一言不合就被“游戏毁掉”?!管管孩子,救救游戏吧!
  11. 和一群程序猿的旧金山优胜美地之旅
  12. 鸿蒙入门手册(二):应用是怎样运行的
  13. redis五种类型的经典使用场景
  14. python数据可视化之Matplotlib
  15. CSS3实现倒影效果
  16. Java架构师成长之道之Java架构师技术栈
  17. 【Java+MySQL】使用JDBC连接MySQL 8.0数据库
  18. 传奇服务器包裹元宝数量显示,GOM传奇服务端测试记录元宝,传奇GM版本库测试区记录元宝数量教程...
  19. 动态规划-拔萝卜问题
  20. 用open3d将stl格式转化为ply格式,并且单位从mm转为m

热门文章

  1. 尚硅谷面试第一季-21消息队列在项目中的应用
  2. 为了学习Rxjava,年轻小伙竟作出这种事!
  3. 【Java】字节流-从文件输入,输出到文件
  4. NSRegularExpression iOS自带的正则表达式
  5. 电脑异常关闭导致dubbo启动错误问题
  6. 从VSS到SVN再到Git 记Git的基本操作
  7. 快递官网漏洞泄露 1400 万用户信息
  8. RDBMS DML DDL
  9. 计算机与操作系统发展阶段 深谈:Linux操作系统
  10. RDLC报表开发分组笔记