易截截图软件、单文件、免安装、纯绿色、仅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语句奥妙之一

例如问题:现在你面对一张表 table1 , table1中有个字段为sales_salary ,在数据库存放的字段为int 类型 。
要求,你统计的结果单位(万元),保留2位小数。并且会有这样的等式 (1行+2行=3行=7行+8行) 面对这样的问题,解决的方案有很多。比如,你可以通过视图的方案来解决,或控制输入域 ...
但有一种等效控制输入 ......

.NET学习手记之:linq to SQL(二)


在Visual Studio 2008 中使用O/R设计器:
点添加项目,选择创建Linq to SQL项目,使用服务器资源管理器连接Northwind数据库,将Customers和Orders两个表拖到设计界面上,系统会自动创建app.config和Northwid.designer.cs,前者是配置连接数据库的连接字串;后者会生成一个继承自DataContext的类:NorthwindDataContext。 ......

SQL Server索引统计信息未及时更新,导致排序混乱

今天,遇到了这样的一个例子:
SQL Server索引统计信息未及时更新,导致排序混乱
我们知道,在sql
server上创建索引后,同时会对该索引上的值进行排序,但对于新增加的值,如果未能及时更新统计信息,将有可能导致排序的混乱,也就是没有排序。
这是产生问题的语句:
Select * from V_L_IcStockProInEntry Where FInt ......

更改SQL 2005的登陆方式

如果你的身份验证方式为Windows集成身份验证更改为混合方式的身份验证,需要在SQL Server Configuration Management中,把TCP/IP的活动启用,也就是第一个选择的地方,选择启用。并且使用集成身份验证方式登录后,在数据库服务器上选择属性,把安全性下的WINDOWS模式改为SQL与WINDOWS模式 ......

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号