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

上传人:平*** 文档编号:24939055 上传时间:2017-12-09 格式: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,关系数据库标准语言SQL,3.2 数据定义(续)基本表定义CR

2、EATE TABLE 表名(列名1 数据类型 列级完整性约束条件,列名2 数据类型 列级完整性约束条件,列名N 数据类型 列级完整性约束条件表级完整性约束条件)说明:(1)其中表名是要定义的基本表的名称。一个表可以由一个或多个属性列组成。(2)创建表时通常还可以定义与该表有关的完整性约束条件。完整性约束条件被存入系统的数据字典中。当用户对表中的数据进行更新操作(插入和修改)时,DBMS会自动检查该操作是否违背这些约束条件。如果完整性约束条件涉及表的多个属性列,则必须定义在表级上,否则既可以定义在列级,也可以定义在表级。,3,关系数据库标准语言SQL,3.2 数据定义(续)基本表定义(续)Ora

3、cle支持标准SQL语言,但在很多方面进行了扩展,如对CREATE TABLE语句,Oracle增加了对存储参数的控制。Oracle创建表的常用语法为: CREATE TABLE 方案.表名(列名1 数据类型 列级完整性约束条件,列名2 数据类型 列级完整性约束条件,列名N 数据类型 列级完整性约束条件表级完整性约束条件)PCTFREE integerPCTUSED integerTABLESPACE 表空间 STORAGE( INITIAL integer NEXT integer MINEXTENTS integer MAXEXTENTS integer PCTINCREASE integ

4、er),3,关系数据库标准语言SQL,3.2 数据定义(续)基本表定义(续)例3-1 在Oracle中用SQL命令创建图书信息表、读者信息表和借阅表。(1)创建图书信息表。 CREATE TABLE book (bookid VARCHAR2(20) PRIMARY KEY, bookname VARCHAR2(60) NOT NULL, editor VARCHAR2(8), price NUMBER(5,2), publish VARCHAR2(30), pubdate DATE, qty NUMBER(5),3,关系数据库标准语言SQL,3.2 数据定义(续)基本表定义(续)(2)创建读

5、者信息 。 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 数据定义(续)基本表定义(续)(3)创建借阅表 。 CREATE TABLE borrow (bookid VARCHAR2(20), cardid VARCHAR2(10), bdate DATE NOT NULL, sdate DATE, PRIMARY KEY

6、(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 数据定义(续)修改基本表SQL语言用ALTER TABLE语句修改基本表,其一般格式为: ALTER TABLE MODIFY NULL| NOT NULLADD 完整性约束 ADD DROP CONSTRAINT DROP COLUMN ,3,关

7、系数据库标准语言SQL,3.2 数据定义(续)修改基本表(续)例3-2 将BOOKID列宽改为15。 ALTER TABLE book MODIFY bookid VARCHAR2(15)例3-3 删除借阅表中的参照完整性。ALTER TABLE borrow DROP CONSTRAINT FK_bookid DROP CONSTRAINT FK_cardid例3-4 如果例3-1中没为借阅表创建参照完整性,或者已按例3-3将参照完整性删除,则可按下面方法创建参照完整性。ALTER TABLE borrow ADD CONSTRAINT FK_bookid FOREIGN KEY(booki

8、d) REFERENCES book(bookid)ADD CONSTRAINT FK_cardid FOREIGN KEY(cardid) REFERENCES reader(cardid),3,关系数据库标准语言SQL,3.2 数据定义(续)删除基本表DROP TABLE ,3,关系数据库标准语言SQL,3.2 数据定义(续)建立索引CREATE UNIQUE INDEX ON ( , );,3,关系数据库标准语言SQL,3.2 数据定义(续)删除索引DROP INDEX .,3,关系数据库标准语言SQL,3.3 数据查询一般格式SELECT ALL | DISTINCT , FROM ,

9、 别名 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 使用别名,查询所有读者的卡号和姓名。SELECT cardid卡号, name姓名 FROM reader,3,关系数据库标准语言SQL,3.3 数据查询(续)单表查询(续)(2)选择表中满足条件的记录,3,关系数据库标准语言SQL,3.3 数

10、据查询(续)单表查询(续)(2)选择表中满足条件的记录 (续)例3-9 查询价格在20元以上的所有图书信息。SELECT * 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 bookW

11、HERE publish IN (电子工业出版社, 清华大学出版社, 高等教育出版社)例3-13 查询以“数据库”开头的所有图书的书名和出版社。SELECT bookname, publish FROM bookWHERE bookname LIKE 数据库%,3,关系数据库标准语言SQL,3.3 数据查询(续)单表查询(续)(2)选择表中满足条件的记录 (续)例3-14 查询书名含有DELPHI_6的所有图书信息。SELECT * FROM bookWHERE bookname LIKE %DELPHI_6% ESCAPE 例3-15 读者借书后还未还书时,借阅表中的还书日期为空值。查询所有

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

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

14、言SQL,3.3 数据查询(续)单表查询(续)(4)使用集函数 (续)例3-18 查询读者总数。SELECT COUNT(*) FROM reader例3-19 查询有未还书的读者数。SELECT COUNT(DISTINCT cardid)FROM borrowWHERE sdate IS NULL例3-20 查询库存书总数。SELECT SUM(qty)FROM book,3,关系数据库标准语言SQL,3.3 数据查询(续)单表查询(续)(5)分组统计 例3-21 统计不同类型的读者数。SELECT class, COUNT(cardid)FROM readerGROUP BY class

15、例3-22 按出版年份统计库存量。SELECT TO_CHAR(pubdate,YY), SUM(qty)FROM bookGROUP BY TO_CHAR(pubdate,YY)例3-23 查询借书数量大于10本的读者卡号。SELECT cardidFROM borrowWHERE sdate IS NULLGROUP BY cardid HAVING COUNT(bookid)10,3,关系数据库标准语言SQL,3.3 数据查询(续)多表查询 (1)等值与非等值连接查询 例3-24 查询所有借书未还的读者的姓名。SELECT nameFROM reader,borrowWHERE reader.cardid=borrow.cardid AND sdate IS NULL例3-25 查询所有读者信息及借阅情况。SELECT reader.* , borrow.*FROM reader , borrowWHERE reader.cardid=borrow.cardid,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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