2015-12-01 SQL查询语句基础
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;
2015-12-01 SQL查询语句基础的更多相关文章
- 01.基础架构:一条SQL查询语句是如何执行的?学习记录
01.基础架构:一条SQL查询语句是如何执行的?学习记录http://naotu.baidu.com/file/1c8fb5a0f2497c3a2655fed89099cb96?token=ff25d ...
- 15个初学者必看的基础SQL查询语句
本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...
- MySQL 笔记整理(1) --基础架构,一条SQL查询语句如何执行
最近在学习林晓斌(丁奇)老师的<MySQL实战45讲>,受益匪浅,做一些笔记整理一下,帮助学习.如果有小伙伴感兴趣的话推荐原版课程,很不错. 1) --基础架构,一条SQL查询语句如何执行 ...
- 1 基础架构:一条sql查询语句如何执行?
1 基础架构:一条sql查询语句如何执行? 分析一个最简单的查询 mysql> select * from T where ID=10: MySQL基本架构示意图 大体来说,mysql可以分为s ...
- (转)经典SQL查询语句大全
(转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...
- 经典SQL查询语句大全
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- SQL查询语句大全及其理解
转自:https://www.cnblogs.com/1234abcd/p/5530314.html 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删 ...
- SQL查询语句大全集锦
SQL查询语句大全集锦 一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例如,下面的语句查询t ...
- 深入MySQL(四):MySQL的SQL查询语句性能优化概述
关于SQL查询语句的优化,有一些一般的优化步骤,本节就介绍一下通用的优化步骤. 一条查询语句是如何执行的 首先,我们如果要明白一条查询语句所运行的过程,这样我们才能针对过程去进行优化. 参考我之前画的 ...
随机推荐
- css中常见的属性-----在路上(14)
一.css文字属性 color : #999999; /*文字颜色*/ font-family : 宋体,sans-serif; /*文字字体*/ font-size : 9pt; /*文字大小*/ ...
- js倒计时-倒计输入的时间
计算指定时间到指定时间之间相差多少天.时.分.秒. 节日.活动.商城常用. 原理: 主要使用到时间戳,也就是从1970 年 1 月 1 日 到指定时间的毫秒数. 1. 求出毫秒差 :当两个时间直接进行 ...
- iOS---基于对Sqlilte3的二次包装的第三次包装--->JKDBModel ,一个好用的离线缓存库
https://github.com/Joker-King/JKDBModel 1.将FMDB和DBModel拖入项目中,然后添加libsqlite3.dylib 2. #import " ...
- C#泛型方法解析
C#2.0引入了泛型这个特性,由于泛型的引入,在一定程度上极大的增强了C#的生命力,可以完成C#1.0时需要编写复杂代码才可以完成的一些功能.但是作为开发者,对于泛型可谓是又爱又恨,爱的是其强大的功能 ...
- ASP.NET Core 中文文档 第四章 MVC(3.2)Razor 语法参考
原文:Razor Syntax Reference 作者:Taylor Mullen.Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:何镇汐 什么是 Razor? Razor 是一 ...
- JavaWeb——tomcat安装及目录介绍
一.web web可以说,就是一套 请求->处理->响应 的流程.客户端使用浏览器(IE.FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Reque ...
- iOS: 为画板App增加 Undo/Redo(撤销/重做)操作
这个随笔的内容以上一个随笔为基础,(在iOS中实现一个简单的画板),上一个随笔实现了一个简单的画板: 今天我们要为这个画板增加Undo/Redo操作,当画错了一笔,可以撤销它,或者撤销之后后悔了, ...
- C# 条件编译
本文导读: C#的预处理器指令从来不会转化为可执行代码的命令,但是会影响编译过程的各个方面,常用的预处理器指令有#define.#undef.#if,#elif,#else和#endif等等,下面介绍 ...
- js,jquery,css,html5特效
包含js,jquery,css,html5特效,源代码 本文地址:http://www.cnblogs.com/roucheng/p/texiao.html 2017新年快乐特效 jQuery最新最全 ...
- Sublime Text 3 支持的热门插件推荐
SublimeText是一款非常精巧的文本编辑器,适合编写代码.做笔记.写文章.它用户界面十分整洁,功能非同凡响,性能快得出奇.这些非常棒的特性 包括任意跳转(Goto Anything).多重选择( ...