加载中…
个人资料
木紫雨
木紫雨
  • 博客等级:
  • 博客积分:0
  • 博客访问:50,962
  • 关注人气:16
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

SQL server 期末复习题大全---1

(2010-12-09 18:27:47)
标签:

校园

分类: 学习心得

SQL Server 练习题二

一、单项选择题

1.下列关于Create Table创建数据表,叙述正确 的是______

A) 必须在数据表名称中指定表所属的数据库            

B) 必须指明数据表的所有者

C) 指定的所有者和表名称在数据库中必须唯一 

D)省略表名称时,自动创建一个临时表

2.表设计器的“允许空”,用于创建字段的______约束。

A) 主键              B) 外键      C) CHECK          D)非空

3.下列字段定义错误的是______

A) 学号 varchar(16)        B) 人数 int 4      C) 产量 float      D) 价格 decimal(8,2)

4.删除数据库中已经存在的数据表test的命令是______

A) DELETE TABLE test           B) DELETE test

C) DROP TABLE test        D) DROP test

5.在数据表test中增加一个字段 cj(成绩)的命令是______

A) ADD TABLE test  cj  int         B) ADD TABLE test ALTER cj int

C) ALTER TABLE test DROP cj int       D) ALTER TABLE test  ADD cj int

6.在关系模式test(学号,姓名,性别,年 龄)中,删除属性“年龄”的命令是______

A) DELETE 年龄 FROM test              B) ALTER TABLE test  DROP 年龄

C) UPDATE test SET年龄                     D) ALTER TABLE test  ADD 年龄

7.在关系模式test(学号,课程名称,成绩) 中,插入一条记录的正确命令是______

A) ADD INTO test VALUES(‘0001’,’高数’,’80’)      

B) INSERT INTO test VALUES(‘0001’,’高数’,’80’)

C) ADD INTO test VALUES(‘0001’,’高数’,80)

D) INSERT INTO test VALUES(‘0001’,’高数’,80)

8.在关系模式test(学号,课程名称,成绩) 中,若要把“0001的高数成绩改成85分,正确命令是______

A) UPDATE test SET 成绩=”85”  WHERE 学号=”0001” and 课程名称=”高数

B) UPDATE test SET 成绩=85  WHERE 学号=”0001” and 课程名称=”高数

C) UPDATE test SET 成绩=’85’  WHERE 学号=’0001’ and 课程名称=’高数

D) UPDATE test SET 成绩=85  WHERE 学号=’0001’ and 课程名称=’高数

9.不属于SQL Server的数据类型是______

A) 整型数据类型         B)浮点数据类型

C) 通用型数据类型        D) 字符数据类型

10.不属于整型数据类型的是______

A) int             B) smallint            C) tinyint              D) integer

11.如果数据表中某个字段只包含1~200之间的整数,则该字段最 好定义为______

A) int             B) smallint            C) tinyint              D) bit

12.如果数据表中某个字段的数据精度要求8~12位,则该字段最好定义为______

A) real           B) smallint            C) float          D) money

13.某个字段的数据类型定义为decimal(12,5),则该字段有______位整数。

A) 12            B) 5              C) 6              D) 7

14.存储诸如邮政编码的字段类型最好定义为______

A) Char(6)           B) varChar(6)              C) NChar(6)        D) NvarChar(6)

15.存储诸如通讯地址的字段类型最好定义为______

A) Binary(n)         B) varChar(n)              C) Nbianry(n)              D) Ntext

16SQL查询的HAVING子句通常出现在______子句中。

A) ORDER BY    B) GROUP BY    C) INDEX    D) INTO

17SELECT-SQL语句中的条件子句的关键 字是______

A) WHERE          B) FROM    C) ORDER BY    D)GROUP BY

18INSERT-SQL命令的功能是______

A) 在表头插入一条记录              B) 在表尾插入一条记录

C) 在指定位置插入一条记录      D)在指定位置插入若干记录

19UPDATE-SQL命令的功能是______

A) 数据定义                           B) 数据查询

C) 更新表中某些列的属性   D)修改表中的某些列的内容

20.查询命令中,限制显示记录条数的关键字是____

A)TOP n      B)DISTINCT      C) ORDER   D)HAVING

21.查询命令中,搜索介于两个指定值之间的所有信息的关键字是____

A)TOP n      B)LIKE       C) BETWEEN     D)IN

22.能对某列进行平均值运算的函数是______

A) SUM()     B) AVERAGE()    C) COUNT()       D)AVG()

23.查询命令中,搜索与给定的列表中任意一个值相匹配的记录的关键字是____

A)TOP n      B)LIKE       C) BETWEEN     D)IN

24.模式匹配符号中,可匹配任意类型和长度的字符串的模式符号是____

A) _(下划线)       B) %         C) [  ]   D)[^  ]

25.从表中删除一条或多条记录的T-SQL命令是______

A) DELETE         B) DELETE FROMWHERE

C)DROPFROM     D) DELETETABLEWHERE

26.对数据表的结构进行修改的命令是______

A) MODIFY TABLE    B)ALTER TABLE   C)DROP TABLE      D)CREATE TABLE

27.查询命令中,消除字段数据的重复值的关键字是____

A)TOP n      B)DISTINCT      C) ORDER   D)HAVING

28.用于统计记录个数的运算函数是______

A) SUM()     B) AVERAGE()    C) COUNT()       D)AVG()

29.查询命令中,搜索某字符串是否与指定的模式匹配的关键字是____

A)TOP n      B)LIKE       C) BETWEEN            D)IN

30.连接查询中,连接的结果是从两个表中挑选出符合连接条件的数据的连接方式是____

A) Inner Join       B)Left Join         C)Right Join         D)Full Join

二、填空题

1.在SQL中,create tablealter tabledrop table命令分别 是在数据库中      _______基本表结构的命令。

2.向基本表插入数据时, 可以在命令中使用关键字        引出记录值。或者在命令中       子句得到一个结果表。

3.在SQL的查询语句中,         选项实现投影运算,      ___________选项实现连接运算,         选项实现选择运算。

4.在SQL的查询语句中,       选项实现分组统计功能,         

选项实现对结果表的排序功能。

5.在SELECT语句的ORDERBY子句中,DESC表示按______输出;省略DESC则按______输出。

6.在SQL SERVER中,datetime数据类型主要用来存储____________的组合数据,其常量需 要用______括起来;通常用______数据类型来表示逻辑数 据。

7.在SQL SERVER中,整数类型包括________________________4种,它们分别占用________________________个存储字节。

8.在SQL SERVER中,数据表的完整名称 应包括__________________3个部分,其中____________可以省略。

9SQL Server提供的双字节数据类型 共有3类,分别是__________________

10.在SQL Server中,共使用了3种数据类型来存储二进制 数据,分别是__________________。在对二进制数据进行 插入操作时,必须在数据常量前面增加一个前缀______

 

三、数据表基本操作

学生的基本情况表如下:

学号

姓名

身份证号

性别

出生日期

省份

所属单位

专业

数学

政治

英语

备注

0802080101

李龙

342425760824271

03/09/1983

陕西省

管理学院

信管

69

92

56

 

0802080105

张峰

410303198102070527

06/18/1985

河南省

测量系

地质

41

67

65

 

0102050101

王亚泽

610623198302011213

08/17/1986

湖南省

测量系

地质

93

96

87

 

……

 

……

 

……

 

 

 

 

 

 

 

1.写出建立该数据表结构的T-SQL语句(数据表名:JBQK099);要求“学 号”、“姓名”、“身份证号”必须输入。(将099改 成自己学号后3位)

2.按下列要求修改数据表结构

1)添加“年龄”、“出生地”两个字段;

2)将“性别”的数据类型修改成bit

3)将“专业”的数据类型改成Varchar(30)且不允许空;

4)删除“备注”字段。

2.按下列要求写出插入数据的T-SQL语句

(要求:以下操作中,所有的“学号”、“姓名”、“专业”均 为自己的真实信息)

1)插入1条 完整记录;

2)插入1条 记录,只输入“学号”、“姓名”、“身份证号”、“专业”的相关内容;

3)插入1条 记录,只输入“学号”、“姓名”、“身份证号”、“专业”和各门课程成绩等相关内容;

3.按下列要求修改数据表

1)将所给表中第2条 记录的“姓名”、“学号”、“专业”修改为自己的真实数据;

2)将自己的数学成绩提高15%,英语成绩提高10分,政治成绩减少5分;

3)将没有数学成绩的记录,均修改为60分。

4)添加“总分”、“平均分”字段,并计算自己的总分和平均 分。

4.删除“性别”为空的所有记录。

四、基本查询

(根据上面的数据表,按下列要求写出相应的SELECT 语句)

1.显示表中前2条 的学号、姓名、各门课程成绩的信息;

2.查询自己的学号、姓名、各门课程成绩、总成绩、平均成绩信 息;

3.显示学号是‘40’ 开头,姓“张”和姓“李”的所有信息;

4.显示“管理学院”的不及格学生的信息;

5.显示80年 到83年出生的学生信息;

6.显示数学成绩不是60708090的 学生信息;

7.显示不同系部单位的学生人数、英语课程的总分、平均、最高 分、最低分;

8.将总成绩大于200的学生的学号、数学、 政治、英语等信息存入CJB中;

9.从JBQKCJB中选出“陕西省”的学 生的姓名、性别、所在系部、省份、总成绩,结果按总成绩降序排列,若总成绩相同则按姓名升序排列;

10.选出与“王亚泽”同一个系的学生的姓名、性别、所在系部、平 均成绩。


SQL Server 练习题三

一、选择题

1.    如果将某一列设置为表的主键,则在表中此列的值(  )。

A)可以出现重复值                                B)允许为空值

C)不允许为空值,也不能出现重复值    D)不允许为空值,但允许列值重复

2.    下面语句中,哪种语句用来修改视图(    )。

Aalter table         Bmodify view          Cdrop view         Dalter view

3.下列标识符可以作为局部变量使用(  

A) [Myvar B) My var  C) @Myvar  D) @My var

4.创建存储过程的命令为(   )。

A) CREATE VIEW                            B) CREATE INDEX

C) CREATE PROCEDURE            D) CREATE FUNCTION

5.将jbqk表复制到数据表jg_tab中,正确的语句是   

A) select * from jbqk into jg_tab  B) select * into jg_tab from jbqk

C) insert jg_tab from jbqk         D)insert jg_tab select * from jbqk

6print len(rtrim(str(245+100+0.5)))的显示结果是 (  

A) 345    B) 345.5 C) 10     D)3

7.print ascii(‘12’)+len(substring(‘1234’,2,2))+day(‘2009-10-1’)的 结果为

A)26       B) 35    C) 52           D)出错

8.计算两个日期之间的差值的函数是(  

A) getdate     B) dateadd    C) datename        D)datediff

9.产生(0,1)之间随机数的函数是(  

A) sqrt()        B) rnd()         C) floor()              D)rand()

10.判断成绩是否在0~100之间的约束是(  

A) default      B) constrain  C) range              D)check

二、填空题

1. SQL Server, 编辑、运行Transact-SQL语句是在 ______中完成。

2Create database命令定义一个数据库,包括定义______文件和 _____文件部分。

3.在查询分析器中,打开一个数据库使之成为当前库,有___种方法,其中之一使用的命令关键字为 _______。

4. Select语句可以实现多个数据表连接查询,其中外连接的方式分别有 ______、______和______。

5. Select语句可以实现模糊查询,其模式匹配有4种,它们分别是______、______、______、______。

6.    常用的聚合函数有:计算最大值的_______,计算最小值的_______,统计总和的_______,统计记录总数的_______和计算平均值 的_______。聚合函数的计算对象不仅是列而且可以是_______

7.    SQL Server 2000的数据库管理程序分为__________________两部分,两部分可以安装在 同一台计算机上,也可以分别安装在不同的计算机上。

8.    SQL Server实例的身份验证模式有______________两种。

9.    对表操作的数据定义语言(DDL)有创建表的_______语句、修改表结构的_______语句和删除表 的_______语句。

10.  对表中数据更新操作的数据定义语言(DML)有添加记录的_______语句、修改记录的_______语句和删除记录的_______语句。

11.  主键是唯一能够区分表中每一行记录的_______。一个表只能有_______主键,主键不能为空值,并且 可以强制表中的记录的_______。主键的标志为_______

12.  存在两个表AB,表A中的主键列在表B中也存在,但并不是表B的主键,仅作为表B的一个必要的属性,则称此属性为表B_______

13. 在一个已存在数据的表中增加一列,一定要保证所增加的列允许______ 值。

14CHECK约束被称为________约束,UNIQUE约束被称为________约束。当一个表带有约束后,执行对表的各种_______操作时,将自动 检查相应的约束,只有符合约束条件的合法操作才能被真正执行。

15.定义局部变量的语句关键字为___,局部变量的开始标记为______。

16.创建和删除存储过程my_proc的命令为 ________和_________。

17.任意写出5个常用字符函数的完整命令格式(即命令和参 数)_____、_____、_____、_____、_____。

18.任意写出5个常用日期函数的完整命令格式(即命令和参 数)_____、_____、_____、_____、_____。

19select * from 学生基本情况 where len(rtrim(姓名))=2的功能是_____

20select ascii(str(156))+ascii(ltrim(str(200)))的结果是_____

 

三、综合练习

假设存在名为AAA的数据库,包括Students(学号char(8),姓名varchar(8),身份证号char(18),年龄int,专业varchar(20),入学日期DateTime)Score(学号char(8),课程名varchar(10),成绩numeric(5,2))两张表。

一)写出下列程序段的功能。

   

1. DECLARE @ MyNO CHAR(8)

SET @MyNO=’40030001’

IF(SELECT 专业FROM Students WHERE 学号=@MyNO)=信息管理

   BEGIN

         SELECT AVG (成绩)AS 平均成绩

               FROM Score

               WHERE =@MyNO

  END

ELSE

PRINT 学号为+@MyNO+的学生不存在或不属于信管专业

GO

2. Declare @a numberic(5,2),@b numeric(5,2)

Set @a =(select max(成绩)from score)

Set @b=(select min (成绩)from score)

Print @a-@b

3. Declare @a char(8)

Set @a=计算机

Select 计算机专业人数=count(*)  From students  Where left(专业,3)=@a

4. Select  month (入学日期)as入学月份,count* as 人数

From students

Group by month(入学日期)

 

5. Create  procedure  xxk1

@xm varchar(10)=’

   as

     select  *      from students x,score y 

where x.学号=y.学号and 姓名 like @xm+’%’

go

exec xxk1

6Create procedure xxk3

@xh1 char(2)=’2’,@xh2 char(2)=’22’

as

  select 学号,avg(成绩) as平均成绩  from score

  where  right(rtrim(学号),2)  between @xh1 and @xh2

  group by 学号

go

exec xxk3 @xh2=’16’,@xh1=’6’

7create procedure xxk5

(

@a char(8),@b varchar(10),@c numeric(5,2)

)

as

  insert into score  values(@a,@b,@c)

二)按下列要求写出操作命令

1根据studentsscore表生成数据表xs_cj的结构,字段包括学号、姓名、入学日期、专业、课程名、成绩;

2.根据studentsscore表向数据表xs_cj插入信息管理电子商务专业的学生信 息;

3.修改学号的宽度为10,并将本专业的学号前7位改为专业的编号、第8位为12(随机产生)、后两位不变;

4.显示学生的学号、姓名、入学日期和专业的信息,要求入学日期按“xxxxxx 星期x”格式显示;

5.将“高等数学”为空的记录,修改为[60,85)之间的随机数;

6.创建视图view_xscj,包括学号、姓名、年龄、 入学日期、专业、课程名、成绩;

7. 查询“本专业99年入学年龄在19-25间”的学生信息;

8.查询“本专业学习成绩前5名”的学生信息;;

9.创建视图view_xscj1,包括学号、姓名、专 业、总成绩、平均成绩;

10. 查询各专业学习的排序情况;

11.创建存储过程按给定姓氏(默认姓“李”)查询学生的姓名、专业、总成绩、平均成绩;

12.创建存储过程统计给定专业学生的平均成绩及人数;

13.创建存储过程统计2006-2009年入学的 学生的平均成绩、最高分、最低分;

14.创建视图view_stu,包括学号、姓名、年龄、入 学日期、专业;

15.向students表的学号、姓名、年龄、入学 日期、专业 输入自己的相关信息。

三)根据实验3提供的EmployeesDepartmentsSalary数据表,写出下列查询语句的主要功能。

1. SELECT Employees.*

FROM Employees INNER JOIN

      Departments ON Employees.部门号 = Departments.部门号

WHERE (Departments.部门名 = '财务部')

2. SELECT Employees.*

FROM Employees INNER JOIN

      Salary ON Employees.编号 = Salary.编号

WHERE (Salary.收入< 2500)

3. SELECT Employees.*

FROM Employees INNER JOIN

      Departments ON Employees.部门号 = Departments.部门号

WHERE (Employees.出生日期<=

          (SELECT MIN(出生日期)

         FROM Employees INNER JOIN

               Departments ON Employees.部门号 = Departments.部门号

         WHERE (Departments.部门名 = '研发部'))) AND (Departments.部门名 = '财务部')

4. SELECT AVG(Salary.收入) AS 平均收入

FROM Employees INNER JOIN

      Departments ON Employees.部门号 = Departments.部门号 INNER JOIN

      Salary ON Employees.编号 = Salary.编号

WHERE (Departments.部门名 = '财务部')

5. SELECT MAX(Salary.收入) AS 最高收入, MIN(Salary.收入) AS 最低收入

FROM Employees INNER JOIN

      Departments ON Employees.部门号 = Departments.部门号 INNER JOIN

      Salary ON Employees.编号 = Salary.编号

WHERE (Departments.部门名 = '财务部')

6. SELECT AVG(Salary.收入-Salary.支出) AS 实际平均收入

FROM Employees INNER JOIN

      Departments ON Employees.部门号 = Departments.部门号 INNER JOIN

      Salary ON Employees.编号 = Salary.编号

WHERE (Departments.部门名 = '财务部')

7. SELECT COUNT(Employees.编号) AS 总人数

FROM Employees INNER JOIN

      Departments ON Employees.部门号 = Departments.部门号

WHERE (Departments.部门名 = '财务部')

8. SELECT COUNT(Employees.编号) AS 总人数

FROM Employees INNER JOIN

      Departments ON Employees.部门号 = Departments.部门号 INNER JOIN

      Salary ON Employees.编号 = Salary.编号

WHERE (Departments.部门名 = '财务部') AND (Salary.收入> 2500)

9. SELECT Employees.*, Salary.收入

FROM Employees INNER JOIN

      Salary ON Employees.编号 = Salary.编号

ORDER BY Salary.收入DESC

10. SELECT Departments.部门名, AVG(Salary.收入) AS 平均, MAX(Salary.收入) AS 最高,

      MIN(Salary.收入) AS 最低, COUNT(*) AS 人数

FROM Employees INNER JOIN

      Salary ON Employees.编号 = Salary.编号 INNER JOIN

      Departments ON Employees.部门号 = Departments.部门号

GROUP BY Departments.部门名

ORDER BY COUNT(*)

 

四、程序改错

建立jbqk数据表结构并满足完整性的要求是:学号必须输入,且为主键;“姓名”必须输入;“性别”必须输入“男”或“女”; 出生日期为1985-2009之间,所属单位为“管理 学院”和“能源学院”;专业的默认值为“信息管理”;各门课程的成绩必须在0-100之间。建立该数据表结构 的其T-SQL语句如下,修改其中的错误。

CREATE DATABASE  JBQK     --FOUND ERROR 1--

(学号 char (8) PK_xh NOT  NULL  PRIMARY  KEY,   --FOUND ERROR 2--

       姓名nchar (4) IS NULL ,   --FOUND ERROR 3--

       性别nchar (1) CONSTRAINT chk_xb 性别=’男女’,   --FOUND ERROR 4--

       出生日期 datetime CONSTRAINT CK_rq check(出生日期 between 1985 and 2008) , --FOUND ERROR 5--

       所属单位 char (16) in(‘管理学院’,’能源学院’), --FOUND ERROR 6--

       专业char (20)  default ‘信息管理’ for 专业, --FOUND ERROR 7--

       数学decimal(4, 1) CHECK (数学 = [0-100]) ,   --FOUND ERROR 8--

       语文decimal(4, 1) CHECK (语文 Not NULL) ,   --FOUND ERROR 9--

       英语decimal(4, 1) CHECK (0<=英语 <= 100) ,  --FOUND ERROR 10--

       备注text )   

 



 

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有