学堂在线《sql server轻松学》数据库第5-8章习题&答案

模块5: 索引

>1.操作索引

  • 创建唯一非聚集索引的SQL语句关键字是()。
    A.unique nonclustered
    B.nonclustered
    C.create nonclustered
    D.以上都不对

正确答案:A

  • 索引包括聚集索引与非聚集唯一索引。()

正确答案:X

  • 索引的优点是 ()
    A.建立索引的列能保证行 的唯一性
    B.建立索引可以有 效缩短数据的检索时间
    C.建立索引可以加快表与 表之间的连接
    D.为用来排序或者是分组的字段添加索引,可以加快分组和排序顺序。

正确答案:ABCD

>2.索引综合使用

  • 创建主键的正确语法是()。
    A.alter table 表名 add constraint主键名 primary key(字段名)
    B.add table 表名 add constraint 主键名 primary key(字段名)
    C.create table 表名 add constraint 主键名 primary key(字段名)
    D.delete table 表名 add constraint 主键名 primary key(字段名)

正确答案:A

  • 当为数据表的某列创建一个主键时,就自动为此列创建了一个非聚集索引( )

正确答案:x

>模块总练习

  • 创建非聚集索引的SQL语句关键字是()。
    A unique
    B nonclustered
    C create
    D 以上都不对

正确答案:B

  • 创建主键的正确语法是()。
    A alter table 表名 add constraint主键名 primary key(字段名)
    B add table 表名 add constraint 主键名 primary key(字段名)
    C create table 表名 add constraint 主键名 primary key(字段名)
    D delete table 表名 add constraint 主键名 primary key(字段名)

正确答案:A

  • 索引的优点是()。
    A.建立索引的列能保证行 的唯一性
    B.建立索引可以有 效缩短数据的检索时间
    C.建立索引可以加快表与 表之间的连接
    D.为用来排序或者是分组的字段添加索引,可以加快分组和排序顺序。

正确答案:ABCD

  • 索引包括聚集索引与非聚集索引。()

正确答案:√

模块6: 查询

>1.基本查询

  • 查询语句“SELECT name,sex,birthday FROM human”返回( )列。
    1
    2
    3
    4

正确答案:C

  • 假设数据表“test1”中有10条数据行,可获得最前面两条数据行的语句为( )。
    SELECT 2 * FROM test1
    SELECT TOP 2 * FROM test1
    SELECT PERCENT 2 * FROM test1
    SELECT PERCENT 20 * FROM test1

正确答案:B

  • 下面关于查询语句中 ORDER BY 子句使描述正确的是( )。
    如果未指定排序列 ,则默认按递增排序
    数据表的列都可用于排序(各种类型)
    如果在 SELECT 子句中使用了 DISTINCT 关键字,则排序列必须出现在查询结果中
    联合查询不允许使用 ORDER BY 子句

正确答案:C

  • 有关SELECT colA colB FROM table-name语句, 该语句不能正常执行,因为出现了语法错误。()

正确答案:√

  • 单选题 (1分)
    执行语句“SELECT COUNT (*) FROM human”将返回( )行。
    1
    2
    3
    4

正确答案:A

  • 单选题 (1分)
    对列或表达式计算平均值的函数是( )。
    max和min
    sum
    count
    avg

正确答案:D

  • 单选题 (1分)
    对列或表达式求和的函数是( )。
    max和min
    sum
    count
    avg

正确答案:B

  • 判断题 (1分)
    聚合函数的运算对象可以是列,也可以是表达式。()

正确答案:√

>2.分类汇总

  • 单选题 (1分)
    如果在SELECT语句中使用聚合函数(列函数)进行分组统计时,一定在后面使用( )子句。
    GROUP BY
    COMPUTE BY
    HAVING
    COMPUTE

正确答案:A

  • 单选题 (1分)
    如果SELECT查询语句的SELECT子句为SELECT A, B, CD,则不能使用的GROUP BY子句是( )。
    GROUP BY A
    GROUP BY A,B
    GROUP BY A,B,C
    D
    GROUP BY A,B,C,D

正确答案:D

  • 单选题 (1分)
    下面是有关分组技术的描述,请问哪一种描述是正确的( )。
    SELECT子句中的非合计列必须出现在GROUP BY子句中。
    SELECT子句中的非合计列可以不出现在GROUP BY子句中。
    SELECT子句中的合计列必须出现在GROUP BY子句中。
    SELECT语句中使用COMPUTE BY子句时,可以不与ORDER BY子句联合使用。

正确答案:A

  • 判断题 (1分)
    COMPUTE BY子句中的统计字段名列表可以不与ORDER BY子句中的相同或为其子集。()

正确答案:x

  • 判断题 (1分)
    “HAVING 筛选条件表达式”表示对生成的组筛选后再对满足条件的组进行统计。()

正确答案:√

>3.联接查询

  • 下列说法错误的是( ) 
    内联接可以通过在FROM子句中使用INNER JOIN关键字来实现
    联接操作仅可以在两个不同的表之间进行
    使用自身联接时,必须为表指定两个别名
    内联接使用比较运算符,根据每个表共有的列的值匹配两个表中的行

正确答案:B

  • 从订单表和详细订单表中查询所有订单信息的SQL语句是 ( )
    SELECT d., x. FROM 订单表 d JOIN 详细订单表x
    SELECT * FROM 订单表 d JOIN 详细订单表x
    SELECT * FROM 订单表 JOIN 详细订单表
    SELECT * FROM 订单表 JOIN 详细订单表

正确答案:A

  • 已知dept表有部门编号字段deptno、部门名称字段dname,员工表emp具有员工编号 字段empno、员工姓名字段ename、电话字段phone和所属部门编号字段deptno,该字段参考dept表的deptno字段,要使用SQL语句查询 “研发部”部门所有员工的编号和姓名信息,下面选项中正确的是(  )。
    SELECT empno,ename FROM emp WHERE empno=(SELECT empno FROM dept WHERE dname=“研发部”) 
    SELECT empno,ename FROM emp WHERE deptno=(SELECT deptno FROM dept WHERE dname=‘研发部’) 
    SELECT empno,ename FROM emp WHERE deptno=(SELECT * FROM dept WHERE dname=‘研发部’)
    SELECT empno,ename FROM dept WHERE deptno=(SELECT deptno FROM emp WHERE dname=“研发部”)

正确答案:B

  • 自联接也可以理解为一个表的两个副本之间的联接。( )

正确答案:√

  • 下列说法错误的是()
    在通常的的联接操作中,只有满足条件的记录才能在结果集里输出。
    外联接又分为左外联接、右外联接、全外联接、交叉联接4种
    外联接除产生的结果集大于等于内联接产生的结果集
    左外联接就是将左表作为主表

正确答案:B

  • 左外联接结果集中除了满足联接条件的记录外,还有主表中不满足联接条件的记录并在左表的相应列上填充NULL值。()

正确答案:x

  • 右外联接结果集中除了满足联接条件的记录外,还有主表中不满足联接条件的记录并在左表的相应列上填充NULL值。()

正确答案:√

  • 全外联结果集中除了满足联接条件的记录外,还有左、右表中不满足联接条件的记录并在左、右表的相应列上填充NULL值。()

正确答案:√

>4.嵌套查询

  • 由EXISTS引出的SELECT子查询,其投影列表达式通常都用( ),因为带EXISTS的子查询只返回真值或假值。
    %
    ?
  • _

正确答案:C

  • 分数表scores设计如下: courseID(课程编号) studentID(学生编号) score(分数)  另有一个学生信息表student,包含studentID,sname(学生姓名)。  已知并非所有学生都参加了courseID为0001的考试,现在查询所有参加0001号课程考试及格学生的学生姓名,下面正确的是()。
    A select sname from student where studentID in (select studentID from scores where courseID = 0001 and score>=60)
    B select sname from student where studentID = (select studentID from scores where courseID = 0001 and score>=60) 
    C select sname from student where studentID not in (select studentID from scores where courseID = 0001 and score<=60)
    D select sname from student where studentID exists (select studentID from scores where courseID = 0001 and score>=60)

正确答案:A

  • 现有一个学生信息表student,包含主键studentID(学生编号)。又有分数表scores,包含studentID(学生编号)、以及score(考试分数)。已知student表中共有50个学生,有45人参加了考试(分数存在scores表中),其中10人不及格。执行以下SQL语句: select * from student where exists(select studentId form score where score<60) 可返回()条记录。
    50
    45
    10

正确答案:A

  • 在相关子查询中,子查询的执行依赖于外部查询,多数情况下是在子查询的WHERE子句中引用了外部查询的表。()

正确答案:√

  • 以下关于不相关子查询说法正确的是(  )。 
    不相关子查询的执行顺序是:先执行父查询后执行子查询
    子查询不能单独执行,必须依赖于父查询
    子查询只执行一次
    不相关子查询可以使用谓词EXISTS

正确答案:C

  • 在SQL Server 数据库中,从product表里查询出price(价格)高于pName(产品名称)为“一次性纸杯”所有记录中最高价格的产品的查询语句为(  )。
    SELECT * FROM product WHERE max(price)>‘一次性纸杯’ 
    SELECT * FROM product WHERE price>(SELECT max(*) FROM product WHERE  pName= ‘一次性纸杯’)
    SELECT * FROM product WHERE EXISTS pName=‘一次性纸杯’
    SELECT * FROM product WHERE price>(SELECT max(price) FROM product  WHERE pName=‘一次性纸杯’)

正确答案:D

  • 在非相关子查询中,子查询返回的是一组值,则要使用ANY、ALL、IN和NOT IN命令。()

正确答案:√

  • 在非相关子查询中,子查询得到的结果要被显示出来。()

正确答案:X

  • 将一个表达式的值与子查询返回的一组值中的每一个进行比较。如果在每次比较中运算结果为TRUE,则ANY测试返回TRUE;若每一次比较的结果均为FALSE,则ANY测试返回FALSE()

正确答案:X

>5.查询综合操作

  • 查询“学生表t_student”中的前5条记录,字段为学号和姓名。
    A SELECT TOP 5 student_no, student_name FROM t_student
    B SELECT LIMIT 5 student_no, student_name FROM t_student
    C SELECT TOP 5 student_no, student_name FROM
    D SELECT 5 student_no, student_name FROM t_student

正确答案:A

  • 在“班级表t_class”中,查询“学生人数”在40~50之间的班级,要求只显示班级 编号、班级名称和学生人数。
    A SELECT c.class_no, c.class_name, c.stu_number FROM t_class c WHERE stu_number BETWEEN 40 AND 50
    B SELECT c.class_no, c.class_name, c.stu_number FROM t_class c WHERE c.stu_number BETWEEN 40 AND 50
    C SELECT c.class_no, c.class_name, c.stu_number FROM t_class c WHERE c.stu_number FROM 40 AND 50
    D SELECT c.class_no, c.class_name, c.stu_number FROM t_class c WHERE c.stu_number BETWEEN 40 TO 50

正确答案:B

  • 在查询窗口中输入以下SQL语句: SELECT class_no, class_name, course_num 开课门数 FROM t_class c,( SELECT class_id, COUNT() course_num FROM t_arrangement GROUP BY class_id HAVING COUNT()= ( SELECT MIN(course_num) FROM ( SELECT class_id, COUNT(*) course_num FROM t_arrangement GROUP BY class_id ) a ) ) b WHERE c.class_id=b.class_id 实现的功能是()
    查询开课门数最少的班级信息
    查询开课门数最多的班级信息
    查询开课门数及班级信息
    查询开课门数信息

正确答案:A

  • 在查询窗口中输入以下SQL语句: SELECT t.class_no, t.class_name, t.stu_number FROM t_class t WHERE t.stu_number = ( SELECT MAX(stu_number) FROM t_class WHERE class_no LIKE ‘2009%’ ) 该语句的功能是()
    查找班级人数等于2009级所有班级中最小学生人数的班级信息。
    查找班级人数等于2009级所有班级中最大学生人数的班级信息。
    查找班级人数等于2009级所有班级中最大学生人数信息。
    查找班级人数等于2012级所有班级中最小学生人数信息。

正确答案:B

>模块总练习

  • 已知有scores表,scoreid为主键,现在表中共有10条记录,其中一条scoreid=21。  创建视图:  create view view_scores as  select * from scores 执行如下命令:  delete from view_scores where (scoreid = 21) 再执行如下命令: select * from scores  select * from view_scores  假定上述命令全部执行成功,将各自返回()行记录。
    A 10,10
    B 10,9
    C 9,10
    D 9,9

正确答案:D

  • 现有订单表orders,包含数据如下表。若查询既订购了产品p01,又订购了产品p02的顾客编号,可以执行以下()sql语句。(选择两项)
    A select distinct (cid) from orders ol where ol.pid in (‘p01’,‘p02’) 
    B select distinct (cid) from orders ol where ol.pid = ‘p01’ and ol.pid = ‘p02’ 
    C select distinct (o1.cid) from orders o1,orders o2 where o1.pid=‘p01’ and o2.pid=‘p02’ and o2.cid = o1.cid 
    D select distinct(cid) from orders where  pid = ‘p01’ and cid in(select cid from orders where pid=‘p02’)

正确答案:CD

  • 现有学生表Students和用户表Users,两表中的数据如下:  执行sql语句:select * from Users union select * from Students。下列说法正确的是()。(选择一项) Users Students  userID(int) name (varchar) studentID(int) age(int)  1 Wen 1 80  2 Shu 2 75  3 Gao    4 Shui   
    A 出现错误:name与age不是同一数据类型。
    B 正确执行,返回6行4 列。
    C 正确执行,返回6行2 列。 
    D 正确执行,返回4行2列。

正确答案:A

  • 假设有scores表的设计如下: ID(编号,主键)  StudentID(学生编号) CourseID(课程编号) Score(分数)  现在要查询参加过至少两门课程考试的学生各门课程的平均成绩。以下SQL语句正确的是()。
    A select StudentID,avg(score) from scores group by StudentID having count(studentID)>1 
    B select StudentID,avg(score) from scores group by StudentID where count(studentID)>1 
    C select StudentID,avg(score) from scores group by StudentID where count(studentID)>1 group by StudentID
    D select StudentID,avg(score) from scores having count(studentID)>1

正确答案:A

  • 在 SQL 语句中,与 X BETWEEN 20 AND 30 等价的表达式是( )。
    A X>=20 AND X<30 
    B X>20 AND X<30
    C X>20 AND X<=30
    D X>=20 AND X<=30

正确答案:D

  • 查找工资在600元以上并且职称为工程师的纪录,逻辑表达式为( )。
    A “工资”>600 .OR. 职称=“工程师” 
    B 工资>600 .AND. 职称=工程师 
    C"工资">600 .AND. “职称”=“工程师”
    D 工资>600 .AND. 职称=“工程师”

正确答案:D

  • 下列关于DISTINCT的描述,正确的是() 
    A 删除错误列信息 
    B 删除重复的数据
    C DISTINCT关键字放于FROM子句之后
    D DISTINCT关键字放于字段名之后

正确答案:B

  • 下列关于ORDER BY子句的说法,正确的有()(多选)
    A 在SELECT语句中,ORDER BY子句为必选 
    B ORDER BY默认按照降序排序 
    C ORDER BY字段DESC是降序排列 
    D ORDER BY子句放于WHERE子句之后

正确答案:ABCD

  • 下列SQL语句,正确的是()
    A SELECTTOP 5 FROM  table_name 
    B SELECT  TOP 5%  FROM  table_name 
    C SELECT
    TOP 5 PERCENT  FROM  table_name 
    D SELECT  TOP 5 PERCENT *FROM  table_name

正确答案:D

  • 下列说法正确的是()
    A .执行”SELECT *FROM  table_name WHERE…”语句后,定会返回 所有行的数据
    B.WHERE子句在SELECT 子句中为必选
    C.在SQL Server中,”!=”与”<>”作用完全相同
    D.语句”SELECT *FROM table_name WHERE Age NOT NULL”的写法正确

正确答案:C
以上就是模块5-6的所有习题答案,感谢浏览。
@整理不易,感谢点赞,欢迎留言@

欣赏模式,劳逸结合
个人拍摄

模块7: 视图

>1.创建视图

  • 视图不能单独存在,它必须依赖于()。
    视图
    数据表
    查询

正确答案:B

  • 可以使用CREATE VIEW打开查询设计器()

正确答案:X

  • 创建视图时,可以不用打开相应的数据库。()

正确答案:X

  • 视图的分类() 。
    本地视图
    分离视图
    远程视图
    组合视图

正确答案:AC

>2.用视图修改表中的数据

  • 利用使用可以修改基表,其操作有哪些()。
    修改基表的关系
    添加数据
    删除数据
    更新数据

正确答案:BCD

  • 视图可以修改数据表中数据。()

正确答案:√

>3.视图高级操作

  • 若要将V_STU视图进行重命名,其命令是()。
    sp_help
    sp_name
    sp_rename
    rename

正确答案:C

  • 视图重命名时,新视图名放在前面。()

正确答案:X

>4.删除视图

  • SQL语句中删除视图的命令是( )
    DROP TABLE
    DROP VIEW
    ERASE TABLE
    DROP INDEX

正确答案:B

  • 删除视图中的数据,同时也会将相应表中的删除删除( )

正确答案:√

>5.视图综合操作

  • 视图不能单独存在,它必须依赖于( )
    视图
    数据库
    数据表
    查询

正确答案:B

  • 在“添加表和视图”窗口,“其他”按钮的作用是让用户选择( )
    数据表
    数据库
    查询
    不属于数据库的表

正确答案:D

  • 创建视图时,不必打开数据库就可以创建( )

正确答案:X

>模块总练习

  • 下述选项中 不是查询的输出形式。
    图形
    数据表
    表单
    报表

正确答案:C

  • 下面关于查询描述正确的是 。
    可以使用CREATE VIEW打开查询设计器
    使用查询设计器可以生成所有的SQL查询语句
    使用查询设计器生成的SQL语句存盘后将存放在扩展名为QPR文件中
    使用DO语句执行查询时,可以不带扩展名

正确答案:C

  • 查询设计器中包括的选项卡有 。
    字段
    分组依据
    排序依据
    筛选

正确答案:ACD

  • 层次型、网状型和关系型数据库划分原则是 。
    记录长度
    文件的大小
    联系的复杂程度
    数据之间的联系

正确答案:D

  • List item层次型、网状型和关系型数据库划分原则是 。
    记录长度
    文件的大小
    联系的复杂程度
    数据之间的联系

正确答案:B

  • 若要在V_STU视图中查询成绩在600分以上的学生姓名,并且成绩按成绩的由到低的顺序显示是 。
    SELECT 姓名,成绩 FROM V_STU WHERE 成绩>=600 ORDER BY 成绩 
    SELECT 姓名,成绩 FROM V_STU WHERE 成绩>=600 ORDER BY 成绩/D
    SELECT 姓名,成绩 FROM V_STU WHERE 成绩>=600 ORDER BY 成绩 ASC
    SELECT 姓名,成绩 FROM V_STU WHERE 成绩>=600 ORDER BY 成绩 DESC

正确答案:D

  • 视图随基表的打开而打开。()

正确答案:√

  • 若要将V_STU视图中的“性别”字段去掉,应使用的SQL命令是 。
    UPDATE V_STU DROP 性别
    ALTER V_STU AS SELECT 姓名,成绩,专业 FROM STUDENT INNER JOIN SCORE ON STUDENT.SNO=SCORE.SNO
    ALTER V_STU SELECT 姓名,成绩,专业 FROM SCORE
    DROP V_STU FRO 性别

正确答案:B

  • 若要在V_STU视图中给所有法律专业学生的成绩增加20分,应使用的SQL命令是 。
    UPDATE V_STU SET 成绩=成绩+20 FOR 专业=”法律”
    UPDATE V_STU SET 成绩=成绩+20 WHERE 专业=”法律”
    UPDATE V_STU ADD 成绩=成绩+20 FOR 专业=”法律”
    UPDATE V_STU ADD 成绩=成绩+20 WHERE 专业=”法律”

正确答案:B

  • 下面描述中正确的是 。
    若视图的字段是来自库函数,则此视图不允许更新
    若视图的定义中有嵌套查询,并且嵌套查询的FROM子句涉及的表也是导出该视图的基表,则此视图不允许更新
    一个不允许更新的视图上定义的视图也不允许更新
    若视图是由两个以上的基表导出的,此视图可以更新

正确答案:ABC

模块8: 存储过程

>1.操作存储过程

  • 使用存储过程与本地的T-SQL程序相比优势在于()。
    减少网络流量
    能直接用在表达式中
    允许更快执行
    允许模块化程序设计

正确答案:B

  • 创建存储过程时只能在当前数据库中创建。()

正确答案:√

>2.项目实践:操作存储过程

  • 下面描述中正确的是()。
    执行存储过程的关键字是EXECUTE,该关键字不能简写
    用ALTER PROCEDURE更改的存储过程的权限和启动属性是会变化的。
    存储过程可以根据用户的要求或者基表定义的改变而改变
    存储过程可以调用其他存储过程,就可能会产生嵌套,嵌套级最高为32级

正确答案:CD

  • SQL Server存储过程能够立即访问数据库。()

正确答案:√

>模块总练习

  • 要删除一个名为A1的存储过程,应使用的SQL命令是()。
    DROP PROCEDURE A1
    DELETE PROCEDURE A1
    EXECUTE PROCEDURE A1
    ALTER PROCEDURE A1

正确答案:A

  • 创建存储过程之后,它的源代码存放在系统表() 中。
    syscommnets
    sysprocesses
    sysfiles
    sysdatabase

正确答案:A

  • 下面哪些选项是SQL SERVER支持的存储过程()。
    系统存储过程
    应用存储过程
    自定义存储过程
    扩展存储过程

正确答案:ACD

  • 每次只能修改一个存储过程。()

正确答案: √

  • 可以将CREATE PROCEDURE语句与其他SQL语句组合到单个批处理中。()

正确答案:X
**

> 以上就是模块5-8的所有习题&答案,感谢浏览。 活动活动手腕,找个时间还会更新剩下的章节。 @整理不易,感谢点赞,欢迎留言@

**

Guess you like

Origin blog.csdn.net/weixin_46005458/article/details/117121688