




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京航空航天大学金城学院,第三章 关系数据库 标准语言SQL,第三章 关系数据库标准语言SQL,3.1 SQL概述 3.2 学生-课程数据库 3.3 数据定义 3.4 查询 3.5 数据更新 3.6 视图 3.8 小结,3.3.2 定义基本表,CREATE TABLE ( , , ); :所要定义的基本表的名字 :组成该表的各个属性(列) :涉及相应属性列的完整性约束条件 :涉及一个或多个属性列的完整性约束条件,定义基本表(续),例 建立一个“学生”表Student CREATE TABLE Student (Sno CHAR(5) PRIMARY KEY, Sname CHAR(20) UNIQUE, Ssex CHAR(1) , Sage INT, Sdept CHAR(15);,定义基本表(续),常用完整性约束 主码约束: PRIMARY KEY 唯一性约束:UNIQUE 非空值约束:NOT NULL 外码约束: FOREIGN KEY 参照完整性约束 PRIMARY KEY与 UNIQUE的区别?,定义基本表(续),例 建立一个“学生选课”表SC CREATE TABLE SC (Sno CHAR(5) , Cno CHAR(3) , Grade int, PRIMARY KEY(Sno, Cno), FOREIGN KEY(Sno) REFERENCES Studrent(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno);,修改基本表,ALTER TABLE ADD 完整性约束 DROP MODIFY ; :要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 MODIFY子句:用于修改列名和数据类型,删除基本表,DROP TABLE ;,3.3.3 建立与删除索引,索引:据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表 通常只有经常需要查询的属性才需要建立索引。由于构造索引需要占用磁盘空间,并且减低增加、删除、更新行的速度,所以不应该在每一个列上都建立索引 提高查询速度 提高连接、ORDER BY和GROUP BY的执行速度,建立索引,语句格式 CREATE UNIQUE CLUSTER INDEX ON (, ); 指定要建索引的基本表名字 索引值的排列次序,升序:ASC,降序:DESC CLUSTER表示聚簇索引,建立索引 (续),唯一值索引 对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值 相当于增加了一个UNIQUE约束,建立索引 (续),聚簇索引 聚簇索引的索引项顺序与表中记录的物理顺序一致 索引顺序确定数据的物理存储顺序 例: CREATE CLUSTER INDEX Stusname ON Student(Sname); 在Student表的Sname(姓名)列上建立一个聚簇索引,而且Student表中的记录将按照Sname值的升序存放,聚簇索引 (续),在一个基本表上最多只能建立一个聚簇索引 聚簇索引的候选列: 主键 在ORDER BY和GROUP BY中使用的列 不经常修改的列 在连接操作中使用的列,例题,例为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引 CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);,删除索引,DROP INDEX ; 删除索引是为了减少查询操作的时间,但如果数据增删改频繁,系统会花费太多时间来维护,从而减低查询效率 例 删除Student表的Stusname索引 DROP INDEX Stusname;,Break,Review,嵌入查询 全称量词 蕴涵词 集合查询 索引的创建和删除 聚簇索引,第三章 关系数据库标准语言SQL,3.1 SQL概述 3.2 学生-课程数据库 3.3 数据定义 3.4 查询 3.5 数据更新 3.6 视图 3.7 小结,插入数据,INSERT INTO (,) VALUES ( , ) INSERT INTO ( , ) 子查询;,插入单个元组,例1 将一个新学生记录 (学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表 INSERT INTO Student VALUES (95020,陈冬,男,IS,18),插入子查询结果,例4 对每一个系,求学生的平均年龄,并把结果存入数据库 第一步:建表 CREATE TABLE Deptage (Sdept CHAR(15) / /系名 Avgage SMALLINT); / /学生平均年龄,插入子查询结果,第二步:插入数据 INSERT INTO Deptage(Sdept,Avgage) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;,修改数据,UPDATE SET =,= WHERE ,带子查询的修改语句,例7 将计算机科学系全体学生的成绩置零 UPDATE SC SET Grade=0 WHERE CS= (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno);,删除数据,DELETE FROM WHERE ;,第三章 关系数据库标准语言SQL,3.1 SQL概述 3.2 学生-课程数据库 3.3 数据定义 3.4 查询 3.5 数据更新 3.6 视图 3.7 小结,视 图,视图的特点 虚表,导出的表 数据库中只存放视图的定义,不存放对应的数据 基表中的数据发生变化,从视图中查询出的数据也随之改变,视图的作用,视图能够简化用户的操作 视图使用户能以多种角度看待同一数据 视图能够对机密数据提供安全保护 适当利用视图可以更清晰的表达查询 视图对重构数据库提供了一定程度的逻辑独立性,视图的作用(续),例:数据库逻辑结构发生改变 Student(Sno,Sname,Ssex,Sage,Sdept) “垂直”地分成两个基本表: SX(Sno,Sname,Sage) SY(Sno,Ssex,Sdept),视图的作用(续),建立一个视图Student: CREATE VIEW Student(Sno,Sname,Ssex,Sage,Sdept) AS SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.Sdept FROM SX,SY WHERE SX.Sno=SY.Sno;,建立视图,语句格式 CREATE VIEW ( ,) AS WITH CHECK OPTION; WITH CHECK OPTION 透过视图进行增删改操作时,不得破坏视图定义中的谓词条件,建立视图(续),例1 建立信息系学生的视图 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS; 行列视图:从单个基本表导出,只是去掉了基本表的某些行和某些列,但保留了主码,WITH CHECK OPTION的视图,例2 建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息系学生 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS WITH CHECK OPTION;,基于多个基表的视图,例3 建立信息系选修了1号课程的学生视图 CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept= IS AND Student.Sno=SC.Sno AND SC.Cno= 1;,基于视图的视图,例4 建立信息系选修了1号课程且成绩在90分以上的学生的视图 CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade=90;,带表达式的视图,例5 定义一个反映学生出生年份的视图 CREATE VIEW BT_S(Sno,Sname,Sbirth) AS SELECT Sno, Sname, 2010-Sage FROM Student;,建立分组视图,例6 将学生的学号及他的平均成绩定义为一个视图 CREATE VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;,删除视图,DROP VIEW 由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除 删除基表时,由该基表导出的所有视图定义都必须显式删除,查询视图,从用户角度:查询视图与查询基本表相同 DBMS实现视图查询的方法 实体化视图 有效性检查:检查所查询的视图是否存在 执行视图定义,将视图临时实体化,生成临时表 查询视图转换为查询临时表 查询完毕删除被实体化的视图(临时表),查询视图(续),例9 在信息系学生的视图中找出年龄小于20岁的学生 SELECT Sno,Sage FROM IS_Student WHERE Sage20;,SELECT Sno,Sage FROM Student WHERE Sdept= IS AND Sage20,更新视
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股东合同协议书模板样本
- 福鼎充电桩采购合同范本
- 销售激光折弯机合同范本
- 特许加盟合同的管理协议
- 第三方管理装修合同协议
- 煤炭采购居间合同协议书
- 物业被盗赔偿协议书范本
- 网签购房合同中补充协议
- 防雷装置检测委托协议书
- 狗狗协议领养协议书模板
- 2025年河南省中考英语试卷及答案
- 中国平安钻石俱乐部课件
- 2025年中国二手球鞋行业市场全景分析及前景机遇研判报告
- 2025年天津市中考语文试卷(含标准答案)
- 产品售后成本管理制度
- 对海外公司法务管理制度
- 现代农业技术专业教学标准(高等职业教育专科)2025修订
- 质检队伍考试题及答案
- 智能心理辅导系统-洞察阐释
- 运沙船运输合同协议
- 文物保护修复验收技术规范
评论
0/150
提交评论