数据库原理及应用 教学课件 ppt 作者 胡孔法 第05章 关系数据库的结构化查询语言SQL

上传人:E**** 文档编号:89498673 上传时间:2019-05-25 格式:PPT 页数:103 大小:1.83MB
返回 下载 相关 举报
数据库原理及应用 教学课件 ppt 作者 胡孔法 第05章  关系数据库的结构化查询语言SQL_第1页
第1页 / 共103页
数据库原理及应用 教学课件 ppt 作者 胡孔法 第05章  关系数据库的结构化查询语言SQL_第2页
第2页 / 共103页
数据库原理及应用 教学课件 ppt 作者 胡孔法 第05章  关系数据库的结构化查询语言SQL_第3页
第3页 / 共103页
数据库原理及应用 教学课件 ppt 作者 胡孔法 第05章  关系数据库的结构化查询语言SQL_第4页
第4页 / 共103页
数据库原理及应用 教学课件 ppt 作者 胡孔法 第05章  关系数据库的结构化查询语言SQL_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《数据库原理及应用 教学课件 ppt 作者 胡孔法 第05章 关系数据库的结构化查询语言SQL》由会员分享,可在线阅读,更多相关《数据库原理及应用 教学课件 ppt 作者 胡孔法 第05章 关系数据库的结构化查询语言SQL(103页珍藏版)》请在金锄头文库上搜索。

1、第5章 关系数据库的结构化查询语言SQL,本章主要内容,本章介绍关系数据库标准语言SQL。主要内容包括:数据定义、数据操纵、数据控制和数据约束等。 (1)SQL数据库的体系结构,SQL的组成。 (2)SQL的数据定义:SQL模式、基本表和索引的创建和撤销。 (3)SQL的数据查询: SELECT语句的句法,SELECT语句的几种形式及各种限定,基本表的联接操作。 (4)SQL的数据更新:插入、删除和修改语句。 (5)视图的创建和撤消,对视图更新操作的限制。 (6)嵌入式SQL: 预处理方式,使用规定,使用技术,卷游标,动态SQL语句。,关系数据库的结构化查询语言SQL,5.1 SQL概述 5.

2、2 SQL的数据定义语言 5.3 SQL数据查询 5.4 SQL聚集函数(Aggregation) 5.5 SQL数据更新 5.6 SQL中的视图 5.7 嵌入式SQL 本章小结,5.1 SQL概述,1)SQL的发展历程 SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统System R上实现。 1986年10月,经美国国家标准局(ANSI)的数据库委员会批准了SQL作为关系数据库语言的美国标准,并公布了标准SQL文本。 1987年6月国际标准化组织(ISO)将其采纳为国际标准,称为“SQL86”。 相继出现了“SQL89”、“SQL2(SQL9

3、2)”、“SQL3”。,SQL已成为关系数据库领域中的一个主流语言: 首先,各个数据库产品厂家纷纷推出了自己的支持SQL的软件或与SQL接口的软件。 其次,SQL在数据库以外的其他领域也受到了重视。 不少软件产品将SQL的数据检索功能与面向对象技术、图形技术、软件工程工具、软件开发工具、人工智能语言等相结合,开发出功能更强的软件产品。,2)SQL数据库的体系结构,SQL数据库的体系结构的特征:,一个SQL模式是表和约束的集合。 一个表(TABLE)是行的集合。每行是列的序列,每列对应一个数据项。 一个表可以是一个基本表,也可以是一个视图。 一个基本表可以跨一个或多个存储文件,一个存储文件也可存

4、储一个或多个基本表。 用户可以用SQL语句对视图和基本表进行查询等操作。 SQL用户可以是应用程序,也可以是终端用户。,3)SQL的组成,(1)数据定义语言(Data Definition Language,简称DDL) 用于定义SQL模式、基本表、视图和索引。 (2)查询语言(Query Language,简称QL) 用于数据查询。 (3)数据操纵语言(Data Manipulation Language,简称DML) 用于数据的增、删、修改。 (4)数据控制语言(Data Control Language,简称DCL) 用于数据访问权限的控制。,5.2 SQL的数据定义语言,5.2.1 数

5、据类型 5.2.2 基本表模式的定义 5.2.3 基本表的修改和删除 5.2.4 域 5.2.5 索引的建立和删除,5.2.1 数据类型,5.2.2 数据表模式的定义,1)定义数据库的语句格式为 : CREATE DATABASE database_name ON ( NAME = file_name , FILENAME = os_file_name , SIZE = size , MAXSIZE = max_size | UNLIMITED , FILEGROWTH = growth_increment ) LOG ON ( NAME = logical_ file_name , FILE

6、NAME = os_file_name , SIZE = size , MAXSIZE = max_size | UNLIMITED , FILEGROWTH = growth_increment ),事例,CREATE DATABASE studb ON ( NAME = studb_dat, FILENAME = d:studb.mdf , SIZE = 4, MAXSIZE = 10, FILEGROWTH = 1) LOG ON ( NAME = studb_log, FILENAME = d:studb_log.LDF , SIZE = 1, FILEGROWTH = 10%);,2

7、)基本表SQL定义语句格式,定义基本表的语句格式为 : CREATE TABLE( NOT NULL UNIQUE ,属性名2类型2 NOT NULL UNIQUE ) 其他参数;,例5-1:学生成绩数据库含有三张表: 学生关系:S(SNO,SNAME,SEX, AGE, DNAME) 课程关系:C(CNO, CNAME, CREDIT, PRE_CNO) 选课关系:SC(SNO, CNO, SCORE) 可用下列SQL语句来实现:,SQL事例,CREATE TABLE S ( SNO CHAR(6) PRIMARY KEY, SNAME CHAR(8) NOT NULL, AGE SMALL

8、INT, SEX CHAR(1), DNAME VARCHAR(12);,CREATE TABLE C ( CNO CHAR(2) NOT NULL, CNAME VARCHAR(24) NOT NULL, CREDIT SMALLINT, PRE_CNO CHAR(2), PRIMARY KEY(CNO);,CREATE TABLE SC ( SNO CHAR(6) NOT NULL, CNO CHAR(2) NOT NULL, SCORE SMALLINT, PRIMARY KEY(SNO,CNO), FOREIGN KEY(SNO) REFERENCES S ON DELETE CASC

9、ADE, FOREIGN KEY(CNO) REFERENCES C ON DELETE RESTRICT);,3)主关键字定义,方法1:一个关系的主关键字由一个或几个属性构成,在CREATE TABLE中使用保留字PRIMARY KEY声明主关键字: (1)在列出关系模式的属性时,在属性及其类型后加上保留字PRIMARY KEY,表示该属性是主关键字; (2)在列出关系模式的所有属性后,再附加一个声明: PRIMARY KEY(,) 如果关键字由多个属性构成,则必须使用方法(2)。,SQL事例,CREATE TABLE S ( SNO CHAR(6) PRIMARY KEY, /*第一种方式

10、*/ SNAME CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR(1), DNAME VARCHAR(12);,CREATE TABLE C ( CNO CHAR(2) NOT NULL, CNAME VARCHAR(24) NOT NULL, CREDIT SMALLINT, PRE_CNO CHAR(2), PRIMARY KEY(CNO); /*第二种方式*/,CREATE TABLE SC ( SNO CHAR(6) NOT NULL, CNO CHAR(2) NOT NULL, SCORE SMALLINT, PRIMARY KEY(SNO,CNO)

11、, /*第二种方式*/ FOREIGN KEY(SNO) REFERENCES S ON DELETE CASCADE, FOREIGN KEY(CNO) REFERENCES C ON DELETE RESTRICT);,主关键字定义,方法2:使用保留字UNIQUE来说明关键字。 它可以出现在PRIMARY KEY出现的任何地方,可以在同一个关系模式中出现多次。,例如,在不出现同名同姓的情况下也可以将上面的定义改写为: CREATE TABLE S ( SNO CHAR(6) UNIQUE, SNAME CHAR(8) UNIQUE, SEX CHAR(1), AGE SMALLINT, D

12、NAME VARCHAR(12);,4)外部关键字的定义,在SQL中,有两种方法用于说明一个外部关键字: 方法1:在表的属性名和类型后面直接用“REFERENCES“说明它参照了某个表的某些属性(必须是主关键字),其格式为: REFERENCES 表名(属性) 这种方法主要在外部关键字只有一个属性时可以使用。 方法2:在CREATE TABLE语句的属性列表后面增加一个或几个外部关键字说明,其格式为: FOREIGN KEY 属性 REFERENCES 表名() 其中,第一个“属性”是外部关键字,第二个“属性”是被参照的属性。,CREATE TABLE SC ( SNO CHAR(6) NOT

13、 NULL, CNO CHAR(2) NOT NULL, SCORE SMALLINT, PRIMARY KEY(SNO,CNO), FOREIGN KEY(SNO) REFERENCES S ON DELETE CASCADE, FOREIGN KEY(CNO) REFERENCES C ON DELETE RESTRICT);,基本表定义格式图示,5.2.3 基本表的修改和删除,1)增加新的属性 ALTER TABLE 表的创建者名. 表名 ADD属性名类型; 例如:在表S中增加属性“BIRTHDATE”, “HOSTADDR”和“COMMADDR”: ALTER TABLE S ADD

14、BIRTFIDATE DATE; ALTER TABLE S ADD HOSTADDR VARCHAR(32); ALTER TABLE S ADD COMMADDR VARCHAR(32);,2)删除原有属性的语句为 ALTER TABLE 表名 DROP 属性名 CASCADE| RESTRICT; 例如:在表S中删除“AGE”: ALTER TABLE S DROP AGE; 3)基本表的删除 在SQL中删除一个无用表的操作是非常简单的,其语句格式为: DROP TABLE 表名;,主键修改,4)补充定义主键 由于SQL并不要求每个表都定义主键,在需要时可以通过补充定义主键命令来定义主键

15、。 ALTER TABLE 表名 ADD PRIMARY KEY(); 5)撤销主键定义 利用下列的主键撤销命令可以暂时撤销主键定义: ALTER TABLE 表名 DROP PRIMARY KEY;,外键修改,6)补充定义外键 ALTER TABLE 表名 ADD FOREIGN KEY 属性 REFERENCES 表名() ON DELETE RESTRICT | CASCADE | SET NULL; 7)撤消外键定义 ALTER TABLE 表名 DROP FOREIGN KEY ,5.2.4 域,定义一个域的方法是: CREATE DOMAIN 域名 AS 数据类型 ; 通过已定义域

16、名来说明一个属性类型,其格式是: 属性名1,属性名2,域名; 例如:为表S的HOSTADDR和COMMADDR定义一个域ADDRDOMAIN: CREATE DOMAIN ADDRDOMAIN AS VARCHAR(36) DEFAULT unknow; 用域“ADDRDOMAIN”来说明属性“HOSTADDR”和“COMMADDR”的类型。 HOSTADDR,COMMADDR ADDRDOMAIN; 删除一个域定义的语句是: DROP DOMAIN 域名;,5.2.5 索引的建立和删除,建立索引的语句格式为: CREATE UNIQUE INDEX 索引名 ON 基本表名(ASC|DESC , ASC|DESC); 例如,对表S建立以下索引 CREATE UN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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