第7章-关系数据库标准语言-数据库技术与应用教程-课件.ppt

上传人(卖家):刘殿科 文档编号:6905178 上传时间:2023-08-20 格式:PPT 页数:68 大小:427.04KB
下载 相关 举报
第7章-关系数据库标准语言-数据库技术与应用教程-课件.ppt_第1页
第1页 / 共68页
第7章-关系数据库标准语言-数据库技术与应用教程-课件.ppt_第2页
第2页 / 共68页
第7章-关系数据库标准语言-数据库技术与应用教程-课件.ppt_第3页
第3页 / 共68页
第7章-关系数据库标准语言-数据库技术与应用教程-课件.ppt_第4页
第4页 / 共68页
第7章-关系数据库标准语言-数据库技术与应用教程-课件.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、2023-8-20第7章 关系数据库 标准语言SQL Structured Query Language2023-8-20本章要点掌握SQL的基本概念了解SQL语言的特点和功能掌握使用SQL进行数据定义、更新、查询的方法熟练掌握 Select语句的使用掌握使用SQL实现简单查询、连接查询、嵌套查询、集合查询的方法2023-8-207.1.1 SQL7.1.1 SQL语言的特点语言的特点SQLSQL语言是语言是19741974年提出的,并年提出的,并System RSystem R上实现上实现19861986年成为关系型数据库语言的美国国家标准年成为关系型数据库语言的美国国家标准19961996

2、年成为国际标准年成为国际标准SQL语言的版本语言的版本SQL-89,SQL-92,SQL-99,SQL-2003SQL-2003,SQL-2005SQL-2005,SQSQ了了008008 。第7章关系数据库标准语言SQL 7.1 SQL语言概述2023-8-20SQLSQL语言特点:语言特点:1.1.高度的综合高度的综合 2.2.非过程化非过程化3.3.采用面向集合的操作方式采用面向集合的操作方式4.4.一种语法结构两种使用方式一种语法结构两种使用方式5.5.语言结构简捷语言结构简捷6.6.支持三级模式结构支持三级模式结构第7章关系数据库标准语言SQL 7.1 SQL语言概述2023-8-2

3、0SQL语言支持关系数据库三级模式结构 在SQL中,模式对应于“基本表(base table)”内模式对应于“存储文件”外模式对应于“视图(view)”和部分基本表。元组对应于表中的“行(row)”,属性对应于表中的“列(column)”。2023-8-20第7章关系数据库标准语言SQL 7.1 SQL语言概述7.1.2 SQL7.1.2 SQL语言的功能语言的功能SQLSQL语言具有以下语言具有以下5 5个方面的功能。个方面的功能。1.1.数据定义功能数据定义功能(1 1)定义、删除与修改基本表;()定义、删除与修改基本表;(2 2)建立与删除索引。)建立与删除索引。2.2.数据查询功能数据

4、查询功能(1 1)单表查询;()单表查询;(2 2)多表查询(连接查询、嵌套查询);)多表查询(连接查询、嵌套查询);(3 3)使用集函数增加查询附加功能;()使用集函数增加查询附加功能;(4 4)集合查询。)集合查询。3.3.数据更新功能数据更新功能(1 1)插入数据;()插入数据;(2 2)修改数据;()修改数据;(3 3)删除数据。)删除数据。4.4.视图管理功能视图管理功能(1 1)建立、删除视图;()建立、删除视图;(2 2)视图查询;()视图查询;(3 3)视图更新。)视图更新。5.5.数据控制功能数据控制功能(1 1)数据保护(安全性和完整性控制);)数据保护(安全性和完整性控制

5、);(2 2)事务管理(数据库的恢复、并发控制)。)事务管理(数据库的恢复、并发控制)。功能功能支持的支持的SQL语句语句详细功能详细功能说明说明数 据定义CREATE TABLE/INDEX,ALTER TABLE/INDEX,DROP TABLE/INDEX定义、删除与修改基本表和索引。数 据更新INSERT、UPDATE、DELETE插入数据;修改数据;删除数据数 据查询SELECT数据库各种查询视 图管理CREATE VIEW,DROP VIEW建立、删除视图;视图查询;视图更新。Access不支持数 据控制GRANT/REVOKE、T R A N S A C T I O N、CHEC

6、KPOINT等数据保护;事务管理Access不支持2023-8-202023-8-20第7章关系数据库标准语言SQL 7.2 数据定义7.2.1 SQL7.2.1 SQL语言基本数据类型语言基本数据类型常用的基本数据类型。常用的基本数据类型。1.1.数值型数值型IntegerInteger,SmallintSmallint,Float(n)Float(n),RealReal,DoubleDouble,Numberic(p,q)Numberic(p,q)2.2.字符型字符型Char(n)Char(n),Varchar(n)Varchar(n),Text/MemoText/Memo,Binary(

7、n)Binary(n),VarBinary(n)VarBinary(n)3.3.日期、时间型日期、时间型DateDate,TimeTime,DateTimeDateTime4.4.逻辑型逻辑型BooleanBoolean5.5.货币型货币型SmallMoneySmallMoney,MoneyMoney6.OLE6.OLE型型GeneralGeneral2023-8-20Access中可使用的数据类型:1.TEXT:文本型(指定长度时),备注型(不指定长度时);2.CHAR,NCHAR,VARCHAR,NVARCHAR:文本型,可以指定长度,否则默认值为255!3.BYTE,TINYINT:数字

8、-字节,不要指定长度和精度,否则会报错!4.SMALLINT,SHORT:数字-整型,不要指定长度和精度,否则会报错!5.INT,INTEGER,LONG:数字-长整型,不要指定长度和精度,否则会报错!6.NUMERIC,DECIMAL:数字-小数,可以指定长度和精度,如只指定长度,那精度默认为0,如都不指定,那么默认长度18,默认精度0;7.SINGLE,REAL:数字-单精度型,不要指定长度和精度,否则会报错!2023-8-20Access中可使用的数据类型 8.DOUBLE,FLOAT,NUMBER:数字-双精度型9.MEMO:备注型10.BINARY:二进制型,可以指定长度,否则默认长

9、度为510!11.BIT:位型,可用格式(yes/no,true/false,on/off)12.MONEY,CURRENCY:货币型,13.DATETIME:日期时间型,14.IMAGE,OLEOBJECT:OLE OBJECT型2023-8-20参考如下MICROSOFT官方资料:数据类型 存储大小 说明BINARY 每字符一个字节 任何类型的数据都可存储在这种类型字段中。BIT 1 个字节 Yes/No(TURE/FALSE,ON/OFF,-1/0)只包含两值之一的字段。TINYINT 1 个字节 介于 0 到 255 之间的整型数。MONEY 8 个字节 介于 922,337,203,

10、685,477.5808 到922,337,203,685,477.5807 之间。DATETIME 8 个字节 介于 100 到 9999 年的日期或时间数值。REAL 4 个字节 单精度浮点数FLOAT 8 个字节 双精度浮点数SMALLINT 2 个字节 介于32,768 到 32,767 的短整型数。INTEGER 4 个字节 介于2,147,483,648 到 2,147,483,647 的长整型数。DECIMAL 17 个字节 你可以定义精度(1-28)和符号(0-定义精度)。缺省精度和符号分别是18和0。TEXT 每字符2字节 从0到最大2,14GB字节。IMAGE 视实际需要而

11、定 从0到最大2,14GB字节。用于 OLE 对象。CHARACTER 长度从 0 到 255个字符。2023-8-207.2.2 数据定义 定义语句格式 CREATE TABLE (,);:所要定义的基本表的名字 :组成该表的各个属性(列):涉及相应属性列的完整性约束条件:涉及一个或多个属性列的完整性约束条件2023-8-20常用完整性约束 非空值约束:NOT NULL 主码约束:PRIMARY KEY 参照完整性约束 FOREIGN KEY CHECK约束 唯一性约束:UNIQUE例例7.1建立如表7.3所示的职员数据表:表7.3 职员表的结构信息2023-8-20字段名字段名数据类型数据

12、类型长度长度是否有默认值是否有默认值 规则规则索引索引备注备注staffID文本12无无主键索引职员编号name文本8无唯一姓名birthdate日期/时间无无生日married是/否100否非空婚否salary数字(2位小数)8无无工资resume备注简历7.2.2 数据定义7.2.2 数据定义 CREATE TABLE staff(staffID TEXT(12)PRIMARY KEY,name TEXT(8)UNIQUE,birthdate DATE,married LOGICAL NOT NULL,salaryMONEY,resumeMEMO);2023-8-202023-8-20例题

13、 例1 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。2023-8-20例题 例2 建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。2023-8-207.2.3 修改表结构1.语句格式:Alter Table Add ,DropConstraint|C0lumn,Alter ,;l:要修改的基本表lADD子句:增加新列和新的完整性约束条件lDROP子句:删除指定的完整性约束条件 lALTER子句:用于修改

14、列名和数据类型2023-8-20例题l例7.2 向Student表增加“入学时间”列,其数据类型为日期型。l ALTER TABLE Student ADD Scome DATE;l不论基本表中原来是否已有数据,新增加的列一律为空值。2023-8-20删除属性列l直接/间接删除l把表中要保留的列及其内容复制到一个新表中 l删除原表l再将新表重命名为原表名l直接删除属性列:(新)l例7.2 删除学生表班级编号字段:ALTER TABLE 学生 Drop 班级编号;2023-8-20l例 删除关于学号必须取唯一值的约束lALTER TABLE 学号 DROP UNIQUE(学号);例例7.2:在学

15、生表上,给出完成下列操作的SQL语句:(1)增加“入学时间”列,其数据类型为日期类型(2)将学号字段由字符类型改为整数类型,(3)增加学号字段不能为空的完整性约束条件(4)删除“班级编号”字段。2023-8-207.2.4 删除数据表删除数据表 1.语句格式:语句格式:Drop Table 2.语句功能:语句功能:删除以删除以为名的表为名的表 基本表删除,数据、表上的索引都将被删除。表上的视图往往仍然保留,但无法引用 2023-8-207.2.4 删除数据表删除数据表例例7.3 用SQL语句完成在前面设计的学生信息管理系统数据库中删除学生和班级两张表。注意:表之间是否存在关联关系。如果存关联关

16、系,则必须先删除学生表,之后才能删除班级表。如果顺序颠倒则一般不能成功执行。2023-8-20第7章关系数据库标准语言SQL 7.2 数据定义7.2.5 7.2.5 建立索引建立索引1.1.语句格式:语句格式:Create Unique ClusteredIndex Create Unique ClusteredIndex ON ON (ASCDESC1 ASCDESC,ASCDESC,)2 ASCDESC,)2.2.语句功能:语句功能:为以为以 为名的表创建索引。为名的表创建索引。其中,其中,指定要建索引的基本表的名字。索引指定要建索引的基本表的名字。索引可以建在该表的一列或多列上,各列名之

17、间用逗号可以建在该表的一列或多列上,各列名之间用逗号分隔。每个分隔。每个后面还可以用后面还可以用指定索引值指定索引值的排列次序,包括的排列次序,包括ASC(升序)和(升序)和DESC(降序)(降序)两种,缺省值为两种,缺省值为ASC。2023-8-20 UNIQUE表明此索引的每一个索引值只对应唯一的数据记录。CLUSTER表示要建立的索引是聚簇索引。所谓聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。例如,执行下面的CREATE INDEX语句:CREATE CLUSTED INDEX Stusname ON Student(Sname);将会在Student表的Sname(姓名

18、)列上建立一个聚簇索引,而且Student表中的记录将按照Sno值的升序存放。第7章关系数据库标准语言SQL 7.2 数据定义7.2.5 7.2.5 建立索引建立索引例例7.4 给出建立下表索引的SQL语句:(1)为系表建立系编号字段上的唯一索引,(2)为系表建立学院编号字段上的普通索引SQL语句如下:CREATE UNIQUE INDEX 系表的系编号 ON系(系编号);CREATE INDEX 系表的学院编号 ON 系(学院编号);2023-8-202023-8-20第7章关系数据库标准语言SQL 7.2 数据定义7.2.6 7.2.6 删除索引删除索引1.1.语句格式:语句格式:Drop

19、 Index Drop Index ,2.2.语句功能:语句功能:删除删除 指定的索引。指定的索引。2023-8-20 例例7.5 给出删除例7.4建立的两个索引的SQL语句:DROP INDEX 系表的系编号;DROP INDEX 系表的学院编号;说明:索引一经建立,就由系统使用和维护它,不需用户干预。建立索引是为了减少查询操作的时间,但如果数据增删改频繁,系统会花费许多时间来维护索引。这时,可以删除一些不必要的索引。删除索引时,系统会同时从数据字典中删去有关该索引的描述。2023-8-20第7章关系数据库标准语言SQL 7.3 数据查询7.3.1 Select7.3.1 Select语句语

20、句1.1.语句格式:语句格式:Select All|Distinct Select All|Distinct|,From From ,Where Where Group By Group By Having Having Order By Order By Asc Desc2 Asc Desc2.2.语句功能:语句功能:从指定的基本表或视图中,创建一个由指定范围内、满足条从指定的基本表或视图中,创建一个由指定范围内、满足条件、按某字段分组、按某字段排序的指定字段组成的新记录集。件、按某字段分组、按某字段排序的指定字段组成的新记录集。P74 P74 表表4-14-1、表、表4-24-22023-

21、8-20说明 SELECT语句的原理是:根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表;如果含有GROUP子句,则将结果按的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录,通常会在每组中作用集函数;如果GROUP子句带HAVING短语,则只有满足指定条件的组才予以输出;如果含有ORDER子句,则结果表还要按的值的升序或降序排序。2023-8-20第7章关系数据库标准语言SQL 7.3 数据查询7.3.2 7.3.2 简单查询简单查询 单表查询是指数据来源是一个表或一

22、个视图的查询操作,单表查询是指数据来源是一个表或一个视图的查询操作,它是最简单的查询操作。它是最简单的查询操作。1.1.检索表中所有的行和列检索表中所有的行和列2.2.检索表中指定的列检索表中指定的列3.3.检索表中指定的列和指定的行检索表中指定的列和指定的行4.4.检索表中指定的列和产生新列检索表中指定的列和产生新列5.5.检索表中满足指定条件的行检索表中满足指定条件的行6.6.检索表中分组统计结果检索表中分组统计结果7.7.检索表中排序结果检索表中排序结果8.8.检索表中分组排序结果检索表中分组排序结果2023-8-20例题 例1:查询全体学生的学号与姓名SELECT Sno,Sname

23、FROM Student;说明:中各个列的先后顺序可以与表中的顺序不一致。也就是说,用户在查询时可以根据应用的需要改变列的显示顺序。2023-8-20 例2 查询全体学生的姓名、学号、所在系SELECT Sname,Sno,Sdept FROM Student;说明:这时结果表中的列的顺序与基表中不同,是按查询要求,先列出姓名属性,然后再列学号属性和所在系属性。2023-8-20 例3:查询全体学生的详细记录SELECT*FROM Student;说明:该SELECT语句实际上是无条件地把Student表的全部信息都查询出来,所以也称为全表查询,这是最简单的一种查询。2023-8-20 例4:

24、查全体学生的姓名及其出生年份 SELECT Sname,1996-Sage FROM Student;说明:本例中,中第二项不是通常的列名,而是一个计算表达式,是用当前的年份(假设为1996年)减去学生的年龄2023-8-20 例5:查计算机系全体学生的名单 SELECT Sname FROM Student WHERE Sdept=CS;例6:查所有年龄在20岁以下的学生姓名及其年龄SELECT Sname,Sage FROM Student WHERE Sage=20;2023-8-20 例例7:查考试成绩有不及格的学生的学号查考试成绩有不及格的学生的学号 SELECT DISTINCT

25、Sno FROM SC WHERE Grade 60;说明:这里使用了说明:这里使用了DISTINCT短语,当一个学生有多门课短语,当一个学生有多门课程不及格,他的学号也只列一次。程不及格,他的学号也只列一次。例例8:查询年龄在查询年龄在20至至23岁之间的学生的姓名、系别、和岁之间的学生的姓名、系别、和年龄年龄 SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23;与与BETWEEN.AND.相对的谓词是相对的谓词是NOT BETWEEN.AND.。2023-8-20 例9:查信息系(IS)、数学系(MA)和计算机

26、科学系(CS)的学生的姓名和性别SELECT Sname,Ssex FROM Student WHERE Sdept IN(IS,MA,CS)说明:与IN相对的谓词是NOT IN,用于查找属性值不属于指定集合的元组。2023-8-20字符匹配例10:查所有姓刘的学生的姓名、学号和性别 SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE 刘%;2023-8-20 例11:查名字中第二字为“阳”字的学生的姓名和学号 SELECT Sname,Sno FROM Student WHERE Sname LIKE _阳%;2023-8-20 例12:查

27、DB_Design课程的课程号和学分 SELECT Cno,GRADE FROM SC WHERE Cname LIKE DB_Design;2023-8-20 例13:查以”DB_”开头,且倒数第三个字符为i的课程的详细情况 SELECT*FROM SCWHERE Cname LIKE DB_%i_2023-8-20 例14:某些学生选修某门课程后没有参加考试,所以有选课记录,但没有考试成绩,下面我们来查一下缺少成绩的学生的学号和相应的课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NULL;说明:注意这里的IS不能用等号(=)代替。2023-8-20 例

28、15:查所有有成绩的记录的学生学号和课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL;2023-8-20 例16:查CS系年龄在20岁以下的学生姓名 SELECT Sname FROM Student WHERE Sdept=CS AND Sage3;说明:查选修课程超过说明:查选修课程超过3门的信息系学生的学号,首先需门的信息系学生的学号,首先需要通过要通过WHERE子句从基本表中求出信息系的学生。然后子句从基本表中求出信息系的学生。然后求其中每个学生选修了几门课,为此需要用求其中每个学生选修了几门课,为此需要用GROUP BY子句按子句按

29、Sno进行分组,再用集函数进行分组,再用集函数COUNT对每一组计数。对每一组计数。如果某一组的元组数目大于如果某一组的元组数目大于3,则表示此学生选修的课超,则表示此学生选修的课超过过3门,应将他的学生号选出来。门,应将他的学生号选出来。HAVING短语指定选择短语指定选择组的条件,只有满足条件(即元组个数组的条件,只有满足条件(即元组个数3)的组才会被选)的组才会被选出来。出来。2023-8-20 WHERE子句与HAVING短语的根本区别在于作用对象不同。WHERE子句作用于基本表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组。2023-8-20第7章关系

30、数据库标准语言SQL 7.3 数据查询7.3.3 7.3.3 连接查询连接查询 把多个表的信息集中在一起,就要用到把多个表的信息集中在一起,就要用到“连接连接”操作,操作,SQLSQL的连接操作是通过相关联表间行的匹配而产生的结果。的连接操作是通过相关联表间行的匹配而产生的结果。创建连接查询,要在创建连接查询,要在FromFrom子句中列出多个表名,各表子句中列出多个表名,各表名之间用名之间用“逗号逗号”隔开,特别地,也可以用隔开,特别地,也可以用WhereWhere子句给定子句给定表的连接条件。表的连接条件。1.1.两表连接两表连接2.2.多表连接多表连接2023-8-20连接查询 例:例:

31、查询每个学生及其选修课程的情况查询每个学生及其选修课程的情况SELECT Student.*,SC.*FROM Student,SC WHERE Student.Sno=SC.Sno;例:查询每个学生及其选修的课程名其及成绩例:查询每个学生及其选修的课程名其及成绩 SELECT Student.Sno,Sname,Course.Cname,SC.Grade FROM Student,SC,Course WHERE Student.Sno=SC.Sno and SC.Cno=Course.Cno;2023-8-207.3.4 7.3.4 嵌套查询嵌套查询 使用使用SQLSQL语言中,一个语言中,

32、一个Select From Where Select From Where 语句产语句产生一个新的数据集,一个查询语句完全嵌套到另一个查询语句中生一个新的数据集,一个查询语句完全嵌套到另一个查询语句中的的WhereWhere或或HavingHaving的的“条件条件”短语中,这种查询称为嵌套查询。短语中,这种查询称为嵌套查询。嵌套查询的求解方法是嵌套查询的求解方法是“由里到外由里到外”进行的,从最内层的子进行的,从最内层的子查询做起,依次由里到外完成计算。即每个子查询在其上一级查查询做起,依次由里到外完成计算。即每个子查询在其上一级查询未处理之前已完成计算,其结果用于建立父查询的查询条件。询未

33、处理之前已完成计算,其结果用于建立父查询的查询条件。1.1.用于相等(用于相等(=)判断的子查询)判断的子查询2.2.用于用于ININ短语的子查询短语的子查询3.3.用于比较运算符的子查询用于比较运算符的子查询4.4.用于用于AnyAny或或AllAll的子查询的子查询第7章关系数据库标准语言SQL 7.3 数据查询2023-8-20嵌套查询嵌套查询 在在SQL语言中,一个语言中,一个SELECT-FROM-WHERE语语句称为一个查询块。将一个查询块嵌套在另一个句称为一个查询块。将一个查询块嵌套在另一个查询块的查询块的WHERE子句或子句或HAVING短语的条件中短语的条件中的查询称为嵌套查

34、询或子查询。例如:的查询称为嵌套查询或子查询。例如:SELECT Sname FROM StudentWHERE Sno IN SELECT Sno FROM SC WHERE Cno=2;2023-8-20 例:查询与例:查询与“刘晨刘晨”在同一个系学习的学生在同一个系学习的学生SELECT Sno,Sname,SdeptFROM Student WHERE Sdept IN SELECT Sdept FROM Student WHERE Sname=刘晨刘晨;或者:或者:SELECT Sno,Sname,Sdept FROM Student WHERE Sdept=SELECT Sdept

35、 FROM Student WHERE Sname=刘晨刘晨;2023-8-20例:查询选修了课程名为例:查询选修了课程名为信息系统信息系统的学生学号和姓名的学生学号和姓名SELECT Sno,Sname FROM Student WHERE Sno IN SELECT Sno FROM SC WHERE Cno IN SELECT Cno FROM Course WHERE Cname=信息系统信息系统或者:或者:SELECT Sno,Sname FROM StudentWHERE Sno IN SELECT Sno FROM SC WHERE Cno=SELECT Cno FROM Cou

36、rse WHERE Cname=信息系统信息系统2023-8-20 例:查询其他系中比IS系任一学生年龄小的学生名单SELECT Sname,Sage FROM Student WHERE Sage (SELECT Sage FROM Student WHERE Sdept=IS)AND Sdept IS ORDER BY Sage DESC;或者:SELECT Sname,Sage FROM Student WHERE Sage (SELECT MAX(Sage)FROM Student WHERE Sdept=IS)AND Sdept IS ORDER BY Sage DESC;2023-

37、8-20第7章关系数据库标准语言SQL 7.3 数据查询7.3.5 7.3.5 集合查询集合查询 使用使用SQLSQL语言中,可要把多个语言中,可要把多个SelectSelect产生的数据集进行合并,其结产生的数据集进行合并,其结果会更细的反映数据信息。要完成这些操作可利用集合查询。果会更细的反映数据信息。要完成这些操作可利用集合查询。并(并(UnionUnion)操作就是将多个具有相同数据列,且列属性相同的多)操作就是将多个具有相同数据列,且列属性相同的多个关系进行合并,形成一个新的数据集。个关系进行合并,形成一个新的数据集。2023-8-20集合查询 每一个SELECT语句都能获得一个或一

38、组元组。若要把多个SELECT语句的结果合并为一个结果,可用集合操作来完成。集合操作主要包括并操作UNION、交操作INTERSECT和差操作MINUS。标准SQL中没有直接提供集合交操作和集合差操作,但我们可以用其他方法来实现。具体实现方法依查询不同而不同。使用UNION将多个查询结果合并起来,形成一个完整的查询结果时,系统会自动去掉重复的元组。需要注意的是,参加UNION操作的各数据项数目必须相同;对应项的数据类型也必须相同。2023-8-20 例:查询计算机科学系的学生及年龄不大于例:查询计算机科学系的学生及年龄不大于19岁的学生岁的学生SELECT*FROM Student WHERE

39、 Sdept=CS UNION SELECT*FROM Student WHERE Sage=19 例:查询选修了课程例:查询选修了课程1或者选修了课程或者选修了课程2的学生的学生 本例实际上是查选修课程本例实际上是查选修课程1的学生集合与选修课程的学生集合与选修课程2的学的学生集合的并集。生集合的并集。SELECT Sno FROM SC WHERE Cno=1 UNION SELECT Sno FROM SC WHERE Cno=2;2023-8-20第7章关系数据库标准语言SQL 7.4 数据更新7.4.1 7.4.1 插入数据插入数据1.1.语句格式语句格式:Insert Into I

40、nsert Into(1,2,)Values(Values(,)2,)2.2.语句功能:语句功能:将一个新记录(一行数据)插入指定的表中。将一个新记录(一行数据)插入指定的表中。2023-8-20说明:如果INTO子句中没有指明任何列名,则新插入的记录必须在每个属性列上均有值。VALUES是把“常量”赋值给对应的属性列。如果某些属性列在INTO子句中没有出现,则新记录在这些列上将取空值。但必须注意的是,在表定义时说明了NOT NULL的属性列不能取空值,否则会出错。2023-8-20例题 例1:将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入Stude

41、nt表中INSERT INTO Student VALUES(95020,陈冬,男,18,IS);例2:插入一条选课记录(95020,1)INSERT INTO SC(Sno,Cno)VALUES(95020,1);新插入的记录在Grade列上取空值。2023-8-20第7章关系数据库标准语言SQL 7.4 数据更新7.4.2 7.4.2 更新数据更新数据1.1.语句格式:语句格式:Update Update Set Set =,=,Where Where 2.2.语句功能:语句功能:更新以更新以 为名的表中数据。为名的表中数据。其功能是修改指定表中满足其功能是修改指定表中满足WHERE子句条

42、件的元组。其中子句条件的元组。其中SET子句子句用于指定修改方法,即用用于指定修改方法,即用的值取代相应的属性列值。如果的值取代相应的属性列值。如果省略省略WHERE子句,则表示要修改表中的所有元组。子句,则表示要修改表中的所有元组。2023-8-20条件表达式 关系运算符=Like:满足匹配条件的字符串%:0个或多个字符 _:单个字符:转义字符 例:性别为男的 性别=男 姓王的 LIKE 王%2023-8-20例题 例:将学生95001的年龄改为22岁 UPDATE Student SET Sage=22 WHERE Sno=95001;例:将所有学生的年龄增加1岁 UPDATE Stude

43、nt SET Sage=Sage+1;2023-8-207.4.3 7.4.3 删除数据删除数据1.1.语句格式:语句格式:Delete From Delete From Where Where 2.2.语句功能:语句功能:删除以删除以 为名的表中满足为名的表中满足 的数据。的数据。DELETE语句的功能是从指定表中删除满足语句的功能是从指定表中删除满足WHERE子句条件的所有子句条件的所有元组。如果省略元组。如果省略WHERE子句,表示删除表中全部元组,但表的定义子句,表示删除表中全部元组,但表的定义仍在字典中。也就是说,仍在字典中。也就是说,DELETE语句删除的是表中的数据,而不是语句删除的是表中的数据,而不是关于表的定义。关于表的定义。第7章关系数据库标准语言SQL 7.4 数据更新

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

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

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


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

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


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