《数据库系统原理与应用(第二版)》-刘淳-电子教案 第3章

上传人:E**** 文档编号:89403272 上传时间:2019-05-24 格式:PPT 页数:56 大小:740.51KB
返回 下载 相关 举报
《数据库系统原理与应用(第二版)》-刘淳-电子教案 第3章_第1页
第1页 / 共56页
《数据库系统原理与应用(第二版)》-刘淳-电子教案 第3章_第2页
第2页 / 共56页
《数据库系统原理与应用(第二版)》-刘淳-电子教案 第3章_第3页
第3页 / 共56页
《数据库系统原理与应用(第二版)》-刘淳-电子教案 第3章_第4页
第4页 / 共56页
《数据库系统原理与应用(第二版)》-刘淳-电子教案 第3章_第5页
第5页 / 共56页
点击查看更多>>
资源描述

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

1、数据库系统原理与应用(第二版),主编 刘淳,中国水利水电出版社,第三章 关系数据库标准语言SQL,关系数据库标准语言SQL,提纲 SQL概述 数据定义 数据查询 数据更新 视图 数据控制,3,关系数据库标准语言SQL,3.1 SQL概述 SQL语言也叫结构化查询语言(Structured Query Language),是一种介于关系代数与关系演算之间的语言。 其功能包括:数据定义、数据查询、数据操作和数据控制四个方面,是一个通用的、功能很强的关系数据库语言。,3,关系数据库标准语言SQL,3.2 数据定义 SQL数据定义功能包括定义基本表、定义视图和定义索引等,3,关系数据库标准语言SQL,

2、3.2 数据定义(续) 基本表定义 CREATE TABLE 表名 (列名1 数据类型 列级完整性约束条件, 列名2 数据类型 列级完整性约束条件, 列名N 数据类型 列级完整性约束条件 表级完整性约束条件),3,关系数据库标准语言SQL,3.2 数据定义(续) 关于完整性定义 (1)实体完整性定义语法 CONSTRAINT 约束名 PRIMARY KEY(属性列表) (2)参照完整性定义语法: CONSTRAINT 约束名 FOREIGN KEY(列名)REFERENCES (被参照表列名) (3)自定义完整性定义语法: 列值非空:CONSTRAINT 约束名 NOT NULL 列值惟一:C

3、ONSTRAINT 约束名 UNIQUE(属性列表) 逻辑表达式:CONSTRAINT 约束名 CHECK(表达式),3,关系数据库标准语言SQL,3.2 数据定义(续) SQL Server 2005常用数据类型 Int或smallint:整型。 Bit:整型,只能存储0或1。通常用于存储逻辑型数据。 Float:浮点型。 Real:实型。 Text或Ntext:文本。Ntext采用的是Unicode编码,text采用的是非Unicode编码。 Image:图形和图像。 Binary:二进制数。 Varbinary:可变长二进制数。 Char或Nchar:字符型。Nchar采用的是Unico

4、de编码,char采用的是非Unicode编码。 Numeric或decimal: 固定精度数值型。 Varchar或Nvarchar:可变长字符型。Nvarchar采用的是Unicode编码,varchar采用的是非Unicode编码。 Datetime或smalldatetime:日期时间。,3,关系数据库标准语言SQL,3.2 数据定义(续) 基本表定义(续) 例3-1 在Oracle中用SQL命令创建图书信息表、读者信息表和借阅表。 (1)创建图书信息表。 CREATE TABLE BOOK (BOOKID CHAR(20) PRIMARY KEY, BOOKNAME VARCHAR(

5、60) NOT NULL, EDITOR CHAR(8), PRICE NUMERIC(5,2), PUBLISH CHAR(30), PUBDATE DATETIME, QTY INT),3,关系数据库标准语言SQL,3.2 数据定义(续) 基本表定义(续) (2)创建读者信息 。 CREATE TABLE READER (CARDID CHAR(10) PRIMARY KEY, NAME CHAR(8), SEX CHAR(2), DEPT CHAR(20), CLASS INT),3,关系数据库标准语言SQL,3.2 数据定义(续) 基本表定义(续) (3)创建借阅表 。 CREATE

6、TABLE BORROW (BOOKID CHAR(20), CARDID CHAR(10), BDATE DATETIME NOT NULL, SDATE DATETIME, 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 数据定义(续) 修改基本表 SQL语言用ALTE

7、R TABLE语句修改基本表,其一般格式为: ALTER TABLE ALTER COLUMN NULL| NOT NULL ADD 完整性约束 ADD DROP CONSTRAINT DROP COLUMN ,3,关系数据库标准语言SQL,3.2 数据定义(续) 修改基本表(续) 例3-2在图书信息表中增加一列出版时期(PUBDATE),并将BOOKID列宽改为15。 ALTER TABLE BOOK ADD PUBDATE DATETIME GO ALTER TABLE BOOK ALTER COLUMN BOOKID CHAR(15) 例3-3 删除借阅表中的参照完整性。 ALTER T

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

9、数据定义(续) 删除基本表 DROP TABLE ,3,关系数据库标准语言SQL,3.2 数据定义(续) 建立索引 CREATE UNIQUE 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 查询所有读者的卡

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

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

12、name, 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 , bdate FROM borrow WHERE sdate IS NULL 例3-16 查询

13、单位为“计算机系”且类别为学生(class=1)的所有读者信息 SELECT * FROM reader WHERE dept=计算机系 and class=1,3,关系数据库标准语言SQL,3.3 数据查询(续) 单表查询(续) (3)对查询结果排序 例3-17 查询2003年后出版的所有图书并按出版先后顺序排序。 SELECT * FROM book WHERE PUBDATE=“2003-01-01“ ORDER BY pubdate,3,关系数据库标准语言SQL,3.3 数据查询(续) 单表查询(续) (4)使用集函数 SQL提供了许多集函数,主要包括: COUNT ( DISTINC

14、T |ALL * ) 统计元组个数。 COUNT ( DISTINCT | ALL ) 统计一列中值的个数。 SUM ( DISTINCT | ALL ) 计算一列值的总和(此列必须是数值型)。 AVG(DISTINCT | ALL ) 计算一列值的平均值(此列必须是数值型)。 MAX(DISTINCT | ALL ) 计算一列值的最大值。 MIN(DISTINCT | ALL ) 计算一列值的最小值。,3,关系数据库标准语言SQL,3.3 数据查询(续) 单表查询(续) (4)使用集函数 (续) 例3-18 查询读者总数。 SELECT COUNT(*) FROM reader 例3-19

15、查询有未还书的读者数。 SELECT COUNT(DISTINCT cardid) FROM borrow WHERE sdate IS NULL 例3-20 查询库存书总数。 SELECT SUM(qty) FROM book,3,关系数据库标准语言SQL,3.3 数据查询(续) 单表查询(续) (5)分组统计 例3-21 统计不同类型的读者数。 SELECT class, COUNT(cardid) FROM reader GROUP BY class 例3-22 按出版年份统计库存量。 SELECT DATEPART(YY,PUBDATE), SUM(QTY) FROM book GRO

16、UP DATEPART(YY,PUBDATE) 例3-23 查询借书数量大于10本的读者卡号。 SELECT cardid FROM borrow WHERE sdate IS NULL GROUP BY cardid HAVING COUNT(bookid)10,3,关系数据库标准语言SQL,3.3 数据查询(续) 多表查询 (1)等值与非等值连接查询 例3-24 查询所有借书未还的读者的姓名。 SELECT name FROM reader,borrow WHERE reader.cardid=borrow.cardid AND sdate IS NULL 例3-25 查询所有读者信息及借阅情况。 SELECT reader.* , borrow.* FROM reader , borrow WHERE reader.cardid=borrow.cardid,3,

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

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

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