数据库常用面试题(SQL Server) (转载)
转载地址为:http://www.cnblogs.com/finejob/articles/974900.html
题目1:
======
为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩
1. 使用标准SQL嵌套语句查询选修课程名称为 税收基础 的学员学号和姓名
Where [S#] IN ( Select [S#] FROM C,SC
Where C.[C#]=SC.[C#] AND CN=N'税收基础')
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
Where S.[S#]=SC.[S#] AND SC.[C#]='C2'
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
Where [S#] NOT IN
( Select [S#] FROM SC
Where [C#]='C5')
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
Select SN,SD FROM S
Where [S#] IN ( Select [S#] FROM SC RIGHT JOIN
C ON SC.[C#]=C.[C#]
GROUP BY [S#]
HAVING COUNT(*)=COUNT([S#]) )
经过调试验证的正确答案:
SELECT SN, SD FROM S
WHERE S#
IN (SELECT SC.S#
FROM SC RIGHT JOIN C
ON SC.C# = C.C#
GROUP BY SC.S# --在结果集中以学生分组,分组后的 SC.C#选课数=C.C#课程数 即为全部课程
HAVING COUNT(distinct(SC.C#)) --注意:一个学生同一门课程可能有多条成绩记录,需要distinct
= ( select count(*) from C ) --注意:HAVING条件不能用COUNT(distinct(SC.C#)) = COUNT(distinct(C.C#)
)--子查询获得选修全部课程的学生学号
5. 查询选修了课程的学员人数
6. 查询选修课程超过5门的学员学号和所属单位
Where [S#] IN ( Select [S#] FROM SC
GROUP BY [S#]
HAVING COUNT( DISTINCT [C#] ) > 5 )
题目2:
======
已知关系模式:
S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩
1. 找出没有选修过“李明”老师讲授课程的所有学生姓名
Where NOT EXISTS ( Select * FROM SC,C
Where SC.CNO=C.CNO
AND CNAME='李明'
AND SC.SNO=S.SNO)
2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
FROM S , SC ,
(Select SNO FROM SC
Where SCGRADE<60
GROUP BY SNO
HAVING COUNT(DISTINCT CNO)>=2) A
Where S.SNO=A.SNO AND SC.SNO=A.SNO
GROUP BY S.SNO,S.SNAME
3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
FROM S,
(Select SC.SNO FROM SC,C
Where SC.CNO=C.CNO
AND C.CNAME IN('1','2')
GROUP BY SNO
HAVING COUNT(DISTINCT CNO)=2
)SC
Where S.SNO=SC.SNO
4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
FROM S,
(Select SC1.SNOFROM SC SC1,C C1,SC SC2,C C2
Where SC1.CNO=C1.CNO AND C1.NAME='1'
AND SC2.CNO=C2.CNO AND C2.NAME='2'
AND SC1.SCGRADE>SC2.SCGRADE ) SC
Where S.SNO=SC.SNO
5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩
FROM S,
( Select SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE
FROM SC SC1,C C1,SC SC2,C C2
Where SC1.CNO=C1.CNO AND C1.NAME='1'
AND SC2.CNO=C2.CNO AND C2.NAME='2'
AND SC1.SCGRADE>SC2.SCGRADE) SC
Where S.SNO=SC.SNO
题目3:
======
有如下表记录:
ID Name EmailAddress LastLogon
100 test4 test4@yahoo.cn 2007-11-25 16:31:26
13 test1 test1@yahoo.cn 2007-3-22 16:27:07
19 test1 test1@yahoo.cn 2007-10-25 14:13:46
42 test1 test1@yahoo.cn 2007-11-20 14:20:10
45 test2 test2@yahoo.cn 2007-4-25 14:17:39
49 test2 test2@yahoo.cn 2007-5-25 14:22:36
用一句sql查询出每个用户最近一次登录的记录(每个用户只显示一条最近登录的记录)
SELECT a.* from users a inner join
(SELECT [Name], LastLogon=MAX(LastLogon) FROM users GROUP BY [Name]) b
on a.[Name]=b.[Name] and a.[LastLogon]=b.[LastLogon]
方法二:
SELECT a.* from users a inner join
(SELECT Name,MAX(LogonID) LogonID FROM users GROUP BY [Name]) b
on a.LogonID=b.LogonID
--where a.LogonId=b.LogonId
转载于:https://www.cnblogs.com/davidwang456/archive/2013/03/19/2969481.html
数据库常用面试题(SQL Server) (转载)相关推荐
- 把Oracle数据库移植到Microsoft SQL Server 7 0
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 把Ora ...
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
C#连接4种类型数据库(Access.SQL Server.Oracle.MySQL) 1.C#连接连接Access using System.Data; using System.Data.OleD ...
- mysql bak 还原数据库文件格式_Navicat操作SQL server 2008R2文件.bak文件还原
项目操作过程中,利用Navicat操作SQL Server2008R2数据备份,结果发现数据丢失了很多,不得不先对数据丢失部分进行差异对比,然后再重新输入. 1.利用Navicat导出的数据格式为sq ...
- 我们常用的基础SQL Server能干啥?
我们常用的基础SQL Server能干啥? 开发工具与关键技术:SQL Server 2014 Management Studio SQL Server数据库的功能 作者:李国旭 撰写时间:2019年 ...
- sql创建计算机用户,2015年计算机四级数据库复习要点:SQL Server 登录账户
2015年计算机四级数据库复习要点:SQL Server 登录账户 系统内置的登录账户 1. BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Adm ...
- mysql数据库的分离_数据库分离和附加 (SQL Server)
数据库分离和附加 (SQL Server)Database Detach and Attach (SQL Server) 06/30/2020 本文内容 适用于:Applies to: SQL Ser ...
- 数据库分离和附加 (SQL Server)
数据库分离和附加 (SQL Server) 2018/11/2 适用对象:SQL ServerAzure SQL 数据库Azure SQL 数据仓库并行数据仓库 可以分离数据库的数据和事务日志文件,然 ...
- sql数据库服务器端口修改,SQL SERVER 2012更改默认的端口号为1772
打开开始菜单,找到sqlserver的配置管理器,点击打开 按下图配置右边窗口三项: 按下图配置右边三项: 按下图配置右边三项: 点击下图左边的SQL Server网络配置/MSSQLSERVER的协 ...
- 使用Red Gate Sql Data Compare 数据库同步工具进行SQL Server的两个数据库的数据比较、同步...
Sql Data Compare 是比较两个数据库的数据是否相同.生成同步sql的工具. 这一款工具由Red Gate公司出品,我们熟悉的.NET Reflector就是这个公司推出的,它的SQLTo ...
最新文章
- 全球自动驾驶政策概况及特征研究
- ios学习——键盘的收起
- Clustering Coefficient
- Triangular Sums http://acm.nyist.net/JudgeOnline/problem.php?pid=122
- WindowsMobile/Win Form-界面自适应
- linux 命令修改网络,linux网络命令学习
- LAMP+Redis详解(一)——基本原理
- python开发接口
- ryzen linux 搭配显卡,R7 1700配什么显卡?AMD Ryzen7 1700搭配显卡推荐 (全文)
- 就业推荐表鉴计算机水平,毕业生就业推荐表的鉴定评语
- linux 内核rps,Linux kernel之网络rps
- Android页面的跳转
- html5允许属性值不使用引号,HTML5概述 - 阿振的个人空间 - OSCHINA - 中文开源技术交流社区...
- 2021-01-16 SONiC系统管理10 Telemetry
- 关于光通信的最强进阶科普
- 软件测试工程师是这么写年终报告的
- 跨专业计算机研究生如何毕业论文,跨专业考研论文要求
- 企业微信 ios 识别二维码 无法直接跳转 (安卓正常)
- 支付宝推“移动花卡”:花呗账单延后还
- 算法设计与分析—分支限界法应用(头歌实验)
热门文章
- linux远程图形操作系统,二、Linux操作系统之操作篇-Xmanager 远程访问Linux图形化界面...
- 服务器拉取openssl文件,使用openssl从服务器获取证书
- python分发包_Python 分发包中添加额外文件的方法
- 无边框窗体移动的方法
- java中的stack类和C++中的stack类的区别
- 物品回收平台java代码_java垃圾回收
- 便携式不锈钢管道焊接机器人_核电站双相不锈钢管道的焊接工艺及焊接接头性能探讨...
- mysql sql乱码怎么解决_MYSQL数据库导入SQL文件出现乱码如何解决
- mysql时间变成季度_Mysql 时间操作(当天, 昨天,7 天,30 天, 半年, 全年, 季度)
- 机器学习——线性回归数学推导