第四章 关系数据库标准语言 SQL 下载本文

内容发布更新时间 : 2024/12/25 15:03:42星期一 下面是文章的全部内容请认真阅读。

第四章 关系数据库标准语言 SQL

大纲要求

关系数据库标准语言 SQL 1、 SQL的数据定义功能: (1) CREATE TABLE –SQL (2) ALTER TABLE –SQL 2、 SQL的数据修改功能: (1) DELETE –SQL (2) INSERT –SQL (3) UPDATE –SQL 3、 SQL的数据查询功能: (1) 简单查询。 (2) 嵌套查询。 (3) 连接查询。 内连接

外连接:左连接、右连接、完全连接 (4) 分组与计算查询。 (5) 集合的并运算。 知识要点

一. 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(10),课程号 C(2)) LIST STRUCTURE

【例2】创建一个表STUD(学生信息表),它由以下字段组成:学号 (C,10);姓名(C,8);性别(C,2);班级名(C,10);系别代号(C,2);地址(C,50);出生日期 (D);是否

- 1 -

团员 (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语言的作用。在VisualFoxPro中,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命令是____。

- 2 -

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: ● 数据查询:寻找所需的具体数据。 ● 数据修改:添加、删除和改变数据。

数据操纵语言一般由INSERT(插入)、DELETE(删除)、UPDATE(更新),SELECT(查询)等组成,由于SELECT 比较特殊,所以一般又将它以查询语言单独出现。 1、 插入记录 【格式1】

INSERT INTO <表名> [<字段名表>] VALUES (<表达式表>) 【格式2】

INSERT INTO <表名> FROM ARRAY <数组名> | FROM MEMVAR

【功能】在指定的表文件尾部追加一条记录。格式1 用表达式表中的各表达式值赋值给<字段名表>中的相应的各字段。格式2 用数组或内存变量的值赋值给表文件中各字段。

【说明】如果某些字段名在INTO 子句中没有出现,则新记录在这些字段名上将取空值(或默认值)。<字段名表>:指定表文件中的字段,缺省时,按表文件字段的顺序依次赋值。<表达式表>:指定要追加的记录各个字段的值。 【例1】在表文件STUD 的末尾追加三条记录。 ***用表达式方式追加第一条记录***

INSERT INTO STUD (学号,姓名,性别,班级名,系别代号,地址,出生日期,是否团员) ; VALUES(\李中国\男\计0121\湖北武汉\ ***用数组方式追加第二条记录*** DIMENSION TA[8] TA(1)=\ TA(2)=\李宁\ TA(3)=\女\ TA(4)=\电0134\ TA(5)=\

TA(6)=\北京赛迪网校\ TA(7)={^2005/01/15} TA(8)=.T.

INSERT INTO STUD FROM ARRAY TA ***用内存变量方式追加第三条记录*** 学号=\ 姓名=\赵娜\ 性别=\女\ 班级名=\英0112\ 系别代号=\

- 3 -