1、HAVING字句中应后跟( B )
A、行条件表达式
B、分组条件表达式
C、试图序列
D、列名序列
2、数据定义语言的缩写词为( A )
A、DDL
B、DCL
C、DML
D、DBL
3、在SQL语言中,建立存储过程的命令为( A )
A、CREATE PROCEDURE
B、CREATE RULE
C、CREATE DURE
D、CREATE FILE
4、在SQL中,建立视图的命令为( C )
A、CREATE SCHEMA
B、CREATE TABLE
C、CREATE VIEW
D、CREATE INDEX
5、SQL的视图的数据是从( C )中产生的
A、基本表
B、视图
C、基本表或视图
D、数据库
6、从“产品”表里查询出(价格)高于(产品名为“一次性纸杯”)的产品的记录,此SQL语句为( D )
A、Select * from 产品 where 价格>’一次性纸杯’
B、Select * from 产品 where 价格>(select * from 产品 where 产品名称>’一次性纸杯’)
C、Select * from 产品 where exists (产品名称=’ 一次性纸杯’)
D、Select * from 产品 where 价格>(select 价格 from 产品 where 产品名称=’一次性纸杯’)
7、假设订单表orders用来存储的订单信息,cid代表客户编号,money代表单次订购额,现要查询每个客户的订购次数和每个客户的订购总金额,下面(D )sql语句可以返回正确结果。
A、Select cid,count(distinct(cid)),sum(money) from orders group by cid
B、Select cid,count(distinct(cid)),sum(money) from orders order by cid
C、Select cid,count(cid),sum(money) from orders order by cid
D、Select cid,count(cid),sum(money) from orders group by cid
8、实体关系中学生与任课教师之间具有( D )联系
A、一对一
B、一对多
C、多对一
D、多对多
9、在SQL中,建立索引用( C )命名
A、CREATE SCHEMA
B、CREATE TABLE
C、CREATE INDEX
D、CREATE VIEW
10、在 SQL Server 2008中,声明一个最多可以存储10个字符的变量pwd,正确的代码是(B )
A、DECLARE pwd VARCHAR(10)
B、DECLARE @pwd VACHAR(10)
C、pwd VARCHAR(10)
D、@pwd VARCHAR(10)
11、E-R图中,关系用下面( C )来表示
A、矩形
B、椭圆形
C、菱形
D、圆形
12、下面变量中属于T-SQL中用户自定义的变量是( B )
A、@@error
B、@number
C、Abc
D、num1
13、在数据库中查询数据,一般根据( C )查询速度较快
A、设置默认值的列
B、设置为外键的列
C、设置为主键的列
D、设置检查约束的列
14、分析下面的代码段,说法错误的是( D )(选择一项)
1. CREATE PROCEDURE proc_stuInfo
2. @stuName VARCHAR(10),
3. @n INT OUTPUT,
4. @stuAge=18 INT
5. AS
6. ….代码略
7. GO
8.
9. DECLARE @s INT
10. EXEC proc_stuInfo ‘张三’,@s,30
11. EXEC proc_stuInfo @stuAge=22,@stuName=’李四’,@n=@s OUTPUT
A、此代码段创建了一个存储过程,并测试调用此存储过程
B、第4行代码有误
C、第10行代码有误
D、第11行代码有误
15、关于存储过程,以下说法正确的是( A )
A、不能在存储过程中使用CREATE VIEW命令
B、T-SQL批代码的执行速度要快于存储过程
C、存储过程必须带有参数
D、存储过程不能返回结果集
16、现有书目表book,包含字段:price(float);现在查询一条书价最高的书目的详细信息,以下语句正确的是( BC )(选两项)
A、Select top1 * from book order by price asc
B、Select top1 * from book order by price desc
C、Select top1 * from book where price=(select max(price) from book)
D、Select top1 * from book where price=max(price)
17、现有订单表orders,包含数据如下表。若查询既订购了产品p01,又订购了p02的客户编号,可以执行以下( C )sql语句(选一项)
cid(顾客编号) Pid(产品编号)
C01 P01
C01 P02
C02 P01
C03 P02
A、Select distinct(cid) from orders o1 where o1.pid in (‘’P01,’P02’)
B、Select distinct(cid) from orders o1 where o1.pid=’P01’ and o1.pid=’P02’
C、Select distinct(cid) from orders o1 where o1.pid=’P01’ and exists(select * from orders where pid=’P02’ and cid=o1.cid)
D、Select distinct(cid) from orders o1,orders o2 where o1.pid=’P01’ and o2.pid=’P02’
18、下面T-SQL代码运行完的结果是( B )
declare @counter int
set @counter==1
while @counter<3
begin
set @counter=@counter+1
print @counter
break
print ‘loop’
end
A、2 loop
B、2
C、2 loop 3 loop
D、2 3
19、对以下语句描述不正确的是( B )
create view view_stuInfo
as
select stuName,stuNo,stuAddress from stuInfo
go
A、创建了一个命名为view_stuInfo的视图
B、只在一个表上不能创建视图,语法错误
C、此视图一般为班主任查询学员信息提供参考
D、可以用 select * from view_stuInfo查询stuInfo表所有学员的三个字段的信息
20、If not exists (select * from stuMarks where writtenExam>60 or labExam>60)
Update stuMarks set writtenExam=writtenExam+3,labExam=labExam+3
以上语句的功能是( D )
A、如果笔试或机试成绩有一项有人超过60分,则每人的笔试和机试成绩加3分
B、如果笔试或机试成绩都有人超过60分,则每人的笔试和机试成绩加3分
C、如果笔试或机试成绩有一项没人超过60分,则每人的笔试和机试成绩加3分
D、如果笔试或机试成绩没有一人超过60分,则每人的笔试和机试成绩加3分
21、执行下面得到语句输出正确的是(D )。(选择一项)
create proc MyProc
@mystuID varchar(8)=null
As
If @mystuID is null
Begin
print '没有传递任何参数'
return
end
select * from student where stuid=@mystuid
go
exec myproc
A、编译错误
B、调用存储过程myproc出现错误
C、显示空的学员信息记录
D、显示:没有传递任何参数
22、有一经商信息表distributors设计如下:
distri_num(经销商编号)
boss_name(负责人姓名)
company(公司名称)
city_code(所在城市)
address(公司地址)
23、请查询与“负责人为张三的经销商”在同一城市的所有经销商的数据。下面正确的是(A )
A、select * from distributors where city_code=
{select city_code from distributors where boss_name='张三'}
B、select * from distributors where boss_name='张三'
C、select * from distributors where city_code=
{select city_code,boss_name from distributors where boss_name='张三'}
D、select * from distributors where city_code Exists
{select city_code from distributors where boss_name='张三'}
24、现在如下两张表:
学生信息表
Student(StuID 学生编号StuName 学生姓名,StuAge学生年龄,StuPhone电话号码)
学生成绩表
Score(StuID 学生编号,Subject科目,Marks成绩)
现要求查询比张三JAVA成绩好的学生信息(C )
A、Select * from student where stuName='张三'
B、select * from student where stuid in(select stuid from score where [Subject]='java' and marks>(select marks from score where stuname='张三'))
C、select * from student where stuid in(select stuid from score where [Subject]='java' and marks>(select marks from score where [subject]='java' and stuid=(select stuid from student where stuname='张三')))
D、select * from student where stuid in(select stuid from score where [Subject]='java' and marks>(select marks from score where stuid=(select stuid from student where stuname='张三')))
25、从“产品”表里查询出价格高于产品名称为“海天酱油”的产品的记录,此SQL语句为( D)
A、SELECT * FROM 产品 WHERE 价格>海天酱油
B、SELECT * FROM 产品 WHERE 价格>(SELECT * FROM 产品 WHERE 产品名称>’海天酱油’)
C、SELECT * FROM 产品 WHERE EXISTS 产品名称=’海天酱油’);
D、SELECT * FROM 产品 WHERE 价格>(SELECT 价格 FROM 产品WHERE 产品名称=’海天酱油’)
26、在SQL Server数据库中,你想得到在products表中最贵的产品名称和价格应该使用的正确查询是(AC )
A、SELECT top 1 productname,Unitprice FROM products order by Uniprice Desc
B、SELECT productname,MAX(Unitprice ) FROM products
C、SELECT productname,Unitprice FROM products WHERE Unitprice=(SELECT MAX(Unitprice) FROM products)
D、SELECT productname,MAX(Unitprice ) FROM products ORDER By productname
27、以ABCDE五级打分来显示笔试成绩
1 Select 学号=stuNo,成绩=case
2 when writtenExam<60 then 'E'
3 when writtenExam between 60 and 69 then 'D'
4 when writtenExam between 70 and 79 then 'C'
5 when writtenExam between 80 and 89 then 'B'
6 else 'A’
7 end
8 from stuMarks
下述正确的说法是(A )
A、没有语法问题,可以正常执行
B、第一行不能用等号,语法有误
C、第六行语法有误
D、第七行‘end’可以不写
28、分析以下代码,说法正确的是(B )。(选择一项)
Select * from stuInfo where stuNo not in (select stuNo from stuMarks where writtemExam !=100)
A、此语句查询笔试成绩不等于100分的同学所有信息
B、此语句查询笔试成绩等于100分的学生所有信息
C、此语句查询所有没有参加考试的学生信息
D、此语句查询所有参加考试的学生信息
29、select top (1) * from stuInfo where stNo not in(select top (2) stNo from stuInfo)
以上语句的功能是(C )
A、查询学员信息表的第一条记录
B、查询学员信息表的第二条记录
C、查询学员信息表的第三条记录
D、语法有问题,不能查询到记录
30、在(AD )的列上更适合创建索引。(选择两项)
A、需要对数据进行排序
B、具有默认值
C、频繁更改
D、频繁搜索
31、数据库中有两张表student(stuid,stuname,stuage),score(stuid,subject,marks).请分析下面哪些查询可查找出参加过考试的学生姓名?(ABD )(选择三项)
A、Select stuname from student where stuid in(select stuid from score)
B、Select stuname from student,score where student.stuid=score.stuid
C、Select stuname from student left outer join score on student.stuid=score.stuid
D、Select stuname from student where exists (select * from score where student.stuid=score.stuid)
32、关于子查询,以下说法正确的是(AC)。(选择两项)
A、一般来说,表连接都可以用子查询替换
B、一般来说,子查询都可以用表连接替换
C、相对于表连接,子查询适合于作为查询的筛选条件
D、相对于表连接,子查询适合于查看对表的数据
33、对事务描述错误的是(BD)(选择两项)
A、一个事务中的所有命令作为一个整体提交或回滚
B、如果两个并发事务要同时修改同一个表,有可能产生死锁
C、Sql server默认将每条单独的T-SQl语句视为一个事务
D、事务必须使用begin transaction来明确指定事务的开始
34、在SQL Server数据库中,以下有关系统存储过程说法正确的是(AB)(选择两项)
A、储存在Master数据库中
B、名称以“sp_”开头
C、名称以“sys_”开头
D、用来替代用户自定义的存储过程
35、下面的语句执行时不会出现错误的有(BD)(选两项)
A、SELECT ename,job,sal FROM EMP WHERE deptno ALL (SELECT deptno FROM dept WHERE dname LIKE ‘A%’);
B、SELECT ename,job,sal FROM EMP WHERE deptno =ANY (SELECT deptno FROM dept WHERE dname LIKE ‘A%’);
C、SELECT ename,job,sal FROM EMP WHERE deptno ANY (SELECT deptno FROM dept WHERE dname LIKE ‘A%’);
D、SELECT ename,job,sal FROM EMP WHERE deptno IN (SELECT deptno FROM dept WHERE dname LIKE ‘A%’);
36、以下哪个数据库实例不属于系统数据库(D)
tempdb
master
model
msdb
temp
执行以下语句
DECLARE @n int
Set @n=3
WHILE @n<5
Begin
IF @n=4
Print 1trim(@n)+’的平方数为’+1trim(@n*@n)
Set @n=@n+1
End
执行完成后循环次数为(C)
A、0次
B、1次
C、2次
D、死循环
37、能够将‘java’课的学分赋值给变量的语句是哪一个(C)
A、select credit into @credit from course where cname=’java’
B、select credit=@credit from course where cname=’java’
C、select @credit=credit from course where cname=’java’
D、select credit from course where cname=’java’ and credit=@credit
38. 在定义存储过程时,下面说法不正确的是(D)
A、不要以sp_为前缀创建任何存储过程,因为sp_前缀是SQL Server用来命名系统存储过程的
B、如果定义了默认值,执行存储过程时可以不提供实参
C、VARYING用于指定作为输出参数支持的结果集,且仅适用于定义cursor输出参数
D、OUTPUT关键词用于指定参数为输入参数的类型
39. 有如下语句,执行结果为(A)
Declare @x int
If @x is null
Select ‘A’
If @x=0
Select ‘B’
If @x=’ ’
Select ‘C’
A、A
B、B
C、C
D、有编译错误
40、查询course表中的前5行,正确的语法是(A)
A、select top 5 * from course
B、select top (5) from course
C、select top 5 from course
D、select top (5*) from course
41、为变量赋值的写法,错误的是(A)
A、set @a=3,@b=4
B、select @a=3,@b=4
C、set @a=3;set @b=4
D、select @a=3;select @b=4
42、关于T-SQL语言中的CASE语句,以下说法正确的是(D)
A、then关键字后面可以使用insert、update和delete语句
B、then关键字后面可以使用print语句
C、case关键字后面不能有任何的表达式
D、case语句中else关键字可以省略
43、要删除一个名为A1的存储过程,应使用命名(B)
A、delete procedure A1
B、drop procedure A1
C、alter procedure A1
D、execute C procedure A1
44、下面变量中属于T-SQL中用户自定义的变量的是(B)
A、@@error B、@number C、Abc D、num1
45、下面不属于SQL中事物的特征的是(C)
A、原子性 B、一致性 C、准确性 D、隔离性
46、学生信息表中有一检查约束,学生年龄必须在0到40之间。以下语句执行后的结果,描述正确的是:(B)。(选择一项)
begin transaction
insert into stuInfo(stuName,stuAge) values(‘张三’,200)
insert into stuInfo(stuName,stuAge) vaues(‘李四’,19)
if(@@error!=0)
rollback transaction
else
commit transaction
A、张三的信息未录入,李四的信息录入成功
B、张三和李四的信息都未录入成功
C、张三和李四的信息都录入成功
D、张三的信息录入成功,李四的信息未录入
47、if not exists (select * from stuMarke where writtenExam>60 or labExan>60)
Update stuMarke set writtenExam=writtenExam+3,labExam=labExam+3
以上的语句的功能是(D)
A、如果笔试或机试成绩有一项有人超过60分,则每人的笔试和机试成绩加3分
B、如果笔试或机试成绩都有人超过60分,则每人的笔试和机试成绩加3分
C、如果笔试或机试成绩有一项没人超过60分,则每人的笔试和机试成绩加3分
D、如果笔试或机试成绩没有一人超过60分,则每人的笔试和机试成绩加3分
48. 在数据库中查询数据,一般根据(C)查询速度较快
A、设置默认值的列
B、设置为外键的列
C、设置为主键的列
D、设置检查约束的列