一.实验准备

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='数据库原理'
)
)

数据库——SQL-SERVER练习(1)连接与子查询的更多相关文章

  1. SQL Server中INNER JOIN与子查询IN的性能测试

    这个月碰到几个人问我关于"SQL SERVER中INNER JOIN 与 IN两种写法的性能孰优孰劣?"这个问题.其实这个概括起来就是SQL Server中INNER JOIN与子 ...

  2. SQL Server进阶(五)子查询

    概述 子查询的概念: 当一个查询是另一个查询的条件时,称之为子查询.子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY. 外面的 ...

  3. SQL SERVER技术内幕之4 子查询

    最外层查询的结果集会返回给调用者,称为外部查询.内部查询的结果是供外部查询使用的,也称为子查询.子查询可以分成独立子查询和相关子查询两类.独立子查询不依赖于它所属的外部查询,而相关子查询则须依赖它所属 ...

  4. 本地数据库(SQL Server)远程连接服务器端服务器

    本地数据库(SQL Server 2012) 连接外网服务器的数据库,外网的服务器端需要做如下配置: 1. 首先是要打开 数据的配置管理工具 2. 配置相关的客户端协议,开启TCP/IP 3. 数据库 ...

  5. 数据库管理工具神器-DataGrip,可同时管理多个主流数据库[SQL Server,MySQL,Oracle等]连接

    前言 DataGrip:Jet Brains出品的一款数据库管理工具(没错,是Jet Brains出品,必属精品).DataGrip整合集成了当前主流数据库(如:SQL Server, MySQL, ...

  6. win7中 SQL server 2005无法连接到服务器,错误码:18456

    win7中 SQL server 2005无法连接到服务器,错误码:18456.. 数据库刚装完.我用Windows登陆  结果登陆不上去.. 选中SQL Server Management Stud ...

  7. 数据库SQL Server与C#中数据类型的对应关系

    ylbtech- .NET-Basic:数据库SQL Server与C#中数据类型的对应关系 数据库SQL SServer与C#中数据类型的对应关系 1.A,返回顶部 数据库 C#程序 int int ...

  8. SQL Server中内连接和外连接的区别

    SQL Server中内连接和外连接的区别 假设一个数据库中有两张表,一张是学生表StudentInfo,一张是班级表ClassInfo,两张表之间用ClassId字段进行关联. 如果用内连接,正常的 ...

  9. SQL Server "允许远程连接到此服务器" 配置

    在SQL Server的属性-->连接中我们可以看到这样一个选项:'允许远程连接到此服务器'(英文是remote access),其默认值是1,表示此选项开启. 但是这个参数并非是字面上所显示的 ...

  10. 问题:sqlserver 跨服务器连接;结果:Sql Server 跨服务器连接

    Sql Server 跨服务器连接 用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset ...

随机推荐

  1. Python网络爬虫_Scrapy框架_2.logging模块的使用

    logging模块提供日志服务 在scrapy框架中已经对其进行一些操作所以使用更为简单 在Scrapy框架中使用: 1.在setting.py文件中设置LOG_LEVEL(设置日志等级,只有高于等于 ...

  2. Java入门系列之StringBuilder、StringBuffer(三)

    前言 上一节我们讲解了字符串的特性,除了字符串类外,还有两个我们也会经常用到的类,那就是StringBuffer和StringBuilder.因为字符串不可变,所以我们每次对字符串的修改比如通过连接c ...

  3. Java中Atomic类的使用分析

    1:为什么会出现Atomic类 在多线程或者并发环境中,我们常常会遇到这种情况 int i=0; i++ 稍有经验的同学都知道这种写法是线程不安全的.为了达到线程安全的目的,我们通常会用synchro ...

  4. linux-创建/使用快照/克隆(类似windows中备份还原)

    一. 创建/使用快照 1.什么是快照 ​ 说的直白一点,就是创建一个备份. ​ 当执行了不可逆的错误操作后,可以通过快照用来恢复系统 2.创建快照的3种模式 ​ 挂载状态下创建快照 ​ 开机状态下创建 ...

  5. linux基本命令的操作

    ---恢复内容开始--- ----------------------------=========================文件与目录操作cd /home 进入’/homw’目录cd … 返回 ...

  6. IOS-dequeueReusableCellWithIdentifier的应用

    这是个uitableviewcell重用的函数.当一个列表中的布局相同只是数据不同时,我们可以重用我们的cell,不需要再重复创建.上面代码的意思是,先根据identifier去重用列表中找有没有可以 ...

  7. KumuluzEE - Java EE的微服务框架

    KumuluzEE - Java EE的微服务架构 https://www.jdon.com/soa/kumuluzEE.html

  8. bay——linux6.5-PV-LV-VG扩容.txt

    [root@rac2 cdrom]# export LANG=en_US[root@rac2 cdrom]# lsblk[root@rac2 cdrom]# lvscan --- 查看系统PV LV ...

  9. centos7.6使用openssl生成CA签署的证书个人实验笔记

    准备:客户端centos6.10  服务端Centos7.6 实验:客户端生成证书请求,服务端颁发证书,最后吊销其中一个证书 1.先在服务端上的/etc/pki/CA/目录生成rsa的私钥: 2.在服 ...

  10. 使用docker-compose安装wordpress

    一.建立应用的目录 mkdir my_wordpress cd my_wordpress 二.创建 docker-compose.yml touch docker-compose.yml;vi doc ...