数据库系统原理与设计.ppt
《数据库系统原理与设计.ppt》由会员分享,可在线阅读,更多相关《数据库系统原理与设计.ppt(156页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 设计
限制150内