关系数据库标准语言SQL
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关系数据库标准语言SQL
1.1SQL概述
1.11 SQL的标准化历程
SQL是1974年提出的;IBM公司首先实现了关系数据库管理系统;1987年SQL被作为国际标准。
1.12 SQL的功能特点
SQL集数据查询,数据操作,数据定义和数据控制功能于一体。具有以下特点:
综合统一:非关系模型的数据语言一般都分为模式数据定义语言,外模式数据定义语言,与数据存储有关的描述语言以及数据操作语言,分别用于定义模式,外模式,内模式和进行数据的存取和处理。而SQL则集数据定义语言,数据操作语言,数据控制语言的红能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。
高度非过程化:非关系数据模型的数据操作语言是面向过程的语言,使用这样的语言进行数据操作,必须制定存取路径。而SQL进行数据操作,用户只需提出“做什么”,而不用指明“怎么做”,因此用户无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。
面向集合的操作方式:非关系模具模型采用的是面向标记的操作方式,操作的对象都是一条记录。而SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入,删除,更新操作的对象也可是是元组的集合。
灵活的使用方式:SQL既是自含式语言,又是嵌入式语言。作为自含式语言,他能够独立的用联机交互的使用方式,用户可以在键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言程序中,供程序员设计程序时使用。
语言简易,易学易用,功能强:SQL功能极强,具有完备的表达能力。但由于设计巧妙,语言十分简洁,完成数据定义,数据操作,数据控制的核心功能只用了9个动词。
1.13 SQL的基本组成
(1)SQL数据库的三级模式结构
SQL支持数据库三级模式结构,在SQL中,外模式对应于“视图(View)”和部分基本表,模式对应于基本表“Base Table”,内模式对应于“存储文件”。
一个SQL数据库模式是基本表的集合。
一个关系对应于一个SQL表,行对应于元组,列对应于属性。
一个表可以有若干索引,索引也存放在存储文件中。
存储文件的逻辑结构组成了SQL数据库的内模式,存储文件的物理结构对用户是透明的,由操作系统管理。
一个SQL表可以是一个基本表,也可以是一个视图。基本表是实际存储在数据库中的表;视图是从一个或几个基本表或其它视图导出的表。数据库并不存放视图对应的数据,而只存放视图的定义,因此视图是一个虚表。
一个基本表可以跨一个或多个存储文件存放,一个存储文件可一个或多个基本表。每个存储文件与外部存储器上的一个物理文件对应。
SQL用户可以是应用程序,也可以是终端用户。
SQL环境是SQL数据存在和SQL语句执行的语境。
(2)SQL的组成
SQL由以下部分组成
数据定义语言DDL:用来创建数据库的各种对象,例如数据库模式,表,视图和索引等。
数据操作语言DML:用来查询和修改SQL数据库中的数据。
数据控制语言DCL:用来授予或收回访问数据库的某种特权,控制数据操作事物的发生时间及效果,对数据库进行监视等。
嵌入式和动态SQL规则:嵌入式和动态SQL用于某种通用的高级程序设计语言中,以便适应较为复杂的应用。
SQL调用和会话规则:SQL调用包括SQL例程和调用规则,以便提高SQL 的灵活性,有效性,共享性,使SQL具有更多的高级语言的特性。
(3)SQL语句的类型
根据SQL的组成及其功能,SQL语句可以分为以下类型:
SQL定义语句:用来创建,修改,删除数据库模式及其对象。
SQL数据语句:用来完成数据库的查询,插入,删除,更新操作。SELETE,INSERT,DELETE,UPDATE。
SQL事物的控制语句:用来完成数据库授权,事物管理以及控制SQL数据集的运行。GRANT,REVOKE,START TRANSACTION,COMMIT,ROBACK,SA VEPOINT SQL连接,会话和诊断语句:用来创建数据库连接,为SQL会话设置参数,获取诊断等。SET CONNECTION,SET ZONE,SET SESSION AUTHORIZATION
1.14 SQL 的数据类型
SQL的数据类型可分为如下三类:
预定义数据类型
构造数据类型
用户定义数据类型
预定义数据类型又可分为数值型,字符串型,位串型,时间型和布尔型。而构造数据类型是由特定的保留字和预定义数据类型构造而成,如用“REF”定义的引用类型,用“ROW”定义的行类型,用“ARRAY”定义的聚合数据类型等。用户定义数据类型是一个对象类型,它由用户按照一定的规则用预定义数据类型组合定义的用户自己专用的数据类型。
1.2 SQL的数据定义
SQL的数据定义功能主要包括对SQL模式,基本表,视图,索引的定义和删除以及对基本表的修改和对域的定义等。
模式CREATE SCHEMA DROP SCHEMA
基本表CREATE TABLE DROP TABLE ALTER TABLE 视图CREATE VIEW DROP VIEW
索引CREATE INDEX DROP INDEX
域CREATE DOMAIN DROP DOMAIN
1.21 SQL的模式
SQL模式是其所属模式对象的集合,SQL模式对象包括表,视图,域,约束,特
权,字符集,排序,翻译,用户定义类型,例程及序列等。
(1)定义SQL模式
SQL模式由模式名和模式拥有者的用户名或帐号确定。定义了一个SQL模式,就是定义了一个存储空间,在该空间中存储的数据库对象全体构成该模式对应的SQL数据库。
CREA TE SCHEMA <模式名> AUTHORIZATION <用户名>
[
(2) 删除SQL模式
DROP SCHEMA <模式名> {CASCADE|RESTRICT};
当用DROP SCHEMA 语句删除数据库模式时,可以选用以下的两种方式:
选用CASCADE(级联方式),则删除数据库模式时,该数据库模式连同其下属的模式对象全部被删除。
选用RESTRICT(约束方式),则删除数据库模式时,该数据库模式下属的模式对象预先已全部删除,才能执行对该数据库模式的删除,否则拒绝删除。
1.22 SQL基本表
(1)创建基本表
CREATE TABLE [模式名。] <表名> (<列名><数据类型> [列完整性约束]
[,<列名><数据类型>[列完整性约束]]…….
[,<表级完整性约束>])
[其他参数];
Primary key ()
Foreign key () references ()
(2)扩充和修改基本表
ALTER TABLE <表名>
[ADD <列名><数据类型>[<完整性约束>]][ADD <完整性约束>]
[DROP<列名>{CASCADE|RESTRICT}][DROP<完整性约束>]
[MODIFY <列名><数据类型>];
(3)删除基本表
DROP TABLE<表名>[CASCADE|RESTRICT]
1.23 SQL的索引
(1)创建索引
CREATE [UNIQUE][CLUSTER] INDEX <索引名> ON <表名> (<列名>[<顺序>[,<列名>[<顺序>]]….])
每个列名后面还可以用顺序指定索引值的排列顺序,包括ASC(升序),DESC (降序)两种,默认是升序。
UNIQUE表示此索引的每一个索引值只对应唯一的数据
CLUSTER表示要建立的索引是聚簇索引
聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。(强制)
例如:CREATE CLUSTER INDEX name_index ON course (cname) 则COUNT 表中的记录将按照cname值的升序存放。一个表只能有一个聚簇索引。
(2)删除索引
DROP INDEX [ON <表名>]<索引名>;
删除索引时,系统会同时从数据字典中删去有关该索引的描述。