第三章关系数据库的标准语言SQL 3.1SQL概述 3.2数据定义语言 33数据更新语言 3.4数据查询语言 35数据控制语言 36嵌入式SQ 3.7事务处理 38触发器 39存储过程
3.1 SQL概述 3.2 数据定义语言 3.3 数据更新语言 3.4 数据查询语言 3.5 数据控制语言 3.6 嵌入式SQL 3.7 事务处理 3.8 触发器 3.9 存储过程 第三章 关系数据库的标准语言SQL
31SQL概述 SQL的发展历程 SQL语言1974年被提出,并首先在IBM公司研制的RDB原型系统 Sy stem R上实现。 1987年6月,国际标准化组织(IS0将其采纳为国际标准(称 “SQL86”)。 ·趋势:各种计算机(微机、小型机、大型机)上的DBS,都采用 SQL作为共同的数据存取语言和标准接口。成为不同DBS间互操 作的基础。 可预见,在未来一段相当长的时间内,SQL仍将是RDB的主流 语言,而且在知识发现、人工智能、软件工程等领域,也具有 广阔的应用前景。 食↓
• SQL语言1974年被提出,并首先在IBM公司研制的RDB原型系统 System R上实现。 • 1987年6月,国际标准化组织(ISO)将其采纳为国际标准(称 “SQL86”)。 • 趋势:各种计算机(微机、小型机、大型机)上的DBS,都采用 SQL作为共同的数据存取语言和标准接口。成为不同DBS间互操 作的基础。 • 可预见,在未来一段相当长的时间内, SQL仍将是RDB的主流 语言,而且在知识发现、人工智能、软件工程等领域,也具有 广阔的应用前景。 SQL的发展历程 3.1 SQL概述
sQL的组成与功能 (1)数据定义语言(DDL) 用来定义RDB的模式基本表、外模式和内模式,以实现对基本表、视图以及索 引文件的定义、修改和删除等操作。 (2)数据操纵语言(DML) 数据查询:对DB中的数据查询、统计、分组、排序等操作; 数据更新:数据的插入、删除、修改等数据维护操作。 (3)数据控制语言(DCL) 数据控制包括对基本表和视图的授权,完整性规则的描述等。 (4)嵌入式SQL 规定了SL语句嵌入在宿主语言程序中使用的各种规则。 sQL的命令动词表: sQL的功能 命令动词 数据定义(数据模式定义、删除、修改) cREATE,DRP, ALTER 数据操纵(数据查询和维护) SELECT, INSERT, UPDATE, DELETE 数据控制(数据存取控制授权和收权) GRANT, REVOKE
⑴ 数据定义语言( DDL ) • 用来定义RDB的模式基本表、外模式和内模式,以实现对基本表、视图以及索 引文件的定义、修改和删除等操作。 ⑵ 数据操纵语言( DML ) • 数据查询:对DB中的数据查询、统计、分组、排序等操作; • 数据更新:数据的插入、删除、修改等数据维护操作。 ⑶ 数据控制语言( DCL ) • 数据控制包括对基本表和视图的授权,完整性规则的描述等。 ⑷ 嵌入式SQL • 规定了SQL语句嵌入在宿主语言程序中使用的各种规则。 SQL的组成与功能 SQL的命令动词表:
SQL语言的特点 1.一体化:SαL集数据定义语言(DDL)、数据操纵语ˉ (DML)和数据控制语言(DCL)为一体。 2两种使用方式:自含式和嵌入式 自含式SQL:能够独立地进行联机交互,用户只需 在终端键盘上直接键入SQL命令就可以对DB进行操作; 嵌入式SαL:能够嵌入到高级语言,如C、 COBOL、 FORTRAN、門L/1程序中来实现对DB的数据存取操作,给 程序员设计应用程序提供了很大的方便。 3高度非过程化:只要求用户提出“干什么”,而无需指 出“怎么干”;SQL语句操作的过程由系统自动完成
SQL语言的特点 1.一体化:SQL集数据定义语言(DDL)、数据操纵语言 (DML)和数据控制语言(DCL)为一体。 2.两种使用方式:自含式和嵌入式 自含式SQL:能够独立地进行联机交互,用户只需 在终端键盘上直接键入SQL命令就可以对DB进行操作; 嵌入式SQL:能够嵌入到高级语言,如C、COBOL、 FORTRAN、PL/1程序中来实现对DB的数据存取操作,给 程序员设计应用程序提供了很大的方便。 3.高度非过程化:只要求用户提出“干什么”,而无需指 出“怎么干”;SQL语句操作的过程由系统自动完成
SQL语言基础 S①L也有自己的数据类型、表达式、关键字和语句结构。当然和其他语言 相比,SQL语言要简单的多 1.数据类型: 标准SQL语言定义的数据类型 类型 定义 说明 INT, SMALLINT 定点整数 数值型 NUMERIC, DECIMAL 定点小数 FLOAT,REAL等 浮点数 CHAR (n) 定长字符串,n<255 字符串型 VARCHAR(n) 不定长字符串,长度不超过n个字符 日期、时间型DATE 日期 TIME 「时间型 TIMES TAMP 日期时间型 二进制位串BIT(n) 定长二进制位串 BITVAR (n) 变长二进制位串
SQL语言基础 • SQL也有自己的数据类型、表达式、关键字和语句结构。当然和其他语言 相比,SQL语言要简单的多 类型 定义 说明 INT,SMALLINT 定点整数 数值型 NUMERIC,DECIMAL 定点小数 FLOAT,REAL 等 浮点数 CHAR(n) 定长字符串,n<255 字符串型 VARCHAR(n) 不定长字符串, 长度不超过 n 个字符 DATE 日期 TIME 时间型 日期、时间型 TIMESTAMP 日期时间型 二进制位串 BIT(n) 定长二进制位串 BITVAR(n) 变长二进制位串 标准SQL语言定义的数据类型 1.数据类型:
2.SQL表达式: 数值表达式 值表达式字符串表达式 日期表达式 逻辑表达式: 逻辑运算:NOT、AND、OR 比较谓词:( 范围谓词(IN、LIKE、IS) 存在谓词( EXIST)
数值表达式 值表达式 字符串表达式 日期表达式 逻辑表达式: 逻辑运算:NOT、AND、OR 比较谓词:(=、、<>、=) 范围谓词( IN 、LIKE、IS) 存在谓词(EXIST) 2. SQL表达式:
3.SQL语言的函数 SQL内置函数 统计函数: COUNT、SUM、AVG、MAX和MIN,以一个表为范围 进行统计 字串处理函数 子串提取函数( Substring),大小写转换函数( Upper Lower),子串位置函数( Position)和串长度函数 时间日期处理函数: Current date(返回当前日期), Current time(返回当 前时间), Current timestamp(返回当前日期时间)
• SQL内置函数 – 统计函数: • COUNT、SUM、AVG、MAX和MIN,以一个表为范围 进行统计 – 字串处理函数: • 子串提取函数(Substring),大小写转换函数(Upper, Lower),子串位置函数(Position)和串长度函数 – 时间日期处理函数: • Current_date(返回当前日期),Current_time(返回当 前时间),Current_timestamp(返回当前日期时间) 3.SQL语言的函数
32数据定义语言 表 索引 视图 SQL的数据定义语句 操作对 操作方式 象表 创建 删除 修改 CREATE DROP ALTER TABLE TABLE TABLE 视图 CREATE DROP VIEW VIEW 索引 CREATE DROP INDEX INDEX
3.2 数据定义语言 表 索引 视图 SQL 的数据定义语句 操 作 方 式 操 作 对 象 创 建 删 除 修 改 表 CREATE TABLE DROP TABLE ALTER TABLE 视 图 CREATE VIEW DROP VIEW 索 引 CREATE INDEX DROP INDEX
表 1.创建基本表 2.完整性约束 3.修改基本表 4.撤消基本表 食
一、表 1. 创建基本表 2. 完整性约束 3. 修改基本表 4. 撤消基本表
1.创建基本表 语句格式: CREATE TABLE数据类型〉<列级完整性约束条件〉 [,<列名〉「<数据类型〉<列级完整性约柬条件〉]…] [<表级完整性约束条件〉]) 功能:定义基本表的表名及其结构 若完整性约束条件涉及到该表的多个属性列,则必须定义在表 级上,否则既可定义在列级也可定义在表级
1. 创建基本表 语句格式: CREATE TABLE ([] [,[[]]…] []); 功能:定义基本表的表名及其结构。 若完整性约束条件涉及到该表的多个属性列,则必须定义在表 级上,否则既可定义在列级也可定义在表级。