chp数据库系统概论实用实用教案

上传人:夏** 文档编号:569811551 上传时间:2024-07-31 格式:PPT 页数:90 大小:1.61MB
返回 下载 相关 举报
chp数据库系统概论实用实用教案_第1页
第1页 / 共90页
chp数据库系统概论实用实用教案_第2页
第2页 / 共90页
chp数据库系统概论实用实用教案_第3页
第3页 / 共90页
chp数据库系统概论实用实用教案_第4页
第4页 / 共90页
chp数据库系统概论实用实用教案_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《chp数据库系统概论实用实用教案》由会员分享,可在线阅读,更多相关《chp数据库系统概论实用实用教案(90页珍藏版)》请在金锄头文库上搜索。

1、第三章第三章关系数据库标准关系数据库标准(biozhn)语言语言SQL3.1SQL概述概述3.2学生学生-课程数据课程数据(shj)库库3.3数据数据(shj)定义定义3.4数据数据(shj)查询查询3.5数据数据(shj)更新更新3.6视图视图3.7小结小结第1页/共89页第一页,共90页。3.1SQL概述概述(ish)SQL(StructuredQueryLanguage)结构化查询语言,是关系数据库的标准语言SQL是一个通用(tngyng)的、功能极强的关系数据库语言第2页/共89页第二页,共90页。SQL概述概述(ish)(续)(续)3.1.1SQL的产生与发展的产生与发展(fzhn)

2、3.1.2SQL的特点的特点3.1.3SQL的基本概念的基本概念第3页/共89页第三页,共90页。SQL标准的进展标准的进展(jnzhn)过程过程标准(biozhn)大致页数发布日期SQL/861986.10SQL/89(FIPS127-1)120页1989年SQL/92622页1992年SQL991700页1999年SQL20032003 年第4页/共89页第四页,共90页。3.1SQL概述概述(ish)3.1.1SQL的产生的产生(chnshng)与发展与发展3.1.2SQL的特点的特点3.1.3SQL的基本概念的基本概念第5页/共89页第五页,共90页。3.1.2SQL的特点的特点(td

3、in)1.综合统一集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。可以独立完成数据库生命周期中的全部活动:定义关系模式,插入数据,建立数据库;对数据库中的数据进行查询和更新;数据库重构和维护数据库安全性、完整性控制等用户数据库投入运行后,可根据(gnj)需要随时逐步修改模式,不影响数据的运行。数据操作符统一第6页/共89页第六页,共90页。2.高度高度(god)非过程化非过程化非关系数据模型的数据操纵语言“面向过程”,必须制定(zhdng)存取路径SQL只要提出“做什么”,无须了解存取路径。存取路径的选择以及SQL的操作过程由系统自动完成。第7页/共89页第

4、七页,共90页。3.面向集合面向集合(jh)的操作方式的操作方式非关系(gunx)数据模型采用面向记录的操作方式,操作对象是一条记录SQL采用集合操作方式操作对象、查找结果可以是元组的集合一次插入、删除、更新操作的对象可以是元组的集合第8页/共89页第八页,共90页。4.以同一种语法结构提供多种使用以同一种语法结构提供多种使用(shyng)方式方式SQL是独立的语言能够独立地用于联机(linj)交互的使用方式SQL又是嵌入式语言SQL能够嵌入到高级语言(例如C,C+,Java)程序中,供程序员设计程序时使用第9页/共89页第九页,共90页。5.语言语言(yyn)简洁,易学易用简洁,易学易用SQ

5、L功能(gngnng)极强,完成核心功能(gngnng)只用了9个动词。第10页/共89页第十页,共90页。3.1SQL概述概述(ish)3.1.1SQL的产生的产生(chnshng)与发展与发展3.1.2SQL的特点的特点3.1.3SQL的基本概念的基本概念第11页/共89页第十一页,共90页。SQL的基本概念(续)的基本概念(续)SQL视图2视图1基本表2基本表1基本表3基本表4存储文件2存储文件1外模式模 式内模式SQL支持(zhch)关系数据库三级模式结构第12页/共89页第十二页,共90页。SQL的基本概念(续)的基本概念(续)基本表本身独立存在(cnzi)的表SQL中一个关系就对应

6、一个基本表一个(或多个)基本表对应一个存储文件一个表可以带若干索引存储文件逻辑结构组成了关系数据库的内模式物理结构是任意的,对用户透明视图从一个或几个基本表导出的表数据库中只存放视图的定义而不存放视图对应的数据视图是一个虚表用户可以在视图上再定义视图第13页/共89页第十三页,共90页。第三章第三章关系数据库标准关系数据库标准(biozhn)语言语言SQL3.1SQL概述概述3.2学生学生-课程数据库课程数据库3.3数据定义数据定义(dngy)3.4数据查询数据查询3.5数据更新数据更新3.6视图视图3.7小结小结第14页/共89页第十四页,共90页。3.2学生学生(xusheng)-课程课程

7、数据库数据库学生(xusheng)-课程模式S-T:学生(xusheng)表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:Course(Cno,Cname,Cpno,Ccredit)学生(xusheng)选课表:SC(Sno,Cno,Grade)第15页/共89页第十五页,共90页。Student表表学学 号号Sno姓姓 名名Sname性性 别别 Ssex年年 龄龄 Sage所所 在在 系系 Sdept200215121200215122200215123200515125李勇李勇刘晨刘晨王敏王敏张立张立男男女女女女男男20191819CSCSMAIS第16页/

8、共89页第十六页,共90页。Course表表课程号课程号Cno课程名课程名Cname先行课先行课Cpno学分学分Ccredit1234567数据库数据库数学数学信息系统信息系统操作系统操作系统数据结构数据结构数据处理数据处理PASCAL语言语言516764243424第17页/共89页第十七页,共90页。SC表表学学 号号Sno 课程号课程号 Cno 成绩成绩 Grade 200215121 200215121 200215121 200215122 200215122 1 2 3 2 3 92 85 88 90 80第18页/共89页第十八页,共90页。第三章第三章关系数据库标准关系数据库标

9、准(biozhn)语言语言SQL3.1SQL概述概述3.2学生学生-课程课程(kchng)数据库数据库3.3数据定义数据定义3.4数据查询数据查询3.5数据更新数据更新3.6视图视图3.7小结小结第19页/共89页第十九页,共90页。3.3数据数据(shj)定义定义SQL的数据(shj)定义功能: 模式定义、表定义、视图和索引的定义 第20页/共89页第二十页,共90页。3.3数据数据(shj)定义定义3.3.1模式的定义与删除模式的定义与删除3.3.2基本表的定义、删除与修改基本表的定义、删除与修改3.3.3索引索引(suyn)的建立与删除的建立与删除第21页/共89页第二十一页,共90页。

10、定义定义(dngy)模式(续)模式(续)例1定义一个学生-课程模式S-TCREATESCHEMA“S-T”AUTHORIZATIONWANG;为用户WANG定义了一个模式S-T例2CREATESCHEMAAUTHORIZATIONWANG;隐含为用户名WANG如果(rgu)没有指定,那么隐含为第22页/共89页第二十二页,共90页。定义定义(dngy)模式(续)模式(续)定义模式实际上定义了一个命名空间在这个(zhge)空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。在CREATESCHEMA中可以接受CREATETABLE ,CREATEVIEW和GRANT子句。CREATE

11、SCHEMAAUTHORIZATION|第23页/共89页第二十三页,共90页。定义定义(dngy)模式(续)模式(续)例3CREATESCHEMATESTAUTHORIZATIONZHANGCREATETABLETAB1(COL1SMALLINT ,COL2INT ,COL3CHAR(20) ,COL4NUMERIC(10 ,3),COL5DECIMAL(5 ,2) ;为用户(yngh)ZHANG创建了一个模式TEST,并在其中定义了一个表TAB1。第24页/共89页第二十四页,共90页。二、删除二、删除(shnch)模式模式nDROPSCHEMAnCASCADE(级联)n删除模式(msh)

12、的同时把该模式(msh)中所有的数据库对象全部删除nRESTRICT(限制)n如果该模式(msh)中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。n当该模式(msh)中没有任何下属的对象时才能执行。第25页/共89页第二十五页,共90页。删除删除(shnch)模式(续)模式(续)例4DROPSCHEMAZHANGCASCADE;删除(shnch)模式ZHANG同时该模式中定义的表TAB1也被删除(shnch)第26页/共89页第二十六页,共90页。3.3数据数据(shj)定义定义3.3.1模式的定义与删除模式的定义与删除3.3.2基本表的定义、删除与修改基本表的定义、删除与修

13、改(xigi)3.3.3索引的建立与删除索引的建立与删除第27页/共89页第二十七页,共90页。3.3.2基本表的定义基本表的定义(dngy)、删除与修改、删除与修改一、定义基本表一、定义基本表CREATETABLE(,););如如果果完完整整性性约约束束条条件件涉涉及及(shj)到到该该表表的的多多个个属属性性列列,则则必必须须定定义义在在表表级级上上,否则既可以定义在列级也可以定义在表级。否则既可以定义在列级也可以定义在表级。第28页/共89页第二十八页,共90页。学生(xusheng)表Student例5建立“学生(xusheng)”表Student,学号是主码,姓名取值唯一。CREAT

14、ETABLEStudent(SnoCHAR(9)PRIMARYKEY,/*列级完整性约束条件*/SnameCHAR(20)UNIQUE,/*Sname取唯一值*/SsexCHAR(2),SageSMALLINT,SdeptCHAR(20);主码第29页/共89页第二十九页,共90页。课程表课程表Course 例6 建立一个(y )“课程”表Course CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY , Cname CHAR(40), Cpno CHAR(4) , Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERE

15、NCES Course(Cno) ); 先修课 Cpno是外码 被参照(cnzho)表是Course被参照(cnzho)列是Cno第30页/共89页第三十页,共90页。学生学生(xusheng)选课表选课表SC 例例7 7 建立一个建立一个“学生选课学生选课”表表SCSCCREATE TABLE SCCREATE TABLE SC (Sno CHAR(9)(Sno CHAR(9), Cno CHAR(4)Cno CHAR(4), Grade SMALLINTGrade SMALLINT, PRIMARY KEY (SnoPRIMARY KEY (Sno,Cno)Cno), /* /* 主码由两

16、个主码由两个(lin )(lin )属性构成,必须作为表级完整属性构成,必须作为表级完整性进行定义性进行定义*/*/ FOREIGN KEY (Sno) REFERENCES Student(Sno)FOREIGN KEY (Sno) REFERENCES Student(Sno), /* /* 表级完整性约束条件,表级完整性约束条件,SnoSno是外码,被参照表是是外码,被参照表是Student Student */*/ FOREIGN KEY (Cno) REFERENCES Course(Cno)FOREIGN KEY (Cno) REFERENCES Course(Cno) /* /*

17、 表级完整性约束条件,表级完整性约束条件, Cno Cno是外码,被参照表是是外码,被参照表是Course*/Course*/); ); 第31页/共89页第三十一页,共90页。二、数据类型二、数据类型SQL中域的概念用数据类型来实现定义表的属性时需要(xyo)指明其数据类型及长度选用哪种数据类型取值范围要做哪些运算第32页/共89页第三十二页,共90页。二、数据类型二、数据类型数据类型数据类型含义含义CHAR(n)长度为长度为n的定长字符串的定长字符串VARCHAR(n)最大长度为最大长度为n的变长字符串的变长字符串INT长整数(也可以写作长整数(也可以写作INTEGER)SMALLINT短

18、整数短整数NUMERIC(p,d)定点数,由定点数,由p位数字(不包括符号、小数点)组成,小数后面有位数字(不包括符号、小数点)组成,小数后面有d位数字位数字REAL取决于机器精度的浮点数取决于机器精度的浮点数Double Precision取决于机器精度的双精度浮点数取决于机器精度的双精度浮点数FLOAT(n)浮点数,精度至少为浮点数,精度至少为n位数字位数字DATE日期,包含年、月、日,格式为日期,包含年、月、日,格式为YYYY-MM-DDTIME时间,包含一日的时、分、秒,格式为时间,包含一日的时、分、秒,格式为HH:MM:SS第33页/共89页第三十三页,共90页。三、模式三、模式(m

19、sh)与表与表每一个基本表都属于某一个模式一个模式包含多个基本表定义基本表所属模式方法一:在表名中明显地给出模式名Createtable“S-T”.Student(.);/*模式名为S-T*/Createtable“S-T”.Cource(.);Createtable“S-T”.SC(.);方法二:在创建模式语句(yj)中同时创建表方法三:设置所属的模式第34页/共89页第三十四页,共90页。模式模式(msh)与表(续)与表(续)创建基本表(其他数据库对象也一样)时,若没有指定模式,系统根据搜索(susu)路径来确定该对象所属的模式RDBMS会使用模式列表中第一个存在的模式作为数据库对象的模式

20、名若搜索(susu)路径中的模式名都不存在,系统将给出错误显示当前的搜索(susu)路径:SHOWsearch_path;搜索(susu)路径的当前默认值是:$user,PUBLIC第35页/共89页第三十五页,共90页。模式模式(msh)与表(续)与表(续)DBA用户可以设置搜索路径,然后定义基本表SETsearch_pathTO“S-T”,PUBLIC;CreatetableStudent(.);结果建立了S-T.Student基本表。RDBMS发现搜索路径中第一个模式名S-T存在(cnzi),就把该模式作为基本表Student所属的模式。第36页/共89页第三十六页,共90页。四、修改四

21、、修改(xigi)基本表基本表ALTERTABLEADD完整性约束(yush)DROPALTERCOLUMN;第37页/共89页第三十七页,共90页。修改修改(xigi)基本表(续)基本表(续)例8向Student表增加“入学时间”列,其数据类型为日期型。ALTERTABLEStudentADDS_entranceDATE ;不论基本表中原来是否已有数据,新增加的列一律为空值。例9将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为(iwi)整数。ALTERTABLEStudentALTERCOLUMNSageINT ;例10增加课程名称必须取唯一值的约束条件。ALTERTABLECou

22、rseADDUNIQUE(Cname);第38页/共89页第三十八页,共90页。五、删除五、删除(shnch)基本表基本表DROPTABLERESTRICT|CASCADE;RESTRICT:删除表是有限制的。欲删除的基本表不能被其他表的约束所引用如果存在依赖该表的对象,则此表不能被删除CASCADE:删除该表没有(miyu)限制。在删除基本表的同时,相关的依赖对象一起删除第39页/共89页第三十九页,共90页。删除删除(shnch)基本表基本表(续续)例11删除(shnch)Student表DROPTABLEStudentCASCADE;基本表定义被删除(shnch),数据被删除(shnch

23、)表上建立的索引、视图、触发器等一般也将被删除(shnch)第40页/共89页第四十页,共90页。删除删除(shnch)基本表(续)基本表(续)例12若表上建有视图(sht),选择RESTRICT时表不能删除CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudentWHERESdept=IS;DROPTABLEStudentRESTRICT;-ERROR:cannotdroptableStudentbecauseotherobjectsdependonit第41页/共89页第四十一页,共90页。删除删除(shnch)基本表(续)基本表(续)例12

24、如果选择CASCADE时可以删除(shnch)表,视图也自动被删除(shnch)DROPTABLEStudentCASCADE;-NOTICE:dropcascadestoviewIS_StudentSELECT*FROMIS_Student;-ERROR:relationIS_Studentdoesnotexist第42页/共89页第四十二页,共90页。删除删除(shnch)基本表(续)基本表(续)序号 标准及主流数据库的处理方式依赖基本表的对象SQL99Kingbase ESORACLE 9iMS SQLSERVER 2000RCRCC1.索引无规定2.视图保留保留保留3.DEFAULT,

25、PRIMARY KEY,CHECK(只含该表的列)NOT NULL 等约束4.Foreign Key5.TRIGGER6.函数或存储过程保留保留保留保留保留DROP TABLE时,SQL99 与 3个RDBMS的处理策略(cl)比较R表示RESTRICT , C表示CASCADE 表示不能删除基本表,表示能删除基本表,保留(boli)表示删除基本表后,还保留(boli)依赖对象 第43页/共89页第四十三页,共90页。3.3数据数据(shj)定义定义3.3.1模式的定义与删除模式的定义与删除(shnch)3.3.2基本表的定义、删除基本表的定义、删除(shnch)与修改与修改3.3.3索引的建

26、立与删除索引的建立与删除(shnch)第44页/共89页第四十四页,共90页。3.3.3索引索引(suyn)的建立与删除的建立与删除建立索引的目的:加快查询速度谁可以建立索引DBA或表的属主(即建立表的人)DBMS一般会自动(zdng)建立以下列上的索引PRIMARYKEYUNIQUE谁维护索引DBMS自动(zdng)完成使用索引DBMS自动(zdng)选择是否使用索引以及使用哪些索引第45页/共89页第四十五页,共90页。索索引引RDBMS中索引一般(ybn)采用B+树、HASH索引来实现B+树索引具有动态平衡的优点HASH索引具有查找速度快的特点采用B+树,还是HASH索引则由具体的RDB

27、MS来决定索引是关系数据库的内部实现技术,属于内模式的范畴CREATEINDEX语句定义索引时,可以定义索引是唯一索引、非唯一索引或聚簇索引第46页/共89页第四十六页,共90页。一、建立一、建立(jinl)索引索引语句(yj)格式CREATEUNIQUECLUSTERINDEXON(,);第47页/共89页第四十七页,共90页。建立建立(jinl)索引(续)索引(续)例13CREATECLUSTERINDEXStusnameONStudent(Sname);在Student表的Sname(姓名)列上建立一个聚簇索引在最经常( jngchng)查询的列上建立聚簇索引以提高查询效率一个基本表上最

28、多只能建立一个聚簇索引经常( jngchng)更新的列不宜建立聚簇索引第48页/共89页第四十八页,共90页。建立建立(jinl)索引(续)索引(续)例14为学生-课程(kchng)数据库中的Student,Course,SC三个表建立索引。CREATEUNIQUEINDEXStusnoONStudent(Sno) ;CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);Student表按学号升序建唯一索引Course表按课程(kchng)号升序建唯一索引SC表按学号升序和课程(kchng)

29、号降序建唯一索引第49页/共89页第四十九页,共90页。二、删除二、删除(shnch)索引索引DROPINDEX;删除索引时,系统(xtng)会从数据字典中删去有关该索引的描述。例15删除Student表的Stusname索引DROPINDEXStusname;第50页/共89页第五十页,共90页。第三章第三章关系数据库标准关系数据库标准(biozhn)语言语言SQL3.1SQL概述概述3.2学生学生-课程数据库课程数据库3.3数据定义数据定义3.4数据查询数据查询3.5数据更新数据更新3.6视图视图(sht)3.7小结小结第51页/共89页第五十一页,共90页。数据数据(shj)查询查询语句

30、格式SELECTALL|DISTINCT,FROM , WHEREGROUPBYHAVINGORDERBYASC|DESC;第52页/共89页第五十二页,共90页。3.4数据数据(shj)查询查询3.4.1单表查询单表查询3.4.2连接连接(linji)查询查询3.4.3嵌套查询嵌套查询3.4.4集合查询集合查询3.4.5Select语句的一般形式语句的一般形式第53页/共89页第五十三页,共90页。3.4.1单表查询单表查询(chxn)查询仅涉及一个(y)表:一、选择表中的若干列二、选择表中的若干元组三、ORDERBY子句四、聚集函数五、GROUPBY子句第54页/共89页第五十四页,共90

31、页。一、一、选择选择(xunz)表中的若干列表中的若干列查询(chxn)指定列例1查询(chxn)全体学生的学号与姓名。SELECTSno,SnameFROMStudent;例2查询(chxn)全体学生的姓名、学号、所在系。SELECTSname,Sno,SdeptFROMStudent;第55页/共89页第五十五页,共90页。2.查询查询(chxn)全部列全部列选出所有属性列:在SELECT关键字后面列出所有列名将指定为*例3查询全体学生的详细(xingx)记录。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;或SELECT*FROMStudent;第5

32、6页/共89页第五十六页,共90页。3.查询查询(chxn)经过计算的值经过计算的值SELECT子句的可以为:算术表达式字符串常量函数列别名第57页/共89页第五十七页,共90页。例4查全体学生的姓名及其出生年份。SELECTSname,2004-Sage/*假定(jidng)当年的年份为2004年*/FROMStudent;输出结果:Sname2004-Sage李勇1984刘晨1985王敏1986张立1985查询查询(chxn)经过计算的值(续)经过计算的值(续)第58页/共89页第五十八页,共90页。查询查询(chxn)经过计算的值(续)经过计算的值(续)例5查询全体学生的姓名、出生(ch

33、shng)年份和所有系,要求用小写字母表示所有系名SELECTSname,YearofBirth:,2004-Sage,ISLOWER(Sdept)FROMStudent;输出结果:SnameYearofBirth:2004-SageISLOWER(Sdept)李勇YearofBirth:1984 cs刘晨YearofBirth:1985 is王敏YearofBirth:1986 ma张立YearofBirth:1985 is第59页/共89页第五十九页,共90页。查询经过查询经过(jnggu)计算的值(续)计算的值(续)使用列别名改变查询(chxn)结果的列标题:SELECTSnameNAM

34、E,YearofBirth:BIRTH,2000-SageBIRTHDAY ,LOWER(Sdept)DEPARTMENTFROMStudent;输出结果:NAMEBIRTHBIRTHDAYDEPARTMENT-李勇YearofBirth:1984cs刘晨YearofBirth:1985is王敏YearofBirth:1986ma张立YearofBirth:1985is第60页/共89页第六十页,共90页。3.4.1单表查询单表查询(chxn)查询仅涉及一个(y)表:一、选择表中的若干列二、选择表中的若干元组三、ORDERBY子句四、聚集函数五、GROUPBY子句第61页/共89页第六十一页,

35、共90页。二、选择二、选择(xunz)表中的若干元组表中的若干元组1.消除取值重复的行如果没有指定(zhdng)DISTINCT关键词,则缺省为ALL例6查询选修了课程的学生学号。SELECTSnoFROMSC;等价于:SELECTALLSnoFROMSC;执行上面的SELECT语句后,结果为:Sno200215121200215121200215121200215122200215122第62页/共89页第六十二页,共90页。消除消除(xioch)取值重复的行(续)取值重复的行(续)指定DISTINCT关键词,去掉(qdio)表中重复的行SELECTDISTINCTSnoFROMSC;执行结

36、果:Sno200215121200215122第63页/共89页第六十三页,共90页。2.查询查询(chxn)满足条件的元组满足条件的元组查 询 条 件谓 词比 较=,=,=,!=,!,!;NOT+上述比较运算符确定范围BETWEEN AND,NOT BETWEEN AND确定集合IN,NOT IN字符匹配LIKE,NOT LIKE空 值IS NULL,IS NOT NULL多重条件(逻辑运算)AND,OR,NOT表3.4 常用(chn yn)的查询条件第64页/共89页第六十四页,共90页。(1)比较比较(bjio)大小大小例7查询计算机科学系全体学生的名单。SELECTSnameFROMS

37、tudentWHERESdept=CS;例8查询所有(suyu)年龄在20岁以下的学生姓名及其年龄。SELECTSname,SageFROMStudentWHERESage20;例9查询考试成绩有不及格的学生的学号。SELECTDISTINCTSnoFROMSCWHEREGrade60;第65页/共89页第六十五页,共90页。(2)确定)确定(qudng)范围范围谓词谓词:BETWEENANDNOTBETWEENAND例例10查询查询(chxn)年龄在年龄在2023岁(包括岁(包括20岁和岁和23岁)之间的学生的岁)之间的学生的姓名、系别和年龄姓名、系别和年龄SELECTSname,Sdept

38、,SageFROMStudentWHERESageBETWEEN20AND23;例例11查询查询(chxn)年龄不在年龄不在2023岁之间的学生姓岁之间的学生姓名、系别和年龄名、系别和年龄SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;第66页/共89页第六十六页,共90页。(3)确定确定(qudng)集合集合谓词:谓词:IN,NOTIN例例12查查询询信信息息系系(IS)、数数学学系系(MA)和和计计算算机机科科学学系系(CS)学生的姓名学生的姓名(xngmng)和性别。和性别。SELECTSname,SsexFROMS

39、tudentWHERESdeptIN(IS,MA,CS);例例13查查询询既既不不是是信信息息系系、数数学学系系,也也不不是是计计算算机机科科学学系系的的学学生生的的姓名姓名(xngmng)和性别。和性别。SELECTSname,SsexFROMStudentWHERESdeptNOTIN(IS,MA,CS);第67页/共89页第六十七页,共90页。(4)字符字符(zf)匹配匹配谓词:谓词:NOTLIKEESCAPE匹配串为固定字符串匹配串为固定字符串例例14查询学号为查询学号为200215121的学生的学生(xusheng)的详细情况。的详细情况。SELECT*FROMStudentWHER

40、ESnoLIKE200215121;等价于:等价于:SELECT*FROMStudentWHERESno=200215121;第68页/共89页第六十八页,共90页。字符字符(zf)匹配(续)匹配(续)2)匹配串为含通配符的字符串例15查询所有姓刘学生的姓名、学号和性别(xngbi)。SELECTSname,Sno,SsexFROMStudentWHERESnameLIKE刘%;例16查询姓欧阳且全名为三个汉字的学生的姓名。SELECTSnameFROMStudentWHERESnameLIKE欧阳_;第69页/共89页第六十九页,共90页。字符字符(zf)匹配(续)匹配(续)例17查询名字中

41、第2个字为阳字的学生(xusheng)的姓名和学号。SELECTSname,SnoFROMStudentWHERESnameLIKE_阳%;例18查询所有不姓刘的学生(xusheng)姓名。SELECTSname,Sno,SsexFROMStudentWHERESnameNOTLIKE刘%;第70页/共89页第七十页,共90页。字符字符(zf)匹配(续)匹配(续)3)使用换码字符将通配符转义为普通(ptng)字符例19查询DB_Design课程的课程号和学分。SELECTCno,CcreditFROMCourseWHERECnameLIKEDB_DesignESCAPE;例20查询以DB_开头

42、,且倒数第3个字符为i的课程的详细情况。SELECT*FROMCourseWHERECnameLIKEDB_%i_ESCAPE;ESCAPE表示“”为换码字符第71页/共89页第七十一页,共90页。(5)涉及涉及(shj)空值的查询空值的查询n谓词:谓词:ISNULL或或ISNOTNULLn“IS”不能用不能用“=”代替代替(dit)n例例21某些学生选修课程后没有参加考试,所以有选课某些学生选修课程后没有参加考试,所以有选课记录,但没记录,但没n有考试成绩。查询缺少成绩的学生的学号和相应的课程有考试成绩。查询缺少成绩的学生的学号和相应的课程号。号。nSELECTSno,CnonFROMSCn

43、WHEREGradeISNULLn例例22查所有有成绩的学生学号和课程号。查所有有成绩的学生学号和课程号。nSELECTSno,CnonFROMSCnWHEREGradeISNOTNULL;第72页/共89页第七十二页,共90页。(6)多重条件多重条件(tiojin)查询查询逻辑运算符:AND和OR来联结多个查询条件AND的优先级高于OR可以用括号(kuho)改变优先级可用来实现多种其他谓词NOTINNOTBETWEENAND第73页/共89页第七十三页,共90页。多重条件多重条件(tiojin)查询(续)查询(续)例23查询计算机系年龄(ninlng)在20岁以下的学生姓名。SELECTSn

44、ameFROMStudentWHERESdept=CSANDSage20;第74页/共89页第七十四页,共90页。多重条件多重条件(tiojin)查询(续)查询(续)改写改写例例12例例12查询信息查询信息(xnx)系(系(IS)、数学系()、数学系(MA)和计)和计算机科学系(算机科学系(CS)学生的姓名和性别。)学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptIN(IS,MA,CS)可改写为:可改写为:SELECTSname,SsexFROMStudentWHERESdept=ISORSdept=MAORSdept=CS;第75页/共89页第七十

45、五页,共90页。3.4.1单表查询单表查询(chxn)查询仅涉及一个表:一、选择(xunz)表中的若干列二、选择(xunz)表中的若干元组三、ORDERBY子句四、聚集函数五、GROUPBY子句第76页/共89页第七十六页,共90页。三、三、ORDERBY子句子句(zj)ORDERBY子句(zj)可以按一个或多个属性列排序升序:ASC;降序:DESC;缺省值为升序当排序列含空值时ASC:排序列为空值的元组最后显示DESC:排序列为空值的元组最先显示第77页/共89页第七十七页,共90页。ORDERBY子句子句(zj)(续)(续)例24查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排

46、列。SELECTSno,GradeFROMSCWHERECno=3ORDERBYGradeDESC;例25查询全体学生情况,查询结果按所在系的系号升序排列,同一(tngy)系中的学生按年龄降序排列。SELECT*FROMStudentORDERBYSdept,SageDESC;第78页/共89页第七十八页,共90页。3.4.1单表查询单表查询(chxn)查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDERBY子句(zj)四、聚集函数五、GROUPBY子句(zj)第79页/共89页第七十九页,共90页。四、聚集四、聚集(jj)函数函数聚集函数:计数(jsh)COUNT(DI

47、STINCT|ALL*)COUNT(DISTINCT|ALL)计算总和SUM(DISTINCT|ALL)计算平均值AVG(DISTINCT|ALL)最大最小值MAX(DISTINCT|ALL)MIN(DISTINCT|ALL)第80页/共89页第八十页,共90页。聚集聚集(jj)函数函数(续)(续)例26查询学生总人数。SELECTCOUNT(*)FROMStudent;例27查询选修了课程的学生人数。SELECTCOUNT(DISTINCTSno)FROMSC;例28计算(jsun)1号课程的学生平均成绩。SELECTAVG(Grade)FROMSCWHERECno=1;第81页/共89页第

48、八十一页,共90页。聚集聚集(jj)函数函数(续)(续)例29查询选修1号课程(kchng)的学生最高分数。SELECTMAX(Grade)FROMSCWHERCno=1;例30查询学生200215012选修课程(kchng)的总学分数。SELECTSUM(Ccredit)FROMSC,CourseWHERSno=200215012ANDSC.Cno=Course.Cno;第82页/共89页第八十二页,共90页。3.4.1单表查询单表查询(chxn)查询仅涉及(shj)一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDERBY子句四、聚集函数五、GROUPBY子句第83页/共89页第

49、八十三页,共90页。五、五、GROUPBY子句子句(zj)GROUPBY子句分组:细化聚集函数的作用对象未对查询(chxn)结果分组,聚集函数将作用于整个查询(chxn)结果对查询(chxn)结果分组后,聚集函数将分别作用于每个组作用对象是查询(chxn)的中间结果表按指定的一列或多列值分组,值相等的为一组第84页/共89页第八十四页,共90页。GROUPBY子句子句(zj)(续)(续)例31求各个课程号及相应的选课人数(rnsh)。SELECTCno,COUNT(Sno)FROMSCGROUPBYCno;查询结果:CnoCOUNT(Sno)122234344433548第85页/共89页第八

50、十五页,共90页。GROUPBY子句子句(zj)(续)(续)例32查询选修(xunxi)了3门以上课程的学生学号。SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(*)3;第86页/共89页第八十六页,共90页。GROUPBY子句子句(zj)(续)(续)HAVING短语与WHERE子句的区别(qbi):作用对象不同WHERE子句作用于基表或视图,从中选择满足条件的元组HAVING短语作用于组,从中选择满足条件的组。第87页/共89页第八十七页,共90页。下课(xik)了。休息(xi xi)一会儿。第88页/共89页第八十八页,共90页。感谢您的欣赏(xnshng)!第89页/共89页第八十九页,共90页。内容(nirng)总结第三章 关系数据库标准语言SQL。非关系数据模型采用面向记录的操作方式,操作对象是一条记录。SQL功能极强,完成核心(hxn)功能只用了9个动词。课程表:Course(Cno,Cname,Cpno,Ccredit)。学生选课表:SC(Sno,Cno,Grade)。例1定义一个学生-课程模式S-T。取决于机器精度的双精度浮点数。方法二:在创建模式语句中同时创建表。IN,NOT IN。LIKE,NOT LIKE。感谢您的欣赏第九十页,共90页。

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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