当前位置:首页 > 专升本2013冲剌班计算机复习要点(第六章)
3、 关系的操作(二维表的操作)
记住:关系操作的结果,仍是一个关系。 ①选择操作
一元操作(就是只对一张表,就可以进行操作)。从原关系中选择部分元组,形成一个新的关系。新关系中的属性(列)与原关系相同(保持不变)。理解:新关系的结构与原先的相同,但元组是原先关系中的一部分。 示意图:(从原先的关系中,选择性别是“男”的元组,形成一个新的关系)
上述操作的含义是:查询表格中所有的性别是“男”的元组。
特点:对一个表格操作;元组是一部分;结构不变(即:属性不变)。
规则:若原关系有m个属性,n个元组,则选择操作后,新关系的属性有m个,而元组个数≤n。
②投影操作
一元操作,新关系中的属性(列)是原关系中属性的子集。在一般情况下,其元组(行)的数量与原关系保持不变。理解:元组个数不变,但属性取一部分。 示意图:(从SC关系中选择SNO、CNO两个属性,GRADE属性不要。)
SC
SNO CNO SNO CNO GRADE
A041 CC112 A041 CC112 92
A041 ME234 A041 ME234 92.5 A041 MS211 A041 MS211 90 投影 C005 CC112 C005 CC112 84.5 C005 CS202 C005 CS202 82
M038 ME234 M038 ME234 85
R098 CS202 R098 CS202 75 R098 MS211 R098 MS211 70.5
上述操作的含义是:查询表格中所有元组的SNO、CNO(不需要GRADE)
特点:一元操作(对一个表格操作)、属性取一部分、一般情况下,元组个数不变。
规则:若原关系有m个属性,n个元组,则投影操作后,新关系的属性≤m个,而元组个数一般为n个。
③连接操作
二元操作(理解:对两个表格的操作)。基于两张表格中的共有属性把两个关系组合起来(相当于乘法操作)。记作:关系A*关系B 示意图:(两个表格的共有属性是:SNO,含义是:这两张不同表格中的同一个SNO如A041,代表的是同一个学生。)
上述操作的含义是:查询所有学生选课的所有的情况。
特点:两元操作(对两个表格操作,且必须有共有属性)、属性是两张表的所有的属性组合(共有属性只取一个)、元组按共有属性进行组合。
规则:若原关系A有m个属性,n个元组,原关系B有k个属性,p个元组,则连接操作后,新关系的属性≤m+k个,而元组个数≤n*p个。
例:白皮书P31、P41
④并操作
相当于数学上的两个集合的并。
二元操作。要求:这两个表格的结构(即属性)要一样(即:关系模式要相同),否则无法进行并操作。如:关系A与关系B进行并操作(记作:关系A∪关系B),结果是一张新的表格(关系),属性与关系A一样(其实关系A与关系B的属性肯定是一样的),元组则是由属于关系A的元组或者关系B的元组组成。
规则:若关系A有m个属性,n个元组,关系B有m个属性(一定是m个),p个元组,则并操作后,新关系的属性一定是m个,而元组个数≤n+p个。
⑤交操作
相当于数学上的两个集合的交。
二元操作。要求:这两个表格的结构(即属性)要一样(即:关系模式要相同),否则
无法进行交操作。如:关系A与关系B进行交操作(记作:关系A∩关系B),,结果是一张新的表格(关系),属性与关系A一样(其实关系A与关系B的属性肯定是一样的),元组则是由既属于关系A而且又属于关系B的元组组成(理解:关系A与关系B中的共同元组所组成)。
规则:若关系A有m个属性,n个元组,关系B有m个属性(一定是m个),p个元组,则交操作后,新关系的属性一定是m个,而元组个数≤min(n,p)。min(n,p)的含义是:n与p这两个数当中的最小值。
⑥差操作
相当于数学上的两个集合的差。
二元操作。要求:这两个表格的结构(即属性)要一样(即:关系模式要相同),否则无法进行差操作。如:关系A与关系B进行差操作(记作:关系A-关系B),结果是一张新的表格(关系),属性与关系A一样(其实关系A与关系B的属性肯定是一样的),元组则是由属于关系A但不属于关系B的元组组成
(理解:关系A-关系B操作,就是从关系A中,删除那些属于关系B中的元组后,剩余下的元组所组成)。
显然:关系B-关系A操作,就是从关系B中,删除那些属于关系A中的元组后,剩余下的元组所组成
注意:关系A-关系B 与 关系B-关系A 在大部分情况下,结果是不一样的。
规则:若关系A有m个属性,n个元组,关系B有m个属性(一定是m个),p个元组,则关系A-关系B操作后,新关系的属性一定是m个,而元组个数≤n。
思考:若是关系B-关系A,则新关系的属性一定是_____个,而元组个数≤____。
⑦插入操作
一元操作。插入一个新元组。用SQL语句表示为(只要能够大致读懂句子含义就行了): INSERT INTO <表名> (属性1,属性2,…) VALUES(对应属性1的值1,对应属性2的值2,…)
例如:针对前面讲的 二、关系数据库管理系统 中2、关系模型 中(1)中的学生关系表。语句:
INSERT INTO 学生 (“学号”,“姓名”,“性别”)VALUES(“B001”,“江一水”,“男”) 要求:看到上述语句,能大致读懂含义是做什么的即可。含义:向学生表中插入”B001”,”江一水”,“男”一个元组(就是插入一行数据而已)。
⑧删除操作
一元操作。删除一个关系中的所有或部分元组,但表的结构(即属性)是不变的。 能读懂下列两条语句的含义即可: (1) DELETE FROM 学生 翻译成中文(含义):从学生表中删除所有的元组。(即:变成一张空表了,注意:表结构还在,只是数据全删除了。)
(2) DELETE FROM 学生 WHERE 性别=“男” 翻译成中文(含义):从学生表中删除所有的性别是“男”的元组。(即:删除了部分元组。
学生表的结构没有受到任何影响)
⑨更新操作
一元操作。修改一张表中一个或多条元组的一个或多个属性的值。表的结构(即属性)是不变的,表的元组的个数也是不变的,只是表格中部分值发生了变化。 能读懂下列两条语句的含义即可:
(1) UPDATE 学生 SET 性别=“男” 翻译成中文(含义):更新学生表,所有元组的性别属性全改为“男” (2) UPDATE 学生 SET 性别=“男” WHERE 学号=”A002” 翻译成中文(含义):更新学生表,将学号是“A002”的元组的性别属性改为“男”
三、SQL数据库与SQL语言
1、SQL数据库是指支持SQL语言的关系数据库系统。目前主流的关系数据库(RDBMS)都是SQL数据库。
2、理解SQL数据库的三级体系结构:
用户1 用户2 用户3 … 用户n 视图V1 … 视图Vp 局部模式 基本表B1 基本表B2 基本表B3 …基本表Bm 全局模式 存储文件S1 存储文件S2 存储文件S3 … 存储文件Sq 存储模式
最上面一级,是“局部模式”。用“视图”来表达。(老的版本知识点叫:用户模式或子模式或外模式)
理解: 用户看到的关系模式(即表)主要是视图。局部模式是指,面向用户使用的二维表的
模式,用视图来实现。即:用户使用SQL查询数据库时主要是对视图进行查询,对基本表查询很少。
①什么是视图?是一条SQL的SELECT查询语句。是从基本表或其它视图中导出的表(用一条SELECT语句来表示),因此:视图是一个“虚表”,仅仅是一条SELECT语句(它的执行结果是一个表),并不真正存储数据。保证数据的安全性。
关于视图的几句话:
1)是DBMS提供的一种由用户模式观察数据库中数据的重要机制。 2)可由基本表或其它视图导出。 3)与基本表不同,只是一个“虚表”,仅仅是一条SELECT语句(它的执行结果是一个表),
共分享92篇相关文档