ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:1.46MB ,
资源ID:6426976      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6426976.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库基础篇Word格式.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数据库基础篇Word格式.docx

1、如自然数,全班同学的名字等。笛卡儿积(卡氏积):给定一组域D1, D2, , Dn, 这些域中可以有相同的域。D1, D2, , Dn的笛卡儿积为:D1D2Dn(d1,d2,dn)| diDi, i=1, 2, , n,其中每一个元素(d1,d2,dn)称为一个n元组。元素中的每个值di称为一个分量。基数的概念:若Di (i=1, 2, , n)为有限集,其基数为|Di|,则D1 Dn的基数为:|D1|D2|Dn|关系:Dn的任意子集叫做在域D1, D2, , Dn上的关系,可记做:R(D1, D2, , Dn),R为关系名,n是关系的目或度(degree)。这里的“子集”是“任意子集”,包括

2、空集。笛卡儿积不满足交换率,即笛卡儿积的元组有序。而关系通过给关系的列附加属性名的方式取消笛卡儿积元组的有序性。按定义,关系可以是无限集。通常我们在关系数据模型中限定关系为有限关系。候选码:若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为该关系的一个候选码(Candidate Key)。一个关系可能有多个候选码,则选定其中一个作为主码(Primary Key)。包含在任何候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。全码(All-key)关系模式的所有属性组构成此关系模式的唯一候选码。2.关系2.1 概述 一次一集合!2.2 关系2.3 关系模式关

3、系模式是对关系的描述 (是型的描述) 可表述为:R(U, D, dom, F) R为关系名属性构成 U属性来自的域 D 属性与域之间的映象关系 dom属性间的数据依赖关系集合 F元组语义以及完整性约束条件 关系模式通常可以简记为:R(U)或R(A1, A2, , An) R为关系名,A1, A2, , An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。关系模式是静态的、稳定的,而关系是动态的、随时间变化的,两者是型与值的关系。3.关系完整性(1) 实体完整性规则 每一关系必有一主码,构成主码的各属性值均不能取空值。主码也不能取重复值。即 现实世界中的实体是可区分的,它们具有某

4、种唯一性标识。(2) 参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值 即 引用的时候,必须取基本表中已经存在的唯一标识(3) 用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 设计的模型应该自身提供检验该完整性的机制4.关系代数4.1 概述关系代数的四类运算符:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。双目运算符的优先级低于单目运算符 四种二目运算:

5、 三种运算要求参与运算的两个关系R,S具有相同的目n,且相应属性取自同一个域。5种基本运算 并、差、广义笛卡尔积、选择、投影3种附加运算 交、连接、除 (都可用基本运算替代)4.2 集合运算并交差运算 属性个数必须要一致 属性名可以不相同连接如果没有共同属性,则会退化为笛卡尔积4.3 专门的关系运算(1) 选择:(2) 投影:投影基本思想是从关系中消除某些属性,投影也可能消除掉某些行。因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。(3) 连接:等值连接自然连接 取消重复列,同时从行和列的角度进行运算。(4) 除设关系R除以关系S的结果为关系T,则T包含所有在R中但不在S中的

6、属性及其值且T的元组与S的元组的所有组合都在R中第三章 关系数据库标准语言SQLSQL功能:数据查询、数据操纵、数据定义和数据控制SQL特点:SQL进行数据操作,只要提出“What to do”,无需告诉系统“How to do”充分体现关系系统的特点和优势,有利于提高数据的独立性面向集合的操作方式 关系运算“一次一集合”方式的体现。一种语法结构、两种使用方式 既是自含式语言,又是嵌入式语言2. SQL语句2.1 模式的定义与删除(1) 定义模式方法:CREATE SCHEMA AUTHORIZATION CREATE SCHEMA AUTHORIZATION (隐含为用户名)在这个空间中可以

7、定义该模式包含的数据库对象,例如基本表、视图、索引等。在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。(2) 删除模式方法:DROP SCHEMA CASCADE(级联) 删除模式的同时把该模式中所有的数据库对象全部删除RESTRICT(限制)如该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。当该模式中没有任何下属的对象时才能执行。2.2 基本表的定义,修改与删除(1) 定义基本表:CREATE TABLE (列级完整性约束条件,列级完整性约束条件.,表级完整性约束条件);注:如果完整性约束条件涉及到该表的多个属性

8、列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。定义基本表所属模式:在创建模式语句中同时创建表在表名中明显地给出模式名:Create table “S-T”.Student(.);/*模式名为 S-T*/设置所属的模式,在创建表时表名中不必给出模式名(2) 修改基本表 ALTER TABLE ADD 完整性约束 (增加新列)ADD table_constraint (增加表级完整性约束)ALTER COLUMN (修改列的数据类型)ALTER TABLE name RENAME COLUMN column TO new_column (列更名)DROP COLUMN column

9、 RESTRICT | CASCADE (删除列)DROP (删除列上的完整性约束)DROP TABLE RESTRICT| CASCADE(删除基本表)例向Student表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE Student ADD S_entrance DATE;不论基本表中原来是否已有数据,新增加的列一律为空值。例将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。 ALTER TABLE Student ALTER COLUMN Sage INT;例增加课程名称必须取唯一值的约束条件。 ALTER TABLE Course ADD UNIQUE(

10、Cname);Alter可用于解决互相引用问题2.3 建立和删除索引(1) 建立索引作用:提高查询速度CREATE UNIQUECLUSTERED|NONCLUSTERED INDEX ON ,);UNIQUE(单一索引):唯一索引,不允许存在索引值相同的两行CLUSTERED(聚集索引):索引项的顺序与表中记录的物理顺序一致。表中如果有多个记录在索引字段上相同,这些记录构成一簇,只有一个索引值。优点:查询速度快。缺点:维护成本高,且一个表只能建一个聚簇索引。NONCLUSTERED(非聚集索引)作为非聚集索引,行的物理排序独立于索引排序非聚集索引的叶级包含索引行(B树)例如:CREATE U

11、NIQUE INDEX Stusno ON Student(Sno) (默认升序)CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC) (ASC 升序 DESC 降序)(2) 删除索引DROP INDEX 例 删除Student表的Stusno索引 DROP INDEX Stusno3. SQL查询一个SELECT-FROM-WHERE语句称为一个查询块 SFW。格式如下:SELECT ALL|DISTINCT,目标列表达式FROM , WHERE GROUP BY HAVING ORDER BY ,=,=20 AND Sage =23;BETWE

12、EN AND 与 NOT BETWEEN AND通常可以表示为用逻辑与连接的两个比较。例 确定集合SELECT Sname,Sdept,SageWHERE Sage IN(20,21,22,23);查询既不是计算机科学系、数学系,也不是信息系的学生的姓名和性别。SELECT Sname, SgenderWHERE Sdept NOT IN (CS,MA,IS);如果某些学生的Sdept为空(NULL),其学号姓名不会出现在结果中,如果把 NOT IN改为IN,这些学生的信息也不会出现在结果中!原因:在有NULL的情况下,二值逻辑转化为三值逻辑,unknown 介于true和false之间。只有

13、使WHERE条件为true的元组才被选出。改进:添加修饰修饰语如下:IS TRUEIS NOT TRUEIS FALSEIS NOT FALSEWHERE Sdept NOT IN (CS,MA,IS) IS NOT FALSE;(2) 字符匹配 LIKENOT LIKE 可以是一个完整的字符串,也可以含有通配符%和_的字符串%(百分号)代表任意长度(=0)的字符串例如a%b表示以a开头,以b结尾的任意长度的字符串 _ (下横线)代表任意单个字符。例如a_b表示以a开头,以b结尾的长度为3的任意字符串 例1 匹配串为固定字符串 查询学号为201215121的学生的详细情况。WHERE Sno

14、LIKE 201215121;例2 匹配串为含通配符的字符串 查询所有姓刘学生的姓名、学号和性别。SELECT Sname, Sno, SsexWHERE Sname LIKE 刘%查询姓欧阳且全名为三个汉字的学生的姓名。SELECT Sname欧阳_ _例3 表示%和_本身的方法 用转义字符,#,&,!等+ESCAPE指明所用转移字符 查询DB_Design课程的课程号和学分。 SELECT Cno, Ccredit FROM Course WHERE Cname LIKE DB_Design ESCAPE ;或者SELECT c1 FROM tb WHERE c1 LIKE %10-15!

15、% off% ESCAPE ! ;(3) 涉及空值的查询 IS NULL和IS NOT NULL SQL标准不允许NULL比较例1 查询缺少成绩的学生的学号及相应课程号。SELECT Sno,CnoFROM SCWHERE Grade IS NULL;(4) 多重条件查询 优先级 ANDOR关系代数中的在SQL中的对应并 UNION交 INTERSECT差 EXCEPT两条SQL语句间使用 默认不消重例1 查询数学系选了3号课程的学生的学号。(SELECT SnoWHERE Sdept=MA)INTERSECT WHERE Cno=3);例2 查询选了1号课程但是没有选2号课程的学生的学号。W

16、HERE Cno=1)EXCEPT WHERE Cno=2);(5) 查询结果排序 ORDER BY子句 明确指定结果顺序。可以按一个或多个属性列排序升序:ASC; 降序:DESC; 缺省值/默认为升序ASC,NULL值最大。例1 查询计算机系(CS)学生的学号和姓名,按年龄从大到小排,相同年龄的按学号升序排。SELECT Sno, Sname WHERE Sdept=CSORDER BY Sage DESC, Sno;(6) 集函数COUNT(DISTINCT|ALL *) 统计元组个数 COUNT(DISTINCT|ALL ) 统计一列中值的个数 SUM(DISTINCT|ALL ) 计算

17、一列值的总和(此列必须是数值型) AVG(DISTINCT|ALL ) 计算一列值的平均值(此列必须是数值型)MAX(DISTINCT|ALL ) 求一列值中的最大值 MIN(DISTINCT|ALL 3;HAVING短语与WHERE子句的区别:作用对象不同WHERE子句作用于基表或视图,从中选择满足条件的元组HAVING短语作用于组,从中选择满足条件的分组。例3 查询有三科或三科以上成绩在80分以上的学生学号。 WHERE Grade=80 HAVING (COUNT(Cno)=3)3.3 多表查询/连接查询连接查询主要包括等值连接、非等值连接查询、自身连接查询、外连接查询和复合条件连接查询

18、。(1) 等值与非等值连接查询 用来连接两个表的条件称为连接条件或连接谓词,其一般格式为:.表名2例1 查询每个学生及其选修课程的情况学生情况存放在Student表中,学生选课情况存放在SC表中,所以本查询要把Student与SC表的数据通过两个表都具有的属性Sno (外码连接)实现的。这是一个等值连接。完成本查询的SQL语句为: SELECT Student.*, SC.* FROM Student, SC WHERE Student.Sno=SC.Sno;上述作法只是基本连接形式之一,称为“交叉连接”或“叉积连接”。除交叉连接外,还有“内连接”和“外连接”两种基本形式。上例改为内连接形式

19、SELECT * FROM Student INNER JOIN SC ON Student.Sno=SC.Sno;内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,所以内连接可能会丢失信息(2) 自身连接例 查询每一门课的间接先修课(即先修课的先修课)题目要求查询每一门课程的先修课的先修课,在“课程”表即Course关系中,只有每门课的直接先修课信息,而没有先修课的先修课,要得到这个信息,必须先对一门课找到其先修课,再按此先修课的课程号,查找它的先修课程。为Course表取两个别名,一个是FIRST,另一个是SECOND这两个表通过FIRST的Cpno与SECOND的Cno等值连接即

20、可达到查询目的。这相当于将Course表与其自身连接后,取第一个副本的课程号与第二个副本的先修课号做为目标列中的属性。故答案如下SELECT FIRST.Cno, SECOND.Cpno FROM Course FIRST, Course SECOND WHERE FIRST.Cpno=SECOND.Cno AND SECOND.Cpno IS NOT NULL;注意有可能某门课的先行课的先行课为NULL(3) 外连接左外连接 LEFT OUTER JOIN右外连接 RIGHT OUTER JOIN全外连接 FULL OUTER JOINSQL标准外连接关键字为OUTER外连接时,OUTER常省略。例 SELECT * FROM Student LEFT JOIN SC ON Student.Sno=SC.Sno FULL JOIN Course ON SC.Cno=Course.Cno;(4) 复合条件连接 WHERE子句中有多个条件的连接操作,称为复合条件连接。例 查询选修2号课程且成绩在90分以上的信息系或计算机系学生的学号和姓名。 SELECT Student.Sno, Sname WHERE Student.Sno=SC.Sno AND (Student.Sdept=IS OR Student.Sdept=CS)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2