第五章关系数据库标准语言SQL 一、考试大纲要求: 1、了解 (1)create table---SQL alter table---SQL (2)分组与计算查询 (3)集合的并运算 2、掌握 (1)delete---SQL insert---SQL update---SQL (2)嵌套查询 3、 重点掌握 (1)简单查询 (2)联接查询 二、知识要点 SQL语言的特点 1.一体化语言 SQL语言集数据定义(DDL)、数据操纵(DML)、数据管理(DCL)的功能于一体,语 言风格统一,可以独立完成数据库的全部操作,包括定义关系模式、录入数据及建立数据库、 查询、更新、维护数据、数据库的重新构造、数据库安全性等一系列操作的要求,为数据库 应用系统开发者提供了良好的环境。 2.高度非过程化 3.语言简洁,易学易用 4.以同一种语法结构提供两种使用方式 既可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。 二 SQL语言的基本概念 SQL语言支持关系型数据库的三级模式结构。其中外模式对应于视图(Viw)和部分 基本表(Base Table),模式对应于基本表,内模式对应于存储文件。 基本表是本身独立存在的表,在$QL语言中一个关系对应一个表。一些基本表对应一 个存储文件,一个表可以带若干索引,索引存放在存储文件中。 存储文件的逻辑结构组成了关系型数据库的内模式。而存储文件的物理文件结构是任意 的。 视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据 库只存放在视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中, 因此视图是一个虚表。 三.数据定义 数据定义语言DDL用于执行数据定义的操作,如创建或删除表、索引和视图之类的对象。 由CREATE、DROP、ALTER命令组成,完成数据库对象的建立(CREATE)、删除(DROP) 和修改(ALTER)
第五章 关系数据库标准语言 SQL 一、考试大纲要求: 1、了解 (1)create table---SQL alter table---SQL (2)分组与计算查询 (3)集合的并运算 2、 掌握 (1)delete---SQL insert---SQL update---SQL (2)嵌套查询 3、 重点掌握 (1)简单查询 (2)联接查询 二、知识要点 一. SQL 语言的特点 1.一体化语言 SQL 语言集数据定义(DDL)、数据操纵(DML)、数据管理(DCL)的功能于一体,语 言风格统一,可以独立完成数据库的全部操作,包括定义关系模式、录入数据及建立数据库、 查询、更新、维护数据、数据库的重新构造、数据库安全性等一系列操作的要求,为数据库 应用系统开发者提供了良好的环境。 2.高度非过程化 3.语言简洁,易学易用 4.以同一种语法结构提供两种使用方式 既可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。 二. SQL 语言的基本概念 SQL 语言支持关系型数据库的三级模式结构。其中外模式对应于视图(View)和部分 基本表(Base Table),模式对应于基本表,内模式对应于存储文件。 基本表是本身独立存在的表,在 SQL 语言中一个关系对应一个表。一些基本表对应一 个存储文件,一个表可以带若干索引,索引存放在存储文件中。 存储文件的逻辑结构组成了关系型数据库的内模式。而存储文件的物理文件结构是任意 的。 视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据 库只存放在视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中, 因此视图是一个虚表。 三. 数据定义 数据定义语言 DDL 用于执行数据定义的操作,如创建或删除表、索引和视图之类的对象。 由 CREATE、DROP、ALTER 命令组成,完成数据库对象的建立(CREATE)、删除(DROP) 和修改(ALTER)
1.定义(创建)表 【格式】: CREATE TABLE<表名>(<字段名1><数据类型>: [(<宽度>[,<小数位数>])][完整性约束]: [NULL NOT NULL[,<字段名2>]) 【功能】定义(也称创建)一个表。 【例1】创建一个表SC(课程成绩表),它由以下字段组成:学号(C,10):课程号(C, 2)。 CREATE TABLE SC(学号C(1O),课程号C(2) LIST STRUCTURE 【例2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,10):姓名(C, 8):性别(C,2):班级名(C,10):系别代号(C,2):地址(C,50):出生日期(D): 是否团员(L):备注(M):照片(G)。 CREATE TABLE STUD(学号C(10),姓名C(10),性别C(2),班级名C(10),系别代号C(2),地 址C(50),出生日期D,是否团员L,备注M,照片G) LIST STRUCTURE 2.修改表 【格式】 ALTER TABLE<表名>[ADD<新字段名><数据类型>[(<宽度>[,<小数位数>])][完 整性约束]NULL I NOT NULL][DROP[完整性约束][MODIFY<字段名>∝数据类 型>] 【功能】修改表结构。 【说明】ADD子句用于增加指定表的字段变量名、数据类型、宽度和完整性约束条件:DROP 子句用于删除指定的的完整性约束条件:MODIFY子句用于修改原有的字段变量的值。 【例】在课程成绩表SC中,增加一个成绩字段变量(N,3)。 ALTER TABLE SC ADD成绩N(3) LIST STRUCTURE 3.删除数据库 【格式】DROP DATABASE<数据库名> 【功能】删除指定数据库的结构和数据。 【说明】谨慎使用。 4.删除表 【格式】DROP TALBE<表名> 【功能】删除指定表的结构和内容(包括在此表上建立的索引)。 【说明】如果只是想删除一个表中的所有记录,则应使用DELETE语句。 【例题】: 1.SQL是 语言。 A.结构化查询 B.数据定义 C.数据操作 D.数据控制 [解析本题考查的知识点是SQL语言的基础知识。在Visual FoxPro中,SQL是结构化查询语 言。选项B,C,D说法错误,在Visual FoxPro中有数据定义语言、数据操作语言、数据 控制语言。 [答案]A
1. 定义(创建)表 【格式】: CREATE TABLE <表名> (<字段名 1><数据类型>; [(<宽度>[,<小数位数>])][完整性约束]; [NULL | NOT NULL][,<字段名 2>…]) 【功能】定义(也称创建)一个表。 【例 1】创建一个表 SC(课程成绩表),它由以下字段组成:学号(C,10);课程号(C, 2)。 CREATE TABLE SC(学号 C(10),课程号 C(2)) LIST STRUCTURE 【例 2】创建一个表 STUD(学生信息表),它由以下字段组成:学号 (C,10);姓名(C, 8);性别(C,2);班级名(C,10);系别代号(C,2);地址(C,50);出生日期 (D); 是否团员 (L);备注 (M);照片(G)。 CREATE TABLE STUD(学号 C(10),姓名 C(10),性别 C(2),班级名 C(10),系别代号 C(2),地 址 C(50),出生日期 D,是否团员 L,备注 M,照片 G) LIST STRUCTURE 2. 修改表 【格式】 ALTER TABLE <表名>[ADD <新字段名><数据类型>[(<宽度>[,<小数位数>])][完 整性约束][NULL | NOT NULL]][DROP [完整性约束]][MODIFY <字段名><数据类 型>] 【功能】修改表结构。 【说明】ADD 子句用于增加指定表的字段变量名、数据类型、宽度和完整性约束条件;DROP 子句用于删除指定的的完整性约束条件;MODIFY 子句用于修改原有的字段变量的值。 【例】在课程成绩表 SC 中,增加一个成绩字段变量(N,3)。 ALTER TABLE SC ADD 成绩 N(3) LIST STRUCTURE 3.删除数据库 【格式】DROP DATABASE <数据库名> 【功能】删除指定数据库的结构和数据。 【说明】谨慎使用。 4. 删除表 【格式】DROP TALBE <表名> 【功能】删除指定表的结构和内容(包括在此表上建立的索引)。 【说明】如果只是想删除一个表中的所有记录,则应使用 DELETE 语句。 【例题】: 1.SQL是______语言。 A.结构化查询 B.数据定义 C.数据操作 D.数据控制 [解析] 本题考查的知识点是SQL语言的基础知识。在Visual FoxPro中,SQL是结构化查询语 言。 选项B,C,D说法错误,在Visual FoxPro中有数据定义语言、数据操作语言、数据 控制语言。 [答案] A
2.SQL除了具有数据查询的功能外,还有 A.数据定义 B.数据操纵 C.数据控制 D.以上答案均正确 [解析本题考查的知识点是SQL语言的作用。在Visual FoxPro中,SQL的功能有四个:数 据查询、数据定义、数据操纵、数据控制。因此正确答案为D。 [答案]D 3.下列选项中,不属于数据定义功能的$QL语句是 A.CREATE B.ALTER C.SELECT D.DROP [解析]本题考查的知识点是$QL命令动词的作用。 选项A用来创建表:选项B用来修改表结构:选项C用来查询:选项D用来删除表文件。在Visual FoxPro中,选项A,B,D都具有数据定义功能,只有选项C具有数据查询的功能。 [答案]C 4.SQL的核心是 A.数据查询 B.数据定义 C.数据操纵 D.数据控制 [解析本题考查的知识点是$QL的核心。SQL作为结构化查询语言,其核心是查询。因此 正确答案为A。 [答案]A 5.SQL同其他数据操作语言不同,其关键在于 A.SQL是一种过程性语言 B.SQL是一种非过程性语言 C.SQL语言简练 D.SQL的词汇有限 [解析本题考查的知识点是$QL不同于其他语言的关键。SQL同其他数据操作语言不同的 关键是$QL是一种非过程性语言。通过这一功能用户只需说明做什么,而不用说明怎么 做,不用了解数据存储的格式及$QL命令的内部执行过程,就可以方便地对数据库进行 操作。选项A的说法错误,选项C和D是SQL语言的特点,但不是SQL语言同其他数据操 作语言不同的关键。 [答案]B 6.建立表结构的$QL命令是。 A.ALTER TABLE B.DROP TABLE C.CREAT TABLE D.CREATINDEX [解析]本题考查的知识点是建立表结构的SQL命令。建立表结构的SQL命令是CREAT TABLE。ALTER TABLE命令的作用是修改表结构:DROP TABLE命令的作用是删除表: CREAT INDEX命令的作用是建立索引。 [答案]C 7.$QL可以 使用,也可以使用。 [解析]本题考查的知识点是$QL语言的使用方式。SQL语言可以直接以命令方式交互使 用,也可以嵌入到程序设计语言中以程序方式使用。 [答案]直接以命令方式交互,嵌入到程序设计语言中以程序方式 8.在ALTER TABLE中, 用来添加新字段:修改已有字段。 [解析本题考查的知识点是ALTER TABLE命令及各子项的作用。在ALTER TABLE命令
2.SQL除了具有数据查询的功能外,还有_____。 A. 数据定义 B.数据操纵 C. 数据控制 D.以上答案均正确 [解析] 本题考查的知识点是SQL语言的作用。在Visual FoxPro中,SQL的功能有四个:数 据查询、数据定义、数据操纵、数据控制。因此正确答案为D。 [答案] D 3.下列选项中,不属于数据定义功能的SQL语句是__________。 A.CREATE B.ALTER C.SELECT D.DROP [解析] 本题考查的知识点是SQL命令动词的作用。 选项A用来创建表;选项B用来修改表结构;选项C用来查询;选项D用来删除表文件。在Visual FoxPro中,选项A,B,D都具有数据定义功能,只有选项C具有数据查询的功能。 [答案] C 4.SQL的核心是__________。 A.数据查询 B.数据定义 C.数据操纵 D.数据控制 [解析] 本题考查的知识点是SQL的核心。SQL作为结构化查询语言,其核心是查询。因此 正确答案为A。 [答案] A 5.SQL同其他数据操作语言不同,其关键在于_____。 A.SQL是一种过程性语言 B.SQL是一种非过程性语言 C.SQL语言简练 D.SQL的词汇有限 [解析] 本题考查的知识点是SQL不同于其他语言的关键。SQL同其他数据操作语言不同的 关键是SQL是一种非过程性语言。通过这一功能用户只需说明做什么,而不用说明怎么 做,不用了解数据存储的格式及SQL命令的内部执行过程,就可以方便地对数据库进行 操作。选项A的说法错误,选项C和D是SQL语言的特点,但不是SQL语言同其他数据操 作语言不同的关键。 [答案] B 6.建立表结构的SQL命令是____。 A.ALTER TABLE B.DROP TABLE C.CREAT TABLE D.CREAT INDEX [解析] 本题考查的知识点是建立表结构的SQL命令。建立表结构的SQL命令是CREAT TABLE。ALTER TABLE命令的作用是修改表结构;DROP TABLE命令的作用是删除表; CREAT INDEX命令的作用是建立索引。 [答案] C 7.SQL可以_____使用,也可以_____使用。 [解析] 本题考查的知识点是SQL语言的使用方式。SQL语言可以直接以命令方式交互使 用,也可以嵌入到程序设计语言中以程序方式使用。 [答案] 直接以命令方式交互,嵌入到程序设计语言中以程序方式 8.在ALTER TABLE中,_____用来添加新字段;_____修改已有字段。 [解析] 本题考查的知识点是ALTER TABLE命令及各子项的作用。在ALTER TABLE命令
中,ADD用来添加新字段:ALTER用来修改已有字段。 [答案]ADD ALTER 四、数据操纵 数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵,它们统称为DML: ●数据查询:寻找所需的具体数据。 ●数据修改:添加、删除和改变数据。 数据操纵语言一般由NSERT(插入)、DELETE(删除)、UPDATE(更新),SELECT(查 询)等组成,由于SELECT比较特殊,所以一般又将它以查询语言单独出现。 1、插入记录 数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵,它们统称为DML: ●数据查询:寻找所需的具体数据。 ●数据修改:添加、删除和改变数据。 数据操纵语言一般由NSERT(插入)、DELETE(删除)、UPDATE(更新),SELECT(查 询)等组成,由于SELECT比较特殊,所以一般又将它以查询语言单独出现。 <字段名表>:指定表文件中的字段,缺省时,按表文件字段的顺序依次赋值。 <表达式表>:指定要追加的记录各个字段的值。 【例1】在表文件STUD的末尾追加三条记录。 *用表达式方式追加第一条记录** NSERT INTO STUD(学号,姓名,性别,班级名,系别代号,地址,出生日期,是否团员); VALUES("011110","李中国","男","计0121","01","湖北武汉",{2005/01/06},T) *用数组方式追加第二条记录** DIMENSION TA[8] TA(1)="011103 TA(2)="李宁” TA(3)="女” TA(4)="电0134 TA(5)="02” TA(6)="北京赛迪网校” TA(7)={2005/01/15} TA(8)=.T. INSERT INTO STUD FROM ARRAY TA *用内存变量方式追加第三条记录* 学号="011202" 姓名="赵娜 性别="女" 班级名="英0112” 系别代号="03” 地址=”广西南宁” 出生日期={2002/12/14} 是否团员=F INSERT INTO STUD FROM MEMVAR LIST 2.更新记录命令
中,ADD用来添加新字段;ALTER用来修改已有字段。 [答案] ADD ALTER 四、数据操纵 数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵,它们统称为 DML: ● 数据查询:寻找所需的具体数据。 ● 数据修改:添加、删除和改变数据。 数据操纵语言一般由 INSERT(插入)、DELETE(删除)、UPDATE(更新),SELECT(查 询)等组成,由于 SELECT 比较特殊,所以一般又将它以查询语言单独出现。 1、 插入记录 数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵,它们统称为 DML: ● 数据查询:寻找所需的具体数据。 ● 数据修改:添加、删除和改变数据。 数据操纵语言一般由 INSERT(插入)、DELETE(删除)、UPDATE(更新),SELECT(查 询)等组成,由于 SELECT 比较特殊,所以一般又将它以查询语言单独出现。 <字段名表>:指定表文件中的字段,缺省时,按表文件字段的顺序依次赋值。 <表达式表>:指定要追加的记录各个字段的值。 【例 1】在表文件 STUD 的末尾追加三条记录。 ***用表达式方式追加第一条记录*** INSERT INTO STUD (学号,姓名,性别,班级名,系别代号,地址,出生日期,是否团员) ; VALUES("011110","李中国","男","计 0121","01","湖北武汉",{^2005/01/06},.T.) ***用数组方式追加第二条记录*** DIMENSION TA[8] TA(1)="011103" TA(2)="李宁" TA(3)="女" TA(4)="电 0134" TA(5)="02" TA(6)="北京赛迪网校" TA(7)={^2005/01/15} TA(8)=.T. INSERT INTO STUD FROM ARRAY TA ***用内存变量方式追加第三条记录*** 学号="011202" 姓名="赵娜" 性别="女" 班级名="英 0112" 系别代号="03" 地址="广西南宁" 出生日期={^2002/12/14} 是否团员=.F. INSERT INTO STUD FROM MEMVAR LIST 2.更新记录命令
【格式】 UPDATE <表文件名>SET<字段名1>=<表达式> [,<字段名2>=<表达式>】[WHERE<条件>] 【功能】更新指定表文件中满足WHERE条件子句的数据。其中SET子句用于指定列和修 改的值,WHERE用于指定更新的行,如果省略WHERE子句,则表示表中所有行。 【说明】更新操作又称为修改操作。 【例】将成绩表(SC)中,所有课程号为02的成绩各加5分。 UPDATE SC SET成绩=成绩+5 WHERE课程号="k321" 3.删除记录 【格式】DELETE FROM<表名>WHERE<表达式> 【功能】从指定的表中删除满足WHERE子句条件的所有记录。如果在DELETE语句中没 有WHERE子句,则该表中的所有记录都将被删除。 【说明】这里的删除是逻辑删除,即在删除的记录前加上一个删除标记“*”。 【例】删除STUD表中所有性别为男的记录。 DELETE FROM STUD WHERE性别=“男” 4.数据管理 数据管理(也称数据控制)语言是用来管理(或控制)用户的访问权限的。而Visual FoxPro6.0 没有这种权限管理。 【例题】: 1.下列关于NSERT-一SQL的叙述正确的是一。 A.在表尾插入一条记录 B.在表头插入一条记录 C.在表中任何位置插入一条记录 D.可以向表中插入若干记录 [解析本题考查的知识点是INSERT命令的作用。INSERT-一SQL命令的作用是在表尾插 入一条记录。 选项B,C,D的说法都错误,NSERT-一SQL命令不能完成B,C,D指定的要求。 [答案]A 2.DELETE FROM考生成绩WHERE成绩<90语句的功能是 A.物理删除成绩在90分以下的记录 B.彻底删除成绩在90分以下的记录 C.删除考生成绩表 D.为表中成绩小于90分的记录添加删除标记 [解析本题考查的知识点是SQL语句中DELETE命令的使用。SQL中的DELETE命令 用于逻辑删除记录,如果要物理删除记录,需要用PACK命令。选项A中的物理删除错误。 选项B的彻底删除实际就是物理删除,所以错误。选项C的说法有错误。选项D的说法正 确,因为SQL中的DELETE命令用于逻辑删除记录,FROM用于指定从哪个表中删除记录, 本题即从“考生成绩”表中删除:WHEE用于指定被删除的记录所满足的条件,本题的条 件是成绩在90分以下的记录。 [答案]D 3.SQL语句中,UPDATE命令的功能是
【格式】 UPDATE <表文件名> SET <字段名 1>=<表达式> [,<字段名 2>=<表达式>…] [WHERE <条件>] 【功能】更新指定表文件中满足 WHERE 条件子句的数据。其中 SET 子句用于指定列和修 改的值,WHERE 用于指定更新的行,如果省略 WHERE 子句,则表示表中所有行。 【说明】更新操作又称为修改操作。 【例】将成绩表(SC)中,所有课程号为 02 的成绩各加 5 分。 UPDATE SC SET 成绩=成绩+5 WHERE 课程号="k321" 3.删除记录 【格式】 DELETE FROM <表名> WHERE <表达式> 【功能】从指定的表中删除满足 WHERE 子句条件的所有记录。如果在 DELETE 语句中没 有 WHERE 子句,则该表中的所有记录都将被删除。 【说明】这里的删除是逻辑删除,即在删除的记录前加上一个删除标记“*”。 【例】删除 STUD 表中所有性别为男的记录。 DELETE FROM STUD WHERE 性别=“男” 4. 数据管理 数据管理(也称数据控制)语言是用来管理(或控制)用户的访问权限的。而 Visual FoxPro6.0 没有这种权限管理。 【例题】: 1.下列关于 INSERT—SQL 的叙述正确的是____。 A.在表尾插入一条记录 B.在表头插入一条记录 C.在表中任何位置插入一条记录 D.可以向表中插入若干记录 [解析] 本题考查的知识点是 INSERT 命令的作用。INSERT—SQL 命令的作用是在表尾插 入一条记录。 选项 B,C,D 的说法都错误,INSERT—SQL 命令不能完成 B,C,D 指定的要求。 [答案] A 2.DELETE FROM 考生成绩 WHERE 成绩<90 语句的功能是____。 A.物理删除成绩在 90 分以下的记录 B.彻底删除成绩在 90 分以下的记录 C.删除考生成绩表 D.为表中成绩小于 90 分的记录添加删除标记 [解析] 本题考查的知识点是 SQL 语句中 DELETE 命令的使用。SQL 中的 DELETE 命令 用于逻辑删除记录,如果要物理删除记录,需要用 PACK 命令。选项 A 中的物理删除错误。 选项 B 的彻底删除实际就是物理删除,所以错误。选项 C 的说法有错误。选项 D 的说法正 确,因为 SQL 中的 DELETE 命令用于逻辑删除记录,FROM 用于指定从哪个表中删除记录, 本题即从“考生成绩”表中删除;WHERE 用于指定被删除的记录所满足的条件,本题的条 件是成绩在 90 分以下的记录。 [答案] D 3.SQL 语句中,UPDATE 命令的功能是____