《数据库系统原理与应用——Oracle版》-电子教案-第3章

上传人:宝路 文档编号:47023252 上传时间:2018-06-29 格式:PPT 页数:54 大小:1.34MB
返回 下载 相关 举报
《数据库系统原理与应用——Oracle版》-电子教案-第3章_第1页
第1页 / 共54页
《数据库系统原理与应用——Oracle版》-电子教案-第3章_第2页
第2页 / 共54页
《数据库系统原理与应用——Oracle版》-电子教案-第3章_第3页
第3页 / 共54页
《数据库系统原理与应用——Oracle版》-电子教案-第3章_第4页
第4页 / 共54页
《数据库系统原理与应用——Oracle版》-电子教案-第3章_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《《数据库系统原理与应用——Oracle版》-电子教案-第3章》由会员分享,可在线阅读,更多相关《《数据库系统原理与应用——Oracle版》-电子教案-第3章(54页珍藏版)》请在金锄头文库上搜索。

1、关系数据库标准语言SQL 提纲 SQL概述数据定义 数据查询 数据更新 视图 数据控制3关系数据库标准语言SQL 3.1 SQL概述 SQL语言也叫结构化查询语言 (Structured Query Language),是一种介于 关系代数与关系演算之间的语言。 其功能包括:数据定义、数据 查询、数据操作和数据控制四个方面,是一 个通用的、功能很强的关系数据库语言。3关系数据库标准语言SQL 3.1 SQL概述(续) SQL语言扩展SQL语言3关系数据库标准语言SQL 3.2 数据定义 SQL数据定义功能包括定义基 本表、定义视图和定义索引等3操作对象操作方式 创建删除修改 基本表CREATE

2、 TABLEDROP TABLEALTER TABLE 视图CREATE VIEWDROP VIEW 索引CREATE INDEXDROP INDEX关系数据库标准语言SQL 3.2 数据定义(续) 基本表定义 CREATE TABLE 表名 (列名1 数据类型 列级完整性约束条件, 列名2 数据类型 列级完整性约束条件, 列名N 数据类型 列级完整性约束条件 表级完整性约束条件) 说明: (1)其中表名是要定义的基本表的名称。一 个表可以由一个或多个属性列组成。 (2)创建表时通常还可以定义与该表有关的 完整性约束条件。完整性约束条件被存入系统的数据字 典中。当用户对表中的数据进行更新操作(

3、插入和修改 )时,DBMS会自动检查该操作是否违背这些约束条件 。如果完整性约束条件涉及表的多个属性列,则必须定 义在表级上,否则既可以定义在列级,也可以定义在表 级。 3关系数据库标准语言SQL 3.2 数据定义(续) 基本表定义(续) Oracle支持标准SQL语言,但在很多方面进行了扩展,如对 CREATE TABLE语句,Oracle增加了对存储参数的控制。Oracle创建表 的常用语法为: CREATE TABLE 方案.表名 (列名1 数据类型 列级完整性约束条件 , 列名2 数据类型 列级完整性约束条件 , 列名N 数据类型 列级完整性约束条件 表级完整性约束条件) PCTFRE

4、E integer PCTUSED integer TABLESPACE 表空间STORAGE(INITIAL integerNEXT integer MINEXTENTS integerMAXEXTENTS integerPCTINCREASE integer )3关系数据库标准语言SQL 3.2 数据定义(续) 基本表定义(续) 例3-1 在Oracle中用SQL命令创建图书信息表、 读者信息表和借阅表。 (1)创建图书信息表。 CREATE TABLE book(bookid VARCHAR2(20) PRIMARY KEY,bookname VARCHAR2(60) NOT NULL,

5、editor VARCHAR2(8),price NUMBER(5,2),publish VARCHAR2(30),pubdate DATE,qty NUMBER(5)3关系数据库标准语言SQL 3.2 数据定义(续) 基本表定义(续) (2)创建读者信息 。 CREATE TABLE reader (cardid VARCHAR2(10) PRIMARY KEY, name VARCHAR2(8),sex VARCHAR2(2) CHECK(sex IN(男 ,女), dept VARCHAR2(20),class NUMBER(1) 3关系数据库标准语言SQL 3.2 数据定义(续) 基本

6、表定义(续) (3)创建借阅表 。 CREATE TABLE borrow(bookid VARCHAR2(20),cardid VARCHAR2(10),bdate DATE NOT NULL,sdate DATE,PRIMARY KEY(bookid,cardid,bdate),CONSTRAINT FK_bookid FOREIGN KEY(bookid) REFERENCES book(bookid),CONSTRAINT FK_cardid FOREIGN KEY(cardid) REFERENCES reader (cardid)3关系数据库标准语言SQL 3.2 数据定义(续)

7、修改基本表 SQL语言用ALTER TABLE语句修改基本 表,其一般格式为: ALTER TABLE MODIFY NULL| NOT NULL ADD 完整性约束 ADD DROP CONSTRAINT DROP COLUMN 3关系数据库标准语言SQL 3.2 数据定义(续) 修改基本表(续) 例3-2 将BOOKID列宽改为15。 ALTER TABLE bookMODIFY bookid VARCHAR2(15) 例3-3 删除借阅表中的参照完整性。 ALTER TABLE borrowDROP CONSTRAINT FK_bookidDROP CONSTRAINT FK_cardi

8、d 例3-4 如果例3-1中没为借阅表创建参照完整性, 或者已按例3-3将参照完整性删除,则可按下面方法创建参 照完整性。 ALTER TABLE borrowADD CONSTRAINT FK_bookid FOREIGN KEY(bookid) REFERENCES book(bookid) ADD CONSTRAINT FK_cardid FOREIGN KEY(cardid) REFERENCES reader(cardid)3关系数据库标准语言SQL 3.2 数据定义(续)删除基本表 DROP TABLE 3关系数据库标准语言SQL 3.2 数据定义(续)建立索引 CREATE UN

9、IQUE INDEX ON ( , );3关系数据库标准语言SQL 3.2 数据定义(续)删除索引 DROP INDEX .3关系数据库标准语言SQL 3.3 数据查询一般格式 SELECT ALL | DISTINCT , FROM , 别名 WHERE GROUP BY HAVING ORDER BY ASC | DESC ;3关系数据库标准语言SQL 3.3 数据查询(续)单表查询(续) (1)选择表中的若干列 例3-6 查询所有读者的卡号和姓名。 SELECT cardid, name FROM reader 例3-7 查询所有图书信息。 SELECT * FROM book 例3-8

10、 使用别名,查询所有读者的卡号 和姓名。 SELECT cardid卡号, name姓名 FROM reader3关系数据库标准语言SQL 3.3 数据查询(续)单表查询(续) (2)选择表中满足条件的记录 3查询条件运算符 比较=,=,确定范围BETWEEN.AND. NOT BETWEEN.AND 集合运算IN,NOT IN 字符匹配LIKE,NOT LIKE 空值判断IS NULL,IS NOT NULL 逻辑运算AND,OR,NOT关系数据库标准语言SQL 3.3 数据查询(续) 单表查询(续) (2)选择表中满足条件的记录 (续) 例3-9 查询价格在20元以上的所有图书信息。 SE

11、LECT * FROM book WHERE price=20 例3-10 查询在2003年后的借书记录。 SELECT * FROM borrow WHERETO_CHAR(bdate,YYYY)=2003 例3-11 查询价格在2030元之间的所有图书信息。 SELECT * FROM book WHERE price BETWEEN 20 AND 30 例3-12 查询电子工业出版社、清华大学出版社和高 等教育出版社出版的所有图书的书名。 SELECT bookname FROM book WHERE publish IN (电子工业出版社, 清华大学出 版社, 高等教育出版社) 例3-

12、13 查询以“数据库”开头的所有图书的书名和出 版社。 SELECT bookname, publish FROM book WHERE bookname LIKE 数据库%3关系数据库标准语言SQL 3.3 数据查询(续) 单表查询(续) (2)选择表中满足条件的记录 (续) 例3-14 查询书名含有DELPHI_6的所有图书 信息。 SELECT * FROM book WHERE bookname LIKE %DELPHI_6% ESCAPE 例3-15 读者借书后还未还书时,借阅表中 的还书日期为空值。查询所有未还书籍的读者号和 借书时间。 SELECT cardid , TO_CHA

13、R(bdate,YYYY-MM -DD) FROM borrow WHERE sdate IS NULL 例3-16 查询单位为“计算机系”且类别为学生 (class=1)的所有读者信息 SELECT * FROM reader WHERE dept=计算机 系 and class=13关系数据库标准语言SQL 3.3 数据查询(续)单表查询(续) (3)对查询结果排序 例3-17 查询2003年后出版的所有图书并按 出版先后顺序排序。 SELECT * FROM book WHERE TO_CHAR(pubdate,YYYY)=2003 ORDER BY pubdate3关系数据库标准语言S

14、QL 3.3 数据查询(续)单表查询(续) (4)使用集函数 SQL提供了许多集函数,主要包括: COUNT ( DISTINCT |ALL * ) 统计元组个数。 COUNT ( DISTINCT | ALL ) 统计一列中值 的个数。 SUM ( DISTINCT | ALL ) 计算一列值的总 和(此列必须是数值型)。 AVG(DISTINCT | ALL ) 计算一列值的平 均值(此列必须是数值型)。 MAX(DISTINCT | ALL ) 计算一列值的 最大值。 MIN(DISTINCT | ALL ) 计算一列值的最 小值。3关系数据库标准语言SQL 3.3 数据查询(续)单表查

15、询(续) (4)使用集函数 (续) 例3-18 查询读者总数。 SELECT COUNT(*) FROM reader 例3-19 查询有未还书的读者数。 SELECT COUNT(DISTINCT cardid) FROM borrow WHERE sdate IS NULL 例3-20 查询库存书总数。 SELECT SUM(qty) FROM book3关系数据库标准语言SQL 3.3 数据查询(续) 单表查询(续) (5)分组统计 例3-21 统计不同类型的读者数。 SELECT class, COUNT(cardid) FROM reader GROUP BY class 例3-22 按出版年份统计库存量。 SELECT TO_CHAR(pubdate,YY), SUM(qty) FROM book GROUP BY TO_CHAR(pubdate,YY) 例3-23 查询借书数量大于10本的读者卡号。 SELECT cardid FROM borrow WHERE sdate IS NULL GROUP BY cardid HAVING COUNT(b

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

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

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