数据库——SQL-SERVER练习(1)连接与子查询
一.实验准备
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)连接与子查询的更多相关文章
- SQL Server中INNER JOIN与子查询IN的性能测试
这个月碰到几个人问我关于"SQL SERVER中INNER JOIN 与 IN两种写法的性能孰优孰劣?"这个问题.其实这个概括起来就是SQL Server中INNER JOIN与子 ...
- SQL Server进阶(五)子查询
概述 子查询的概念: 当一个查询是另一个查询的条件时,称之为子查询.子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY. 外面的 ...
- SQL SERVER技术内幕之4 子查询
最外层查询的结果集会返回给调用者,称为外部查询.内部查询的结果是供外部查询使用的,也称为子查询.子查询可以分成独立子查询和相关子查询两类.独立子查询不依赖于它所属的外部查询,而相关子查询则须依赖它所属 ...
- 本地数据库(SQL Server)远程连接服务器端服务器
本地数据库(SQL Server 2012) 连接外网服务器的数据库,外网的服务器端需要做如下配置: 1. 首先是要打开 数据的配置管理工具 2. 配置相关的客户端协议,开启TCP/IP 3. 数据库 ...
- 数据库管理工具神器-DataGrip,可同时管理多个主流数据库[SQL Server,MySQL,Oracle等]连接
前言 DataGrip:Jet Brains出品的一款数据库管理工具(没错,是Jet Brains出品,必属精品).DataGrip整合集成了当前主流数据库(如:SQL Server, MySQL, ...
- win7中 SQL server 2005无法连接到服务器,错误码:18456
win7中 SQL server 2005无法连接到服务器,错误码:18456.. 数据库刚装完.我用Windows登陆 结果登陆不上去.. 选中SQL Server Management Stud ...
- 数据库SQL Server与C#中数据类型的对应关系
ylbtech- .NET-Basic:数据库SQL Server与C#中数据类型的对应关系 数据库SQL SServer与C#中数据类型的对应关系 1.A,返回顶部 数据库 C#程序 int int ...
- SQL Server中内连接和外连接的区别
SQL Server中内连接和外连接的区别 假设一个数据库中有两张表,一张是学生表StudentInfo,一张是班级表ClassInfo,两张表之间用ClassId字段进行关联. 如果用内连接,正常的 ...
- SQL Server "允许远程连接到此服务器" 配置
在SQL Server的属性-->连接中我们可以看到这样一个选项:'允许远程连接到此服务器'(英文是remote access),其默认值是1,表示此选项开启. 但是这个参数并非是字面上所显示的 ...
- 问题:sqlserver 跨服务器连接;结果:Sql Server 跨服务器连接
Sql Server 跨服务器连接 用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset ...
随机推荐
- opencv在VS2017上的环境搭建
最近开始做一个图像识别的小项目,需要安装opencv,VS里报的错迷的一批,网上教程好多,找了好长时间,终于找的两个解决了问题,在这儿记录一下. 安装很简单,在opencv官网(https://ope ...
- 损失函数--KL散度与交叉熵
损失函数 在逻辑回归建立过程中,我们需要一个关于模型参数的可导函数,并且它能够以某种方式衡量模型的效果.这种函数称为损失函数(loss function). 损失函数越小,则模型的预测效果越优.所以我 ...
- TP5 where多条件查询
引用 : https://blog.csdn.net/haibo0668/article/details/78203170/
- Centos7 下 PHP 添加缺少的组件 sockets 和 openssl
环境是 centos7 + nginx 1.14 + php 7.2.18,由于新增邮件发送功能,使用的是 socket 通讯的方式,需要开启 php 的 sockes 和 openssl 扩展 安装 ...
- MySQLl存储过程学习总结
1.简介 : 逻辑处理一般不是一条语句组成,需要多条之间相互配合使用 这时,存储过程就是为了以后使用而保存的的一条或多条Mysql语句的集合 2.为何 : 1)简单:将处理单 ...
- 你看不懂的spring原理是因为不知道这几个概念
背景 问题从一杯咖啡开始. 今天我去楼下咖啡机买了一杯「粉黛拿铁」.制作过程中显示: 我取了做好的粉黛拿铁,喝了一口,果然就是一杯热巧克力.咦咦咦,说好的拿铁呢?虽然我对「零点吧」的咖啡评价很高,觉得 ...
- JS基础语法---函数也是一种数据类型
1. 如何获取某个变量的类型? typeof 2. 函数是有数据类型 ,数据类型:是function function f1() { console.log("我是函数"); } ...
- flutter全栈开发学习资料大全 免费flutter学习视频 文字教程!
flutter今年特别火,google推出flutter就是为了一次开发全平台应用,包括PC端,手机wap端,android,ios直接生成APP应用,如果真的能像谷歌说的,那我们开发人员就真的好好学 ...
- OpenCV:获取图像当中某一点的坐标
import numpy as np image=np.zeros((300,300,3),dtype='uint8') (cx,cy)=image.shape[1]//2,image.shape[0 ...
- PHP 部分语法(一)
PHP: PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言,它以 <?php 开始,并以 ?> 结束: 它还是一门弱类型语言,类型不需显式声明 变量: PHP 没有声明变量的命令 ...