关闭

关闭

封号提示

内容

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

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

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

上传者: 挡不住的woshishui 2014-02-16 评分 5 0 105 14 479 暂无简介 简介 举报

简介:本文档为《《数据库系统原理与应用——Oracle版》-电子教案-第3章ppt》,可适用于IT/计算机领域,主题内容包含关系数据库标准语言SQL关系数据库标准语言SQL提纲SQL概述数据定义数据查询数据更新视图数据控制关系数据库标准语言SQL关系数据库标准语言SQLS符等。

关系数据库标准语言SQL关系数据库标准语言SQL提纲SQL概述数据定义数据查询数据更新视图数据控制关系数据库标准语言SQL关系数据库标准语言SQLSQL概述SQL语言也叫结构化查询语言(StructuredQueryLanguage)是一种介于关系代数与关系演算之间的语言。其功能包括:数据定义、数据查询、数据操作和数据控制四个方面是一个通用的、功能很强的关系数据库语言。关系数据库标准语言SQL关系数据库标准语言SQLSQL概述(续)SQL语言扩展SQL语言关系数据库标准语言SQL关系数据库标准语言SQL数据定义SQL数据定义功能包括定义基本表、定义视图和定义索引等关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)基本表定义CREATETABLE〈表名〉(列名数据类型列级完整性约束条件列名数据类型列级完整性约束条件……列名N数据类型列级完整性约束条件表级完整性约束条件)说明:()其中表名是要定义的基本表的名称。一个表可以由一个或多个属性列组成。()创建表时通常还可以定义与该表有关的完整性约束条件。完整性约束条件被存入系统的数据字典中。当用户对表中的数据进行更新操作(插入和修改)时DBMS会自动检查该操作是否违背这些约束条件。如果完整性约束条件涉及表的多个属性列则必须定义在表级上否则既可以定义在列级也可以定义在表级。关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)基本表定义(续)Oracle支持标准SQL语言但在很多方面进行了扩展如对CREATETABLE语句Oracle增加了对存储参数的控制。Oracle创建表的常用语法为:CREATETABLE方案〈表名〉(列名数据类型列级完整性约束条件列名数据类型列级完整性约束条件……列名N数据类型列级完整性约束条件表级完整性约束条件)PCTFREEintegerPCTUSEDintegerTABLESPACE表空间STORAGE(INITIALintegerNEXTintegerMINEXTENTSintegerMAXEXTENTSintegerPCTINCREASEinteger)关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)基本表定义(续)例在Oracle中用SQL命令创建图书信息表、读者信息表和借阅表。()创建图书信息表。CREATETABLEbook(bookidVARCHAR()PRIMARYKEY,booknameVARCHAR()NOT,editorVARCHAR(),priceNUMBER(,),publishVARCHAR(),pubdateDATE,qtyNUMBER())关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)基本表定义(续)()创建读者信息。CREATETABLEreader(cardidVARCHAR()PRIMARYKEY,nameVARCHAR(),sexVARCHAR()CHECK(sexIN(‘男’,’女’)),deptVARCHAR(),classNUMBER())关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)基本表定义(续)()创建借阅表。CREATETABLEborrow(bookidVARCHAR(),cardidVARCHAR(),bdateDATENOT,sdateDATE,PRIMARYKEY(bookid,cardid,bdate),CONSTRAINTFKbookidFOREIGNKEY(bookid)REFERENCESbook(bookid),CONSTRAINTFKcardidFOREIGNKEY(cardid)REFERENCESreader(cardid))关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)修改基本表SQL语言用ALTERTABLE语句修改基本表其一般格式为:ALTERTABLE<表名>MODIFY<列名><新的类型>|NOTADD<新列名><数据类型>完整性约束ADD<表级完整定义>DROPCONSTRAINT<完整性约束名>DROPCOLUMN<列名>关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)修改基本表(续)例将BOOKID列宽改为。ALTERTABLEbookMODIFYbookidVARCHAR()例删除借阅表中的参照完整性。ALTERTABLEborrowDROPCONSTRAINTFKbookidDROPCONSTRAINTFKcardid例如果例中没为借阅表创建参照完整性或者已按例将参照完整性删除则可按下面方法创建参照完整性。ALTERTABLEborrowADDCONSTRAINTFKbookidFOREIGNKEY(bookid)REFERENCESbook(bookid)ADDCONSTRAINTFKcardidFOREIGNKEY(cardid)REFERENCESreader(cardid)关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)删除基本表DROPTABLE<表名>关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)建立索引CREATEUNIQUEINDEX<索引名>ON<表名>(<列名><ASC|DESC>,<列名><ASC|DESC>…)>关系数据库标准语言SQL关系数据库标准语言SQL数据定义(续)删除索引DROPINDEX<表名><索引名>关系数据库标准语言SQL关系数据库标准语言SQL数据查询一般格式SELECTALL|DISTINCT<目标列表达式>,<目标列表达式>…FROM<表名或视图名别名>,<表名或视图名>别名…WHERE<条件表达式>GROUPBY<分组表达式>HAVING<条件表达式>ORDERBY<排序列名>ASC|DESC关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)单表查询(续)()选择表中的若干列例查询所有读者的卡号和姓名。SELECTcardid,nameFROMreader例查询所有图书信息。SELECT*FROMbook例使用别名查询所有读者的卡号和姓名。SELECTcardid卡号,name姓名FROMreader关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)单表查询(续)()选择表中满足条件的记录关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)单表查询(续)()选择表中满足条件的记录(续)例查询价格在元以上的所有图书信息。SELECT*FROMbookWHEREprice>=例查询在年后的借书记录。SELECT*FROMborrowWHERETOCHAR(bdate,’YYYY’)>='‘例查询价格在~元之间的所有图书信息。SELECT*FROMbookWHEREpriceBETWEENAND例查询电子工业出版社、清华大学出版社和高等教育出版社出版的所有图书的书名。SELECTbooknameFROMbookWHEREpublishIN('电子工业出版社','清华大学出版社','高等教育出版社')例查询以“数据库”开头的所有图书的书名和出版社。SELECTbookname,publishFROMbookWHEREbooknameLIKE‘数据库’关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)单表查询(续)()选择表中满足条件的记录(续)例查询书名含有DELPHI的所有图书信息。SELECT*FROMbookWHEREbooknameLIKE‘DELPHI’ESCAPE‘’例读者借书后还未还书时借阅表中的还书日期为空值。查询所有未还书籍的读者号和借书时间。SELECTcardid,TOCHAR(bdate,’YYYYMMDD’)FROMborrowWHEREsdateIS例查询单位为“计算机系”且类别为学生(class=)的所有读者信息SELECT*FROMreaderWHEREdept=’计算机系’andclass=关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)单表查询(续)()对查询结果排序例查询年后出版的所有图书并按出版先后顺序排序。SELECT*FROMbookWHERETOCHAR(pubdate,’YYYY’)>=’’ORDERBYpubdate关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)单表查询(续)()使用集函数SQL提供了许多集函数主要包括:COUNT(DISTINCT|ALL*)统计元组个数。COUNT(DISTINCT|ALL<列名>)统计一列中值的个数。SUM(DISTINCT|ALL<列名>)计算一列值的总和(此列必须是数值型)。AVG(DISTINCT|ALL<列名>)计算一列值的平均值(此列必须是数值型)。MAX(DISTINCT|ALL<列名>)计算一列值的最大值。MIN(DISTINCT|ALL<列名>)计算一列值的最小值。关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)单表查询(续)()使用集函数(续)例查询读者总数。SELECTCOUNT(*)FROMreader例查询有未还书的读者数。SELECTCOUNT(DISTINCTcardid)FROMborrowWHEREsdateIS例查询库存书总数。SELECTSUM(qty)FROMbook关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)单表查询(续)()分组统计例统计不同类型的读者数。SELECTclass,COUNT(cardid)FROMreaderGROUPBYclass例按出版年份统计库存量。SELECTTOCHAR(pubdate,’YY’),SUM(qty)FROMbookGROUPBYTOCHAR(pubdate,’YY’)例查询借书数量大于本的读者卡号。SELECTcardidFROMborrowWHEREsdateISGROUPBYcardidHAVINGCOUNT(bookid)>关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)多表查询()等值与非等值连接查询例查询所有借书未还的读者的姓名。SELECTnameFROMreader,borrowWHEREreadercardid=borrowcardidANDsdateIS例查询所有读者信息及借阅情况。SELECTreader*,borrow*FROMreader,borrowWHEREreadercardid=borrowcardid关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)多表查询(续)()自然连接例自然连接READER和BORROW表。SELECTreadercardid,name,sex,dept,class,bookid,bdate,sdateFROMreader,borrowWHEREreadercardid=borrowcardid关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)多表查询(续)()自身连接例查询书名相同而出版社不同的所有图书的书名。SELECTDISTINCTBbooknameFROMbookB,bookBWHEREBbookname=BbooknameANDBpublish<>Bpublish关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)多表查询(续)()外连接左外连:查询结果中不仅包含符合连接条件的行而且包含左表中所有数据行。右外连:查询结果中不仅包含符合连接条件的行而且包含右表中所有数据行。全外连:查询结果中不仅包含符合连接条件的行而且包含两个连接表中所有数据行。关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)多表查询(续)()外连接(续)例在例中要求将没有借书记录的读者也显示出来。SELECTreadercardid,name,sex,dept,class,bookid,bdate,sdateFROMreader,borrowWHEREreadercardid=borrowcardid()说明:()在右边保证了左边表中的所有记录都会被取到。例也可以改写成:SELECTreadercardid,name,sex,dept,class,bookid,bdate,sdateFROMreaderLEFTOUTERJOINborrowONreadercardid=borrowcardid关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)多表查询(续)()综合事例例查询借书期限超过个月的所有读者的姓名、所借书籍名和借书日期。SELECTname,bookname,bdateFROMbook,reader,borrowWHEREbookbookid=borrowbookidANDreadercardid=borrowcardidANDMONTHSBETWEEN(SYSDATE,bdate)>ANDsdateIS关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)多表查询(续)()综合事例(续)例按读者姓名查询指定读者的借还书历史记录。假设读者姓名为“刘勇”。SELECTbookname,bdate,sdateFROMborrow,book,readerWHEREbookbookid=borrowbookidANDreadercardid=borrowcardidANDreadername='刘勇'例查询指定图书的去向。如指定书名为“数据结构”。SELECTreadername,deptFROMborrow,reader,bookWHEREborrowcardid=readercardidANDborrowbookid=bookbookidANDbookbookname='数据结构'ANDsdateIS关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)嵌套查询()带IN谓词的子查询例查询借了“数据库系统”书籍的所有读者的姓名。SELECTnameFROMreaderWHEREcardidIN(SELECTcardidFROMborrowWHEREbookidIN(SELECTbookidFROMbookWHEREbookname='数据库系统'))关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)嵌套查询(续)()带有比较运算符的子查询例查询与“刘勇”在同一个部门的所有读者的信息。SELECT*FROMreaderWHEREdept=(SELECTdeptFROMreaderWHEREname='刘勇')关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)嵌套查询(续)()带有ANY或ALL谓词的子查询语义为:>ANY:大于子查询结果中的某个值。<ANY:小于子查询结果中的某个值。>=ANY:大于等于子查询结果中的某个值。<=ANY:小于等于子查询结果中的某个值。=ANY:等于子查询结果中的某个值。!=ANY或<>ANY:不等于子查询结果中的某个值。>ALL:大于子查询结果中的所有值。<ALL:小于子查询结果中的所有值。>=ALL:大于等于子查询结果中的所有值。<=ALL:小于等于子查询结果中的所有值。!=ALL或<>ANY:不等于子查询结果中的任何一个值。关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)嵌套查询(续)()带有ANY或ALL谓词的子查询(续)例查询所有正借阅“中国水利水电出版社”出版的书籍的读者姓名。SELECTnameFROMreaderWHEREcardid=ANY(SELECTcardidFROMborrowWHEREsdateISANDbookid=ANY(SELECTbookidFROMbookWHEREpublish='中国水利水电出版社'))关系数据库标准语言SQL关系数据库标准语言SQL数据查询(续)嵌套查询(续)()带有EXISTS谓词的子查询例查询借阅了书号为TP图书的所有读者姓名。SELECTnameFROMreaderWHEREEXISTS(SELECT*FROMborrowWHEREborrowcardid=readercardidANDbookid='TP')关系数据库标准语言SQL关系数据库标准语言SQL数据更新插入数据()插入单个元组插入单个元组的INSERT语句的语法格式为:INSERTINTO<表名>(<属性列>,<属性列>…)VALUES(<常量>,<常量>…)例在读者表中插入一条新的记录('T','刘伟','男','计算机系',)。INSERTINTOreaderVALUES('T','刘伟','男','计算机系',)关系数据库标准语言SQL关系数据库标准语言SQL数据更新(续)插入数据(续)()插入子查询结果插入子查询结果的INSERT语句的格式为:INSERTINTO<表名>(<属性列>,<属性列>…)子查询例按书号统计每种图书的借出数量并保存到另一个表中。第一步先创建表:CREATETABLEBOOKQTY(bookidCHAR(),qtyINT)第二步插入数据:INSERTINTOBOOKQTYSELECTbookid,COUNT(*)FROMborrowWHEREsdateISGROUPBYbookid关系数据库标准语言SQL关系数据库标准语言SQL数据更新(续)修改数据修改操作又称为更新操作其语句格式为:UPDATE<表名>SET<列名>=<表达式><列名>=<表达式>…WHERE<条件>关系数据库标准语言SQL关系数据库标准语言SQL数据更新(续)修改数据(续)例读者还书操作。设读者卡号为S书号为TP。UPDATEborrowSETsdate=SYSDATEWHEREbookid=‘TP’ANDcardid=‘S’UPDATEbookSETqty=qtyWHEREbookid='TP'例读者借书操作。设读者卡号为T书号为TP。UPDATEbookSETqty=qtyWHEREbookid='TP'INSERTINTOborrow(bookid,cardid,bdate)VALUES('TP','T',SYSDATE)关系数据库标准语言SQL关系数据库标准语言SQL数据更新(续)删除数据删除数据指删除表中的某些记录删除语句的一般格式为:DELETEFROM<表名>WHERE<条件>关系数据库标准语言SQL关系数据库标准语言SQL数据更新(续)删除数据(续)例删除卡号为T的读者的所有借书记录然后删除该读者信息。DELETEFROMborrowWHEREcardid=‘T’DELETEFROMreaderWHEREcardid='T'例清空借阅表。DELETEFROMborrow例带子查询的删除操作。删除没有借书记录的所有读者。DELETEFROMreaderWHERENOTEXISTS(SELECT*FROMborrowWHEREborrowcardid=readercardid)关系数据库标准语言SQL关系数据库标准语言SQL视图视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。视图是从一个或几个基本表(或视图)导出的表它与基本表不同是一个虚表。关系数据库标准语言SQL关系数据库标准语言SQL视图(续)建立视图SQL语言用CREATEVIEW命令建立视图其一般格式为:CREATEVIEW<视图名>(<列名><列名>…)AS<子查询>WITHCHECKOPTION例建立读者类别为学生(class=)的读者视图。CREATEVIEWSreaderASSELECT*FROMreaderWHEREclass=关系数据库标准语言SQL关系数据库标准语言SQL视图(续)建立视图(续)例创建教师读者(class=)视图并要求进行修改和插入操作时仍保证视图只有教师记录。CREATEVIEWTreaderASSELECTcardid,name,sex,deptFROMreaderWHEREclass=WITHCHECKOPTION例创建教师借阅视图。CREATEVIEWTborrowASSELECTcardid,bookid,bdate,sdateFROMborrowWHEREcardidIN(SELECTcardidFROMreaderWHEREclass=)关系数据库标准语言SQL关系数据库标准语言SQL视图(续)建立视图(续)例创建尚有未归还图书的读者借阅视图包括读者姓名、所借书名和借书时间。CREATEVIEWVborrowASSELECTname,bookname,bdateFROMborrow,reader,bookWHEREborrowbookid=bookbookidANDborrowcardid=readercardidANDsdateIS例统计每种图书的藏书数量(=在库数量借出数量)。先计算每种图书的借出数量:CREATEVIEWBqty(bookid,NUM)ASSELECTbookid,COUNT(*)FROMborrowWHEREsdateISGROUPBYbookid再计算每种图书的总数量(藏书数量):CREATEVIEWbookqty(bookid,SUMQTY)ASSELECTbookbookid,qtyNUMFROMbook,BqtyWHEREbookbookid=Bqtybookid关系数据库标准语言SQL关系数据库标准语言SQL视图(续)删除视图DROPVIEW<视图名>关系数据库标准语言SQL关系数据库标准语言SQL视图(续)查询视图例查询读者“刘伟”的借书信息。SELECTname,bookname,bdateFROMVborrowWHEREname='刘伟'例统计图书馆藏书总量。SELECTSUM(SUMQTY)FROMbookqty关系数据库标准语言SQL关系数据库标准语言SQL视图(续)更新视图例通过视图TREADER修改读者(T)为“计算机系”。UPDATETreaderSETdept='计算机系'WHEREcardid='T'关系数据库标准语言SQL关系数据库标准语言SQL视图(续)视图的用途()视图能够简化用户的操作。()视图使用户能以多种角度看待同一数据。()视图对重构数据库提供了一定程度的逻辑独立性。()视图能够对机密数据提供安全保护。关系数据库标准语言SQL关系数据库标准语言SQL数据控制数据控制也称为数据保护包括数据的安全性控制、完整性控制、并发控制和恢复。关系数据库标准语言SQL关系数据库标准语言SQL数据控制(续)授权SQL语言用GRANT语句向用户授予操作权限GRANT语句的一般格式为:GRANT<权限>,<权限>…ON<对象名>TO<用户>,<用户>…WITHGRANTOPTION其功能是将指定对象的指定操作权限授予指定的用户。关系数据库标准语言SQL关系数据库标准语言SQL数据控制(续)授权(续)例假若USER是数据库的用户把对BOOK表的查询和修改权限授给用户USER。GRANTSELECT,UPDATEONbookTOUSER例授予用户USER创建表的权限并允许他将此权限授予其他用户。GRANTCREATETABLETOUSERWITHGRANTOPTION关系数据库标准语言SQL关系数据库标准语言SQL数据控制(续)权限收回授予的权限可以由DBA或其授权者用REVOKE语句收回REVOKE语句的一般格式为:REVOKE<权限>,<权限>…ON<对象名>FROM<用户>,<用户>…其功能是从指定的用户中收回指定的权限。关系数据库标准语言SQL关系数据库标准语言SQL数据控制(续)权限收回(续)例回收USER对BOOK表的查询与修改权限。REVOKESELECT,UPDATEONbookFROMUSER如果要收回USER的所有权限可以使用下面的命令:REVOKEALLPRIVILEGESONbookFROMUSER

类似资料

  • 第3章.ppt

  • 第1章.ppt

  • 第2章.ppt

  • 第4章.ppt

  • 第5章.ppt

  • 第6章.ppt

  • 第7章.ppt

  • 第8章.ppt

  • 第8章.ppt

  • 第9章.ppt

编辑推荐

001-5,王黄州小畜集 (王禹偁撰) 宋绍兴刻本.pdf

001-4,河東柳仲塗先生文集.pdf

梅国强—拓展《伤寒论》方临床运用.ppt

毛姆短篇小说选集.pdf

大数据--下一个创新、竞争和生产力的前沿.pdf

职业精品

精彩专题

上传我的资料

精选资料

热门资料排行换一换

  • 侯宝林着《再生集 相声》(山西人…

  • [诺贝尔经济学奖获奖者着作丛书]…

  • [诺贝尔经济学奖获奖者着作丛书]…

  • 奥斯特罗姆《公共服务的制度建构》…

  • 解析几何方法·技巧·优美解-张嘉…

  • 针灸美容.pdf

  • 刘宝瑞表演相声精品集.pdf.p…

  • 相声传统作品选.pdf

  • 中国·科学·文明.pdf

  • 资料评价:

    / 54
    所需积分:1 立即下载

    意见
    反馈

    返回
    顶部