数据库系统原理与设计.ppt

上传人:wuy****n92 文档编号:77646660 上传时间:2023-03-16 格式:PPT 页数:156 大小:262.50KB
返回 下载 相关 举报
数据库系统原理与设计.ppt_第1页
第1页 / 共156页
数据库系统原理与设计.ppt_第2页
第2页 / 共156页
点击查看更多>>
资源描述

《数据库系统原理与设计.ppt》由会员分享,可在线阅读,更多相关《数据库系统原理与设计.ppt(156页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第三章 关系数据库语言SQL“数据库系统原理及应用数据库系统原理及应用”课程课程第三章第三章关系数据库语言关系数据库语言SQL 主主 讲讲 人:李俊山人:李俊山 教授教授 联系方式:联系方式:743419 743419 办公地点:训练楼办公地点:训练楼516516房间房间第三章 关系数据库语言SQLSQLSQL语句的分类:语句的分类:数数据据定定义义语语句句:用用于于定定义义数数据据库库的的逻逻辑辑结结构构,包包括括定义基本表、定义视图和定义索引。定义基本表、定义视图和定义索引。数数据据查查询询语语句句:用用于于按按不不同同查查询询条条件件实实现现对对数数据据库库中数据的检索查询。中数据的检索

2、查询。数数据据操操纵纵语语句句:用用于于更更改改和和操操作作表表中中的的数数据据,包包括括数据插入、数据修改、数据删除及数据查询。数据插入、数据修改、数据删除及数据查询。数据控制语句:数据控制语句:用于实现用户授权、基本表和视图用于实现用户授权、基本表和视图授权、事务控制、完整性和安全性控制等。授权、事务控制、完整性和安全性控制等。第三章 关系数据库语言SQL3.1.1 3.1.1 表的定义、修改与撤消表的定义、修改与撤消 1.1.表的定义表的定义 表的定义语句格式为:表的定义语句格式为:CREATETABLE(,););第三章 关系数据库语言SQL其中:其中:典型的典型的(a)CHAR(m)

3、:长长度度为为m的的字字符符(串串)型型数数据据,长长度不够时用空白字符补充,不超过度不够时用空白字符补充,不超过240。(b)VARCHAR(m):长长度度小小于于等等于于m的的字字符符(串串)型数据,长度不够时不补充其它字符。型数据,长度不够时不补充其它字符。(c)INT/INTEGER:长整型数据。:长整型数据。(d)DATE:日日期期型型数数据据,形形式式为为YYYY-MM-DD,分别表示年、月、日。,分别表示年、月、日。第三章 关系数据库语言SQL其中:其中:典型的典型的(a)NULL:指出该列可以为空值。:指出该列可以为空值。(b)NOTNULL:指指出出该该列列不不能能为为空空值

4、值。每每一一个个表中至少应有一个列的可选项为表中至少应有一个列的可选项为NOTNULL。(c)PRIMARYKEY:指出该列名为表的主键。:指出该列名为表的主键。(d)DEFAULT:给所在的列设置一个缺省值。:给所在的列设置一个缺省值。(e)CHECK:指指出出该该列列的的值值只只能能取取CHECK约约束束条件范围的值。条件范围的值。第三章 关系数据库语言SQL例例3.2创创建建图图所所示示的的教教学学管管理理数数据据库库系系统统中中的的学学生生关关系表系表S,可用如下的表定义语句定义:,可用如下的表定义语句定义:CREATETABLES(S#CHAR(9)PRIMARYKEY,SNAMEC

5、HAR(10)NOTNULL,SSEXCHAR(2)CHECK(SSEXIN(男男,女女),SBIRTHINDATENOTNULL,PLACEOFBCHAR(16),SCODECHAR(5)NOTNULL,CLASSCHAR(5)NOTNULL););第三章 关系数据库语言SQL其中:其中:(a)表的主键约束表的主键约束格式为:格式为:PRIMARYKEY()当当该该表表的的主主键键由由2个个或或2个个以以上上属属性性组组成成时时,表表的的主主键必须由表的完整性约束给出。键必须由表的完整性约束给出。第三章 关系数据库语言SQL例例3.3创创建建教教学学管管理理数数据据库库系系统统中中的的学学习

6、习关关系系SC,可可用如下的表定义语句定义:用如下的表定义语句定义:CREATETABLESC(S#CHAR(9),C#CHAR(7),GRADEINTDEFAULT(0),PRIMARYKEY(S#,C#)););第三章 关系数据库语言SQL(b)表的外键约束表的外键约束格式为:格式为:FOREIGNKEY()REFERENCE()本本子子句句定定义义了了一一个个列列名名为为“”1”的的外外键键,它它与与表表“”中中的的“”2”相相对对应应,且且“”2”在表在表“”中是主键。中是主键。第三章 关系数据库语言SQL例例3.4教教学学管管理理数数据据库库系系统统中中的的学学习习关关系系SC,可可

7、重重新新用如下的表定义语句定义如下:用如下的表定义语句定义如下:CREATETABLESC(S#CHAR(9),C#CHAR(7),GRADEINTDEFAULT(0),PRIMARYKEY(S#,C#),FOREIGNKEY(C#)REFERENCESC(C#);第三章 关系数据库语言SQL(c)表检验表检验CHECK约束约束格式为:格式为:CHECK()表表检检验验约约束束CHECKCHECK子子句句的的含含义义和和格格式式与与列列检检验验约约束束相相同同,所所不不同同的的是是,表表检检验验约约束束CHECKCHECK子子句句是是一一个个独独立立的的子子句句而而不不是是子子句句中中的的一一

8、部部分分。表表检检验验约约束束CHECKCHECK子子句句中中的的 不不仅仅可可以以是是一一个个条条件件表表达达式式,而而且且还可以是一个包含还可以是一个包含SELECTSELECT语句的语句的SQLSQL语句。语句。第三章 关系数据库语言SQL例例3.5教教学学管管理理数数据据库库系系统统中中的的学学习习关关系系SC,还还可可用用如下的表定义语句定义如下:如下的表定义语句定义如下:CREATETABLESC(S#CHAR(9),C#CHAR(7),GRADEINTDEFAULT(0),PRIMARYKEY(S#,C#),FOREIGNKEY(C#)REFERENCESC(C#),CHECK(

9、GRADEBETWEEN0AND100);第三章 关系数据库语言SQL 2.2.表的修改表的修改(1)改变表名改变表名 修改表名的语句格式为:修改表名的语句格式为:RENAME RENAME TO TO ;第三章 关系数据库语言SQL 2.2.表的修改表的修改(2)增加列增加列 在在表表的的最最后后一一列列后后面面增增加加新新的的一一列列,但但不不允允许许将将一一个列插入到原表的中间。个列插入到原表的中间。增加列语句的格式为:增加列语句的格式为:ALTER TABLE ALTER TABLE ADD ADD ;第三章 关系数据库语言SQL例例3.7给给专专业业表表SSSS增增加加一一个个新新属

10、属性性NOUSE_COLUMNNOUSE_COLUMN,设设其数据类型为其数据类型为NUMERIC(8NUMERIC(8,1)1)。语句应为:语句应为:ALTER TABLE SS ADD NOUSE_COLUMN ALTER TABLE SS ADD NOUSE_COLUMN NUMERIC(8 NUMERIC(8,1)1);第三章 关系数据库语言SQL 2.2.表的修改表的修改(3)删除删除列列 删除表中不再需要的列,删除表中不再需要的列,语句格式为:语句格式为:ALTER TABLE ALTER TABLE DROP DROP CASCADE|RESTRICT CASCADE|RESTR

11、ICT;其其中中,可可选选项项“CASCADE“CASCADE|RESTRICT”RESTRICT”是是删删除除方方式式。当当选选择择CASCADECASCADE时时,表表示示在在删删除除名名为为“”的的表表中中的的列列“”时时,所所有有引引用用到到该该列列的的视视图图或或有有关关约约束束也也一一起起被被删删除除;当当选选择择RESTRICTRESTRICT时时,表表示示当当没没有有视视图图或或有有关关约约束束引引用用列列“”时时,该该列列才才能能被被删删除除,否否则拒绝该删除操作。则拒绝该删除操作。第三章 关系数据库语言SQL例例3.8 3.8 删删除除专专业业表表SSSS中中增增加加的的属

12、属性性NOUSE_COLUMNNOUSE_COLUMN的的两两种删除种删除语句分别为:语句分别为:ALTER TABLE SS DROP NOUSE_COLUMN CASCADE ALTER TABLE SS DROP NOUSE_COLUMN CASCADE;ALTER TABLE SS DROP NOUSE_COLUMN RESTRICT ALTER TABLE SS DROP NOUSE_COLUMN RESTRICT;第三章 关系数据库语言SQL 2.2.表的修改表的修改(4)修改修改列的定义列的定义 修修改改属属性性列列的的定定义义语语句句只只用用于于修修改改列列的的类类型型和和长长

13、度度,列列的的名名称称不不能能改改变变。当当表表中中已已有有数数据据时时,不不能能缩缩短短列列的的长长度度,但可以增加列的长度。但可以增加列的长度。修改列定义语句格式为:修改列定义语句格式为:ALTER TABLE ALTER TABLE MODIFY MODIFY ;第三章 关系数据库语言SQL例例3.8 3.8 将将专专业业表表SSSS中中的的专专业业名名称称SSNAME(30)SSNAME(30)修修改改为为SSNAME(40)SSNAME(40),即长度增加,即长度增加1010。ALTER TABLE SS MODIFY SSNAME VARCHAR(40)ALTER TABLE SS

14、 MODIFY SSNAME VARCHAR(40);第三章 关系数据库语言SQL 3.3.表的撤销表的撤销 表表的的撤撤消消就就是是将将不不再再需需要要的的表表或或定定义义有有错错误误的的表表删删除除掉掉。当一个表被撤消时,该表中的数据也一同被撤消(删除)。当一个表被撤消时,该表中的数据也一同被撤消(删除)。撤消表的语句格式为:撤消表的语句格式为:DROP TABLE DROP TABLE CASCADE|RESTRICT CASCADE|RESTRICT;其其中中,CASCADECASCADE表表示示在在撤撤消消表表“”时时,所所有有引引用用这这个个表表的的视视图图或或有有关关约约束束也也

15、一一起起被被撤撤消消;RESTRICTRESTRICT表表示示在在没没有有视视图图或或有有关关约约束束引引用用该该表表的的属属性性列列时时,表表“”才才能能被撤消,否则拒绝该撤消操作。被撤消,否则拒绝该撤消操作。第三章 关系数据库语言SQL3.1.2 3.1.2 数据的插入、修改、删除、提交与撤消数据的插入、修改、删除、提交与撤消 1.1.数据的插入数据的插入 向向表表中中插插入入一一行行数数据据的的单单元元组组值值插插入入方方式式的的INSERTINSERT语语句格式为:句格式为:INSERT INTO INSERT INTO ()VALUESVALUES(););第三章 关系数据库语言SQ

16、L其中:其中:(1)(1)如如果果选选择择可可选选项项“()”,表表示示在在插插入入一一个个新新元元组组时时,只只向向由由 i指指出出的的列列中中插插入入数数据据,其其他他没没有有列列出出的的列列不不插插入入数数据据(为为空空值值),且且“”中中必必须须至至少少包包括括表表中中那那些些列列约约束束为为“NOT“NOT NULL”NULL”的的列列和和主主键键列列。如果不选择该可选项,则默认表中所有的列都要插入数据。如果不选择该可选项,则默认表中所有的列都要插入数据。(2)(2)指指出出要要插插入入列列的的具具体体值值。如如果果选选择择了了可可选选项项,则则 中中的的属属性性列列值值必必须须与与

17、 中中的的属属性性列列名名一一一一对对应应;如如果果没没有有选选择择可可选选项项,则则 中的属性列值必须与中的属性列值必须与 中的属性列名一一对应。中的属性列名一一对应。第三章 关系数据库语言SQL例例3.10 3.10 给给学学习习关关系系SCSC中中插插入入王王丽丽丽丽同同学学(学学号号为为200401003200401003)学学习习计计算算机机网网络络课课(课课程程号号为为C403001C403001)的成绩(的成绩(8989分)。分)。INSERT INTO SC INSERT INTO SC (S#S#,C#C#,GRADEGRADE)VALUES VALUES(200401003

18、200401003,C403001C403001,8989););或:或:INSERT INTO SC INSERT INTO SCVALUES(200401003,C403001,89););第三章 关系数据库语言SQL3.1.2 3.1.2 数据的插入、修改、删除、提交与撤消数据的插入、修改、删除、提交与撤消 2.2.数据的修改数据的修改 语句格式为:语句格式为:UPDATE UPDATE SET SET 1 1,2,2,n n WHERE WHERE 其其中中,“i”i”指指出出将将列列“”的的值值修修改改成成 。可可选选项项“WHERE“WHERE ”中中的的 指指定定修修改改有有关关

19、列列的的数数据据时时所所应应满满足足的的条条件件。当当不不选选择择该该选项时,表示修改表中全部元组中相应列的数据。选项时,表示修改表中全部元组中相应列的数据。第三章 关系数据库语言SQL例例3.13 3.13 将将学学生生关关系系S S中中的的学学生生名名字字“王王丽丽丽丽”改改为为“王黎丽王黎丽”。UPDATE S UPDATE S SET SNAME SET SNAME王黎丽王黎丽WHERES#200401003;第三章 关系数据库语言SQL例例3.14 3.14 将所有女同学的专业改为将所有女同学的专业改为S0404S0404。UPDATE S UPDATE S SET SCODE SE

20、T SCODES0404S0404WHERESSEX女女;第三章 关系数据库语言SQL3.1.2 3.1.2 数据的插入、修改、删除、提交与撤消数据的插入、修改、删除、提交与撤消 3.3.数据的删除数据的删除 语句格式为:语句格式为:DELETE FROM DELETE FROM WHERE WHERE 其其中中,可可选选项项“WHERE“WHERE ”中中的的 指指定定所所删删元元组组应应满满足足的的条条件件。当当不不选选该该可可选选项项时时,表表示示删删除除表表中中全全部部数据。数据。第三章 关系数据库语言SQL例例3.15 3.15 在在学学生生关关系系S S中中删删除除学学号号为为20

21、0403001200403001的的学学生生信信息。息。DELETE FROM S DELETE FROM S WHERE S#=200403001 WHERE S#=200403001;例例 删除专业关系中的全部信息。删除专业关系中的全部信息。DELETE FROM SS DELETE FROM SS;第三章 关系数据库语言SQL3.1.2 3.1.2 数据的插入、修改、删除、提交与撤消数据的插入、修改、删除、提交与撤消 4.4.数据的提交数据的提交 工作区概念:工作区概念:数数据据提提交交的的概概念念:就就是是把把用用户户对对数数据据库库中中数数据据的的更更新新结结果永久地保存到数据库中。

22、果永久地保存到数据库中。显式提交显式提交:隐式提交:隐式提交:第三章 关系数据库语言SQL3.1.2 3.1.2 数据的插入、修改、删除、提交与撤消数据的插入、修改、删除、提交与撤消 5.5.数据的撤销数据的撤销 命令格式命令格式:第三章 关系数据库语言SQL3 3 简单查询简单查询 1.SELECT 1.SELECT查询语句查询语句 SQLSQL查询语句的基本格式为:查询语句的基本格式为:SELECT SELECT FROM FROM WHERE WHERE 第三章 关系数据库语言SQL3 3 简单查询简单查询 2.2.无条件查询无条件查询 例例 查询教学管理数据库中全部学生的基本信息。查询

23、教学管理数据库中全部学生的基本信息。SELECT*SELECT*FROM S FROM S;例例3.19 3.19 查询课程关系查询课程关系C C中的记录数,也即开课的总门数。中的记录数,也即开课的总门数。SELECT COUNT(*)SELECT COUNT(*)FROM C FROM C;第三章 关系数据库语言SQLSQLSQL语言中常用的聚合函数主要有语言中常用的聚合函数主要有:(1 1)COUNT(*)COUNT(*)计算元组的个数;计算元组的个数;(2 2)COUNT(COUNT(列名列名)计算某一列中数据的个数;计算某一列中数据的个数;(3 3)COUNT DISTINCT(COU

24、NT DISTINCT(列名列名)计算某一列中不同值的个数;计算某一列中不同值的个数;(4 4)SUM(SUM(列名列名)计算某一数据列中值的总和;计算某一数据列中值的总和;(5 5)AVG(AVG(列名列名)计算某一数据列中值的平均值;计算某一数据列中值的平均值;(6 6)MIN(MIN(列名列名)求求(字符、日期、属性列字符、日期、属性列)的最小值;的最小值;(7 7)MAX(MAX(列名列名)求求(字符、日期、属性列字符、日期、属性列)的最大值;的最大值;第三章 关系数据库语言SQL例例3.20 3.20 计计算算所所有有学学生生所所学学课课程程的的最最高高分分数数、最最低低分分数和平均

25、分数。数和平均分数。SELECT MAX(GRADE)SELECT MAX(GRADE),MIN(GRADE)MIN(GRADE),AVG(GRADE)AVG(GRADE)FROM SC FROM SC;第三章 关系数据库语言SQL3 3 简单查询简单查询 3.3.单条件查询单条件查询 例例3.21 3.21 查查询询所所有有学学习习计计算算机机网网络络课课(课课程程号号为为C403001)C403001)的的学生的学号和成绩。学生的学号和成绩。SELECT S#SELECT S#,GRADEGRADE FROM SC FROM SC WHERE C#=C403001 WHERE C#=C40

26、3001;第三章 关系数据库语言SQL 表条件表达式中的关系比较符表条件表达式中的关系比较符 运算符运算符含义含义=!=!=或或 =18 AND AGE=18 AND AGE=25;第三章 关系数据库语言SQL 上上例例中中:这这种种把把某某数数值值型型列列的的值值限限定定在在某某个个数数值值区区间间的的比比较较查查询询条条件件(、=、=)可可以以用用比比较较运运算算符符“BETWEEN AND”“BETWEEN AND”来表示,来表示,格式为:格式为:BETWEEN BETWEEN AND AND 例的查询可以改写为:例的查询可以改写为:SELECT*SELECT*FROM S1 FROM

27、S1 WHERE AGE BETWEEN 18 AND 25 WHERE AGE BETWEEN 18 AND 25;第三章 关系数据库语言SQL5.5.分组查询分组查询 在在SQLSQL语语言言中中,把把元元组组按按某某个个或或某某些些列列上上相相同同的的值值分分组组,然后再对各组进行相应操作的查询方式称为分组查询。然后再对各组进行相应操作的查询方式称为分组查询。分组查询的语句格式为:分组查询的语句格式为:SELECT SELECT FROM FROM WHERE WHERE GROUP BY GROUP BY HAVING HAVING;第三章 关系数据库语言SQL (1 1)GROUP

28、BYGROUP BY子句子句 GROUP GROUP BYBY子子句句用用来来将将列列的的值值分分成成若若干干组组,从从而而控控制制查查询询的结果排序。的结果排序。例例3.24 3.24 计算各个同学的平均分数。计算各个同学的平均分数。SELECT#S SELECT#S,AVG(GRADE)AVG(GRADE)FROM SC FROM SC GROUP BY#S GROUP BY#S;第三章 关系数据库语言SQL例例3.25 3.25 计算每个专业的男、女生分别有多少人数。计算每个专业的男、女生分别有多少人数。SELECT SCODE SELECT SCODE,SSEXSSEX,COUNT(*

29、)COUNT(*)FROM S FROM S GROUP BY SCODE GROUP BY SCODE,SSEXSSEX;第三章 关系数据库语言SQL (2 2)HAVINGHAVING子句子句 在在数数据据查查询询中中,有有时时只只希希望望选选择择满满足足一一定定条条件件的的分分组组。一一般般是是利利用用GROUP GROUP BYBY子子句句进进行行分分组组,利利用用HAVINGHAVING子子句句判判断断分组应满足的条件。分组应满足的条件。例例3.26 3.26 查询学生总数超过查询学生总数超过300人的专业及其具体的总人数。人的专业及其具体的总人数。SELECT SCODESELEC

30、T SCODE,COUNT(*)COUNT(*)FROM S FROM S GROUP BY SCODE GROUP BY SCODE HAVING COUNT(*)300 HAVING COUNT(*)300;第三章 关系数据库语言SQL6.6.结果排序结果排序 通通常常,SELECTSELECT的的查查询询结结果果是是按按元元组组在在数数据据库库中中的的存存储储顺顺序序给给出出的的。但但有有时时用用户户希希望望按按照照某某种种约约定定的的顺顺序序给给出出查查询询结结果果,ORDER ORDER BYBY子子句句可可以以实实现现查查询询结结果果的的排排序序显显示示功功能能,其语句格式为:其语

31、句格式为:SELECT SELECT FROM FROM WHERE WHERE ORDER ORDER BY BY ASC/DESC ASC/DESC ,,ASC/DESCASC/DESC;第三章 关系数据库语言SQL例例3.27 3.27 按学号递增的顺序显示学生的基本信息。按学号递增的顺序显示学生的基本信息。SELECT*SELECT*FROM S FROM S ORDER BY S#ASC ORDER BY S#ASC;例例3.28 3.28 按按学学号号递递增增、课课程程成成绩绩递递减减的的顺顺序序显显示示学学生生的的课课程程成绩。成绩。SELECT S#SELECT S#,C#C#

32、,GRADEGRADE FROM SC FROM SC ORDER BY S#ASC ORDER BY S#ASC,GRADE DESCGRADE DESC;第三章 关系数据库语言SQL7.7.字符串的匹配字符串的匹配 在在WHEREWHERE子子句句的的条条件件表表达达式式中中,实实现现两两个个字字符符串串的的部部分分字字符的相等比较。符的相等比较。比较运算符的格式为:比较运算符的格式为:LIKE LIKE 字符串字符串11通配符通配符 字符串字符串22其中:其中:(1 1)下下划划线线_ _:在在字字符符串串比比较较时时,如如果果有有一一个个字字符符可可以以任意,则在该字符位置上用下划线表

33、示。任意,则在该字符位置上用下划线表示。(2 2)百百分分号号%:在在字字符符串串比比较较时时,如如果果有有一一个个长长度度大大于于等等于于0 0子子字字符符串串可可以以任任意意,则则在在该该子子字字符符串串位位置置上上用用百百分分号号表示。表示。第三章 关系数据库语言SQL例例3.29 3.29 查询学生关系查询学生关系S S中姓李的学生的学号和姓名。中姓李的学生的学号和姓名。SELECT S#SELECT S#,SNAMESNAME FROM S FROM S WHERE SNAME LIKE WHERE SNAME LIKE 李李%;第三章 关系数据库语言SQL8.8.比较完整的比较完整

34、的SELECTSELECT查询语句查询语句 SELECT SELECT FROM FROM WHERE WHERE GROUP BY GROUP BY HAVING HAVING ORDER BY ORDER BY ASC/DESC ASC/DESC ,,ASC/DESCASC/DESC;第三章 关系数据库语言SQL3 SQL3 SQL语言中的常用函数及其使用方式语言中的常用函数及其使用方式 1.1.日期型函数日期型函数 日期是日期是SQLSQL语言中的标准数据类型(语言中的标准数据类型(DATEDATE)。)。函函 数数 功功 能能sysdatelast_daynext_day(d,w_da

35、y)add_months(d,n)months_between(d1,d2)to_char(d,new_d)取当前日期和时间取当前日期和时间取本月最后一天取本月最后一天计计算算日日期期d d之之后后第第一一周周指指定定星星期期几几(由由w_dayw_day指指定定)的日期的日期取在日期取在日期d d的基础上后推的基础上后推n n个月的日期个月的日期计算日期计算日期d1d1和和d2d2之间相差的月数之间相差的月数将将日日期期d d的的缺缺省省格格式式“DD-MON-YYYY”“DD-MON-YYYY”表表示示成成指指定的新格式定的新格式new_dnew_d表表3.3 3.3 常用的日期函数常用的

36、日期函数 第三章 关系数据库语言SQL例例3.30 3.30 查查询询出出生生日日期期在在19821982年年1 1月月1 1日日到到19821982年年1212月月3131日日之之间间的的所所有有学学生生的的学学号号、姓姓名名和和出出生生日日期期,并并按按日日期期的的递递增增顺序排列。顺序排列。SELECT S#SELECT S#,SNAMESNAME,SBIRTHINSBIRTHIN FROM S FROM S WHERE SBIRTHIN WHERE SBIRTHIN BETWEEN1-JUN-1982AND 31-DEC-1982 BETWEEN1-JUN-1982AND 31-DEC

37、-1982 ORDER BY SBIRTHIN ORDER BY SBIRTHIN;第三章 关系数据库语言SQL表表3.4 3.4 常用的日期显示格式常用的日期显示格式 日期显示格式(模式)日期显示格式(模式)示例示例 缺省格式缺省格式MM/DD/YYMM/DD/YYYYYY/MM/DDYYYY/MM/DDDY DD MON YYDY DD MON YYDay Mon DDDay Mon DD 23-FEB-9923-FEB-9902/23/9902/23/991999/02/231999/02/23WED 12 JAN 88WED 12 JAN 88Wednesday Jan 12Wedne

38、sday Jan 12 第三章 关系数据库语言SQL例例3.31 3.31 在在上上例例中中,出出生生日日期期的的缺缺省省显显示示方方式式不不符符合合我我国国的的日日期期表表示示习习惯惯,可可用用日日期期转转换换函函数数函函数数to_charto_char将将其其转转换换成成“年年/月月/日日”的表示形式。的表示形式。SELECT S#SELECT S#,SNAMESNAME,to_char(SBIRTHIN to_char(SBIRTHIN,YYYY”/”MM”/”DD)YYYY”/”MM”/”DD)FROM S FROM S WHERE SBIRTHIN WHERE SBIRTHIN BE

39、TWEEN 1-JUN-1982 AND 31-DEC-1982 BETWEEN 1-JUN-1982 AND 31-DEC-1982 ORDER BY SBIRTHIN ORDER BY SBIRTHIN;第三章 关系数据库语言SQL2.2.字符串函数字符串函数表表3.5 3.5 常用的字符串函数常用的字符串函数 函函 数数 功功 能能length(str)initcap(str)lower(str)upper(str)replace(str,str1,str2)substr(str,m,n)itrim(str)ascii(str)求字符串的长度求字符串的长度将字符串将字符串strstr中的

40、第一个字符转换成大写字符中的第一个字符转换成大写字符将字符串将字符串strstr中的大写字母转换成小写字母中的大写字母转换成小写字母将字符串将字符串strstr中的小写字母转换成大写字符中的小写字母转换成大写字符将字符串将字符串strstr中的所有中的所有 str1 str1换成换成 str2 str2从字符串从字符串strstr的第的第m m个字符开始取出个字符开始取出n n个字符个字符截掉字符串截掉字符串strstr尾部的空格尾部的空格取字符串取字符串 str str的的ASCIIASCII码值码值第三章 关系数据库语言SQL3 SQL3 SQL语言中的常用函数及其使用方式语言中的常用函数

41、及其使用方式 3.3.算术函数算术函数表表3.6 3.6 常用的算术函数常用的算术函数 函数函数 功能功能 abs(n)ceil(n)floor(n)mod(m,n)power(m,n)round(n,m)sign(n)sqrt(n)求求n n的绝对值的绝对值求大于等于数值求大于等于数值n n的最小整数的最小整数求小于等于数值求小于等于数值n n的最大整数的最大整数取余数。若取余数。若n=0n=0,则取,则取m m求求m m的的n n次方次方四舍五入,保留四舍五入,保留m m位位n=0n=0,返回,返回0 0;nnnn,返回,返回1 1;n0n0,返回,返回-1-1求求n n的平方的平方 第三

42、章 关系数据库语言SQL4.4.空值显示与空值函数空值显示与空值函数例例3.33 3.33 查询学习关系查询学习关系SCSC中分数中分数GRADEGRADE为空值的课程号。为空值的课程号。SELECT C#SELECT C#FROM SC FROM SC WHERE GRADE IS NULL WHERE GRADE IS NULL;第三章 关系数据库语言SQL3 SQL3 SQL高级查询技术高级查询技术 1.1.多表联接查询(多表联接查询(二元二元查询查询/多元多元查询查询 )SELECT S.S#SELECT S.S#,SNAMESNAME FROM S FROM S,SCSC WHERE

43、 S.S#=SC.S#AND C#=C401001 WHERE S.S#=SC.S#AND C#=C401001;例例3.37 3.37 查查询询所所有有学学习习了了数数据据结结构构课课(课课程程号号为为C401001C401001)的学生的学号和姓名。)的学生的学号和姓名。第三章 关系数据库语言SQL例例3.38 3.38 查查询询选选修修了了“信信息息安安全全技技术术”课课程程的的学学生生的的学学号号与姓名。与姓名。SELECT S.S#SELECT S.S#,SNAMESNAME FROM S FROM S,SCSC,C C WHERE S.S#=SC.S#AND SC.C#=C.C#W

44、HERE S.S#=SC.S#AND SC.C#=C.C#AND CNAME=AND CNAME=信息安全技术信息安全技术;第三章 关系数据库语言SQL3 SQL3 SQL高级查询技术高级查询技术 2.2.外联接查询外联接查询 学学 号号 姓名姓名 性别性别 出生年月出生年月 籍贯籍贯 专业代码专业代码 班级班级200401001 200401001 张华张华 男男 14-dec-82 14-dec-82 北京北京 S0401 200401 S0401 200401200401002 200401002 李建平李建平 男男 20-aug-82 20-aug-82 上海上海 S0401 2004

45、01 S0401 200401200401003 200401003 王丽丽王丽丽 女女 02-feb-83 02-feb-83 上海上海 S0401 200401 S0401 200401200402001 200402001 杨秋红杨秋红 女女 09-may-83 09-may-83 西安西安 S0402 200402 S0402 200402200402002 200402002 吴志伟吴志伟 男男 30-jun-82 30-jun-82 南京南京 S0402 200402 S0402 200402200402003 200402003 李涛李涛 男男 25-jun-83 25-jun-

46、83 西安西安 S0402 200402 S0402 200402200403001 200403001 赵晓艳赵晓艳 女女 11-mar-82 11-mar-82 长沙长沙 S0403 200403 S0403 200403专业代码专业代码 专业名称专业名称 S0401 S0401 计算机科学计算机科学 S0402 S0402 指挥自动化指挥自动化 S0403 S0403 网络工程网络工程 S0404 S0404 信息研究信息研究学生关系学生关系S:专专业业关关系系SS注意:虽然存在信息研究专业,虽然存在信息研究专业,但学生关系的当前值中没但学生关系的当前值中没有信息研究专业的学生有信息研究

47、专业的学生。第三章 关系数据库语言SQL 对于查询:对于查询:SELECT SS.SCODE#SELECT SS.SCODE#,S#S#,SNAMESNAME FROM SS FROM SS,S S ORDER BY SCODE#ORDER BY SCODE#;有查询结果:有查询结果:SCODE SSNAME S#SNAMESCODE SSNAME S#SNAME S0401 S0401 计算机科学计算机科学 200401001 200401001 张华张华 S0401 S0401 计算机科学计算机科学 200401002 200401002 李建平李建平 S0401 S0401 计算机科学计

48、算机科学 200401003 200401003 王丽丽王丽丽 S0402 S0402 指挥自动化指挥自动化 200402001 200402001 杨秋红杨秋红 S0402 S0402 指挥自动化指挥自动化 200402002 200402002 吴志伟吴志伟 S0402 S0402 指挥自动化指挥自动化 200402003 200402003 李涛李涛 S0403 S0403 网络工程网络工程 200403001 200403001 赵晓艳赵晓艳 由于信息研究由于信息研究专业没有学生,专业没有学生,所以查询结果所以查询结果丢失了信息研丢失了信息研究的专业信息,究的专业信息,为此,为此,SQ

49、L引引入了外联接查入了外联接查询。询。第三章 关系数据库语言SQL 外联接查询包括:左外联接和右外联接。外联接查询包括:左外联接和右外联接。(1)1)1)1)左外联接左外联接左外联接左外联接(Left-outer Join)(Left-outer Join)(Left-outer Join)(Left-outer Join)R S=(R S)(R1 (?)R S=(R S)(R1 (?)其中:其中:其中:其中:R1=R-R(RS)(2)(2)(2)(2)右外联接右外联接右外联接右外联接(Right-outer Join)(Right-outer Join)(Right-outer Join)(

50、Right-outer Join)R S=(R S)(?)S1)R S=(R S)(?)S1)其中:其中:S1=S-S1=S-SS(R SR S)第三章 关系数据库语言SQL 外联接查询包括:左外联接和右外联接。外联接查询包括:左外联接和右外联接。设设“R.A=S.B”“R.A=S.B”是是WHEREWHERE子句中的等值条件表达式,则:子句中的等值条件表达式,则:(1 1)左左外外联联接接的的表表示示形形式式为为,其其含含义义是是假假设设在在等等值值条条件件右右边边的的关关系系S S中中有有一一个个“全全空空”的的元元组组,且且该该元元组组可可与与等等值值条条件件左左边边的的关关系系R R中

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

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁