数据库复习及联系资料

更新时间:2024-05-25 17:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一单选题

1.( B )是存储在计算机内有结构的数据的集合。

A.数据库系统 B.数据库 C.数据库管理系统 D.数据结构

2. 吗,。、。,美女出现在现场,。、。,mnvxzzxc, 3.数据定义语言的缩写词为 ( A )。 A.DDL B.DCL C.DML D.DBL

4.数据操作语言的缩写词为 ( C )。 A. DDL B.DCL C.DML D.DBL

5.数据控制语言的缩写词为 ( B )。 A.DDL B.DCL C.DML D.DBL

6.数据查询语言的缩写词为 ( D )。 A.DDL B.DCL C.DML D.DQL

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

A.DBMS B.DB C.DBS D.DBA

8.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作,这种功能称为 ( C )。

A.数据定义功能 B.数据库管理功能 C.数据操纵功能 D.数据控制功能

9.层次型、网状型和关系型数据库划分原则是( D ) 。 A.记录长度 B.文件的大小 C.联系的复杂程度 D.数据之间的联系

10.SQL语言中,删除数据库的命令是( B )。

A. DELETE B. DROP C. CLEAR D. REMOVE

11.根据关系模式的完整性规则,一个关系中的主键(C )。

A.不能有两个字段设为一个主键 B.不能成为另一个关系的外部键 C.不允许空值 D.可以取空值

12.关系数据库中,外键是(C)。

A)在一个关系中定义了约束的一个或一组属性 B)在一个关系中定义了缺省值的一个或一组属性

C)在一个关系中的一个或一组属性是另一个关系的主码 D)在一个关系中用于唯一标识元组的一个或一组属性

13.在关系模型中,实现\关系中不允许出现相同的元组\的约束是通过__B____。 A、候选键 B、主键 C、外键 D、超键

14.下列四项中说法不正确的是( C )

A.数据库减少了数据冗余(重复) B.数据库中的数据可以共享 C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性

15.如果强制要求grades表中的学员必须是Students表中存在的学员,以下描

述正确的是( A )。

A. 在grades表中创建外键约束 B. 在grades表中创建检查约束 C. 在grades表中创建唯一约束 D. 在grades表中创建默认约束

16.创建表的外键约束使用哪个关键字:(C)

A check B primary C foreign D rull

17.查看建表语句的写法为( D )

A,select table t1 create; B,show select table t1 C,select table t1; D,show create table t1;

18.查看所有数据库的语句( A )

A,show databases B. show database C,select databases D. select database

19.在创建数据表的时候,如果要设置员工生日,应该使用的数据类型(A ) A、date B int C varchar D text

20.在数据库中,工资可以使用( B )数据类型来表示。

A、char B、float C、date D、varchar

21.已知有一个数据表 aa ,结构中包含两个字段,id 整型,name 字符型,则

下列的建表命令正确的是( D )。 A、delete table aa (id,name) ; B、create table aa(id,name);

C、drop aa(id int,name varchar(20));

D、create table aa(id int,name varchar(20));

22.创建表的检查约束使用哪个关键字( A )  A check B primary C foreign D rull

23.创建表的唯一约束使用哪个关键字(B )  A check B unique C foreign D rull

24.设有表EMP(职工号 enum,姓名ename,年龄eage,技能 tech)。如果设置

姓名不能为空则使用的约束为( C )

A. unique B. foreign key C.not null D .default

25.SQL语句中修改表结构的命令是___C___。

A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE

26.如果要对已存在的数据表N的ble字段后插入新的字段ns varchar(30),

则下列SQL语句正确的是( B )

A、add ns varchar(30)after ble on N;

B、alter table N add ns varchar(30)after ble ; C、alter table N change ns varchar(30)after ble ; D、alter table N add ns varchar(30)first ble;

27.若要将已存在的数据表aa 中的id 字段的数据类型修改为varchar(20),则

下列的sql命令正确的是( C ) A、modify aa id varchar(20);

B、alter table aa add id varchar(20); C、alter table aa modify id varchar(20); D、alter table aa drop id varchar(20);

28.如果要保存地址信息,下列(a)数据类型最合适.(选择一项)

a) varchar b) bit c) char d) binary

29.表stu共有sex,name, age其中列sex 的默认值是“男“,现有如下的SQL 语

句:INSERT INTO stu(sex, name,age) VALUES(,’张三’,21) 执行后的结果是( B )。

a) 执行成功,sex,name,age的值分别是:男,张三,21 b) 以上SQL语句不正确,执行失败

c) 执行成功,sex,name,age的值分别是XX,YY,NULL d) 执行成功,sex,name,age的值分别是NULL,XX,YY

30.设关系数据库中有一表S的结构为S(SN,CN,grade),其中SN为学生的姓

名,CN为课程名称,二者均为字符型,grade为成绩,是数值型,若要把“张二的化学成绩80分”插入S中,则可用( D ) A、add into S values(‘张二’,’化学’,‘80’); B、insert into S value(‘张二’,’化学’,‘80’); C、add into S values(‘张二’,’化学’,80); D、insert into S values(‘张二’,’化学’,80);

31.设关系数据库中有一表S的结构为S(SN,CN,grade),其中SN为学生的姓

名,CN为课程名称,二者均为字符型,grade为成绩,是数值型,先要更正张二的化学成绩为85分,则可用( A )

A、UPDATE S SET grade=85 WHERE SN=‘张二’AND CN=‘化学’; B、UPDATE S SET grade=‘85’WHERE SN=‘张二’OR CN=‘化学’; C、UPDATE SET grade=85 WHERE SN=‘张二’AND CN=‘化学’;

32.在SQLServer中,学生信息表Student中包含下面的字段:学号(SID),主键,自动编号;姓名(SName),非空;现将表中学号为5的学生姓名改为“Mike”,下面T-SQL语句正确的是().(选择一项)

a.update Student set SName=’Mike’ where SID=5 b.update Student set SID=5 where SName=’Mike’ c.update SName=’Mike’ where SID=5 d.update SID=5 where SName=’Mike’

33.若要删除表S中所有的编号(id)为偶数的记录可使用( A ) A.delete from S where id%2=0 B. update table S C.truncate S D. drop table S where id%2=1;

34.DELETE FROM S WHERE 年龄>60语句的功能是__A____。

A、从S表中彻底删除年龄大于60岁的记录 B、S表中年龄大于60岁的记录被加上删除标记 C、删除S表

D、删除S表的年龄列

35.若要删除表S中所有的编号(id)为偶数的记录可使用( A ) A.delete from S where id%2=0 B. update table S C.truncate S D. drop table S where id%2=1;

36.在SQLServer中,已知建立关系的学生表(主表)和成绩表(从表),现在

想删除成绩表,则以下说法中正确的是(a).(选择一项) a.直接删除成绩表就可以了

b.应当先清除学生表里的数据,再删除成绩表 c.应当先清除成绩表中的数据,然后再删除成绩表 d.应当先删除学生表,再删除成绩表

37.已知关系:学生表stu(学号id,姓名name,籍贯address,年龄age,电话

tel),下列说法错误的是( C ) A、查询年龄大于18岁的学生姓名

select name from stu where age>18; B、查询没有电话的学生信息

select * from stu where tel is null; C、查询籍贯是河北,河南,山西的学生姓名

select name from stu where address in ('河北','河南','山西'); D、查询籍贯不是河北,河南,山西的学生姓名

select name from stu where address not in('河北','河南','山西')

38.已知员工表emp(empno,ename,job,sal)其中empno 员工编号,ename 员工姓

名,job员工的职位,sal员工的工资。查询所有员工的姓名和工资,则正确的sql语句是( B )

A、select ename,sal on emp; B、select ename,sal from emp; C、select emp from ename,sal; D、select emp(ename,job)

39.在SQLServer中,DEFAULT关键字用来表示(a)约束.(选择一项)

a) 默认值b) 非空c) 检查d) 外键

40.已知学生表S(SN,SNAME,SAGE) 其中SN是学号,SNAME学生姓名,SAGE

学生年龄。若要查询年龄不能被3整除的学生的信息的SQL语句为( C ) A、 select * from S having SAGE/3!=0 ; B、select * from S having SAGE%3==0 ; C 、select * from S where SAGE%3!=0 ; D 、select * from S having SAGE%3!=0;

41.表示职称为副教授同时性别为男的表达式为( B )

A. 职称='副教授' OR 性别='男' B. 职称='副教授' AND 性别='男' C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')

42.表示职称为不是副教授同时性别不是男的表达式为( B )

A. 职称!='副教授性别!='男' B. 职称!='副教授' AND 性别!='男' C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')

43.已知学生表S(SN,SNAME,SAGE) 其中SN是学号,SNAME学生姓名,SAGE

学生年龄。若要查询年龄不能被3整除的学生的信息的SQL语句为( C ) A、 select * from S having SAGE/3!=0 ; B、select * from S having SAGE%3==0 ; C 、select * from S where SAGE%3!=0 ; D 、select * from S having SAGE%3!=0;

44.学生表S、课程表C和学生选课表SC,它们的结构如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN)

SC(S#,C#,GRADE)

其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。 检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是。 (A ) A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”)

B.SELECT SN,AGE,SEX FROM S WHERE SN=“王华” C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN=“王华”) D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华.AGE

45.参考上题表结构,检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是。(D)

A.SELECT S# FORM SC WHERE C#=“C2” AND GRAD>=(SELECT GRADE FORM SC WHERE C#=“C2”)

B.SELECT S# FORM SC WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC WHERE C#=“C2” AND GRADE NOT IN(SELECT GRADE FORM SCWHERE C#=“C2”) D.SELECT S# FORM SC WHERE C#=“C2” AND GRADE>=ALL(SELECT GRADE FORM SCWHERE C#=“C2”)

46.参考上题表结构,检索学生姓名及其所选修课程的课程号和成绩。正确的

SELECT语句是(C)

A.SELECT S.SN,SC.C#,SC.GRADE FROM S WHERE S.S#=SC.S# B.SELECT S.SN,SC.C#,SC.GRADE FROM SC WHERE S.S#=SC.GRADE C.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC WHERE S.S#=SC.S# D.SELECT S.SN,SC.C#,SC.GRADE FROM S.SC

47.已知员工表emp(empno,ename,job,sal)其中empno 员工编号,ename 员工姓

名,job员工的职位,sal员工的工资。若要查看工资大于2000的员工的信息,则正确的sql语句是 (B) A、 select * from emp;

B、select * from emp where sal>2000; C 、select * emp where sal>2000 ; D 、select * from emp sal>2000;

48.在某SQL Server数据库中,要将PhoneBook(Id,Name,PhoneNo)表备份到新表

PhoneBookHistory表中,其中新表尚未创建,要求备份后表结构和数据与原表一致。可能正确的SQL语句是(b )。 (选择一项) a) SELECT INTO Id,Name,PhoneNo PhoneBookHistory FROM PhoneBook

b) SELECT Id,Name,PhoneNo INTO PhoneBookHistory FROM PhoneBook

c) INSERT INOT PhoneBookHistory SELECT*FROM PhoneBook

d) INSERT PhoneBookHistory INTO SELECT * FROM PhoneBook

49. 如下SQL语句( a ) 能实现新表 Tab2,并将数据表Tab1 中id、name、email

列作为Tab2表的列,并且把查询到的数据全部插入新表中。 a.SELECT Tab1.id,Tab1. name,Tab1.email

INTO Tab2 FROM Tab1

b.SELECT Tab1. id,Tab1.name,tab1.email FROM Tab1 INTO Tab1

c.INSERT Tab1 id,Tab1.name,Tab1.email into Tab1 FROM Tab2

d.INSERT Tab1.id, Tab1,name,Tab1.email FROM Tab1 INTO Tab2

50.执行语句select if(1>2,2,3),if(1<2,’yes’,’no’);结果显示( C )

A、2,yes B、3,no C、3,yes D、2,no

51.执行语句select if(length(‘love’)=4,’continue’,’exit’);结果显

示( A )

A、continue B、exit C、4 D、love

52.已知员工表emp(empno,ename,job,sal)其中empno 员工编号,ename 员工姓名,job员工的职位,sal员工的工资。查询工资sal大于3000职位为manager的员工信息的SQL语句为( B )

A、select * from emp where sal >3000 or job=’manager’; B、select * from emp where sal >3000 and job=’manager’; C、select * from emp where sal >3000 ,job=’manager’; D、select * from emp where sal >3000 or job!=’manager’;

53.已知员工表emp(empno,ename,job,sal,comm,deptno)其中empno 员工编号,

ename 员工姓名,job员工的职位,sal员工的工资,comm 奖金,deptno 员工所在部门编号。查询奖金为空的员工信息,则正确的sql语句是(D) A、select * from emp where comm=null;

B、select * from emp where comm is not null; C、select * from emp where comm <>null; D、select * from emp where comm is null;

54.表示职称为副教授同时性别为男的表达式为( B )

A. 职称='副教授' OR 性别='男' B. 职称='副教授' AND 性别='男' C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')

55.表示职称为不是副教授同时性别不是男的表达式为( B )

A. 职称!='副教授性别!='男' B. 职称!='副教授' AND 性别!='男' C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')

56.已知学生表S(SN,SNAME,SAGE) 其中SN是学号,SNAME学生姓名,SAGE

学生年龄。若要查询年龄不能被3整除的学生的信息的SQL语句为( C ) 

A、 select * from S having SAGE/3!=0 ; B、select * from S having SAGE%3==0 ; C 、select * from S where SAGE%3!=0 ; D 、select * from S having SAGE%3!=0;

57.在SQLServer中,学生信息表Student中包含下面的字段:学号(SID);姓

名(SName),非空;地址(SAddress);要求查询地址为空的前五个学生的姓名,下面T-SQL语句正确的是(a).(选择一项)

a.select top 5 SName from Student where SAddress is null b.select SName top 5 from Student where SAddress is empty c.select top 5 SName from Student where SAddress is empty d.select SName top 5 Student where SAddress is numm

58.有学生成绩表SC(SN学号,CN课程号,grade成绩),查询学生成绩表,根据成绩和学号降序排列显示的,正确的SQL语句为( D )

A、select * from SC order by grade,SN asc; B、select * from SC order by “SN” asc; C、select * from SC order by SN desc,grade; D、select * from SC order by grade desc,sn desc;

59.使用SELECT查询数据时,以下哪一子句排列的位置最靠后(B )

A.where B.order by C.group by D.having

60.有学生成绩表SC(SN学号,CN课程号,grade成绩),查询学生成绩表,根

据成绩和学号降序排列显示的,正确的SQL语句为( D ) A、select * from SC order by grade,SN asc; B、select * from SC order by “SN” asc; C、select * from SC order by SN desc,grade; D、select * from SC order by grade desc,sn desc;

61.学生信息表Student中包含下面的字段,学号(SID),姓名(SName),年龄(SAge),根据年龄从大到小对学生排序,正确的T-SQL语句是(a).(选择一项)

a) SELECT * FROM Student ORDER BY SAge DESC b) SELECT * FROM Student Group BY SAge DESC c) SELECT * FROM Student ORDER BY SAge ASC d) SELECT * FROM Student Group BY SAge ASC

62.有学生成绩表SC(SN学号,CN课程号,grade成绩),查询学生成绩表,根据成绩和学号降序排列显示的,正确的SQL语句为( D ) A、select * from SC order by grade,SN asc;

B、select * from SC order by “SN” asc;

C、select * from SC order by SN desc,grade; D、select * from SC order by grade desc,sn desc;

63. 1) 下列SQL语句,横线处填写(c)可以实现查询年纪总人数超过20的年

级。

SELECT AS 人数,Sgrade AS 年级 FROM students Sgrade

COUNT(*)>20 (选择一项)

a) COUNT(*)、GROUP BY、WHERE b) COUNT(*)、ORDER BY、WHERE c) COUNT(*)、ORDER BY、HAVING d) COUNT(*)、GROUP BY、HAVING

64.编写SQL语句时,可以通过(b)指定查询升序排列。 (选择一项) a) DESC b) ASC c) ORDER BY d) GROUP BY

65.执行以下SQL语句:SELECT TOP 20 PERCENT SName,SAge,SAddress FROM

Students结果返回了40行数据,则(b )。 (选择一项) a.表Students中有180行数据b.表Students中有200行数据 c.表Students中有20行数据d.表Students中有100行数据

66.SQL语言中,条件表示年龄在40至50之间的表达式为 ( B )。

A. IN (40,50) B. BETWEEN 40 AND 50 C. BETWEEN 40 OR 50 D. BETWEEN 40 ,50

67.下列sql语句能够正确执行的是(A )

A、 select * from teacher where name in('test','test2'); B、 select * from teacher where name ('test','test2');

C、 select * from teacher where name not in('test','test2'); D、 select * from teacher where name !=('test','test2');

68.在SQL语句中,与表达式\仓库号 NOT IN(\)\功能相同的表达式是 ( B )

A)仓库号=\仓库号=\B)仓库号!=\仓库号!= \ C)仓库号=\仓库号=\

D)仓库号!=\仓库号!=\

69.查询emp表中ename中不含有字母h的员工的信息的SQL语句为( D )

A、select * from emp where ename like ‘_h_’;

B、select * from emp where ename not like ‘_h_’;

C、select * from emp where ename like ‘%h%’; D、select * from emp where ename not like ‘%h%’;

70.下面sql语句是子查询的是(B)

A、 select * from emp where ename in (‘smith’,‘john’); B、 select * from emp where deptno in (select deptno from emp where ename=’smith’)and ename!=’smith’;

C、select * from emp where ename like ‘%h%’;

D、select * from emp where ename =‘smith’or ename=‘john’;

71.有一个SQL语句为select * from fruits where price=20 or price=30 or

price=35; 则下列语句中与其等同的是( B )

A. select * from fruits where price = (20,30,35) ; B. select * from fruits where price in (20,30,35); C. select * from fruits where price!=20 or 30 or 35; D. select * from fruits where price!=20 and price!=30 and price!=35;

72.SQL语言中,条件表示年龄在40至50之间的表达式为 ( B )。

A. IN (40,50)

B. BETWEEN 40 AND 50 C. BETWEEN 40 OR 50 D. BETWEEN 40 ,50

73.如下SQL语句横线处填写(a)能实现查询表Person中姓“李”的数据,并

且name列表查询后显示为“姓名”。_________id,name________姓名,address___________Person WHERE name‘李%’ a) SELECT、AS、FROM b) SELECT、=、FROM c) DELETE、AS、FROM d) DELETE、=、FROM、

74.T-SQL中的通配符一般与LIKE关键字一起使用,以下通配符(a)表示单个字符(选择一项)

a) - b) % c) [] d) {^}

75.下列SQL语句,横线处填写( a )可以实现查询成绩在60(含) 到80(含)之间的学员姓名.

SELECT name FROM students WHERE

a) score BETWEEN 60 AND 80 b) score BETWEEN 80 AND 60 c) 60<=score<=80 d) score in(60,80)

76.下列不属于聚合函数的是(A )

A.round() B.sum() C.avg() D.count()

77.SELECT FLOOR(-14.7), FLOOR(14.7) ( A )

A、-15,14 B、-15,15 C、-14,14 D、-14,15

78.下面哪个可以是用来获取当前日期的函数( B )

A、currentdate() B、current_date() C、current_year() D、current_month()

79.下面哪个函数是mysql获取当前日期的函数( C ) A、addyear() B、month() C、localtime() D、year()

80.下列集函数中不忽略空值(NULL)的是(A)

A、COUNT(*) B、MAX(列名) C、SUM(列名) D、AVG(列名)

81.运行一下SQL语句,将输出( c )

SELECT REPLACE('你好,我是Tom','你','您') a) 你好,我是Tom b) 你您好,我是Tom c) 您好,我是Tom d) 您你好,我是Tom

82.T-SQL中要查询班级中年龄最大的学员,可能用到如下(a)函数(选择一项)

a) MAX() b) MIN() c) AVG() d) SUM()

83.在SQL Server中,下列表达式为T-SQL模糊查询语句的一部分,其中(b )

可用于从数据库表中查询全部地址(字段名为Address)中包含“海淀区”的信息。(选择一项)

a.Address like ‘海淀区’ b.Address like ‘%海淀区%’ c.Address like ‘海淀区%’ d.Address ‘海淀区%’

84.若想统计各个工种的人数与平均工资,正确的语句是(C)

A、select job,mgr,count(*),avg(sal) from emp group by job ; B、select job,ename,count(*),avg(sal) from emp group by job ; C、select job,count(*),avg(sal) from emp group by job ; D、select job,count(*) from emp group by job ;

85.下面关于子查询叙述正确的是( A )

A、子查询是一个查询语句嵌套在另一个查询语句内部的查询。 B、子查询不可以使用比较运算符 C、子查询只会产生一个值

D、一个select语句中只能包含嵌套一层

86.关于子查询与操作符的使用,说法不正确的是(A)

A、子查询不能和IN操作符结合使用 B、子查询可以和IN操作法结合使用 C、子查询可以和等于(=)操作符使用

87.若客户表customers表中有客户编号cust_id,客户名cust_name,客户地址

cust_email,若要查询和编号10003或10004的客户名相同的客户信息,正确的sql语句为(A) A、select * from customers where cust_name in (select cust_name from customers where cust_id in (10003,10004));

B、Select * from customers where cust_id in (select cust_id from customers where cust_id =10003 and cust_id=10004);

C、Select * from customers where cust_id in (select * from customers where cust_id =10003 and cust_id=10004);

D、select * from customers where cust_id in (select * from customers where cust_id in (10003,10004));

88.当子查询使用来自父查询的参数时,称为(A)。

A、相关子查询B、结果集C、嵌套子查询D、以上都不是

89. 若有客户表customers表,客户表中有cust_id,cust_name,cust_city,有订单表orders,orders表中有列order_num,order_date,cust_id,若要查询每个客户的订单总数,下列语句正确的是( C )

A、select cust_name,cust_city from customers where (select count(*) from orders where customers.cust_id=orders.cust_id); B、select cust_name,cust_city,(select count(*) from orders) as he from customers;

C、select cust_name,cust_city,(select count(*) from orders where customers.cust_id=orders.cust_id) as he from customers;

D、select cust_name,cust_city,(select count(*) from orders where cust_id=cust_id) as he from customers;

90.在带有ANY(SOME)或ALL谓词的子查询中,“查询工资比部门30的任意一个

员工的工资高的姓名、工资、 部门号”,以下sql语句表示正确的是( D ) A、select ename,sal,deptno from emp where salall(select sal from emp where deptno=30); D、select ename,sal,deptno from emp where sal>any(select sal from emp where deptno=30);

91.“查询年龄比部门30的任意一个员工的年龄高的姓名、工资、部门号”,以

下sql语句表示正确的是(A) A、select ename,age,deptno from emp where ageall(select age from emp where deptno=30); D、select ename,age,deptno from emp where age>any(select age from emp where deptno=30);

92.已知关系:学生表stu(学号id,姓名name,籍贯address,年龄age(int类

型),电话tel),若查询比李三年龄小的学生的信息,则正确的sql语句是(C)

A、select * from stu where age>‘李三’;

B、select * from stu where age in (select age from stu where name=‘李三’);

C、select * from stu where age < (select age from stu where name=‘李三’)

D、select * from stu where age >(select age from stu where name=‘李三’);

93.关于exists关键字说法正确的是(A)

A、EXISTS用于检查子查询是否至少会返回一行数据 B、exists可被in子句取代

C、NOT IN 的作用与 EXISTS 的作用一样,可以相互取代 D、以上说法都不正确

94.若想查询emp表中员工scott的上级领导的姓名,正确的是(C )

A、select worker.ename from worker,boss where worker.mgr=boss.empno or worker.ename='scott';

B、select worker.ename from worker,boss where worker.mgr=boss.empno and worker.ename='scott'; C、select boss.ename from worker,boss where worker.mgr=boss.empno and worker.ename='scott';

D、select boss.ename from worker,boss where worker.mgr=boss.empno;

95.有关系学生表s(sno,sname),课程表c(cno,cname),成绩表

sc(sno,cno,grade),若查询每个学生的学号,姓名,选修的课程名和成绩,正确的语句是( B )

A、select s.sno,s.sname,c.cname,sc.grade from c,sc where s.sno=sc.sno; B、select s.sno,s.sname,c.cname,sc.grade

from s, c,sc where s.sno=sc.sno and sc.cno=c.cno; C、select s.sno,s.sname,c.cname,sc.grade

from s,c where s.sno=sc.sno and sc.cno=c.cno;

D、select s.sno,s.sname,c.cname,sc.grade from s,sc where sc.cno=c.cno;

96.已知有表emp(empno,ename,sal,deptno),表dept(deptno,dname,

loc)其中两张表中的deptno都表示部门编号。若要实现连接查询,则查询的字段中表名不可省略的是(C)

A、empno B、ename C、deptno D、dname

97.已知有表emp(empno,ename,job,sal,deptno),其中empno 员工编号,

ename 员工姓名,job 职位,sal工资,deptno部门编号,要查询公司中干同种工作的员工姓名和职位(要求记录不重复),则正确的sql语句是( A )

A、select distinct e1.ename,e1.job from emp e1,emp e2 where e1.job=e2.job and e1.ename!=e2.ename;

B、select distinct ename, job from emp e1,emp e2 where e1.job=e2.job and e1.ename!=e2.ename; C、select distinct ename, job from emp e1,emp e2 where e1.job=e2.job ; D、select e1.ename,e1.job from emp e1,emp e2 where e1.job=e2.job ;

98.有关系学生表s(sno,sname),课程表c(cno,cname),成绩表

sc(sno,cno,grade),若查询学号为1001的学生的姓名,选修的课程名和成绩,正确的语句是(B )

A、select s.sname,c.cname,sc.grade from c,sc

where s.sno=sc.sno and s.sno=1001; B、select sname,c.cname,sc.grade from s, c,sc

where s.sno=sc.sno and sc.cno=c.cno and s.sno=1001; C、select s.sname,c.cname,sc.grade from s,c

where s.sno=sc.sno and sc.cno=c.cno and s.sno=1001; D、select s.sno,s.sname,c.cname,sc.grade from s,sc

where sc.cno=c.cno and s.sno=1001;

99.下列__D___不属于连接种类。

A. 内连接B. 交叉连接C. 左外连接D. 中间连接

100.有三个表,它们的记录行数分别是10行、2行和6行,三个表进行交叉连接

后,结果集中共有___C__行数据。 A. 18 B. 26C. 120 D. 不确定

101.在SQLServer中,有ProInfo(商品信息)表,字段如下:ProID(商品编号)、

ProCatg(商品类别)、ProName(商品名称)、ProPrice(商品价格),下列选项(a)可以查询每一类商品的平均价格.(选择一项)

a) select ProCatg,AVF(ProPrice) from ProInfo group by ProCatg b) select ProCatg.AVG(ProPrice) from ProInfo c) select Avg(ProPrice) from ProInfo

d) select AVG(ProPrice) from ProInfo Order by ProCatg

102. 下列SQL语句,横线处填写(b)可以实现查询年级总人数超过20的年级。

SELECT ______AS 人数,Sgrade AS 年级 FROM students _____Sgrade

_____COUNT(*)>20(选择一项) a.COUNT(*)、GROUP BY、WHERE b.COUNT(*)、ORDER BY、WHERE c.COUNT(*)、ORDER BY、HAVING d.COUNT(*)、GROUP BY、HAVING

103. 在SQLSERVER中,员工表employee包含字段:empId(员工编号),

empName(员工姓名),Salary(工资),deptId(部门编号),要求在员工表中查询至少有10名员工的工资高于5000的部门编号,则一下T-SQL语句正确的是( d ).(选择一项)

a) select deptId,count(*) from employee having salary>5000 group by empId where count(*)>=10

b) select deptId,count(*) from employee where salary>5000 group by empId

having count(*)>=10

c) select deptId,count(*) from employee having salary>5000 group by deptId where count(*)>=10

d) select deptId,count(*) from employee where salary>5000 group by deptId having count(*)>=10

104.关于内连接以下说法正确的是:( B )

A.内连接只能连接2张表

B.关键字inner join的inner 可以省略

C.内连接和外连接完全一样,可以相互取代 D.内联查询只能连接一张表;

105.关于内连接以下说法不正确的是:( D )

A.关键字on表示连接条件

B.关键字inner join的inner 可以省略

C.在连接 t1 inner join t2 on ? 语句中t1对应t2为空的信息不会出现在连接之后的表中

D.内联查询只能连接一张表

106.视图是一种常用的数据对象,它是提供()和( )数据的另一种途径,可以

简化数据库操作。(AB)

A、存放B、检索C、更新D、插入

107.有如下SQL语句create view stock_view as select * from stock where 交

易所=”深圳”执行该语句后产生的视图包含的记录个数是(B ) A.1 B.2 C.3 D.4.A

108.有如下SQL语句create view view_stock as select 股票名称 as 名称,

单价 from stock执行该语句后产生的视图含有的字段名是(B ) A.股票、名称、单价 B.名称、单价

C 名称、单价、交易所 D 股票名称、单价、交易所

109.视图是(A)

A、视图是一种虚表,不存放实际数据值 B、视图与表完全相同,是表的别名

C、视图既不是基本表也不是虚表,而是关系的图标 D、视图是一种物理模式,一旦建立,就不能被删除

110.关于创建视图的正确的说法是:(C)。

A、只能基于基表创建视图B、视图中存放着数据

C、视图就是一个虚拟表D、视图的删除使用delete view命令

111.使用SELECT语句随机地从表中挑出指定数量的行,可以使用的方法是(A)。

A. 在ORDER BY子句中使用RAND()函数,并用LIMIT子句定义行数

B. 在LIMIT子句中使用RAND()函数指定行数,并用ORDER BY子句定义一个排序规则

C. 只要在ORDER BY子句中使用RAND()函数,不使用LIMIT子句 D. 只要使用LIMIT子句定义指定的行数即可,不使用ORDER BY子句

102.在SQL Server中,以下( b )不属于日期函数。(选择一项)

a.GetDate()b.DateTime() c.DateADD() d.DateDIFF()

103.在SQL Server中,有一张产品表products,产品发布时间为字段time,现

在查询最近一年内发布的产品信息,则以下SQL语句正确的是(b)。 a) select*from products where dateadd(1,yy,time)>=GETDATE() b) select*from products where dateadd(yy,1,time)>=GETDATE() c) select*from products where dateadd(time,yy,1)>=GETDATE() d) select*from products where datediff(1,yy,time)>=GETDATE()

104.在SQL Server中,有一张新闻表news,新闻发布时间为字段begintime,现

在查询最近一月内发表的新闻信息,则以下SQL语句正确的是(b)。 a.select*from news where dateadd(1,mm,begintime)>=GETDATE() b.select*from news where dateadd(mm,1,begintime)>=GETDATE() c.select*from news where dateadd(begintime,mm,1)>=GETDATE() d.select*from news where datediff(1,mm,begintime)>=GETDATE()

105.在SQL Server中,日期函数用于操作日期值,以下(d )函数可取得 当前

的系统日期。 (选择一项)

a) DATEDIFF b) GETDAY c) DATEPARTd) GETDATE

106.在SQL语言中,建立存储过程的命令是(A)

A、CREATE PROCEDURE B、CREATE RULE C、CREATE DURE D、CREATE FILE

107.当第一个用户修改数据时,第二个用户在第一个用户没有确认修改之前读取

了该数据,这时可能会出现(A )。

A脏读数据 B不可重复读C发生幻象 D无法确定

108.一个事务中的所有操作要么全部完成,要么全部不完成,这表明事务具有( A )。

A原子性 B一致性 C隔离性 D持久性

109.多个事务之间的操作应当是互不影响,互不相干的,这表明事务具有( C )。

A原子性B 一致性C 隔离性D 持久性

110.如果要回滚一个事务,则要使用( B )语句。

A、 revoke B、rollback transaction C、commit transaction D、begin transaction

111.如果要阻止其它事务更改当前事务正在读取的数据,那么最恰当方法是对该

数据(B )。

A、加上共享锁 B、加上排他锁 C、加上更新锁 D、不封锁

112.在下列规模的数据库表中,建立索引提高查询速度最明显的是( D )。

A、100条记录B、1000条记录C、10,000条记录D、100,000条记录

113.当某一个用户对某一行数据进行多次读取过程中,另外一个用户对该数据行

进行了修改,从第一个用户的角度来看,会发生两次读取数据库中同 一个数据会出现不同的值。这种异常情况是( B )。

A、读脏数据B、不可重复读C、发生幻象 D、丢失修改

114.索引的顺序和数据表的物理顺序相同的索引是(C )。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引

115.UNIQUE惟一索引的作用是(D)。

A. 保证参加惟一索引的各列,不得再参加其他的索引。 B. 保证各行在该索引上的值不得为NULL。 C. 保证惟一索引不能被删除。

D. 保证各行在该索引上的值都不得重复。

二多选题

1.以下关于数据库说法正确是( ABCD ) A、数据库是由一批数据构成有序的集合

B、可以将数据库视为一个存储数据的容器 C、一个数据库可以包含多个数据表

D、对数据库进行查询和修改操作的语言叫SQL

2.当今主流的数据库有(ABD )

A、mysql B、oracle C、javascript D、sql server

3.数据库管理系统根据数据模型对数据进行存储和管理,数据库管理系统采用的

数据模型包括( BC )

A、直线模型 B、网状模型 C、关系模型 D、散点模型

4.SQL中DDL操作包含的关键字是(AB)

A,CREATE B,ALTER C,ADD D,DELETE

5.下列属于关系数据库的是(ABCD)

A,DB2 B, MYSQL C, SQL Server D,ORACLE

6.数据操纵语言包括(ABC)

A. insertB.update C.delete D.create

7.数据控制语言包括(AB)

A.GRANT B.REVOKE C.SELECT D.update

8.关系模式的外键可以有( C ),主键有( B )。 A.0个 B.1个 C.1个或多个 D.多个

9.下列关于约束的说法正确的是( ABC ) A、创建表时可以创建约束 B、主键约束是约束的一种 C、约束有列级约束和表级约束 D、不能再给创建好的表添加约束

10.下面属于SQL-SERVER中约束的是( AB )

A、not null B. primary key C.auto_increment D.order by

11.何时可以为数据表添加约束( AC )

A.在建表的同时为相应的数据列添加约束 B. 在建表的不能为相应的数据列添加约束

C.建表后创建,以修改表的方式来增加约束 D.只能创建表时,添加相应的约束

12.下列类型能够存储‘2014年3月8日’的是(BC) A,time B, datetime C,date D,year

13.下列能够存储家庭住址的类型为(BCD) A,int B,char C,varchar D,text

14.下列数据类型中可以用来存储年龄的是(ABCD) A,tinyint B, int C,bigint D,smallint

15.给数据库重命名会用到下列哪些关键字(AD) A,ALTER B,NAME C,CREATE D,RENAME

16.已知小明创建空数据表aa,表的包含两个字段分别为id int primary key,

name varchar(20),则下列数据可以插入的是( BC )

A、insert into aa values(1,’lucy’),(1,’lily’); B、insert into aa (id ,name) values(1,’lucy’),(2,’lily’); C、insert into aa (id ,name) values (4,null);

D、insert into aa (id ,name) values(’lucy’),(’lily’);

17.已知员工表emp(empno,ename,job,sal,comm,deptno),查询所有员工的信息,

按sal升序排序,正确的sql语句是(AB ) A、select * from emp order by sal asc ; B、select * from emp order by sal ; C、select * from emp order by sal desc ; D、select * from emp group by sal ;

18.在SQL SERVER中,下面关于子查询的说法你认为正确的是(cd )。 A. 应用简单子查询的SQL语句的执行效率比采用SQL变量的实现方案要低 B. 带子查询的查询执行顺序是,先执行父查询,再执行子查询

C. 表连接一般都可以用子查询替换,但有的子查询不能用表连接替换

D. 如果一个子查询语句一次返回二个字段的值,那么父查询的where子句中应该使用NOT EXISTS关键字

19.已知关系:

员工(员工号,姓名,部门号,薪水) PK=员工号 FK=部门号

部门(部门号,部门名称,部门经理员工号) PK=部门号 FK=部门经理员工号

现在要查询部门员工的平均工资大于3000的部门名称及平均工资,下面哪两句查询正确:(AC)。

A、SELECT 部门名称,AVG(薪水) FROM 部门 P,员工 E WHERE E.部门号=(SELECT部门号 FROM 部门 WHERE 部门名称 = P.部门名称) GROUP BY 部门名称 HAVING AVG(薪水)> 3000

B、SELECT 部门描述,AVG(薪水) FROM 部门 P INNER JOIN 员工 E ON P.部门号=E.部门号 GROUP BY 部门描述 WHERE AVG(薪水)> 3000

C、SELECT 部门描述,AVG(薪水) FROM 部门 P INNER JOIN 员工 E ON P.部门号=E.部门号 GROUP BY 部门描述 HAVING AVG(薪水)> 3000

D、SELECT 部门描述,AVG(薪水) FROM 部门 P,员工 E WHERE P.部门号=(SELECT部门号 FROM 部门 WHERE 部门名称 = P.部门名称) GROUP BY 部门名称 HAVING AVG(薪水)> 3000

20.已知关系:

员工(员工号,姓名,部门号,薪水) PK=员工号 FK=部门号

部门(部门号,部门名称,部门经理员工号) PK=部门号 FK=部门经理员工号

现在要查询部门员工的平均工资大于3000的部门名称及平均工资,下面哪两句查询正确:(AC)。A、SELECT 部门名称,AVG(薪水) FROM 部门 P,员工 E WHERE E.部门号=(SELECT部门号 FROM 部门 WHERE 部门名称 = P.部门名称) GROUP BY 部门名称 HAVING AVG(薪水)> 3000 B、SELECT 部门描述,AVG(薪水) FROM 部门 P INNER JOIN 员工 E ON P.部门号=E.部门号 GROUP BY 部门描述 WHERE AVG(薪水)> 3000 C、SELECT 部门描述,AVG(薪水) FROM 部门 P INNER JOIN 员工 E ON P.部门号=E.部门号 GROUP BY 部门描述 HAVING AVG(薪水)> 3000

D、SELECT 部门描述,AVG(薪水) FROM 部门 P,员工 E WHERE P.部门号=(SELECT部门号 FROM 部门 WHERE 部门名称 = P.部门名称) GROUP BY 部门名称 HAVING AVG(薪水)> 3000

21.请指出下列正确的内联结语句:(AD)。

A、SELECE a.CompanyName, b.OrderID FROM Customers a, Orders b where a.CustomerID = b.CustomerID B、SELECE a.CompanyName, b.OrderID FROM Customers a INNER JOIN Orders b WHERE ( a.CustomerID = b.CustomerID )

C、SELECE a.CompanyName, b.OrderID FROM Customers a FULL OUTER JOIN Orders b ON ( a.CustomerID = b.CustomerID )

D、SELECt a.CompanyName, b.OrderID FROM Customers a INNER JOIN Orders b ON ( a.CustomerID = b.CustomerID )

22.请指出下列正确的内联结语句:(AD)。

A、SELECE a.CompanyName, b.OrderID FROM Customers a, Orders b where a.CustomerID = b.CustomerID

B、SELECE a.CompanyName, b.OrderID FROM Customers a INNER JOIN Orders b WHERE ( a.CustomerID = b.CustomerID )

C、SELECE a.CompanyName, b.OrderID FROM Customers a FULL OUTER JOIN Orders b ON ( a.CustomerID = b.CustomerID )

D、SELECt a.CompanyName, b.OrderID FROM Customers a INNER JOIN Orders b ON ( a.CustomerID = b.CustomerID )

23.在SQL Server中,下面关于视图的描述,说法正确的是(AD )。 A. 使用视图可以筛选原始物理表中的数据,增加了数据访问的安全性 B. 视图是一种虚拟表,数据只能来自一个原始物理表 C. CREATE VIEW语句中可以包含UPDATE语句

D. 为了安全起见,一般只对视图执行查询操作,不推荐在视图上执行修改操作

24.视图一般不用于下列哪些语句( ABD )。

A、INSERT B、SELECT C、UPDATE D、DELETE

25.如果视图具有了 ( ABC )特征,则不能使用DML语句通过视图操纵数据。(选择三项)

A、 定义视图的FROM子句包括多张表,并且视图中的列来自多张表 B、 视图列是从聚集函数中得到的

C、 定义视图的SELECT语句包括了GROUP BY子句 D、 定义视图的 SELECT语句包括了DISTINCT关键字 E、 定义视图的SELECT语句是对一张表的全表查询

26.下面关于SQL Server中变量的操作正确的是( AD )。 A. DECLARE @name varchar(8) SET @name='lkl'

print '姓名是'+@name

B. DECLARE name varchar(8) SET name='lkl'

print '姓名是'+name

C. print @@VERSION AS '版本', @@SERVERNAME AS '服务器' D. SELECT @@VERSION AS '版本', @@SERVERNAME AS '服务器'

27.设有图书管理数据库:

图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单

价N(6,2))

读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20)) 借阅(借书证号C(4),总编号C(6),借书日期D(8))

对于图书管理数据库,要查询所藏图书中,各个出版社的图书最高单价、平均单价和册数,下面SQL语句不正确的是(ABC)(选择三项)。 SELECT 出版单位,______,______,______; FROM 图书管理!图书 ______ 出版单位

A、MIN(单价) AVGAGE(单价) COUNT(*) GROUP BY B、MAX(单价) AVG(单价) COUNT(*) ORDER BY C、MAX(单价) AVG(单价) SUM(*) ORDER BY D、MAX(单价) AVG(单价) COUNT(*) GROUP BY

28.sqlserver中成绩表grade中字段score代表分数,以下(CD)语句返回成绩

表中的最低分。(选择两项)

a)select max(score) from grade

b)select top 1 score from grade order by score asc c)Select min(score) from grade

d)select top 1 score from grade order by score desc

29.在SQL SERVER中,声明并创建以下存储过程,正确调用该存储过程的的语句

是( BC )

CREATE PROCEDURE PRO @passNum int OUTPUT, @passPoint int=60 AS

Select @passNum=count(*) From stuTable Where point >@passPoint GO

A. Declare @sum int EXEC PRO @passNum,70 B. Declare @sum int EXEC PRO @sum output,70 C. Declare @sum int EXEC PRO @sum output D. EXEC PRO 70

30.对同一存储过程连续两次执行命令DROP PROCEDURE IF EXISTS,将会( BD )。

A、 第一次执行删除存储过程,第二次产生一个错误 B、 第一次执行删除存储过程,第二次无提示 C、 存储过程不能被删除 D、 最终删除存储过程

31.触发器是响应以下任意语句而自动执行的一条或一组MYSQL语句( BCD)。A、SELECT B、INSERT C、UPDATE D、DELETE

32.在下面关于索引的描述中,( ABC )是正确的。(选择三项)

A、 索引能够加快查询的速度

B、 索引可能会降低数据 的更新速度

C、 当数据库表中数据越多时,索引所带来的查询优化效果越明显 D、 当数据库表中数据越少时,索引带来的查询优 化效果越明显 E、 在数据库表上建立的索引越多越好

33.是一个隐式事务的开始(AB)。(选择二项)

A、 SELECT语句 B、 CREATE语句

C、 BEGIN TRANSACTION D、 GRANT语句 E、 DROP语句

34.事务日志是每一个数据库都必须具有的,它用于记录对数据库所进行的( ACE )的操作。(选择三项)

A插入B、查询C、修改 D、备份 E 删除

35.事务日志是每一个数据库都必须具有的,它用于记录对数据库所进行的( ACE )的操作。(选择三项) A、插入B 查询C 修改D 备份E、 删除

三填空题

1.TIME( )的返回值的数据类型是___字符___类型

2.SQL-SERVER中的变量分为(全局变量)和(局部变量);

3.列举3个全局变量(@@error),(@@rowcount),(@@identity).

4.(GO)是SQLServer的批处理命令,只有代码编辑器才能识别并处理,编辑其他应用程序就不能使用该命令.

5.由于每个批处理之间是独立的,因此,在一个批处理出现错误时,(并不会影响)其他批处理中SQL代码的运行。

6.SQL-SERVER是一种 关系 型数据库,目前属于 ( 微软 ) 公司。

7.表是由行和列组成的,行有时也称为___记录___,列有时也称为____字段__或属性。

8.SQL是 ( 结构化查询语言 ) 。

9.SQL语言有4部分元素组成,分别是:____DDL___、____DQL___、_____DML____ 和______DCL_____。

10.打开指定数据库 use 库名 。

11.________ + __________ =数据完整性。

12.设置主键的关键字是 PRIMARY KEY。

13.如果有两张表分别的学生表stu(sno,sname, age,address), 津贴表

subs(sname,monsy),对于以上两张表,可以将stu表里的sname设为该表的 外键 ,将subs里的sname设为该表的 主键 键. 14.四种完整性约束包括:____________,__________________,______________,____________.

15.实体完整性约束包括:__________,___________,__________。

16.创建数据库StudentDB: CREATE DATABASE StudentDB。

17.删除如上数据库 DROP DATABASE StudentDB 。

18.若要删除表S中的所有记录可除了可以使用truncate S 以外还可以使用 DELETE from S;

19.在建表时,若要储存一个人的姓名,则数据类型可以设为 varchar 。

20.在SQL中用于查询的语句是 SELECT .

21.SQL-SERVER提供了两个转换函数是(cast())和(convert());

22.select char_length(‘egg’), char_length(‘你好’)的结果是( 3),( 2)。

23.CONVERT()与CAST() 的不同点是:(可以指定转换的样式)

24.写出两个常用的日期函数(datename()),(datepart())。

25.在SQL中,消除重复的关键字是( DZSTZNCT ),分组的关键字是(GROUP BY ).

26.若有关系学生表S(学号sno,姓名sname,年龄age,小组sgroup),查询表中各小组平均年龄的SQL语句为 select avg(age)from S ( group by) sgroup;

27.嵌套子查询分为______相关子查询____和_____不相关子查询_____。

28.通过外键约束可以为相关联的两个表建立联系,实现数据的___引用___完整性。

29.___内部联接___是指只有满足联接条件的记录才包含在查询结果中。

30.在外部连接中,存在两种基本类型的连接:(左外连接)或(右外连接) ,他们之间的唯一差别是所关联的表的顺序不同。

31.有视图v_student,删除此视图的写法是:( drop ) view v_student;

32.创建视图的语法:(CREATE VIEW view_name AS