当前位置:
文档之家› 第三章+关系数据库标准语言SQL(一)
第三章+关系数据库标准语言SQL(一)
❖ 其中<表名>是所要定义的基本表的名字,它可以由 一个或多个属性(列)组成。<列名>是所要定义的列 的名字,完整性约束条件表示表中数据需要满足的 约束条件。
An Introduction to Database System
3.3.1 基本表的定义、删除与修改(续)
❖ 完整性约束条件被存入系统的数据字典中,当用 户操作表中数据时由DBMS自动检查该操作是否 违背这些完整性约束条件。
3.1.3 SQL的特点
1.综合统一
集数据定义语言(DDL),数据操纵语言(DML), 数据控制语言(DCL)功能于一体。
可以独立完成数据库生命周期中的全部活动:
➢ 定义关系模式,插入数据,建立数据库; ➢ 对数据库中的数据进行查询和更新; ➢ 数据库重构和维护 ➢ 数据库安全性、完整性控制等
3.1 SQL概述 3.2 学生-课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 嵌入式SQL
An Introduction to Database System
3.2 学生-课程 数据库
❖学生-课程模式 S-T : 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade)
SQL-99的12个标准文本。目前大多数数据库管理系统均 支持SQL-92(SQL2),有少部分支持SQL-99。 ❖ ANSI在2003年做了更新,针对 SQL-99 的一些问题进行 了改进,支持 XML,支持 Window 函数、Merge 语句等, 称为SQL:2003。 ❖ 2006年发布了SQL:2006,增强 XML 对数据处理的能力。 ❖ 目前最新版本为SQL:2008。毫无疑问,将来还会做进一 步的改良。
An Introduction to Database System
3.1 SQL概述
❖3.1.1 SQL 的产生与发展 ❖3.1.2 SQL数据库的体系结构 ❖3.1.3 SQL的组成 ❖3.1.4 SQL的特点
An Introduction to Database System
3.1.2 SQL数据库的体系结构
An Introduction to Database System
3.1.3 SQL的组成
❖ (4)触发器和高级完整性约束:新的SQL标准包括对触发器 的支持,当对数据库的改变满足触发器的条件时,DBMS 就执行触发器。
❖ (5)嵌入式和动态SQL:嵌入式的SQL特征使得可以从宿主 语言(例如C或者COBOL)中调用SQL代码。动态的SQL特 征允许在运行时构建查询。
表 3.1 SQL 功 能 数据查询 数据定义 数据操纵
数据控制
SQL 语言的动词 动词
SELECT CREATE,DROP,ALTER INSERT,UPDATE DELETE GRANT,REVOKE
An Introduction to Database System
第三章 关系数据库标准语言SQL
用户数据库投入运行后,可根据需要随时逐步修改 模式,不影响数据的运行。
数据操作符统一
An Introduction to Database System
2.高度非过程化
❖ 非关系数据模型的数据操纵语言“面向过程”, 必须制定存取路径
❖ SQL只要提出“做什么”,无须了解存取路径。 ❖ 存取路径的选择以及SQL的操作过程由系统自动
CREATE TABLE Course (Cno number(4) constraint pk_Course primary key, Cname char(20), Cpno number(4), Ccredit number(4));
An Introduction to Database System
数据库系统原理
第三章 关系数据库标准语言 SQL
An Introduction to Database System
第三章 关系数据库标准语言SQL
❖ 本章知识要点
▪ SQL概述 ▪ 数据定义 ▪ 数据查询 ▪ 数据更新 ▪ 视图 ▪ 嵌入式SQL
An Introduction to Database System
❖ SQL是1974年由Boyce和Chamberlin提出的, 1975年至1979年IBM公司研制的DBMS—— System R实现了这种语言。
❖ 经过多年以后,SQL已经成为一种广泛使用的语 言,用于创建、维护和查询关系。
❖ 1986年,美国国家标准局(ANSI)的数据库委员会 批准了SQL作为关系数据库语言的美国标准。
❖3.1.1 SQL 的产生与发展 ❖3.1.2 SQL数据库的体系结构 ❖3.1.3 SQL的组成 ❖3.1.4 SQL的特点
An Introduction to Database System
3.1.3 SQL的组成
❖ (1)数据操作语言(The Data Manipulation Language, DML):该SQL语句允许用户提出查询,以及插入、删除 和修改行。本书这章中将介绍插入、删除和修改行的DML 命令。
①主码约束(续)
❖例3-2 对例3-1的约束改为表级约束。 CREATE TABLE Course (Cno number(4), Cname char(20), Cpno number(4), Ccredit number(4), Constraint pk_Course primary key(Sno));
❖ 如果完整性约束条件涉及到该表的多个属性列, 则必须定义在表级上;
❖ 如果只涉及一个属性列,则既可以定义在列级也 可以定义在表级。在表中,可以指定许多种完整 性约束
An Introduction to Database System
①主码约束
❖例3-1 建立一个课程表Course,由课程号Cno、课 程名Cname、先行课程号Ccpno、学分Ccredit四 个属性组成。
第三章 关系数据库标准语言SQL
3.1 SQL概述 3.2 学生-课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 嵌入式SQL
An Introduction to Database System
3.1 SQL概述
❖结构化查询语言SQL (Structured Query Language)是一种介于关系代数与关系演算之间 的语言,其功能包括查询、操纵、定义和控制四个 方面,是一个通用的功能极强的关系数据库标准语 言。
An Introduction to Database System
②外码约束
❖例3-5 一个外码自身参照的例子。
CREATE TABLE Course (Cno number(4) constraint pk_Course primary key, Cname char(20), Cpno number (4) constraint fk_cpno references Course
An Introduction to Database System
SQL概述(续)
❖3.1.1 SQL 的产生与发展 ❖3.1.2 SQL数据库的体系结构 ❖3.1.3 SQL的组成 ❖3.1.4 SQL的特点
An Introduction to Database System
3.1.1 SQL 的产生与发展
An Introduction to Database System
②外码约束
❖例3-4 对例3-3的表级外码约束改为列级。
CREATE TABLE SC (Sno number(12), Cno number(4) Constraint fk_c references Course(Cno), Grade number(3), Constraint pk_SC primary key (Sno,Cno)) ;
❖ (2)数据定义语言(The Data Definition Language DDL): 该SQL语句支持表的创建、删除和修改,支持视图和索引 的创建和删除。完整性约束能够定义在表上,可以是在创 建表的时候,也可以是在创建表之后定义约束。
❖ (3)数据控制语言(Data Control Language,DCL):该SQL 语句的目标是管理用户对数据库对象的访问。
完成。
An Introduction to Database System
3.面向集合的操作方式
❖ 非关系数据模型采用面向记录的操作方式,操作对 象是一条记录
❖ SQL采用集合操作方式
➢ 操作对象、查找结果可以是元组的集合 ➢ 一次插入、删除、更新操作的对象可以是元组的集合
An Introduction to Database System
❖SQL数据库的体系结构基本上也是三级模式。
▪ SQL术语与传统的关系模型术语不同。 ▪ 在SQL中,
• 外模式对应于视图和部分基本表, • 模式对应于基本表,元组称为“行”,属性称为
“列”。 • 内模式对应于存储文件。
An Introduction to Database System
4.1 SQL概述
3.3 数据定义
SQL的数据定义功能: 表定义、视图和索引的定义
操作对象
表 视图 索引
表 3.2 SQL 的数据定义语句
操作方式
创建
删除
CREATE TABLE
DROP TABLE
CREATE VIEW
DROP VIEW
CREATE INDEX
DROP INDEX
修改 ALTER TABLE
An Introduction to Database System