关系数据库标准语言
- 格式:doc
- 大小:149.51 KB
- 文档页数:13
关系数据库的标准语言----------结构化查询语言(Structured Query Language),SQL语言是介于关系代数和元组演算之间的一种语言。
一、历史1986年10月,美国国家协会(ANSI)发布了ANSI文件X5.135-1986《数据库语言SQL》,1987年6月国际化标准化协会(ISO)采纳为国际标准。
这两个标准现在称为“SQL86”。
1989年10月ANSI又颁布了增强完整性特征的SQL89标准。
随后,ISO对标准进行了大量的修改和扩充。
1992年8月ISO 发布了标准化文件ISO/IEC9075:1992《数据库语言SQL》,人们习惯称标准为SQL92-----“SQL2”。
1999年ISO发布了标准化文件:ISO/IEC9075:1999年《数据库语言SQL》,人们习惯称为SQL----“SQL3”。
二、数据库的体系结构SQL数据库的体验结构基本上也是三级结构,但属于与关系模型的术语不同。
在SQL 中,关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“行”。
SQL数据库的体系结构要点如下:(1)一个SQL模式是表和约束的集合。
(2)一个表由行集构成,一行是列的序列,每列对应一个数据项。
(3)表有三种类型:基本表,视图和导出表。
基本表是实际存储在数据库中的表,视图是由若干基本表或其他视图构成。
导出表是执行了查询时产生的表。
(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可以存放一个或多个基本表。
每一个存储文件与外部存储器上一个物理文件对应。
体系结构:三、SQL的组成核心的SQL主要有四个部分组成:(1)数据定义语言,即SQL DDL。
(2)数据操纵语言,即SQL DML。
(3)嵌入式SQL语言的使用规定。
(4)数据控制语言,即SQL DCL。
四、SQL 的特点SQL具有如下特点,(1)SQL具有十分灵活和强大的查询功能。
第3章关系数据库标准语言一、单选题1. SQL语言是()标准语言。
A. 层次数据库B.网络数据库C.关系数据库D.非数据库2. SQL语言是()的语言,易学习。
A. 过程化B.非过程化 C.格式化D.导航化3. 以下关于SQL语句的书写准则中不正确的是()。
A. SQL语句对大小写敏感,关键字需要采用大写形式B. SQL语句可写成一行或多行,习惯上每个子句占用一行C. 关键字不能在行与行之间分开,并且很少采用缩写形式D. SQL语句的结束符为分号“;”4. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE和DELETE等。
其中最重要的也是使用最频繁的语句是()。
A.SELECT B.INSERT C.UPDATE D.DELETE5. 下列关于基本表的叙述中,错误的是()。
A.在SQL中一个关系对应一个基本表 B. 表一个基本表对应一个存储文件C.一个基本表只能有一个索引,索引也存放在存储文件中D. 基本表是独立存储在数据库中的但一个存储文件中只能存放一个基本表6. 一般来说,以下情况的列不适合建立索引()。
A. 经常被查询的列B. ORDER BY子句中使用的列。
C. 是外键或主键的列D. 包含许多重复值的列7. 定义基本表时,若要求某一列的值是唯一的,则应在定义时使用()保留字,但如果该列是主键,则可省写。
A.NULL B.NOT NULL C.DISTINCT D.UNIQUE8. 在SQL语句中,可以用来实现关系代数中π运算功能的是()语句。
A. SELECT B.ALTER C.DELETE D.DROP9. 在SELECT语句中,与关系代数中σ运算符对应的是( )子句。
A. SELECT B.FROM C.WHERE D.GROUP BY10. 使用SQL语句进行查询操作时,若希望查询结果中不出现重复元组,应在SELECT子句中使用()保留字。
A. UNIQUE B.ALL C.EXCEPT D.DISTINCT11. 在以下SELECT 语句的子句中,放在最后的应该是()子句。
A.GROUP BY B.HAVING C.WHERE D.ORDER BY12. 与HAVING子句一起使用的子句是()。
A.GROUP BY B.ORDER BY C.WHERE D.JOIN13. FOREIGN KEY约束是()约束。
A.实体完整性B.参照完整性C.用户自定义完整性D.域完整性14. 若要修改基本表中某一列的数据类型,需要使用ALTER语句中的()子句。
A. DELETEB. DROPC. MODIFYD. ADD15. 向基本表中增加一个新列后,原有元组在该列上的值是()。
A.TRUE B.FALSE C.空值 D.不确定16. 当FROM子句中出现多个基本表或视图时,系统将执行()操作。
A. 并B.等值连接 C.自然联结D.广义笛卡儿积17. 视图创建完成后,数据字典中存放的是()。
A. 查询语句B.查询结果C.视图的定义 D.所引用的基本表的定义18. 查询中需要统计元组的个数时,应使用()函数。
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)19. 查询中需要统计某列中值的个数应使用()函数。
A.SUM(列名) B.COUNT(列名) C.COUNT(*) D.AVG(列名)20. 两个子查询的结果()时,可以执行并、交、差操作。
A.结构完全一致B.结构完全不一致C.结构部分一致在D.主码一致21. 若用如下的SQL语句创建一个student表:CREATE TABLE student( NO CHAR(4) NOT NULL,NAME CHAR(8) NOT NULL,SEX CHAR(2),AGE SMALLINT );可以插入到student表中的是( )。
A.('1031','曾华',男,23) B.('1031','曾华',NULL,NULL)C.(NULL,'曾华','男',23) D.('1031',NULL,'男',23)第22题到第24题基于这样的3个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩22. 检索学生姓名及其所选修课程的课程号和成绩,正确的SELECT语句是()。
A. SELECT S.SN,SC.C#,SC.GRADEFROM S WHERE S.S#=SC.S#;B. SELECT S.SN,SC.C#,SC.GRADEFROM SC WHERE S.S#=SC.GRADE;C. SELECT S.SN,SC.C#,SC.GRADEFROM S,SC WHERE S.S#=SC.S#;D. SELECT S.SN,SC.C#,SC.GRADE FROM S,SC;23. 检索选修课程“C2”的男生中的最高成绩,正确的SELECT语句是()。
A. SELECT MAX(GRADE) FROM SCWHERE CN='C2’ AND SEX='男';B. SELECT MAX(GRADE) FROM SC,C,SWHERE CN=‘C2‘ AND SEX=’男‘;C. SELECT MAX(GRADE) FROM SC,SWHERE SC.C#=C.C# AND CN=’C2‘ AND SEX=’男‘;D. SELECT MAX(GRADE) FROM SC,C,SWHERE SC.C#=C.C# AND SC.S#=S.S# AND CN='C2' AND SEX='男';24. 检索选修4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
正确的SELECT语句是()。
A. SELECT S#,SUM(GRADE) FROM SCWHERE GRADE>=60GROUP BY S#ORDER BY 2 DESCHAVING COUNT(*)>=4B. SELECT S#,SUM(GRADE)FROM SCWHERE GRADE>=60GROUP BY S#HAVING COUNT(*)>=4ORDER BY 2 DESCC. SELECT S#,SUM(GRADE)FROM SCWHERE GRADE>=60HAVING COUNT(*)>=4GROUP BY S#ORDER BY 2 DESCD. SELECT S#,SUM(GRADE)FROM SCWHERE GRADE>=60ORDER BY 2 DESCGROUP BY S#HAVING COUNT(*)>=4二、多选题1. SQL具有()功能。
A.关系规范化B.数据定义 C.数据操纵 D.数据控制2. SQL语言的使用方法有()。
A.交互式SQL B.解释式SQL C.嵌入式SQL D.多用户SQL3. 下列命令中属于SQL语言中数据定义功能的语句有()。
A. CREATEB. SELECTC. DROPD. ALTER4. 在SQL语言中可以用来表示“10<x<15”的是()。
A. x>10 AND x<15B. x BETWEEN 10 AND 15C. x IN (11,12,13,14)D. x BETWEEN 11 AND 145. 使用聚合函数进行统计时,忽略空值的有()。
A.SUM B.MAX C.COUNT D.AVG6. 在SELECT语句的FROM子句中允许出现()。
A. 列名B.基本表名 C.视图名D.表达式7. 某查询语句中有“%田_ _”语句,在查询结果中有可能含有()。
A.张田B.陈力田C.田华D.刘田耕8. 在CREATE TABLE语句中实现完整性约束的子句有()。
A.NOT NULL B.PRIMARY KEY C.FOREIGN KEY D.CHECK9. 已知基本表S对应的关系模式为(S#,SNAME,AGE),在下列SELECT的子句中,正确的是()。
A.SELECT S#,AVG(AGE) B.SELECT DISTINCT AGEC.SELECT SNAME 姓名D.SELECT AGE>2010. 对于下列语句TeacherNo INT NOT NULL UNIQUE,正确的描述是( )。
A. TeacherNo是主码B. TeacherNo不能为空C. TeacherNo的值可以是“王大力”D. 每一个TeacherNo必须是惟一的三、填空题1. 在SQL语言中,创建基本表应使用()语句,创建视图应使用()语句,创建索引应使用()语句。
2. 在SQL语言中,DELETE命令用来删除表中的记录,()命令用来删除表。
UPDATE命令用来更新表的记录值,()语句用来更新表结构。
3. 使用INSERT语句插入记录时,有两种形式:一是使用VALUES子句,一次只能插入一行;另一种是使用(),一次可插入多行。
4. 在SQL中定义视图时,需要用关键字()连接子查询来完成。
5. 设有如下关系模式R、S和T:R(BH,XM,XB,DWH)S(DWH,DWM)T(BH,XM,XB,DWH)(1)实现R∪T的SQL语句是:。
(2)实现σDWH=‘100’(R)的SQL语句是:。
(3)实现ΠXM,XB(R)的SQL语句是:。
(4)实现ΠXM,DWH( σXB='女'(R)) 的SQL语句是:。
(5)实现R×S的SQL语句是:。
(6)实现ΠXM,XB,DWM( σXB='男'(R∞ S))的SQL语句是:。
6. 有如下关系表R:R(NO,NAME,SEX,AGE,CLASS) 主码是NO其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。
写出实现下列功能的SQL语句。
(1)插入一个记录(25,"李明",21,NULL,"95031"); 。
(2)将学号为10的学生姓名改为"王华"; 。
(3)删除姓"王"的学生记录; 。
(4)在表中增加一列DEPT,类型为CHAR(10)。
(5)将全体学生的年龄增加一岁。
四、判断题1.原则上讲,两个不同的对象所具有的属性值不能相同,但在给定的关系中的元组可以是完全相同的。