SQL语言学习:习题集与解析

需积分: 49 6 下载量 136 浏览量 更新于2024-09-29 收藏 35KB DOC 举报
"关系数据库语言SQL习题与答案" 这篇文档提供了一系列关于SQL语言的练习题目,涵盖了选择题、填空题以及问题与操作题,旨在帮助用户加深对SQL的理解和应用。 一、选择题部分涉及到SQL语言的基本特性和功能: 1. 选项B是错误的,因为SQL确实具有数据控制功能,如GRANT和REVOKE等语句用于权限管理。 2. SQL是结构化查询语言(Structured Query Language),因此C选项正确。 3. 要列出所有女生的姓名,需要对“学生”关系进行选择(选择女生)和投影(投影出姓名)操作,所以答案是D。 4. NULL表示没有任何值,选项C正确。 5. CREATE TABLE不是数据操纵语言(DML),而是数据定义语言(DDL),所以B选项正确。 6. 创建唯一索引使用CREATE UNIQUE INDEX命令,所以D选项正确。 二、填空题部分涉及SQL语言的使用方式、功能和数据库概念: 1. SQL的使用方式包括嵌入式(在其他程序中嵌入SQL)和交互式(直接在SQL环境中使用)。 2. WHERE子句用于在查询中筛选满足特定条件的记录。 3. 视图是从一个或多个基本表导出的虚拟表。 4. SQL的数据操纵功能包括数据查询、数据更新、数据插入和数据删除。 5. 外模式对应于用户的视图或部分基本表,模式对应于逻辑结构,内模式对应于物理存储结构。 6. HAVING子句通常在GROUP BY子句之后使用,用于在分组后的数据上设置条件。 三、问题与操作题部分涉及SQL的名词解释和实际查询操作: 1. SQL模式指的是数据库的逻辑结构;SQL数据库是关系型数据库的代表;基本表是数据库中的基本数据单元;视图是从一个或多个表中导出的虚拟表,用于简化查询或实现安全性;相关子查询在查询中嵌套了另一个查询,依赖于外部查询的结果;联接查询将多个表通过共同的字段合并;嵌入式SQL是在其他编程语言中嵌入SQL语句;游标用于在结果集上进行逐行处理。 2. SQL查询示例: (1) SELECT C.C#, CNAME FROM C JOIN SC ON C.C# = SC.C# WHERE TEACHER = 'LIU'; (2) SELECT S#, SNAME FROM S WHERE AGE > 23 AND SEX = '男'; (3) SELECT DISTINCT SNAME FROM S WHERE SNAME NOT IN (SELECT SNAME FROM S JOIN SC ON S.S# = SC.S# JOIN C ON SC.C# = C.C# WHERE TEACHER = 'LIU' AND SEX = '女'); (4) SELECT C.C# FROM C WHERE C.C# NOT IN (SELECT C.C# FROM SC WHERE S.S# = 'WANG'); (5) SELECT S.S# FROM S JOIN SC ON S.S# = SC.S# GROUP BY S.S# HAVING COUNT(*) >= 2; (6) SELECT C.C#, CNAME FROM C WHERE C.C# IN (SELECT C.C# FROM SC GROUP BY C.C# HAVING COUNT(*) = (SELECT COUNT(DISTINCT S.S#) FROM S)); (7) SELECT S.S# FROM S JOIN SC ON S.S# = SC.S# JOIN C ON SC.C# = C.C# WHERE C.TEACHER LIKE '%LIU%'; 3. 两个基本表R和S的查询示例未给出,但一般会涉及联接、筛选、聚合等操作。 这个习题集全面地覆盖了SQL的基础知识,包括语法、查询、视图、索引和数据库模式等,适合SQL初学者和需要巩固基础的用户进行练习。