易截截图软件、单文件、免安装、纯绿色、仅160KB

常用SQL面试题 (一)

数据库面试常用测试题(SQL Server)
题目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嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
  --实现代码:
  Select SN,SD from S
  Where [S#] IN(
  Select [S#] from C,SC
  Where C.[C#]=SC.[C#]
  AND CN=N'税收基础')
  2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
  --实现代码:
  Select S.SN,S.SD from S,SC
  Where S.[S#]=SC.[S#]
  AND SC.[C#]='C2'
  3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
  --实现代码:
  Select SN,SD from S
  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#]))
  5. 查询选修了课程的学员人数
  --实现代码:
  Select 学员人数=COUNT(DISTINCT [S#]) from SC
  6. 查询选修课程超过5门的学员学号和所属单位
  --实现代码:
  Select SN,SD from S
  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. 找出没有选修过“李明”老师讲授课程的所有学生姓名
  --实现代码:
  Select SNAME from S
  Where NOT EXISTS(
  Select * from SC,C
  Where SC.CNO=C.CNO
  AND CNAME='李明'
  AND SC.SNO=S.SNO)
  2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
  --实现代码:
  Select S.SNO,S.SNAME,AVG_SCGRADE=AV


相关文档:

【SQL SERVER中一些特别地方的特别解法2】


/*----------------------------------------------------------------
-- Author  :feixianxxx(poofly)
-- Date    :2010-04-20 20:10:41
-- Version:
--      Microsoft SQL Server 2008 (SP1) -  ......

SQL 使用 CONVERT

使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 ) ......

SQL Server选择了非聚集索引而不是聚集索引

聚集索引不仅包含索引的key值,还包含表数据;
非聚集索引只包含索引的key值。
SQL Server在有些情况下,有聚集索引和非聚集索引存在时,会选择走非聚集索引,而不走聚集索引。
例子如下:
在 SQL Server 的adventureWorks数据库下,运行如下语句:
select DepartmentID,Name from HumanResources.Department
Departm ......

sql server 日志文件的收缩

完全备份或日志备份虽说都有截断日志的功能,但是不会收缩日志文件的空间返回给操作系统.
如果你想将日志文件的空间返回给操作系统的话,只有一种方法,就是收缩数据库(选择日志文件)
ZT一个相关帖子,供参考!
物理日志文件:
    这个比较好理解,实实在在的东西,数据库目录下面的.ldf文件就是,有些人喜欢改后 ......

SQL中的in和exists的区别

在网上看到一个很好的例子讲解in和exists的区别,这里备忘下。
本示例所示查询查找由位于以字母 B 开头的城市中的任一出版商出版的书名:
USE pubs
SELECT title
from titles WHERE EXISTS
    (SELECT *
    from publishers
    WHERE pub_id = titles.pub_id ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号