易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

Merge SQL 2008

merge [target] t
using [source] s on t.id = s.id
when matched then update t.name = s.name, t.age = s.age -- use "rowset1"
when not matched then insert values(id,name,age) -- use "rowset2"
when source not matched then delete; -- use "rowset3"
MERGE dbo.table AS im ......

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 ) ......

Shrink SQL Server 2008 Database + Log File Script

Use DatabaseName
--DB shrink
--获取database 空余空间, 决定是否作shrinkDB
exec [DBNAME].dbo.sp_spaceused
DBCC ShrinkDB(DBNAME)
--Log file shrink
Use DatabaseName
GO
Alter Database DatabaseName Set Recovery Simple
GO
Alter Database DatabaseName Set Recovery Full
GO
DBCC SHRINKFILE ('Log ......

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

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

sql server 日志文件的收缩

完全备份或日志备份虽说都有截断日志的功能,但是不会收缩日志文件的空间返回给操作系统.
如果你想将日志文件的空间返回给操作系统的话,只有一种方法,就是收缩数据库(选择日志文件)
ZT一个相关帖子,供参考!
物理日志文件:
    这个比较好理解,实实在在的东西,数据库目录下面的.ldf文件就是,有些人喜欢改后 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号