大学SQL考试复习题

复习题

1.        用于求系统日期的函数是(     )。

A.YEAR()    BGETDATE()   C.COUNT()     D.SUM()

 

2.        通常情况下,数据模型由(    )三部分组成。

(A) 数据结构、数据操作和完整性约束    (B) 层次、数据操作和完整性约束

(C) 关系、数据操作和完整性约束        (D) 层次、关系和完整性约束

 

3.        向用户授予操作权限的SQL语句是(     )。

A.CTEATE      B.REVOKE        C.SELECT        DGRANT

 

4.        有如下定义,(   )插入语句是正确的。

CREATE TABLE student

(studentid  int  not null,

      name  char(10) null,

      age  int not  null,

      sex  char(1) not  null,

      dis  char(10) )

(A)  INSERT INTO student  VALUES(11,’abc’,20,’f’)

(B)  INSERT INTO student(studentid,sex,age)  VALUES (11,f,20)

(C)  INSERT INTOstudent(studentid,sex,age)  VALUES(11,20,’f’,NULL)

(D)  INSERT INTO student  SELECT 11,’ABC’,20,’F’,’test’

 

5.        在SQL SERVER 2008中,声明游标应使用(  )。 (A) DEFINE  (B) OPEN  (C) DECLARE   (D) FETCH

 

6.        数据操纵语言(DML)所实现的操作包括(  )。

(A) 查询、删除、修改  (B) 授权、查询、排序  

(C) 授权、修改、排序   (D) 模式定义、删除、修改

 

7.        SELECT 语句中将多个查询结果返回一个结果集中的关键字是(   )

A) JOIN   B) UNION   C) INTO   D) LIKE

 

 

8.        公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是( )

(A)多对多        (B)一对一       C)多对一         (D)一对多

 

9.          在SQL SERVER 2008中,能够获取系统当前日期和时间的函数是(  )。(A) YEAR  (B) GETDATE   (C) DATE  (D) DATETIME

 

10.     在SELECT语句中,可以嵌套子查询的语句是(  )。(A) GROUP BY  (B) HAVING  (C) ORDER BY   (D) FROM

 

11.     下列关于INSERT语句的说法中正确的是(  )。

 (A) 一个INSERT语句只能插入一个记录

 (B) INSERT语句不能插入空值 
(C) INSERT语句中必须指定表中的字段名 

(D) 有些视图允许使用INSERT语句插入记录  

 

12.     下列选项中违反实体完整性的是(  )。

(A) DELETE  (B) UPDATE   (C) CREATE  (D) SELECT

 

13.    修改表时,在表中新增一个约束应使用语法(  )。

(A)Alter Column          (B) Add Rule 

(C) Drop Constraint       (D) Add Contraint

 

14.    在SQL SERVER 2008中,系统存储过程都以(  )打头。

 (A) ap_  (B) sp_   (C) ar_  (D) sr_

 

15.     在SQL SERVER 2008的GRANT语句中,如果希望被授权的用户可以将其所获得的权限转授给其他用户,应使用(  )。

(A) WITH GRANT OPTION

        (B) WITH GRANT CASCADE

(C) SET GRANT OPTION
(D) SET GRANT CASCADE    

 

16.    下面关于存储过程的描述中(    )是正确的。

(A).自定义存储过程与系统存储过程名称可以相同

(B).存储过程最多能够支持64层的嵌套

(C).命名存储过程中的标识符时,长度不能超过256个字符

(D).存储过程中参数的个数不能超过2100

 

17.    在查询结果集中显示全校所有班级并消除重复,正确的语句是()

A) SELECT 班级 FROM 学生

B) SELECT top 100 班级 FROM 学生

C) SELECT all 班级 FROM 学生

D) SELECT distinct 班级 FROM学生

 

18.      在SQL SERVER 2008中,下列关于触发器的说法中错误的是(  )。
(A) 触发器是一种特殊的存储过程
(B) 可以向触发器传递参数 
(C) 可以在视图上定义触发器 
(D) 触发器可以实现复杂的完整性规则  

 

19.    (   )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。

ADBMS                              B.DB

C.DBS                                D.DBA

20.    在SQL中,建立表用的命令是 (      )。

A.CREATE SCHEMA                                                B.CREATE TABLE

C.CREATE VIEW                                                       D.CREATE INDEX

 

21.     一个事务的执行不能被其他事务干扰,这个性质称为事务的(  )。

 (A) 原子性  (B) 一致性   (C) 隔离性   (D) 持续性

 

22.    在SQL语言中,DELETE语句的作用是(  )。

 (A) 删除基本表  (B) 删除视图   (C) 删除列   (D) 删除基本表中的元组

 

23.    在SQL SERVER中,表示范围的通配符是(  )。

 (A) _                            (B) %                (C) []                   (D) {}

 

24.    在SQL SERVER中定义局部变量应使用(  )。

        (A) DECLARE        (B) SET           (C) DEFINE     (D) PUT

 

25.    在SQL语句中,可以完成两个表间的笛卡尔积运算的选项是(  )。

A) INNER JOIN            (B) LEFT JOIN      (C) CROSS JOIN         (D) FULL JOIN

 

26.     在SQL语句中,条件“<ANY”等价于(  )。

(A) <MAX     (B) <MIN       (C) >MAX      (D) >MIN

 

22、删除游标stud_cursor的命令是(    )。

    (A) .CLOSE stud_cursor   (B)DEALLOCATE stud_cursor

    (C).DROP stud_cursor      (D).DELETE stud_cursor

 

27.    下列四项中,不正确的提法是(      )。

A.SQL语言是关系数据库的国际标准语言

B.SQL语言具有数据定义、查询、操纵和控制功能

C.SQL语言可以自动实现关系数据库的规范化

D.SQL语言称为结构查询语言

 

28.    8.在MS SQL Server中,用来显示数据库信息的系统存储过程是(       )。

A. sp_dbhelp                              B.sp_db

C. sp_help                                   D. sp_helpdb

 

29.    SQL语言中,删除一个表中所有数据,但保留表结构的命令是()

ADELETE                                  B、DROP

C、CLEAR                                    D、REMORE

 

30.    10.SQL的视图是从(      )中导出的。

A. 基本表                                    B. 视图

C. 基本表或视图                     D. 数据库

 

31.    8.查询毕业学校名称与“清华”有关的记录应该用(  )。

A. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’*清华*’

B. SELECT * FROM 学习经历 WHERE 毕业学校 = ’%清华%’

C. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’?清华?’

D. SELECT * FROM 学习经历 WHERE毕业学校 LIKE%清华%

 

32.    3. 哪个关键字用于测试跟随的子查询中的行是否存在(     )。

A.MOV                                               BEXISTS

C.UNION                                           D.HAVING

 

33.    使用索引下列哪个说法是正确的(   )。

A. 节省磁盘空间

B. 缩短查询时间

C. 在执行插入、修改、删除时节省时间

D. 与表无关

 

34.    15.查询员工工资信息时,结果按工资降序排列,正确的是(  )

A、ORDER BY 工资                         BORDER BY工资 desc

C、ORDER BY 工资 asc                           D、ORDER BY 工资 dictinct

 

35.    下列聚合函数中正确的是(  )

A、SUM (*)                                        B、MAX (*)

CCOUNT (*)                D、AVG (*)

 

36.    SQL中,下列涉及通配符的操作,范围最大的是(  )

A、name like ’hgf#’        B、name like ’hgf_t%’

Cname likehgf%       D、name like ’hgf#%’ escape ’#’

 

37.    在MS SQL Server中,关于数据库的说法正确的是(  )

A、一个数据库可以不包含事务日志文件

B、一个数据库可以只包含一个事务日志文件和一个数据库文件

C、一个数据库可以包含多个数据库文件,但只能包含一个事务日志文件

D、一个数据库可以包含多个事务日志文件,但只能包含一个数据库文件

 

38.    SQL中,下列涉及空值的操作,不正确的是(  )

A、age IS NULL             B、age IS NOT NULL

Cage = NULL             D、NOT (age  IS NULL)

 

39.    在T-SQL语言中,修改表结构时,应使用的命令是()

A.UPDATE               B. INSERT

C. ALTER                  D. MODIFY

 

40.    模式查找like '_a%',下面哪个结果是可能的

A.aili                     B. bai

C.bba                    D.cca

 

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

A. Myvar                 B. My var

C. Myvar               D. @My var

 

42.    以下关于主键的描述正确的是(    )。  

A.标识表中唯一的实体                           B.创建唯一的索引,允许空值

C.只允许以表中第一字段建立               D.表中允许有多个主键

 

43.    脚本文件是在(  )中执行的。

A、企业管理器                                            B、查询分析器

C、服务管理器                                            D、事件探查器

 

44.    当关系R和S自然联接时,能够把R和S原该舍弃的元组放到结果关系中的操作是(  )

A、左外联接                      B、右外联接

C、内联接                        D、全外联接

 

45.    在视图上不能完成的操作是( )

A.更新视图数据                    B.查询

C.在视图上定义新的基本表         D.在视图上定义新视图

 

46.    阅读下列代码,判断运行结果是(    )。

   Declare @sum int,@count int

   Select @sum=0,@count=1

   Label1:

   Select @sum=@sum+@count

    Select@count=@count+1

   if @count<=5

   Goto label1

   Select @count-1,@sum

    A5  15      B.5  10       C.4  15      D.4  10

 

三、填空题(每空1分,共20分)

1.        SQL Server 2008局部变量名字必须以____@_____开头,而全局变量名字必须以____@@_____开头。

 

2.        给变量@temp 赋值为b的语句有_______select @temp=b__________和____set @temp =b___________。

 

3.        执行存储过程proc_sample的语法为____exec proc_sample_____________。

 

4.        在SQL Server 2008中,数据库对象包括___表___、__视图____、触发器、过程、列、索引、约束、规则、默认和用户自定义的数据类型等。

 

5.   在E-R图中,用__矩形__表示实体,用_菱形_____表示联系,用___椭圆形__表示属性。

 

6.        语句 select  datediff(hour,'05/04/2013',’5/6/2013’)的执行结果是: __48_______。

 

7.        检索姓名字段中含有'娟'的表达式为 姓名like    ‘%娟%’     

 

8.        ______实体完整性_______用于保证数据库中数据表的每一个特定实体的记录都是惟一的。

 

9.        索引的类型有____聚集索引__________和非聚集索引。

 

10.    SQL语言主要由_______DDL_________、_______DML________和数据控制语言(DCL)组成。

 

11.    SQL Server登录身份验证模式类型有___Windows认证______和____Windows和SQL Server混合认证_____两种。

 

12.    事务的4个属性:原子性、一致性、___隔离____性和____持久___性。

 

13.    ____存储过程___是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。

 

14.    ____关系完整性____是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。

 

15.    HAVING子句与WHERE子句很相似,其区别在于:

WHERE子句作用的对象是_____表和视图_________,HAVING子句作用的对象是______组__________。

 

16.    建立和使用____约束____的目的是为了保证数据的完整性。

 

17.    BACKUP命令是对数据库进行____备份______,RESTORE命令是对数据库进行_____还原_____。

 

18.    SQL Server 2008提供的数据库备份类型有___完整____备份和____差异____备份、_____事务日志_______备份。

 

三:编程题

1. 创建数据库。要求用SQL语句创建满足如下要求的数据库:

(1) 数据库名称为School;

(2) 主数据文件:逻辑名为SchoolData,文件名为“D:\ School\SchoolData.mdf”,文件初始大小为50MB,文件的最大大小不受限制,文件的增长率为20%。

(3) 日志文件:逻辑名为SchoolLog,文件名为“D:\ School\SchoolLog.ldf”,文件初始大小为10MB,文件的最大大小为50MB,文件的增长率为1MB;

 

--创建数据库

create database  school

on primary

(

 name='schoolData',

 filename='D:\school\schoolData.mdf',

 size=50MB,

 filegrowth=20%

)

 

log on

(

    name='schoolLog',

    filename='D:\school\schoolLog.ldf',

    size=10MB,

    maxsize=50MB,

    filegrowth=1MB

)

 

2. 创建数据类型和表,增加约束。

(1)表tblstudent(学生表):

列名

数据类型

可空性

约束

备注

stuID

bigint

非空

primary key

学号

stuName

nvarchar(10)

非空

 

姓名

stuSex

nchar(1)

非空

只能是‘男’或‘女’

性别

stuBirth

datetime

可空

小于系统当前时间getdate()

出生日期

stuNum

nvarchar(18)

可空

Unique

身份证号

Departed

Int

可空

 

系号

City

nvarchar(10)

可空

默认是‘成都’

城市

stuTelphone

Char(11)

可空

 

电话

说明:type_telphone是自定义类型,要求自己创建,使用系统数据类型char(11),可空。

--创建表

--自定义类型

exec sp_addtype Type_telphone,'char(11)',NULL,NULL

use school

create table  tblstudent(

    stuID bigint  not null,--学号

    stuName nvarchar(10)  notnull,--姓名

    stuSex nchar(1) not null  CONSTRAINT   CK_Sex  Check(stuSexin('','')),--条件约束,性别

    stuBirth datetime   Unique CONSTRAINT  CK_Bir   Check(stuBirth<=getDate()),--唯一约束,生日

    stuNum nvarchar(18)  Unique,--身份证

    Departed int, --系号

    City nvarchar(10)  Default('成都'),--城市

    stuTelephone Type_telphone, --电话

    PRIMARY KEY(stuID)

       )

(2)表tblscore(成绩表):

列名

数据类型

可空性

约束

备注

stuID

bigint

非空

foreign key 引用tblstudent中的stuID

学号

Math

Int

可空

0~100分

数学

English

Int

可空

0~100分

英语

Computer

Int

可空

0~100分

计算机

Summary

Int

可空

 

总分

create table  tblscore

(

    stuID bigint not null,--学号

    Math int CONSTRAINT CK_Math Check(Math<= 100andMath>= 0),--数学

    English int CONSTRAINT CK_English Check(English<= 100andEnglish >= 0),--英语

    Computer int CONSTRAINT CK_Computer  Check(Computer<= 100andComputer >= 0),--电脑

    Summary int, --CONSTRAINT INTCK_Summary Check(Summary = Math + English + Computer),

    FOREIGN KEY(stuIDREFERENCES tblstudent(stuID)

)

(3)表tblteacher(教师表):

列名

数据类型

可空性

约束

备注

teaID

Int

非空

primary key

学号

teaName

nvarchar(10)

非空

 

姓名

teaSex

nchar(1)

非空

只能是‘男’或‘女’

性别

teaTelphone

Char(11)

可空

 

电话

create tabletblteacher

(

    teaID int  not null,--学号

    teaName nvarchar(10)notnull,--姓名

    teaSex nchar(1) not null CONSTRAINT  CK_teaSexCheck(teaSexin('','')),

    teaTelphone Type_telphone

   

)

 

 

3. 用SQL语句给表插入如下数据。

(1)表tblstudent(学生表):

stuID

stuName

stuSex

stuBirth

stuNum

departID

city

stuTelphone

1001

赵毅

1990-1-1

510111199001014279

1

成都

13888888888

1002

钱尔

1993-2-2

110008199302022325

2

北京

null

1003

孙山

1989-3-9

510111198903092619

2

成都

13333333333

 

insert into tblstudent(stuID,stuName,stuSex,stuBirth,stuNum,Departed,City,stuTelephone)

values

    ('1001','赵毅','','1990-1-1','51011199001014279','1','成都','13888888888')

INSERT INTO

    tblstudent(stuID,stuName,stuSex,stuBirth,stuNum,Departed,City,stuTelephone)

SELECT

    '1002','钱尔','','1993-2-2','110008199302022325','2','北京',null

UNION ALL

SELECT

       '1003','孙山','','1989-3-9','510111198903092619','2','成都','13333333333'

(2)表tblscore(成绩表):

stuID

Math

English

computer

summary

1001

70

80

90

null

1002

45

55

60

null

 

   

INSERT INTO  tblscore(stuID,Math,English,Computer,Summary)

SELECT

    '1001','70','80','90',null

UNION ALL

SELECT

    '1002','45','55','60',null

 

(3)表tblteacher(教师表):

teaID

teaName

teaSex

teaTelphone

102

李丝

13987654321

203

王武

13012345678

INSERT INTO  tblteacher(teaID,teaName,teaSex,teaTelphone)

SELECT

    '102','李丝','','13987654321'

UNION ALL

SELECT

    '203','王武','','13012345678'

 

 

 

4. 更新总分=数学+英语+计算机。

 

update tblscoresetSummary= Math + English+Computer;

 

5. 找出所有系的男生,显示学号、姓名、性别及系号。

SELECT stuID,stuName,stuSex,Departed  FROM tblstudent  WHERE stuSex='';

 

6. 找出总成绩最高的学生的学号和姓名。

SELECT stuID,stuName  FROMtblstudent

WHERE stuID=(

               SELECTstuID FROM tblscoreWHERE Summary =

                 (

                    SELECT MAX(SummaryFROM  tblscore

               )

               )

 

 

 

7.统计男生女生人数。

select tblstudent.stuSex,count(stuSexfrom  tblstudent wherestuSex ='GroupbystuSex

select tblstudent.stuSex,count(stuSexfrom  tblstudent wherestuSex='GroupbystuSex

 

 

8. 创建视图vwStudentTeacher,要求显示所有教师和学生的姓名和电话。

--GO

--CREATEVIEW  vwStudentTeacher(stuName,stuTelephone, teaName, teaTelephone)

--AS

--SELECTstuName, stuTelephone, teaName, teaTelphone FROM tblstudent, tblteacher

 

CREATE VIEW   vwStudentTeacher(name,tel)

AS

SELECT stuName  ASNAME,stuTelephone AStelFROM tblstudent

UNION ALL

SELECT teaname ASNAME,teaTelphone AStelfrom  tblteacher

 

 

9.在创建存储过程proGetNamebyID。此存储过程根据学生ID得到学生姓名。

GO

CREATE PROCEDUREproGetNamebyID@stuIDbigint

AS

SELECT stuNameFROMtblstudentWHERE @stuID=stuID

 

 

 

10.创建一个事务,当插入tblscore表math字段值大于100的一条记录时,插入不能成功,并回滚操作

begin transaction controlMathCol

save transaction  myStatus

    insert into  tblscore(Math)  values(200)

    if @@ERROR<> 0

        begin

            print '遇到错误回滚'

            waitfor delay '0:00:30'

            rollback transaction myStatus

        end

    else

        begin

            print  '操作完毕'

        end

    commit transaction   controlMathCol

 

11.创建标量函数:函数名:fnGetLevelbySum,参数:@summary,返回值:@Level。总分>=240为优;210<=总分<240为中;180<=总分<210为及格;总分<180为不及格。

go

    create function fnGetLevelbySum(@summary int)

    returns varchar(10)

    begin

        declare @funRes varchar(10)

        if @summary>= 240 set@funRes=''

        if @summary> 210 and @summary< 240set @funRes =''

        if @summary> 180 and @summary< 210set @funRes ='及格'

        if @summary< 180 and @funRes='不及格'

        return @funRes

    end

 

  • 22
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、选择题:(20分) 1、根据关系数据基于的数据模型——关系模型的特征判定下列正确的一项:(___) A、只存在一对多的实体关系,以图形方式来表示。 B、以二维表格结构来保存数据,在关系表中不答应有重复行存在。 C、能体现一对多、多对多的关系,但不能体现一对一的关系。 D、关系模型数据库数据库发展的最初阶段。 2、在“连接”组有两种连接认证方式,其在(___)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。 A、Windows身份验证 B、SQL Server 身份验证 C、以超级用户身份登录时 D、其他方式登录时 3、SQL Server 2000 在安装之前,应留意的事项:(___) A、SQL Server 2000的任何版本在安装时都不用考虑操作系统的制约。 B、SQL Server 2000的安装对硬件的要求不作任何限制。 C、SQL Server 2000 在安装之前,必须在操作系统级启用TCP/IP。 D、在Windows NT Server 4.0上安装SQL Server 2000时,最低的要求是必须安装Service Pack 4(SP4)以上。 4、关系数据库,主键是(1___),主键的建立有(2___)种方法,当运用Transact-SQL语句创建主键时,可以是(3___)。 ⑴ A、为标识表中唯一的实体 B、创建唯一的索引,答应空值 C、只答应以表中第一字段建立 D、答应有多个主键的 ⑵ A、一 B、二 C、三 D、四 ⑶ A、create table table1 (column1 char(13) not null primary, column2 int not) on primary; B、alter table table1 with notcheck add constraint [PK_table1] primary key nonclustered ( column1) on primary; C、alter table table1 column1 primary key ; 5、表在数据库是一个非常重要的数据对象,它是用来(1___)各种数据内容的,数据库创建后就可以创建表了,创建表可以用(2___)等方法来创建。 ⑴ A、显示 B、查询 C、存放 D、检索 ⑵ A、企业治理器 B、查询分析器 C、OSQL D、企业治理器和CREATE TABLE语句 6、为数据表创建索引的目的是(1___),可以在创建表时用(2___)来创建唯一索引,也可以用(2___)来创建唯一索引。 ⑴ A、提高查询的检索性能 B、创建唯一索引 C、创建主键 D、归类 ⑵ A、设置主键约束,设置唯一约束 B、Create table,Create index C、设置主键约束,Create index D、以上都可以 7、 在Transact-SQL语法,用来插入数据的命令是(___),用于更新的命令是(___)。 A、INSERT,UPDATE B、UPDATE,INSERT C、DELETE,UPDATE D、CREATE,INSERT INTO 8、在Transact-SQL语法,SELECT语句的完整语法较复杂,但至少包括的部分(1___),使用要害字(2___)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3___),假如在SELECT语句使用集合函数时,一定在后面使用(4___)。 ⑴ A、SELECT,INTO B、SELECT,FROM C、SELECT,GROUP D、仅SELECT ⑵ A、DISTINCT B、UNION C、ALL C、TOP ⑶ A、JOIN B、UNION C、INTO C、LIKE ⑷ A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE 9、视图是一种常用的数据对象,它是提供(1___)和(1___)数据的另一种途径,可以简化数据库操作,当使用多个数据表来建立视图时,表的连接不能使
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小巫技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值