当前位置:
文档之家› 武汉大学数据库系统概论 第五讲 SQL概述与SQL定义语言
武汉大学数据库系统概论 第五讲 SQL概述与SQL定义语言
30
创 建 与 删 除 索 引
3.
删除索引
基本语法: DROP INDEX 〈索引名〉; 索引的维护代价 实例 DROP INDEX S_S#;
31
本讲主要目标
学完本讲后,你应该能够了解:
1. SQL是一个非过程化语言,使用者只需要说 明“做什么”而不需要说明“怎么做”; 2. SQL是一个集定义、操作、查询和控制为一 体的语言; 3. SQL的定义语言支持和建立数据库三级模式 结构; 4. 如何使用Create Table语句和Create Index 语句创建基本表和索引。
32
问
1.Βιβλιοθήκη 题讨论2.
3.
什么叫语言的非过程化?非过程化语言 的优劣是什么?SQL是一个非过程化语 言吗? CREATE TABLE 、 CREATE VIEW 、 CREATE INDEX的执行对DB和DD的影响? 一般来说,建立索引可以 提高查询效率,那么, 索引建得越多越好吗?
33
数据类型格式 INTEGER SMALLINT DECIMAL(m,n) CHAR(n) VARCHAR(n) DATE 数据类型 全字长整数 半字长整数 m位十进制数,小数n位 长度为n的定长字符串 最大长度为n的变长字符串 日期
22
创建、删除与修改表
3.
定义表语句的基本语法
CREATE TABLE 〈表名〉 ( (<列名><数据类型>[NOT NULL│NULL] [UNIQUE] [, <列名><数据类型>[NOT NULL│NULL] [UNIQUE]]… [, PRIMARY KEY (<列名>[,<列名>] …)]
29
创 建 与 删 除 索 引
2.
创建索引实例
实例一: 在学生表S中按S#升序建唯一索引 CREATE UNIQUE INDEX S_S# ON S(S#);
实例二: 在SC中按S#升序和C#降序建唯一索引 CREATE UNIQUE INDEX SC_S#C# ON SC( S# ASC,C# DESC);
对标准 的遵守 程度
SQL标准 是不确 定的
9
SQL的功能
10
S Q L
1.
的
功
能
SQL语言是一个综合的、通用的、功能极强 的关系数据库语言,它包括:
DDL(Data Define Language) 数据定义语言 DML(Data Manipulation Language) 数据操作语言 DQL(Data Query Language) 数据查询语言 DCL(Data Control Language) 数据控制语言。
19
创建、删除与 修改表
20
创建、删除与修改表
1.
创建表时,需要搞清楚的问题
此表包括那些列? 表名是什么? 各列名是什么? 各列的长度和数据类型是什么? 列是否允许取空值? 列是否取唯一值? 哪些列组成表的主键? 外键及被参照的关系是什么?
21
创建、删除与修改表
2.
主要数据类型
27
创建与删除 索引
28
创 建 与 删 除 索 引
1.
创建索引
基本语法
CREATE [UNIQUE] [CLUSTER] INDEX 〈索引名〉 ON <表名>(<列名> [<次序>][,<列名>[<次序>]] …);
说明
一条语句建立一个索引; <次序>指定索引的排列次序 ---- ASC 或DESC,缺省 为ASC; UNIQUE表明每个索引值只对应唯一的数据记录; CLUSTER是聚簇索引,即索引项的顺序与表中记录的物 理顺序一致;
5
S Q L
2.
的
特
点
为什么要学习SQL
SQL已经成为关系数据库的查询标准; SQL也是现在和将来DBMS的标准; SQL促进了分布式数据库和客户/服务器 数据库的开发。
6
S Q L
3.
的
特
点
SQL的特点
高度的非过程化语言 一体化 面向集合的操作方式 两种使用方式,统一的语法结构 简洁易学
SQL的 数据定义语言
14
SQL的数据定义语言
1.
DLL对数据库三级模式的支持
SQL
视图1
视图2
外模式
基本表1
基本表2
基本表3
基本表4
模式
存储文件1
存储文件2
内模式
15
SQL的数据定义语言
2.
SQL的数据定义语句
操作对象 表 视图 索引
创建 CREATE TABLE CREATE VIEW CREATE INDEX
4.
创建和删除模式
定义模式实际上是定义一个命名空间,在这个空间中可 以进一步定义该模式包含的数据库对象,例如基本表、 视图、索引等 要创建模式,用户必须拥有DBA权限,或者获得DBA授 予的CREATE SCHEMA 的权限
18
SQL的数据定义语言
4.
创建和删除模式
创建模式
CREATE SCHEMA database-name AUTHORIZATION user-identifier;
24
创建、删除与修改表
4.
定义表语句实例
实例二: 定义选课表SC:
CREATE TABLE SC (S# CHAR(8) NOT NULL, C# CHAR(8) NOT NULL, G SMALLINT, PRIMARY KEY(S#,C#), FOREIGN KEY S# REFERENCES S, FOREIGN KEY C# REFERENCES C );
SQL功能 数据查询 SELECT 动词
数据定义
数据操纵 数据控制
CREATE,DROP,ALTER
INSERT,UPDATE,DELETE GRANT,REVOKE
7
SQL的历史
8
S Q L
的
历
史
最早的SQL原型由IBM的研究人员在20世纪70年代开发的 20世纪80年代早期SQL开始成为国际标准的数据库语言 SQL-86 SQL-89 SQL-92 SQL-99
删除 DROP TABLE DROP VIEW DROP INDEX
修改 ALTER TABLE
16
SQL的数据定义语言
3.
SQL的数据定义语句对DD和DB的影响
表数据文件
DB 表结构定义 CREATE VIEW
CREATE TABLE
视图生成方法 指针文件
DD
CREATE INDEX
17
SQL的数据定义语言
例 : CREATE SCHEMA library_db AUTHORIZATION Guoqing ;
删除模式
DROP SCHEMA database-name [RESTRICT | CASCADE]; Restrict – 如果库内所有表为空,则删除该数据库 Cascade – 删除所有表的内容和定义 例:DROP SCHEMA library RESTRICT;
2
一.SQL的特点
二.SQL的历史
三.SQL的功能 四.SQL的标准格式约定 五.SQL的数据定义语言 六. 创建、删除与修改表 七. 创建与删除索引
3
SQL的特点
4
S Q L
1.
的
特
点
SQL是一个理想的数据库语言
SQL集定义、操作、查询和控制为一体; 易于学习; ANSI给定了一个SQL标准。
第五讲 SQL概述与 SQL定义语言
1
本讲主要目标
学完本讲后,你应该能够了解:
1. SQL是一个非过程化语言,使用者只需要说 明“做什么”而不需要说明“怎么做”; 2. SQL是一个集定义、操作、查询和控制为一 体的语言; 3. SQL的定义语言支持和建立数据库三级模式 结构; 4. 如何使用Create Table语句和Create Index 语句创建基本表和索引。
[, FOREIGN KEY (<列名>[,<列名>] …)REFERENCES <被参照表名>] );
23
创建、删除与修改表
4.
定义表语句实例
实例一: 定义学生表S:
CREATE TABLE S ( S# CHAR(8) NOT NULL UNIQUE, SN CHAR(8) UNIQUE, SE CHAR(1), SA SMALLINT, SD CHAR(4), PRIMARY KEY(S#) );
11
SQL的标准 格式约定
12
SQL的标准格式约定
SQL的语句结构
SQL是一种自由格式语言:它对每一行的字符数不 作限定,也不要求一个SQL语句一定分成几行来写 SQL的编译器不区分大小写; 以分号结束语句。
为了增强可读性,每一条语句的每一个子 句都另起一行,SQL的保留字使用大写。
13
25
创建、删除与修改表
5.
删除表语句
基本语法: DROP TABLE 〈表名〉[RESTRICT|CASCADE] ; 功能:既删除DD中表的结构定义,也删除DB 中的数据文件 级联删除
实例
DROP TABLE S;
26
创建、删除与修改表