第8章结构化查询语言SQL

上传人:飞*** 文档编号:6454699 上传时间:2017-09-11 格式:DOC 页数:14 大小:108KB
返回 下载 相关 举报
第8章结构化查询语言SQL_第1页
第1页 / 共14页
第8章结构化查询语言SQL_第2页
第2页 / 共14页
第8章结构化查询语言SQL_第3页
第3页 / 共14页
第8章结构化查询语言SQL_第4页
第4页 / 共14页
第8章结构化查询语言SQL_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《第8章结构化查询语言SQL》由会员分享,可在线阅读,更多相关《第8章结构化查询语言SQL(14页珍藏版)》请在金锄头文库上搜索。

1、171第 8 章 结构化查询语言 SQL81 SQL 概述结构化查询语言 SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系数据库标准语言。目前,SQL 语言已被确定为关系数据库系统的国际标准,被绝大多数商品化关系数据库系统采用。在 SQL 语言中,指定要做什么而不是怎么做,不需要告诉 SQL如何访问数据库,只要告诉 SQL 需要数据库做什么。可以在设计或运行时对数据控件使用SQL 语句。811 SQL 的发展历程SQL 语言是 1974 年提出的,由于它功能丰富、使用方式灵活

2、、语言简洁易学等突出优点,在计算机工业界和计算机用户中倍受欢迎。1986 年 10 月,美国国家标准局(ANSI)的数据库委员会批准了 SQL 作为关系数据库语言的美国标准。1987 年 6 月国际标准化组织(ISO) 将其采纳为国际标准。这个标准也称为“SQL86”。随着 SQL 标准化工作的不断进行,相继出现了“SQL89”、 “SQL2”(1992)和“SQL3”(1993)。SQL 成为国际标准后,对数据库以外的领域也产生很大影响,不少软件产品将 SQL 语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来。我们在这里介绍基于 SQL89 和 SQL2 的语言

3、使用概貌。812 SQL 数据库的体系结构SQL 数据库的体系结构基本上也是三级模式结构如图 8.1 所示。SQL 术语与传统的关系模型术语不同。在 SQL 中,外模式对应于视图,模式对应于基本表,元组称为“ 行” ,属性称为 “列”。内模式对应于存储文件。SQL 数据库的体系结构具有如下特征:1一个 SQL 模式(Schema)是表和约束的集合。2一个表(Table) 是行(Row)的集合。每行是列(Column)的序列,每列对应一个数据项。3个表可以是一个基本表,也可以是一个视图,基本表是实际存储在数据库中的表。视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库

4、中只存放视图的定义而不存放视图的数据,这些数据仍存放在导出视图的基本表中。因此视图是一个虚表。1724一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表,一个表可以带若干索引,索引也存放在存储文件中。每个存储文件与外部存储器上一个物理文件对应。存储文件的逻辑结构组成了关系数据库的内模式。SQL 用户ViewBase TableStored File图 8.1 SQL 数据库的体系结构5用户可以用 SQL 语句对视图和基本表进行查询等操作。在用户看来,视图和基本表是一样的,都是关系(即表格 )。6SQL 用户可以是应用程序,也可以是终端用户。SQL 语句可嵌入在宿主语言的程

5、序中使用,宿主语言有 FORTRAN、COBOL、PASCAL、PL I、C 和 Ada 等语言;SQL语言也能作为独立的用户接口,供交互环境下的终端用户使用。 813 SQL 的组成SQL 主要分成四个部分:1数据定义:这一部分也称为“SQL DDL”,用于定义 SQL 模式、基本表、视图和索引。2数据操纵:这一部分也称为“SQL DML” 。数据操纵分成数据查询和数据更新两类。其中数据更新又分成插入、删除和修改三种操作。3数据控制:这一部分也称为“SQL DCL”。数据控制包括对基本表和视图的授权,完整性规则的描述,事务控制语句等。4嵌入式 SQL 使用:这一部分内容涉及到 SQL 语句嵌

6、入在宿主语言程序中的使用规则。82 SQL 的数据定义(DDL)用户 1 用户 2 用户 3 用户 4视图 1 视图 2基本表 1 基本表 3基本表 2 基本表 4存储文件 1 存储文件 2 存储文件 3 存储文件 4173SQL 的数据定义部分包括对 SQL 模式(Schema)、基本表( 关系,Table)、视图(View)、索引(Index )的创建和撤消操作。821 SQL 模式的创建和撤消1SQL 模式的创建在 SQL2 中,一个 SQL 模式( 即数据库模式)被定义为基本表的集合。一个 SQL 模式由模式名和模式拥有者的用户名或帐号来确定,并包含模式中每一个元素(基本表、视图、索引

7、等)的定义。创建了一个 SQL 模式,就是定义了一个存储空间,其语法如下:CREATE SCHEMA AUTHORIZATION 例如,下面语句定义了教学数据库的 SQL 模式:CREATE SCHEMA ST_COURSE AUTHORIZATION 李斌该模式名为 ST_COURSE,拥有者为李斌。由于“SQL 模式”这个名称学术味太重,因此大多数 DBMS 中不愿采用这个名词,而是采用“数据库”(DATABASE)这个名词。也就是大多数系统中创建 SQL 模式不是用“CREATE SCHEMA”字样,而是用“CREATE DATABASE”字样。2SQL 模式的撤消当一个 SQL 模式及

8、其所属的基本表、视图等元素都不需要时。可以用 DROP 语句撤消这个 SQL 模式。DROP 语句的语法如下:DROP SCHEMA CASCADE|RESTRICT撤消方式有两种:CASCADE(连锁式)方式,执行 DROP 语句时,把 SQL 模式及其下属的基本表、视图、索引等所有元素全部撤消;RESTRICT( 约束式) 方式,执行 DRPO 语句时,只有当 SQL 模式中没有任何下属元素时,才能撤消 SQL 模式,否则拒绝执行 DROP语句。例如,要撤消 SQL 模式 ST_COURSE 及其下属所有的元素,可用下列语句实现:DROP SCHEMA ST_COURSE CASCADE8

9、22 SQL 提供的基本数据类型1数值型INTEGER 长整数( 也可写成 INT)SMALLINT 短整数REAL 取决于机器精度的浮点数DOUBLE PRECISION 取决于机器精度的双精度浮点数FLOAT(n) 浮点数 ,精度至少为 n 位数字NUMERIC(p,d) 定点数,由 p 位数字(不包括符号、小数点)组成,小数点后面有 d 位数字( 也可写成 DECIMAL(P,d)或 DEC(P,d)2字符串型174CHAR(n) 长度为 n 的定长字符串VARCHAR(n) 具有最大长度为 n 的变长字符串3位串型BIT(n) 长度为 n 的二进制位串BIT VARYING(n) 最大

10、长度为 n 的变长二进制位串4时间型DATE 日期,包含年、月、日,形式为 YYYY-MM-DDTIME 时间,包含一日的时、分、秒,形式为 HH:MM:SS823 基本表的创建、修改和撤消如果在系统中创建了一个 SQL 模式,那么就可以在该模式中创建基本表。对基本表结构的操作有创建、修改和撤消三种操作。1基本表的创建句法:CREATE TABLE SQL 模式名.基本表名(列名 类型, 完整性约束 )创建基本表,就是定义基本表的结构,需指出它放在哪个模式中,后面为简单起见,模式名省略不写。每个属性的类型可以是基本类型,也可以是用户事先定义的类型。完整性规则主要有三种子句:主键子句(PRIMA

11、RY KEY) 、检查子句 (CHECK)和外键子句(FOREIGN KEY)。例 8.l 在有关零件、供应商、工程项目的数据库中,有四个关系,其结构如下供应商关系 S,可用下列语句创建:CREATE TABLE S (SNO CHAR(4) NOT NULL,SNAME CHAR(20) NOT NULL,STATUS CHAR(10),ADDR CHAR(20),PRIMARY KEY (SNO) ) ;这里定义的关系 S 有四个属性,分别是供应商号(SNO) 、供应商名(SNAME)、状态(STATUS)和地址(ADDR) ,属性的类型都是字符型,长度分别是 4、20、10 和 20 个

12、字符。主键是供应商编号 SNO。在 SQL 中允许属性值为空值,当规定某一属性值不能为空值时,就要在定义该属性时写上保留字“NOT NUIL”。本例中,规定供应商号和供应商名不能取空值。由于已规定供应商号为主码,所以对属性 SNO 的定义中的“NOT NULL”可以省略不写。对于基本表 P,J,SPJ 可以用下列语句创建:供应商关系:S(SNO,SNAME,STATUS,ADDR)零件关系:P(PNO,PNAME,COLOR,WEIGHT)工程项目关系:J(JNO,JNAME,CITY,BALANCE)供应情况关系:SPJ(SNO,PNO,JNO,PRICE,QTY)175CREATE TAB

13、LE P (PNO CHAR(4) NOT NULL,PNAME CHAR(20) NOT NULL,COLOR CHAR(8), WEIGHT SMALLINT,PRIMARY KEY(PNO);CREATE TABLE J (JNO CHAR(4) NOT NULL,JNAME CHAR(20),CITY CHAR(20),BALANCE NUMERIC(7,2), PRIMARY KEY(JNO);CREATE TABLE SPJ (SNO CHAR(4) NOT NULL,PNO CHAR(4) NOT NULL,JNO CHAR(4) NOT NULL,PRICE NUMERIC(7

14、,2),QTY SMALLINT,PRIMARY KEY (SN0,PNO,JNO) ,FOREIGN KEY (SNO) REFERENCES S(SNO),FOREIGN KEY (PNO) REFERENCES P(PNO),FOREIGN KEY (JNO) REFERENCES J(JNO),CHECK(QTY BETWEEN 0 AND 10000);上述各属性的含义是:零件号(PNO)、零件名(PNAME) 、颜色(COLOR) 、重量(WEIGHT) 、单价(PRICE)、工程项目号(JNO) 、工程项目名称 (JNAME)、城市(CITY)、余额(BALANCE) 、供应数量

15、(QTY) 。基本表 SPJ 的定义中说明了有五个属性,主键是(SNO,PNO,JNO)。还定义了三个外键,并指出外键 SNO 和基本表 S 中 SNO 属性相对应,外键 PNO 和基本表 P 中 PNO 属性相对应,外键 JNO 和基本表 J 中 JNO 属性相对应,此处对应的属性名恰好同名,实际上也可以不同名,只要指出其对应性即可。外键体现了关系数据库的参照完整性。定义中还使用了一个检查子句,指出供应数量 QTY 在 010000 之间。2基本表结构的修改基本表建立后,可根据需要对基本表结构进行修改,即增加新的属性或删除原有的属性。(1)增加新的属性句法: ALTER TABLE 基本表名

16、 ADD 新属性名 新属性类型例 8.2 在基本表 S 中增加一个电话号码(TELE) 属性,可用下列语句:ALTER TABLE S ADD TELE CHAR(12); 应注意,新增加的属性不能定义为“NOT NULL”。基本表在增加一个属性后,原有元组在新增加的属性列上的值都被定义为空值(NULL)。(2)删除原有的属性176句法: ALTER TABLE 基本表名 DROP 属性名 CASCADE|RESTRICT此处 CASCADE 方式表示:在基本表中删除某属性时,所有引用到该属性的视图和约束也要一起自动地被删除。而 RESTRICT 方式表示在没有视图或约束引用该属性时,才能在基本表中

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号