数据原理-关系数据库标准语言SQL学习培训课件.ppt

上传人(卖家):林田 文档编号:4161780 上传时间:2022-11-16 格式:PPT 页数:238 大小:2MB
下载 相关 举报
数据原理-关系数据库标准语言SQL学习培训课件.ppt_第1页
第1页 / 共238页
数据原理-关系数据库标准语言SQL学习培训课件.ppt_第2页
第2页 / 共238页
数据原理-关系数据库标准语言SQL学习培训课件.ppt_第3页
第3页 / 共238页
数据原理-关系数据库标准语言SQL学习培训课件.ppt_第4页
第4页 / 共238页
数据原理-关系数据库标准语言SQL学习培训课件.ppt_第5页
第5页 / 共238页
点击查看更多>>
资源描述

1、2022-11-16数据库原理1l SQLSQL概述概述l 数据定义数据定义l 查询查询l 更新更新l 视图视图l 数据控制数据控制l 嵌入式嵌入式SQLSQL关系数据库标准关系数据库标准语言语言SQL 第第3章章2022-11-16数据库原理2SQLSQL的发展及现状的发展及现状19741974年,由年,由BoyceBoyce和和ChamberlinChamberlin提出。提出。l 1975 197519791979,IBMIBM公司公司San Jose Research LabSan Jose Research Lab研制了研制了 关系数据库管理系统原型关系数据库管理系统原型System

2、 RSystem R并实现了这种语言。并实现了这种语言。l 1986 1986年美国国家标准局年美国国家标准局(ANSI)(ANSI)的数据库委员会的数据库委员会X3H2X3H2批准批准 SQL SQL作为关系数据库语言的美国标准(作为关系数据库语言的美国标准(SQL-86SQL-86)。l ANSI ANSI 不断修改和完善不断修改和完善SQLSQL标准,公布了标准,公布了SQL-89SQL-89、SQL-92(SQL2)SQL-92(SQL2)、SQL-99(SQL3)SQL-99(SQL3)l 大部分大部分DBMSDBMS产品都支持产品都支持SQLSQL,成为操作数据库的标准语言,成为操

3、作数据库的标准语言2022-11-16数据库原理33.1 SQL3.1 SQL概述概述3.1.1 SQL3.1.1 SQL的特点的特点SQLSQL是一种介于关系代数和关系演算之间的结构化查询语言。是一种介于关系代数和关系演算之间的结构化查询语言。p 综合统一综合统一 集集DDLDDL、DMLDML、DCLDCL的功能于一体,可以独立完成数据库生命周期中的全部活动。的功能于一体,可以独立完成数据库生命周期中的全部活动。p 高度非过程化高度非过程化 无需了解存取路径,存取路径的选择以及无需了解存取路径,存取路径的选择以及SQLSQL语句的操作过程由系统自动完成。语句的操作过程由系统自动完成。p 面

4、向集合的操作方式面向集合的操作方式 操作对象、查找结果、插入、删除、更新操作的对象可以是元组集合。操作对象、查找结果、插入、删除、更新操作的对象可以是元组集合。p 以同一种语法结构提供两种使用方式以同一种语法结构提供两种使用方式 可独立的用于联机交互的使用方式,用户可在终端键入可独立的用于联机交互的使用方式,用户可在终端键入SQLSQL命令对数据库进行操命令对数据库进行操作;作;SQLSQL语句可嵌入到高级语言程序中,供程序员设计程序时使用。语句可嵌入到高级语言程序中,供程序员设计程序时使用。p 语言简单,易学易用语言简单,易学易用 核心功能只有核心功能只有9 9个动词。个动词。2022-11

5、-16数据库原理4数据查询数据查询(Data Query)(Data Query)S SQ QL L语语言言 数据操纵数据操纵(Data Manipulation)(Data Manipulation)数据定义数据定义(Data Definition)(Data Definition)数据控制数据控制(Data Control)(Data Control)SQL SQL 功能功能数据查询数据查询数据定义数据定义数据操纵数据操纵数据控制数据控制动动 词词SELECTSELECTCREATE,DROP,ALTERCREATE,DROP,ALTERINSERT,UPDATE,DELETEINSERT

6、,UPDATE,DELETEGRANT,REVOKEGRANT,REVOKE表表3.1 SQL3.1 SQL语言的动词语言的动词2022-11-16数据库原理5SQLSQL用用 户户视图视图1 1视图视图2 2存储文件存储文件1 1存储文件存储文件2 2外模式外模式模模 式式内模式内模式图图3.1 SQL3.1 SQL对关系数据库模型的支持对关系数据库模型的支持3.1.2 SQL3.1.2 SQL语言的基本概念语言的基本概念2022-11-16数据库原理6基本概念:基本概念:u 用户可以用用户可以用SQLSQL语言语言对对视图视图(View)(View)和和基本表基本表(Base(Base T

7、able)Table)进行进行查询查询等操作,在等操作,在用户观点用户观点里,视图和表里,视图和表一样一样,都是关系。都是关系。u 视图视图是从一个或多个基本表中导出的表,本身是从一个或多个基本表中导出的表,本身不存储不存储在数据库中,只有其定义,可以将其理解为一个在数据库中,只有其定义,可以将其理解为一个虚表虚表。u 基本表基本表是本身独立存在的表,每个基本表对应一个是本身独立存在的表,每个基本表对应一个存储存储文件文件,一个表可以带若干索引,存储文件及索引组成,一个表可以带若干索引,存储文件及索引组成了关系数据库的内模式。了关系数据库的内模式。2022-11-16数据库原理73.2 3.2

8、 数据定义数据定义操作对象操作对象表表视视 图图索索 引引操作方式操作方式创创 建建CREATE TABLECREATE TABLE删删 除除DROP TABLEDROP TABLE修修 改改ALTER TABLEALTER TABLECREATE INDEXCREATE INDEXDROP INDEXDROP INDEXCREATE VIEWCREATE VIEWDROP VIEWDROP VIEW表表3.2 SQL3.2 SQL的数据定义语句的数据定义语句 视图是基于基本表的虚表,索引是依附于基本表的,视图是基于基本表的虚表,索引是依附于基本表的,因此,因此,SQLSQL通常不提供修改视图

9、定义和索引定义的操作。通常不提供修改视图定义和索引定义的操作。(删除后重建;(删除后重建;OracleOracle允许直接修改视图定义)允许直接修改视图定义)2022-11-16数据库原理83.2.1 3.2.1 定义、删除与修改基本表定义、删除与修改基本表l 定义基本表定义基本表格式:格式:CREATE TABLECREATE TABLE (列级完整性约束条件列级完整性约束条件,列级完整性约束条件列级完整性约束条件 ,);u 建立一个新表,表中建立一个新表,表中无记录无记录2022-11-16数据库原理9 CREATE TABLECREATE TABLE StudentStudent (Sn

10、oSno CHAR(5)CHAR(5)NOT NULLNOT NULL UNIQUEUNIQUE,/,/*列级完整性列级完整性 约束条件约束条件 SnameSname CHAR(20)CHAR(20)UNIQUEUNIQUE,SsexSsex CHAR(1),CHAR(1),SageSage INT,INT,SdeptSdept CHAR(15)CHAR(15);例例1 1:建立学生表:建立学生表StudentStudent,它由学号,它由学号SnoSno、姓名、姓名SnameSname、性、性别别SsexSsex、年龄、年龄SageSage、所在系、所在系SdeptSdept五个属性构成。其

11、中五个属性构成。其中学号学号不能为空不能为空,值值是是唯一唯一的,并且的,并且姓名姓名取值也取值也唯一唯一。2022-11-16数据库原理10 CREATE TABLECREATE TABLE S S (S#S#CHAR(6)NOT NULL,CHAR(6)NOT NULL,/*学号学号 SNAMESNAME CHAR(8)NOT NULL,CHAR(8)NOT NULL,/*姓名姓名 SAGE SAGE SMALLINT,SMALLINT,/*年龄年龄 SDSD CHAR(10),CHAR(10),/*系名系名 SEXSEX CHAR(2)CHAR(2)DEFAULTDEFAULT 男男 /

12、*性性别别 CHECKCHECK(SEX=(SEX=男男)OR(SEX=)OR(SEX=女女),),PRIMARY KEYPRIMARY KEY (S#)(S#);例例2 2:建立学生:建立学生S S、课程课程C C、选课选课SCSC三个表三个表S S表:表:2022-11-16数据库原理11 CREATE TABLECREATE TABLE C C (C#C#CHAR(6)CHAR(6)NOT NULLNOT NULL,/*课程号课程号 CNAMECNAME CHAR(30)CHAR(30)NOT NULLNOT NULL,/*课程名课程名 TNAMETNAME CHAR(8),CHAR(8

13、),/*教师姓名教师姓名 PC#PC#CHAR(6),/CHAR(6),/*先行课先行课 PRIMARY KEYPRIMARY KEY (C#)(C#);例例2 2:建立学生:建立学生S S、课程课程C C、选课选课SCSC三个表三个表C C表:表:2022-11-16数据库原理12CREATE TABLECREATE TABLE SC SC (S#S#CHAR(6)CHAR(6)NOT NULLNOT NULL,/*学号学号C#C#CHAR(6)CHAR(6)NOT NULLNOT NULL,/*课程号课程号 GRGR SMALLINT SMALLINT DEFAULT NULLDEFAUL

14、T NULL,/*成绩成绩PRIMARY KEYPRIMARY KEY(S#,C#),(S#,C#),FOREIGN KEYFOREIGN KEY(S#)(S#)REFERENCESREFERENCES S(S#),S(S#),FOREIGN KEYFOREIGN KEY(C#)(C#)REFERENCESREFERENCES C(C#),C(C#),CHECKCHECK(GR IS NULL)(GR IS NULL)OR(GR BETWEEN O AND 100)OR(GR BETWEEN O AND 100);例例2 2:建立学生:建立学生S S、课程课程C C、选课选课SCSC三个表三个

15、表SCSC表:表:2022-11-16数据库原理13例例3 3:设关系:设关系S_G(S#,AVG_G),S_G(S#,AVG_G),把平均成绩大于把平均成绩大于8080的男生的学号的男生的学号及平均成绩存入及平均成绩存入S_GS_G中。中。CREATE TABLECREATE TABLE S_G S_G (S#S#CHAR(6)CHAR(6)NOT NULLNOT NULL,AVG_GAVG_G SMALLINT SMALLINT DEFAULT NULLDEFAULT NULL)ASAS (SELECT S#(SELECT S#,AVG(ALL GRADE)AVG(ALL GRADE)FR

16、OM SC FROM SC WHERE S#IN WHERE S#IN SELECT S#SELECT S#FROM S FROM S WHERE SEX=WHERE SEX=男男 GROUP BYGROUP BY S#S#HAVINGHAVING AVG(ALL GRADE)80)AVG(ALL GRADE)80)2022-11-16数据库原理14l 修改基本表修改基本表u 改变表名改变表名u 增加列增加列u 改变列的数据类型改变列的数据类型u 删除列的约束删除列的约束u 删除列删除列u 改变列名改变列名基本表的修改操作:基本表的修改操作:2022-11-16数据库原理15格式:格式:ALT

17、ER TABLEALTER TABLE ADDADD 完整性约束完整性约束 DROPDROP MODIFYMODIFY RENAMERENAME TO TO;p 增加新列和新的完整性约束条件增加新列和新的完整性约束条件p 删除指定的完整性约束条件删除指定的完整性约束条件p 修改列的定义(列名和数据类型)修改列的定义(列名和数据类型)p 改变表名改变表名2022-11-16数据库原理16 SQLSQL没有提供删除属性列的语句,可通过没有提供删除属性列的语句,可通过先将要保留的列及其内容复制到一个新表中,先将要保留的列及其内容复制到一个新表中,然后删除原表,再将新表重新命名为原表名。然后删除原表,

18、再将新表重新命名为原表名。2022-11-16数据库原理17例例4 4:在:在StudentStudent表中表中增加增加“入学时间入学时间”列列,数据类型数据类型为日期型。为日期型。ALETR TABLEALETR TABLE StudentStudent ADDADD ScomeScome DATEDATE;例例5 5:把年龄的:把年龄的数据类型改数据类型改为半字长整数为半字长整数.ALETR TABLE ALETR TABLE Student Student MODIFYMODIFY Sage SMALLINT Sage SMALLINT;例例6 6:删除删除学生姓名必须取唯一值的学生姓

19、名必须取唯一值的约束约束。ALETR TABLEALETR TABLE Student Student DROPDROP UNIQUE(SnameUNIQUE(Sname);2022-11-16数据库原理18l 删除基本表删除基本表格式:格式:DROP TABLEDROP TABLE ;删除一个表,及与该表相关的索引、视图、码和外部码。删除一个表,及与该表相关的索引、视图、码和外部码。例例7 7:删除删除StudentStudent表。表。DROP TABLEDROP TABLE Student;Student;2022-11-16数据库原理193.2.2 3.2.2 建立与删除索引建立与删除

20、索引 建立索引是建立索引是加快查询速度加快查询速度的有效手段,一个基本的有效手段,一个基本表上可建立表上可建立一个或多个一个或多个索引,以提供多种存取路径,索引,以提供多种存取路径,加快查找速度。加快查找速度。建立与删除索引由建立与删除索引由DBADBA或或表的属主表的属主负责负责完成完成,用户,用户不必也不能选择索引。不必也不能选择索引。2022-11-16数据库原理20l 建立索引建立索引格式:格式:CREATE CREATE UNIQUE CLUSTERUNIQUE CLUSTER INDEX INDEX ONON (,);l UNIQUEUNIQUE 表示索引值表示索引值唯一唯一。l

21、CLUSTERCLUSTER 表示索引是聚簇索引表示索引是聚簇索引,指索引项的指索引项的顺序顺序与表中与表中 记录的记录的物理顺序一致物理顺序一致。l 索引一旦建立,交由系统使用和维护。索引一旦建立,交由系统使用和维护。对指定的表的列建立索引。对指定的表的列建立索引。2022-11-16数据库原理21例例8 8:为学生课程数据库中的为学生课程数据库中的S,C,SCS,C,SC三个表建立索引。三个表建立索引。其中其中S S表表按学号升序建唯一索引按学号升序建唯一索引,C C表表按课程号升序建唯一按课程号升序建唯一索引索引,SCSC表表按学号升序和课程号降序建唯一索引按学号升序和课程号降序建唯一索

22、引。CREATE CREATE UNIQUEUNIQUE INDEX INDEX SIDX SIDX ONON S(S#);S(S#);CREATE CREATE UNIQUEUNIQUE INDEX INDEX CIDX CIDX ONON C(C#);C(C#);CREATE CREATE UNIQUEUNIQUE INDEX INDEX SCIDX SCIDX ONON S(S#S(S#ASCASC,C#,C#DESCDESC););2022-11-16数据库原理22例例9 9:为学生:为学生StudentStudent表建立表建立聚簇索引聚簇索引(按学生姓名(按学生姓名升序升序建索引)

23、。建索引)。CREATE CREATE CLUSTERCLUSTER INDEX INDEX SNAMEIDX SNAMEIDX ONON Student(SnameStudent(Sname););一个基本表最多只能建立一个聚簇索引。建立索一个基本表最多只能建立一个聚簇索引。建立索引后,更新索引列数据时,往往导致表中记录的物理引后,更新索引列数据时,往往导致表中记录的物理顺序的变更,代价较大,因此对于经常更新的列不宜顺序的变更,代价较大,因此对于经常更新的列不宜建立聚簇索引。建立聚簇索引。2022-11-16数据库原理23l 删除索引删除索引格式:格式:DROP INDEXDROP INDE

24、X ;例例1010:删除删除StudentStudent表的表的SNAMEIDXSNAMEIDX索引。索引。DROP INDEXDROP INDEX SNAMEIDX SNAMEIDX;2022-11-16数据库原理243.3 3.3 查查 询询u 基本结构基本结构Select Select A A1 1,A,A2 2,.,A,.,An nFromFrom R R1 1,R,R2 2,.,.,R Rm mWhereWhere P PSelectSelectWhereWhereFromFrom A A1 1,A,A2 2,.,A,.,An n(p p(R(R1 1R R2 2.R Rm m)数据

25、查询是数据库应用的核心功能。数据查询是数据库应用的核心功能。2022-11-16数据库原理25u 格式格式 SELECT SELECT ALLALL|DISTINCTDISTINCT ,FROM FROM ,WHEREWHERE GROUP BYGROUP BY 1 HAVINGHAVING ORDER BYORDER BY 2ASCASC|DESCDESC;2022-11-16数据库原理26SELECTSELECTFROMFROM常用语句执行过程常用语句执行过程 SELECTSELECT 投影投影 FROMFROM TABLE TABLE内存内存 WHEREWHERE 选取元组选取元组 GR

26、OUPGROUP 分组分组 HAVINGHAVING 选择分组选择分组 UNIONUNION|查徇结果的集合运算查徇结果的集合运算 SELECTSELECT ORDER BYORDER BY 排序输出排序输出2022-11-16数据库原理273.3.1 3.3.1 单表查询单表查询l 选择表中的若干列选择表中的若干列l 选择表中的若干元组选择表中的若干元组l 对查询结果排序对查询结果排序l 使用集函数使用集函数l 对查询结果分组对查询结果分组2022-11-16数据库原理281.1.查询指定列查询指定列例例1.1.查询全体学生的学号及姓名。查询全体学生的学号及姓名。学生表:学生表:Studen

27、t(SnoStudent(Sno,SnameSname,SsexSsex,Sage,Sage,SdeptSdept)查询各列的先后查询各列的先后顺序可以与表中顺序可以与表中的顺序不一致。的顺序不一致。例例2.2.查询全体学生的姓名、学号、所在系。查询全体学生的姓名、学号、所在系。SELECT SELECT SnoSno,SnameSnameFROM StudentFROM Student;SELECT SELECT SnameSname,SnoSno,SdeptSdept FROM StudentFROM Student;2022-11-16数据库原理292022-11-16数据库原理302.

28、2.查询全部列查询全部列学生表:学生表:Student(SnoStudent(Sno,SnameSname,SsexSsex,Sage,Sage,SdeptSdept)例例3.3.查询全体学生的全部信息。查询全体学生的全部信息。SELECT SELECT SnoSno,SnameSname,SsexSsex,Sage,Sage,SdeptSdept FROM StudentFROM Student;等价于等价于SELECT SELECT*FROM Student;FROM Student;2022-11-16数据库原理312022-11-16数据库原理323.3.查询经过计算的值查询经过计算的

29、值学生表:学生表:Student(SnoStudent(Sno,SnameSname,SsexSsex,Sage,Sage,SdeptSdept)例例4.4.查询全体学生的姓名及其出生年份。查询全体学生的姓名及其出生年份。SELECT SELECT SnameSname,2006-Sage,2006-Sage FROM StudentFROM Student;2022-11-16数据库原理33例例5.5.查询全体学生的姓名、出生年份和所有系,要求用小查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。写字母表示所有系名。SELECT SELECT SnameSname,Year

30、of Birth:,2006-Sage,Year of Birth:,2006-Sage,LOWER(SdeptLOWER(Sdept)FROM StudentFROM Student;SELECT SELECT SnameSname NAMENAME,Year of Birth:,Year of Birth:BIRTHBIRTH,2006-Sage ,2006-Sage BIRTHDAYBIRTHDAY,ISLOWER(SdeptISLOWER(Sdept)DEPARTMENTDEPARTMENTFROM StudentFROM Student;2022-11-16数据库原理342022-1

31、1-16数据库原理351.1.消除取值重复的行消除取值重复的行例例6.6.查询选修了课程的学生学号。查询选修了课程的学生学号。学生课程表:学生课程表:SC(SnoSC(Sno,CnoCno,Grade),Grade)消除重复消除重复的行的行SELECT SELECT SnoSnoFROM SCFROM SC;SELECT SELECT DISTINCTDISTINCT SnoSno FROM SCFROM SC;2022-11-16数据库原理362022-11-16数据库原理372.2.查询满足条件的元组查询满足条件的元组l比较比较:、=、=、=、!=!=、!、!not not+上述比较运算符

32、上述比较运算符l确定范围确定范围:Between A and BBetween A and B、Not Between A and BNot Between A and Bl确定集合确定集合:ININ、NOT INNOT INl字符匹配字符匹配:LIKELIKE、NOT LIKENOT LIKEl空值空值:IS NULLIS NULL、IS NOT NULLIS NOT NULLl多重条件多重条件:ANDAND、OROR2022-11-16数据库原理38例例7.7.查询计算机系全体学生的名单。查询计算机系全体学生的名单。(1)(1)比较大小比较大小SELECT SELECT SnameSnam

33、eFROM Student WHERE FROM Student WHERE SdeptSdept =CSCS;2022-11-16数据库原理392022-11-16数据库原理40例例8.8.查询所有年龄在查询所有年龄在2020岁以下的学生姓名及其年龄。岁以下的学生姓名及其年龄。SELECT SELECT SnameSname,Sage,Sage FROM Student WHERE Sage FROM Student WHERE Sage =2020;或或2022-11-16数据库原理412022-11-16数据库原理42例例9.9.查询考试成绩有不及格的学生的学号。查询考试成绩有不及格的学

34、生的学号。SELECT SELECT DISTINCTDISTINCT SnoSno FROM SC WHERE Grade FROM SC WHERE Grade =20 20 ANDAND Sage Sage=2323;2022-11-16数据库原理452022-11-16数据库原理46SELECT SELECT SnameSname,SdeptSdept,Sage,SageFROM Student FROM Student WHERE Sage WHERE Sage NOT BETWEENNOT BETWEEN 20 20 ANDAND 23 23;例例11.11.查询年龄不在查询年龄不

35、在20202323岁之间的学生姓名、系别岁之间的学生姓名、系别 和年龄。和年龄。SELECT SELECT SnameSname,SdeptSdept,Sage,SageFROM Student FROM Student WHERE Sage WHERE Sage 2323;2022-11-16数据库原理472022-11-16数据库原理48例例12.12.查询信息系查询信息系(IS)(IS)、数学系、数学系(MA)(MA)和计算机科学系和计算机科学系(CS)(CS)学生的姓名和性别。学生的姓名和性别。(3)(3)确定集合确定集合SELECT SELECT SnameSname,SsexSse

36、xFROM Student FROM Student WHERE WHERE SdeptSdept IN IN (IS,MA,CS)(IS,MA,CS);SELECT SELECT SnameSname,SsexSsexFROM Student FROM Student WHERE WHERE SdeptSdept =IS IS OROR SdeptSdept =MA MA OROR SdeptSdept =CSCS;2022-11-16数据库原理492022-11-16数据库原理50例例13.13.查询既不是信息系查询既不是信息系(IS)(IS)、数学系、数学系(MA)(MA)也不是计算机也

37、不是计算机 科学系科学系(CS)(CS)学生的姓名和性别。学生的姓名和性别。SELECT SELECT SnameSname,SsexSsexFROM Student FROM Student WHERE WHERE SdeptSdept NOT INNOT IN(IS,MA,CS)(IS,MA,CS);SELECT SELECT SnameSname,SsexSsexFROM Student FROM Student WHERE WHERE SdeptSdept !=!=IS IS ANDAND SdeptSdept !=!=MA MA ANDAND SdeptSdept !=!=CSCS;

38、2022-11-16数据库原理512022-11-16数据库原理52(4)(4)字符匹配字符匹配格式格式:NOTNOT LIKELIKE ESCAPE ESCAPE l%:表示任意长度表示任意长度(长度长度0 0)的字符串。)的字符串。l_ _:表示单个的任意字符表示单个的任意字符lESCAPEESCAPE :表示表示 为换码字符,匹配串中紧跟在为换码字符,匹配串中紧跟在 后面后面的字符的字符%或或_,被定义为普通字符,被定义为普通字符(不作通配符不作通配符用用)2022-11-16数据库原理53例例14.14.查询学号为查询学号为9500195001的学生的详细情况。的学生的详细情况。如果如

39、果LIKELIKE后面的匹配串后面的匹配串中不含通配符,则可以中不含通配符,则可以用运算符取代用运算符取代LIKELIKE谓谓词;用词;用!=!=或或取代取代NOT LIKENOT LIKE谓词。谓词。SELECT SELECT*FROM Student FROM Student WHERE WHERE SnoSno LIKELIKE 9500195001;SELECT SELECT*FROM Student FROM Student WHERE WHERE SnoSno =95001 95001;等价于等价于2022-11-16数据库原理542022-11-16数据库原理55例例15.15.

40、查询所有姓王的学生的姓名、学号和性别。查询所有姓王的学生的姓名、学号和性别。SELECT SELECT SnameSname,SnoSno,SsexSsexFROM Student FROM Student WHERE WHERE SnameSname LIKELIKE 王王;2022-11-16数据库原理562022-11-16数据库原理57例例16.16.查询姓李,且姓名为两个汉字的学生姓名。查询姓李,且姓名为两个汉字的学生姓名。一个汉字占两一个汉字占两个字符的位置个字符的位置SELECT SELECT SnameSnameFROM Student FROM Student WHERE W

41、HERE SnameSname LIKE LIKE 李李_ ;2022-11-16数据库原理582022-11-16数据库原理59例例17.17.查询名字中第二个字为查询名字中第二个字为“晨晨”字的学生姓名字的学生姓名 和学号。和学号。SELECT SELECT SnameSname,SnoSnoFROM Student FROM Student WHERE WHERE SnameSname LIKELIKE _晨晨%;2022-11-16数据库原理602022-11-16数据库原理61例例18.18.查询所有不姓刘的学生姓名。查询所有不姓刘的学生姓名。SELECT SELECT SnameS

42、nameFROM Student FROM Student WHERE WHERE SnameSname NOT LIKENOT LIKE 刘刘%;2022-11-16数据库原理622022-11-16数据库原理63例例19.19.查询查询DB_DesignDB_Design课程的课程号和学分。课程的课程号和学分。SELECT SELECT CnoCno,CcreditCcreditFROM Course FROM Course WHERE WHERE CnameCname LIKE LIKE DBDB_Design Design ESCAPEESCAPE ;2022-11-16数据库原理64

43、例例20.20.查询以查询以“DB_”DB_”开头,且倒数第三个字符为开头,且倒数第三个字符为i i的课程的课程 的详细情况。的详细情况。SELECT SELECT *FROM Course FROM Course WHERE WHERE CnameCname LIKELIKE DBDB_%i_%i_ ESCAPEESCAPE;2022-11-16数据库原理65(5)(5)涉及空值的查询涉及空值的查询例例21.21.某些学生选修课后没有参加考试,所以有选课录,某些学生选修课后没有参加考试,所以有选课录,但没有成绩。查询缺少成绩的学生的学号和相应但没有成绩。查询缺少成绩的学生的学号和相应 课程号

44、。课程号。SELECT SELECT SnoSno,CnoCnoFROM SC FROM SC WHERE Grade WHERE Grade IS NULL IS NULL;2022-11-16数据库原理662022-11-16数据库原理67例例22.22.查询所有有成绩的学生学号和课程号。查询所有有成绩的学生学号和课程号。SELECT SELECT SnoSno,CnoCnoFROM SC FROM SC WHERE Grade WHERE Grade IS NOT NULL IS NOT NULL;2022-11-16数据库原理682022-11-16数据库原理69(6)(6)多重条件查

45、询多重条件查询例例23.23.查询计算机系年龄在查询计算机系年龄在2020岁以下的学生姓名。岁以下的学生姓名。SELECT SELECT SnameSnameFROM Student FROM Student WHERE WHERE SdeptSdept=CS =CS ANDAND Sage 20 Sage 20;2022-11-16数据库原理702022-11-16数据库原理71例例24.24.查询信息系查询信息系(IS)(IS)、数学系、数学系(MA)(MA)和计算机科学系和计算机科学系(CS)(CS)的的 男学生的姓名和年龄。男学生的姓名和年龄。逻辑运算符逻辑运算符ANDAND的优的优先

46、级比先级比OROR高,可通过高,可通过括号改变优先级。括号改变优先级。SELECT SELECT SnameSname,Sage,SageFROM Student FROM Student WHERE (WHERE (SdeptSdept=IS =IS OROR SdeptSdept=MA =MA OROR SdeptSdept=CS)=CS)ANDAND SsexSsex=男男 ;2022-11-16数据库原理722022-11-16数据库原理733.3.对查询结果的排序对查询结果的排序例例25.25.查询选修了查询选修了3 3号课程的学生的学号及其成绩,查询号课程的学生的学号及其成绩,查询

47、 结果按分数的降序排列。结果按分数的降序排列。SELECT SELECT SnoSno,Grade,GradeFROM SCFROM SCWHERE WHERE CnoCno=3 =3 ORDER BYORDER BY Grade Grade DESCDESC;2022-11-16数据库原理742022-11-16数据库原理75例例26.26.查询全体学生情况,查询结果按所在系的系号升序查询全体学生情况,查询结果按所在系的系号升序 排列,同在一个系的按年龄降序排列。排列,同在一个系的按年龄降序排列。SELECT SELECT*FROM StudentFROM Student ORDER BYO

48、RDER BY SdeptSdept ASCASC,Sage,Sage DESCDESC;SELECT SELECT*FROM StudentFROM Student ORDER BYORDER BY SdeptSdept,Sage,Sage DESCDESC;2022-11-16数据库原理762022-11-16数据库原理774.4.使用集函数使用集函数主要有:主要有:l COUNTCOUNT(DISTINCT|ALL(DISTINCT|ALL*)统计元组个数统计元组个数 l COUNTCOUNT(DISTINCT|ALL(DISTINCT|ALL)统计一列中值的个数统计一列中值的个数l S

49、UMSUM(DISTINCT|ALL(DISTINCT|ALL)计算一列值的总和(此列必须是数值型)计算一列值的总和(此列必须是数值型)l AVGAVG(DISTINCT|ALL(DISTINCT|ALL)计算一列值的平均值(此列必须是数值型)计算一列值的平均值(此列必须是数值型)l MAXMAX(DISTINCT|ALL(DISTINCT|ALL)求一列值中的最大值求一列值中的最大值l MINMIN(DISTINCT|ALL(DISTINCT|ALL)求一列值中的最小值求一列值中的最小值2022-11-16数据库原理78例例27.27.查询学生总人数。查询学生总人数。SELECT SELEC

50、T COUNTCOUNT (*)FROM Student;FROM Student;例例28.28.查询选修了课程的学生人数。查询选修了课程的学生人数。SELECT SELECT COUNTCOUNT (DISTINCTDISTINCT SnoSno)FROM SC;FROM SC;2022-11-16数据库原理79例例29.29.计算计算2 2号课程的学生平均成绩。号课程的学生平均成绩。SELECT SELECT AVGAVG(Grade(Grade)FROM SCFROM SCWHERE WHERE CnoCno=2;=2;例例30.30.查询选修查询选修2 2号课程的学生最高成绩。号课程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 常用办公文档
版权提示 | 免责声明

1,本文(数据原理-关系数据库标准语言SQL学习培训课件.ppt)为本站会员(林田)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|