数据库原理与应用第三章.ppt
《数据库原理与应用第三章.ppt》由会员分享,可在线阅读,更多相关《数据库原理与应用第三章.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 关系数据库标准语言关系数据库标准语言SQLSQL3.1 SQL概述SQL的特点1.综合统一2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方法5.语言简洁,易学易用5.语言简捷,易学易用3.2 数 据 定 义 3.2.1 定义语句格式CREATETABLE(,)给出要创建的基本表的名称;给出要创建的基本表的名称;给出列名或字段名;给出列名或字段名;为列指定数据类为列指定数据类型及其数据宽度;型及其数据宽度;关系数据库支持关系数据库支持非常丰富的数据非常丰富的数据类型,不同的数类型,不同的数据库管理系统支据库管理系统支持的数据类型基持的数据类型基本是一样的,右
2、本是一样的,右表列出了常用的表列出了常用的数据类型。数据类型。数据类型用于定义列或字段一级的完整性约束,一般包括:用于定义列或字段一级的完整性约束,一般包括:NOT NULL和和NULL约束约束PRIMARY KEY约束约束UNIQUE约束约束FOREIGN KEY约束约束DEFAULT定义定义CHECK约束约束列级完整性约束用于定义表一级的完整性约束,一般包括:用于定义表一级的完整性约束,一般包括:PRIMARY KEY约束(复合属性构成的主关约束(复合属性构成的主关键字说明)键字说明)FOREIGN KEY约束(外部关键字及参照关约束(外部关键字及参照关系说明)系说明)CHECK约束(同时
3、涉及到多个属性的域完约束(同时涉及到多个属性的域完整性约束)整性约束)表级完整性约束不是SQL的标准选项,一般用于与物理存储有关的说明,不同的数据库管理系统定义的方式肯定不同,另外该项参数一般也不是必需的。其他参数例题 例1 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。CREATE TABLE Student (Sno CHAR(5)NOT NULL UNIQUE,Sname CHAR(20)UNIQUE,Ssex CHAR(1),Sage INT,Sdept CH
4、AR(15);二、修改基本表ALTERTABLEADD|DROPMODIFYDROPCOLUMNALTERCOLUMN例题 例2 向Student表增加“入学时间”列,其数据类型为日期型。ALTER TABLE Student ADD Scome DATE;不论基本表中原来是否已有数据,新增加的列一律为空值。例题 例3 将年龄的数据类型改为半字长整数。ALTER TABLE Student MODIFY Sage SMALLINT;修改原有的列定义可能会破坏已有数据。例题 例4 删除关于学号必须取唯一值的约束。ALTER TABLE Student DROP UNIQUE(Sno);SQL没有
5、提供删除属性列的语句,只能间接实现,先将原表中要保留的列及其内容复制到一个新表中,然后删除原表,并将新表命名为原表名。三、删除基本表 DROP TABLE;基本表删除 数据、表上的索引都删除 表上的视图往往仍然保留,但无法引用删除基本表时,系统会自动从数据字典中删去有关该基本表及其索引的描述,因此建立在此表上的视图虽然已保留,但已无法引用例题 例5 删除Student表 DROP TABLEStudent;3.2.2 建立与删除索引 建立索引是加快查询速度的有效手段建立索引DBA或表的属主(即建立表的人)根据需要建立和删除有些DBMS自动建立以下列上的索引 PRIMARY KEY UNIQUE
6、维护索引 DBMS自动完成使用索引 DBMS自动选择是否使用索引以及使用哪些索引一、建立索引 语句格式CREATE UNIQUE CLUSTER INDEX ON(,);用指定要建索引的基本表名字索引可以建立在该表的一列或多列上,各列名之间用逗号分隔用指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCUNIQUE表明此索引的每一个索引值只对应唯一的数据记录CLUSTER表示要建立的索引是聚簇索引建立索引(续)唯一值索引对于已含重复值的属性列不能建UNIQUE索引对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQ
7、UE约束建立索引(续)聚簇索引建建立立聚聚簇簇索索引引后后,基基表表中中数数据据也也需需要要按按指指定定的的聚聚簇簇属属性性值值的的升升序序或或降降序序存存放放。也也即即聚聚簇簇索索引引的的索索引引项项顺顺序序与与表表中中记记录录的的物物理理顺序一致顺序一致例:CREATE CLUSTER INDEX Stusname ON Student(Sname);在在Student表的表的Sname(姓名)列上建立一个聚簇索引,而(姓名)列上建立一个聚簇索引,而且且Student表中的记录将按照表中的记录将按照Sname值的升序存放值的升序存放 建立索引(续)在一个基本表上最多只能建立一个聚簇索引聚簇
8、索引的用途:对于某些类型的查询,可以提高查询效率聚簇索引的适用范围 很少对基表进行增删操作 很少对其中的变长列进行修改操作 聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。例CREATE CLUSTER INDEX Stusname ON Student(Sname);将会在Student 表的Sname列上建一个聚簇索引,而且记录会按照Sname值的升序存放。用户可以在最常查询的列上建立聚簇索引以提高查询效率。但在一个基本表上只能建一个,而且更新索引列数据会导致表中记录的物理顺序的变更,因此经常更新的数据列不宜建立。例题 例6 为学生-课程数据库中的Student,Course,
9、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;删除索引时,系统会从数据字典中删去有关该索引的描述。例7 删除Student表的Stusname索引。DROP INDEX Stusname;3.3.1 概述
10、 语句格式SELECTALL|DISTINCT,FROM,WHEREGROUPBYHAVINGORDERBYASC|DESC;示例数据库 学生-课程数据库学 生 表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:SC(Sno,Cno,Grade)3.3 查 询 3.3.1 概述3.3.2 单表查询3.3.3 连接查询3.3.4 嵌套查询3.3.5 集合查询3.3.6 小结 3.3.2 单表查询 查询仅涉及一个表,是一种最简单的查询操作一、选择表中的若干列二、选择表中的若干元组三、对查询结果排序
11、四、使用集函数五、对查询结果分组 从职工关系中检索所有工资值SELECT工资FROM职工结果是:结果是:12201210125012301250SELECTDISTINCT工资工资FROM职工职工结果是:结果是:1220121012501230单表查询用户在查询时可根据应用的需要改变列的显示顺序例2查询全体学生的姓名、学号、所在系。查询全部列-将所有的列名在SELECT后面列出或者用*表示列名 例3 SELECT*FROM Student;查询经过计算的值例4查询全体学生姓名及其出生年份SELECT Sname,1996-Sage FROM Student;单表查询不仅可以是算术表达式,还可以
12、是字符串常量、不仅可以是算术表达式,还可以是字符串常量、函数等。函数等。例例5查询全体学生的姓名、出生年份和所有系,要求用小写字母表示查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名所有系名SELECTSname,YearofBirth:,1996-Sage,ISLOWER(Sdept)FROMStudent;输出结果:输出结果:SnameYearofBirth:1996-SageISLOWER(Sdept)-李勇李勇YearofBirth:1976cs刘晨刘晨YearofBirth:1977is王名王名YearofBirth:1978ma张立张立YearofBirth:197
13、7is例5.*使用列别名改变查询结果的列标题SELECTSnameNAME,YearofBirth:BIRTH,2000-SageBIRTHDAY,ISLOWER(Sdept)DEPARTMENTFROMStudent;输出结果:输出结果:NAMEBIRTHBIRTHDAYDEPARTMENT-李勇李勇YearofBirth:1976cs刘晨刘晨YearofBirth:1977is王名王名YearofBirth:1978ma张立张立YearofBirth:1977is二、选择表中的若干元组 消除取值重复的行查询满足条件的元组 1.消除取值重复的行在SELECT子句中使用DISTINCT短语假设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 第三
限制150内