第3章 关系数据库标准语言SQL_1

上传人:小**** 文档编号:243125653 上传时间:2024-09-16 格式:PPT 页数:36 大小:478KB
返回 下载 相关 举报
第3章 关系数据库标准语言SQL_1_第1页
第1页 / 共36页
第3章 关系数据库标准语言SQL_1_第2页
第2页 / 共36页
第3章 关系数据库标准语言SQL_1_第3页
第3页 / 共36页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三章 关系数据库标准语言,SQL,1,第三章 关系数据库标准语言,SQL,3.1 SQL,概述,3.2,学生,-,课程数据库,3.3,数据定义,3.4,数据查询,3.5,数据更新,3.6,视图,2,第三章 关系数据库标准语言,SQL,3.1 SQL,概述,3.2,学生,-,课程数据库,3.3,数据定义,3.4,数据查询,3.5,数据更新,3.6,视图,3,3.1 SQL,概述,SQL(Structured Query Language),结构化查询语言,是关系数据库的标准语言。,1974,年由,Boyce,和,Chamberlin,提出,并在,IBM,公司研制的关系数据库管理系统原型,System R,上实现。,由于,SQL,简单易学,功能丰富,深受用户及计算机工业界欢迎,因此被数据库厂商所采用。经各公司的不断修改、扩充和完善,,SQL,得到业界的认可。,1986,年,10,月美国国家标准局,(ANSI),的数据库委员会,X3H2,批准了,SQL,作为关系数据库语言的美国标准。,4,3.1 SQL,概述,SQL,标准从,1986,年公布以来随着数据库技术的发展而不断发展和丰富。,标准 大致页数 发布日期,SQL/86 1986,年,10,月,SQL/89 120,页,1989,年,SQL/92 622,页,1992,年,SQL/99 1700,页,1999,年,SQL2003 3600,页,2003,年,5,3.1 SQL,概述,作为关系数据库的标准语言,,SQL,已被众多商用数据库管理系统产品所采用,而不同的数据库管理系统在其实践过程中都对,SQL,规范做了某些改变和扩充。,实际上,不同数据库管理系统之间的,SQL,语言不能完全通用。,微软公司的,MS SQL Server,支持的是,T-SQL,,而甲骨文公司的,Oracle,数据库所使用的,SQL,语言则是,PL-SQL,。,6,第三章 关系数据库标准语言,SQL,3.1 SQL,概述,3.2,学生,-,课程数据库,3.3,数据定义,3.4,数据查询,3.5,数据更新,3.6,视图,7,3.2,学生,-,课程数据库,在本章中用,学生,-,课程数据库,作为一个例子来讲解,SQL,的数据定义、数据操作、数据查询和数据控制语句的具体应用。,学生,-,课程数据库中包括以下,3,个表,学生表:,Student(,Sno,Sname,Ssex,Sage,Sdept),课程表:,Course(,Cno,Cname,Cpno,Ccredit),学生选课表:,SC(,Sno,Cno,Grade),8,3.2,学生,-,课程数据库,Student,表,学号,Sno,姓名,Sname,性别,Ssex,年龄,Sage,所在系,Sdept,200215121,李勇,男,20,CS,200215122,刘晨,女,19,IS,200215123,王敏,女,18,MA,200215124,张立,男,19,IS,9,3.2,学生,-,课程数据库,Course,表,课程号,Cno,课程名,Cname,先行课,Cpno,学分,Cdredit,1,数据库,5,4,2,数学,2,3,信息系统,1,4,4,操作系统,6,3,5,数据结构,7,4,6,数据处理,2,7,PASCAL,语言,6,4,10,3.2,学生,-,课程数据库,SC,表,学号,Sno,课程号,Cno,成绩,Grade,200215121,1,92,200215121,2,85,200215121,3,88,200215122,2,90,200215122,3,80,11,第三章 关系数据库标准语言,SQL,3.1 SQL,概述,3.2,学生,-,课程数据库,3.3,数据定义,3.4,数据查询,3.5,数据更新,3.6,视图,12,3.3,数据定义,SQL,的数据定义功能包括数据库定义、表定义、视图和索引定义。,SQL,的数据定义语句,操作对象,操作方式,创建,删除,修改,数据库,CREATE,DATABASE,DROP,DATABASE,表,CREATE,TABLE,DROP,TABLE,ALTER,TABLE,视图,CREATE,VIEW,DROP,VIEW,索引,CREATE,INDEX,DROP,INDEX,13,3.3,数据定义,数据库的定义与删除,基本表的定义、删除与修改,索引的建立与删除,14,3.3.1,数据库的定义与删除,定义数据库,CREATE DATABASE ,确保用户具有创建数据库的权限,例,1,定义学生,-,课程数据库,S_T,CREATE DATABASE S_T;,15,3.3.1,数据库的定义与删除,定义数据库,CREATE DATABASE S_T,ON,PRIMARY,(,NAME = S_T_data1,FILENAME = D:dataS_T_data1.mdf,SIZE = 20 MB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%,),LOG ON,(,NAME = S_T_log1,FILENAME = D:dataS_T_log1.ldf,SIZE = 50 MB,MAXSIZE = 100 MB,FILEGROWTH = 10 MB,);,16,3.3.1,数据库的定义与删除,删除数据库,DROP DATABASE ,例,2,删除学生,-,课程数据库,S_T,DROP DATABASE S_T;,17,3.3.2,基本表的定义、删除与修改,定义基本表,CREATE TABLE ,(,);,:所要定义的基本表的名字,:组成该表的各个属性(列),:涉及相应属性列的完整性约束条件,:涉及一个或多个属性列的完整性约束条件,18,3.3.2,基本表的定义、删除与修改,定义基本表,例,3,建立一个,“,学生,”,表,Student,,学号是主码,姓名取值唯一。,CREATE TABLE Student,(Sno CHAR(9),PRIMARY KEY,Sname CHAR(20),UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),);,19,3.3.2,基本表的定义、删除与修改,定义基本表,例,4,建立一个,“,课程,”,表,Course,CREATE TABLE Course,(Cno,CHAR(4),PRIMARY KEY,Cname CHAR(40),Cpno,CHAR(4),REFERENCES Course(Cno),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno),);,20,3.3.2,基本表的定义、删除与修改,定义基本表,例,5,建立学生选课表,SC,,成绩取值在,1-100,之间。,CREATE TABLE SC,(Sno,CHAR(9),Cno,CHAR(4),Grade SMALLINT,check(Grade=1 and Grade=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno),FOREIGN KEY (Cno) REFERENCES Course(Cno),);,21,3.3.2,基本表的定义、删除与修改,定义基本表,常用完整性约束,实体完整性约束:,PRIMARY KEY,参照完整性约束:,FOREIGN KEY,用户自定义的完整性约束:,CHECK,约束,唯一性约束(,UNIQUE,),非空值约束(,NOT NULL,),PRIMARY KEY,与,UNIQUE,的区别?,22,3.3.2,基本表的定义、删除与修改,修改基本表,ALTER TABLE , ADD ,完整性约束, , DROP , ALTER COLUMN ;,:要修改的基本表,ADD,子句,:增加新列和新的完整性约束条件,DROP,子句,:删除指定列和完整性约束条件,ALTER COLUMN,子句,:用于修改列名和数据类型,23,3.3.2,基本表的定义、删除与修改,修改基本表,例,6,向,Student,表中增加,“,入学时间,”,列,其数据类型为日期型。,ALTER TABLE,Student,ADD,Scome DATE;,不论基本表中原来是否已有数据,新增加的列一律为空值。,24,3.3.2,基本表的定义、删除与修改,修改基本表,例,7,将,Student,表中属性列,Scome,删除,ALTER TABLE,Student,DROP,COLUMN,Scome;,例,8,将年龄的数据类型改为整型,ALTER TABLE,Student,ALTER COLUMN,Sage INT;,注:修改原有的列定义有可能会破坏已有数据,例,9,增加,/,删除课程名称必须取唯一值的约束,ALTER TABLE Course ADD UNIQUE(Cname);,ALTER TABLE Course DROP UQ,_,_C,_,_7D78A4E7;,25,3.3.2,基本表的定义、删除与修改,删除基本表,DROP TABLE ,RESTRICT,:删除表是有限制的,欲删除的基本表不能被其他表的约束所引用,如果存在依赖该表的对象,则此表不能被删除,CASCADE,:删除该表没有限制。,在删除基本表的同时,相关的依赖对象一起删除,26,3.3.2,基本表的定义、删除与修改,删除基本表,例,10,删除,Student,表,DROP TABLE Student CASCADE;,基本表定义被删除,数据被删除,表上建立的索引、视图、触发器等一般也将被删除,27,3.3.2,基本表的定义、删除与修改,删除基本表,例,11,若表上建有视图,选择,RESTRICT,时表不能删除,CREATE VIEW IS_Student,AS,SELECT Sno,,,Sname,,,Sage,FROM Student,WHERE Sdept=,IS,;,DROP TABLE Student RESTRICT;,28,3.3.2,基本表的定义、删除与修改,删除基本表,例,12,若表上建有视图,选择,CASCADE,时可以删除表,视图也自动被删除,DROP TABLE Student CASCADE;,注意:不同的数据库产品在遵循,SQL,标准的基础上具体实现细节和处理策略上会与标准有差别,29,3.3.3,索引的建立与删除,建立索引是加快查询速度的有效手段,建立索引,DBA,或表的属主(即建立表的人)根据需要建立,有些,DBMS,自动建立以下列上的索引,PRIMARY KEY,UNIQUE,维护索引,DBMS,自动完成,使用索引,DBMS,自动选择是否使用索引以及使用哪些索引,30,3.3.3,索引的建立与删除,建立索引,CREATE,UNIQUE CLUSTER,INDEX ,ON (, ,);,用,指定要建索引的基本表名字,索引可以建立在该表的一列或多列上,各列名之间用逗号分隔,用,指定索引值的排列次序,升序:,ASC,,降序:,DESC,。缺省值:,ASC,UNIQUE,表明此索引的每一个索引值只对应唯一的数据记录,CLUSTER,表示要建立的索引是聚簇索引。,31,3.3.3,索引的建立与删除,建立索引,例,13,为学生,-,课程数据库中的,S,,,C,,,SC,三个表建立索引。其中,S,表按学号升序建唯一索引,,C,表按课程号升序建唯一索引,,SC,表按学号升序和课程号降序建唯一索引,CREATE UNIQUE INDEX Stusno ON S (Sno);,CREATE UNIQUE INDEX Coucno ON C (Cno);,CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);,32,3.3.3,索引的建立与删除,建立索引,唯一值索引,对于已含重复值的属性列不能建,UNIQUE,索引,对某个列建立,UNIQUE,索引后,插入新记录时,DBMS,会自动检查新记录在该列上是否取了重复值。这相当于增加了一个,UNIQUE,约束,33,3.3.3,索引的建立与删除,建立索引,聚簇索引,建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中记录的物理顺序一致,CREATE CLUSTER INDEX Stusname ON S (Sname),在,S,表的,Sname,(姓名)列上建立一个聚簇索引,而且,S,表中的记录将按照,Sname,值的升序存放,34,3.3.3,索引的建立与删除,建立索引,聚簇索引,在一个基本表上最多只能建立一个聚簇索引,聚簇索引的用途:在最经常查询的列上建立聚簇索引,可以提高查询效率,经常更新的列不宜建立聚簇索引,35,3.3.3,索引的建立与删除,删除索引,DROP INDEX ;,删除索引时,系统会从数据字典中删去有关该索引的描述,例,14,删除,S,表的,Stusname,索引,DROP INDEX Stusname;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!