一.实验准备

1.复制实验要求文件及“CREATE-TABLES.SQL”文件, 粘贴到本地机桌面。

2.启动SQL-SERVER服务。

3. 运行查询分析器, 点击菜单《文件》/《打开》, 打开CREATE-TABLES.SQL, 并运行, 建立学生数据库STUDB及表STUDENT, COURSE, SC。

4. 点击菜单《文件》/《新建》, 建立一个空查询窗口。开始实验。

5.本次实验环境是xp虚拟机,SQL-SERVER迷你版。

“CREATE-TABLES.SQL”文件 https://www.cnblogs.com/wkfvawl/p/10843788.html

二.实验内容

1.查询各个课程号及相应的选课人数(SC表,按课号分组)

SELECT CNO,COUNT(SNO)
FROM SC
GROUP BY CNO

2.查询每个学生的学号和选课门数, 最高成绩,最低成绩,平均成绩

SELECT SNO,COUNT(CNO),MAX(GRADE),MIN(GRADE),AVG(GRADE)
FROM SC
GROUP BY SNO

3.查询各系的系名, 性别,人数, 平均年龄(按系名, 性别分组)

SELECT SDEPT,SSEX,COUNT(*),AVG(SAGE)
FROM STUDENT
GROUP BY SDEPT,SSEX

4. 查询选修了>=3门课的学生号( HAVING )

SELECT SNO
FROM SC
GROUP BY SNO
HAVING COUNT(*)>=

5. 查询选修学生人数>=2的课号

SELECT CNO
FROM SC
GROUP BY CNO
HAVING COUNT(*)>=

6 .查询成绩在75以上超过两门课的学生号  ( WHERE+HAVING )

SELECT SNO
FROM SC
WHERE GRADE>
GROUP BY SNO
HAVING COUNT(*)>=

7. 查询每个学生及其选课情况 ( 连接STUDENT和SC )

SELECT *
FROM STUDENT,SC
WHERE STUDENT.SNO=SC.SNO

8. 查询CS系学生的学生号,学生名,课号,成绩(用连接)

SELECT STUDENT.SNO,SNAME,CNO,GRADE
FROM STUDENT,SC
WHERE STUDENT.SNO=SC.SNO AND SDEPT='CS'

9.查询选1号课的学生号,学生名,成绩(用连接)

SELECT STUDENT.SNO,SNAME,GRADE
FROM STUDENT,SC
WHERE STUDENT.SNO=SC.SNO AND CNO=''

10.查询每个学号的平均成绩,总学分(连接SC和COURSE, 分组)

SELECT SNO,AVG(GRADE),SUM(CCREDIT)
FROM COURSE,SC
WHERE SC.CNO=COURSE.CNO AND GRADE>=
GROUP BY SNO

11.查询CS系学生的学生号,选课课号,课名,成绩(三表连接)

SELECT STUDENT.SNO,COURSE.CNO,CNAME,GRADE
FROM COURSE,SC,STUDENT
WHERE STUDENT.SNO=SC.SNO AND SC.CNO=COURSE.CNO AND SDEPT='CS'

12. 查询与“刘晨”在同一个系学习的学生号,姓名,系名。

SELECT SNO,SNAME,SDEPT
FROM STUDENT
WHERE SDEPT =
(
SELECT SDEPT
FROM STUDENT
WHERE SNAME='刘晨'
)

13. 查询选1号课的学生号,学生名(用IN 子查询)

SELECT SNO,SNAME
FROM STUDENT
WHERE SNO IN
(
SELECT SNO
FROM SC
WHERE CNO=''
)

14. 查询未选1号课的学生号,学生名(用NOT IN 子查询)

SELECT SNO,SNAME
FROM STUDENT
WHERE SNO NOT IN
(
SELECT SNO
FROM SC
WHERE CNO=''
)

15. 查询没有不及格的学生号,学生名(用NOT IN 子查询)

SELECT SNO,SNAME
FROM STUDENT
WHERE SNO NOT IN
(
SELECT SNO
FROM SC
WHERE GRADE<
)

16. 查询学生号,姓名,课号,成绩, 要包括未选修课的学生(用外连接)

SELECT STUDENT.SNO,SNAME,CNO,GRADE
FROM STUDENT,SC
WHERE STUDENT.SNO*=SC.SNO

17. 查询课号, 课名, 学号, 成绩 , 包括未被选修的课.( 用外连接)

SELECT COURSE.CNO,COURSE.CNAME,SNO,GRADE
FROM COURSE,SC
WHERE COURSE.CNO*=SC.CNO

18.查询比刘晨年龄大的学生号,姓名。(>子查询)

SELECT SNO,SNAME
FROM STUDENT
WHERE SAGE >
(
SELECT SAGE
FROM STUDENT
WHERE SNAME='刘晨'
)

19. 查询比信息系任意一个学生年龄小的学生姓名和年龄。(<ANY子查询)

SELECT SNAME,SAGE
FROM STUDENT
WHERE SAGE <ANY
(
SELECT SAGE
FROM STUDENT
WHERE SDEPT='IS'
)

20.查询选’数据库原理’课的学号(用 IN子查询)

SELECT SNO
FROM STUDENT
WHERE SNO IN
(
SELECT SNO
FROM SC
WHERE CNO IN
(
SELECT CNO
FROM COURSE
WHERE CNAME='数据库原理'
)
)

21. 查询选’数据库原理’课的学号,姓名(用 IN子查询)

SELECT SNO,SNAME
FROM STUDENT
WHERE SNO IN
(
SELECT SNO
FROM SC
WHERE CNO IN
(
SELECT CNO
FROM COURSE
WHERE CNAME='数据库原理'
)
)

最新文章

  1. jQuery中的Sizzle引擎分析
  2. php多线程详解
  3. Stick hero &quot;攻略&quot;, android 代码编写与分析(后台截屏, 后台模拟点击)
  4. iOS 关于GCD中的队列
  5. Ubuntu 12.04 DNS服务器的配置方法
  6. APNs详细使用步骤
  7. 锋利的jQuery-7--query ui效果库--拖动排序插件sortable
  8. HTTP认证相关
  9. dagli最早干了这样一件事儿 Localization of Cardiac-Induced Signal Change in fMRI
  10. php error file_get_contents()
  11. 转:如何找出发生SEGV内存错误的程序
  12. VS 2003 无法打开Web项目 文件路径与URL不符 这两者需要映射到相同的服务器位置
  13. Chapter 3 Protecting the Data(3):创建和使用数据库角色
  14. linux下正确安装jsoncpp
  15. Good Introduction of Kerberos and RADIUS
  16. 学习 Spring (七) Resource
  17. 移动端利用-webkit-box水平垂直居中(旧弹性盒)
  18. 防盗链之URL参数签名 总结
  19. ARM入门最好的文章
  20. Python 日期时间处理模块学习笔记

热门文章

  1. python-参数化-(2)(数据库判断是否存在并返回满足条件的数据)
  2. Markdown数学公式语法
  3. Swoole编译安装步骤
  4. 使用fidder对安卓模拟器进行抓包
  5. javaWeb核心技术第六篇之BootStrap
  6. socket经典案例-发送数据
  7. Masonry纯码实现UIScrollView 之上下滚动,设置UIScrollView背景图片
  8. Windows下Linux虚拟机的配置以及Win10 linux子系统开启
  9. Linux—挂载磁盘(云盘)
  10. QPNP 8909 8916 充电相关(2)【转】