上按姓名(tname)降序建立唯一索引 create unique index teano_第1页
上按姓名(tname)降序建立唯一索引 create unique index teano_第2页
上按姓名(tname)降序建立唯一索引 create unique index teano_第3页
上按姓名(tname)降序建立唯一索引 create unique index teano_第4页
上按姓名(tname)降序建立唯一索引 create unique index teano_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

名以清修利以义制绩以勤勉汇通天下李安平新晋商理念2023/11/5欢送你向我提问!如果你在学习中遇到问题数据库原理与应用PrincipleandApplicationofDataBase薛东平2023/11/5数据库原理与应用PrincipleandApplicationofDataBase结构化查询语言-SQL根本操作:1SQL简介2数据定义命令3数据操纵命令4数据控制命令5视图2023/11/5数据库原理与应用PrincipleandApplicationofDataBase结构化查询语言-SQL结构化操作:

6过程化SQL(PL/SQL)7嵌入式SQL和动态SQL8SQL中的复杂完整性约束

9小结2023/11/5数据库原理与应用PrincipleandApplicationofDataBase

结构化查询语言SQL(StructuredQueryLanguage)是一种面向集合的数据库查询语言。SQL(StructuredQueryLanguage)集数据查询〔DataQuery〕、数据操纵〔DataManipulation〕、数据定义〔DataDefinition〕和数据控制〔DataControl〕于一体。

2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据DBMSClient请求回答SQL语言Oracle8i/9i/10gSQLServer20002023/11/5数据库原理与应用PrincipleandApplicationofDataBase结构化查询语言-SQL根本操作:1SQL简介2数据定义命令3数据操纵命令4数据控制命令5视图2023/11/5数据库原理与应用PrincipleandApplicationofDataBaseSQL开展1974年,在IBM圣约瑟实验室的Boyce和Chamberlin在研制SystemR时提出了在其上要实现一种查询语言,当时称为SEQUEL语言〔StructuredEnglishQueryLanguage〕,后简称为SQL。SQL从IBM公司提出经过了SystemR实现研制的过程,又经过商用的SQL/DS产品研制,以及后来向DB2产品的进一步开发演变。还有Oracle公司以SQL为目标,持续开发其升级的产品。此外还有其它许多公司、科研机构对SQL的研究做出了奉献。2023/11/5数据库原理与应用PrincipleandApplicationofDataBase1986年12月,ANSI公布了SQL语言标准。第二年,ISO/IEC接受并公布它为?ISO/IEC9075:1986信息处理系统-数据库语言SQL?,即SQL的第一个国际标准版本,称为SQL/86。89年,ISO/IEC又通过并正式公布了第二个版本?ISO/IEC9075:1989信息处理系统-数据库语言具有完整性增强特征的SQL?,对SQL/86进行更新,称为SQL/89。我国89年提出制订了等同采用SQL/89国家标准的?关系数据库语言SQL?国家标准。SQL开展2023/11/5数据库原理与应用PrincipleandApplicationofDataBase1992年,制定了?ISO/IEC9075:1992信息技术-数据库语言SQL?,其文本长达622页,约是SQL/89文本的5倍,即,SQL/92标准。

SQL/99标准是在92年SQL92公布前后就开始进行研究的所谓SQL3。SQL/99规定的功能完全向上兼容,是SQL/92的超集。SQL/框架、SQL/根底、SQL/调用级接口(SQL/CLI)、SQL/特久存储模块(SQL/PSM)、SQL/宿主语言联,五个局部的文本共有1300多页SQL开展2023/11/5数据库原理与应用PrincipleandApplicationofDataBaseSQL200n标准在对SQL99原内容作出一定调整增删后,又增添了很多新的特性,反响了新的需求和数据库管理系统的开展方向。与SQL99相比SQL200n标准中的新特性主要有:增添了新的数据类型,主要是集合类型;增加了新的谓词和操作函数;增加了新的语义单元,主要包括:归并(MergeStatement)、OLAP表采样(TableSample)、产生列、标识列和序列产生器等。SQL开展2023/11/5数据库原理与应用PrincipleandApplicationofDataBaseSQL体系结构SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2图3-1SQL数据库体系结构外模式模式内模式SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2图3-1SQL数据库体系结构外模式模式内模式2023/11/5数据库原理与应用PrincipleandApplicationofDataBase外模式对应于视图和局部根本表,模式对应于根本表,元组称为“行〞,属性称为“列〞。内模式对应于存储文件。特征如下:一个SQL模式(Schema)是表和约束的集合。一个表(Table)是行(Row)的集合,每行是列(Column)的序列,每列对应一个数据项。—个表可以是一个根本表,也可以是一个视图,根本表是实际存储在数据库中的表,视图是一个虚表。一个根本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个根本表。SQL体系结构2023/11/5数据库原理与应用PrincipleandApplicationofDataBaseSQL语言主要分成四个局部:

数据定义:这一局部也称为“DDL〞,用于定义SQL模式、根本表、视图和索引。

数据操纵:这一局部也称为“DML〞,数据操纵分成数据查询和数据更新两类,其中数据更新又分成插入、删除和修改三种操作。

数据控制:这一局部也称为“DCL〞,包括对根本表和视图的授权,完整性规那么的描述,事务控制语句等。

嵌入式SQL:这一局部内容涉及到SQL语句嵌入在宿主语言程序中的使用规那么。SQL体系结构2023/11/5数据库原理与应用PrincipleandApplicationofDataBaseSQL特点SQL语言的特点:

1.集DDL、DML、DCL于一体SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。2.高度非过程化SQL语言进行数据操作,用户只需提出“做什么〞,而不必指明“怎么做〞,用户无需了解存取路径。3.面向集合的操作方式集合操作

2023/11/5数据库原理与应用PrincipleandApplicationofDataBaseSQL语言的特点:

4.一种语法提供两种操作方式交互式操作嵌入式操作

5.功能强大、语言简洁设计巧妙,语言十分简洁,核心功能只用了9个动词:CREATE、DROP、ALTER、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKESQL特点2023/11/5数据库原理与应用PrincipleandApplicationofDataBase结构化查询语言-SQL根本操作:1SQL简介2数据定义命令3数据操纵命令4数据控制命令5视图2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据定义命令数据库结构的建立与删除

建立CREATESCHEMA[数据库名]AUTHORIZATION<用户名>;举例:创立教师和研究生的科研档案的数据库结构(scientific_research),并授权给用户user1。 CREATESCHEMA“scientific_research〞AUTHORIZATIONuser1;2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据库结构的建立与删除

删除DROPSCHEMA<数据库名><CASCADE|RESTRICT>;CASCADE表示在删除数据库结构的同时删除数据库中所有的对象(表、视图等);RESTRICT表示只有当数据库中没有任何下属的对象时才能执行DROPSCHEMA语句。举例:删除数据库“scientific_research〞,要求连同其下属对象一起删除。DROPSCHEMAscientific_researchCASCADE;数据定义命令2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据定义命令表结构的建立、删除与修改

建立表

CREATETABLE表名(

属性1数据类型 [缺省值,列约束],

属性2数据类型[缺省值,列约束],…

属性n数据类型 [缺省值,列约束][,表级完整性约束条件]);

2023/11/5数据库原理与应用PrincipleandApplicationofDataBase说明:

表级完整性约束条件是对整个表的完整性约束,常用的是外码的设置,语句:

FOREIGNKEY(外码属性组)REFERENCES被参照表名(被参照列)。数据定义命令2023/11/5数据库原理与应用PrincipleandApplicationofDataBase

举例1:建立教师和研究生科研档案数据库中的教师信息表teacher。CREATETABLE

teacher( tnoCHAR(9)PRIMARYKEY, tnameCHAR(8), tsexCHAR(2),tageINTEGER, tbirthDATE,tworkDATE, tpositionCHAR(6), tpolitCHAR(6), teduCHAR(6)); 数据定义命令2023/11/5数据库原理与应用PrincipleandApplicationofDataBase

举例2:建立教师和研究生科研档案数据库中的论文信息表paper。数据定义命令CREATETABLE

paper( pnochar(6)primarykey,

pnamechar(40),

plevelchar(10),

ppubchar(20),

pdatedate,

pdeptchar(20));2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据定义命令

举例3:建立论文信息表和教师信息表之间的联系表(发表)tprole1CREATETABLE

tprole1( tnoCHAR(9)NOTNULL,

pnoCHAR(6)NOTNULL,

ratepointNUMBER(6,2),

ppointSMALLINT,

norderSMALLINT);2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据类型2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据类型2023/11/5数据库原理与应用PrincipleandApplicationofDataBase表结构的建立、删除与修改

删除表DROPTABLE表名[RESTRICT|CASCADE];CASCADE,DROPTABLE命令将从数据库中删除指定表的所有信息,包括依赖于该根本表的视图、触发器、存储过程、函数等相关对象;如果选择选项RESTRICT或缺省,那么不允许存在任何依赖于该根本表的相关对象(视图、触发器、存储过程、函数等),否那么DROPTABLE命令将被拒绝。数据定义2023/11/5数据库原理与应用PrincipleandApplicationofDataBase举例:删除教师研究生的科研档案数据库中的论文信息表paper。

DROPTABLEpaper;数据定义2023/11/5数据库原理与应用PrincipleandApplicationofDataBase表结构的建立、删除与修改

修改表

修改属性的数据类型增加属性列删除属性列增加和删除完整性约束条件

(唯一性、主键、外键)数据定义2023/11/5数据库原理与应用PrincipleandApplicationofDataBase1修改属性的数据类型 ALTERTABLE<表名> MODIFY(属性名数据类型名);举例:修改teacher表(教师信息表)的属性列tage(年龄)的数据类型,由原来的integer修改为smallint类型。ALTERTABLEteacherMODIFYtageSMALLINT;2增加属性列ALTERTABLE<表名> ADD<新属性名><数据类型>[完整性约束条件];举例:在paper表(论文信息表)中增加“作者姓名〞属性列,数据类型设置为字符型。 ALTERTABLEpaperADDauthorchar(10);数据定义2023/11/5数据库原理与应用PrincipleandApplicationofDataBase3删除属性列ALTERTABLE<表名>DROPCOLUMN<属性名>;举例:删除paper表(论文信息表)中的author属性。ALTERTABLEpaper DROPCOLUMNauthor;4增加主键和外键、唯一性约束〔PRIMARYKEYFOREIGNKEYUNIQUE〕ALTERTABLE<表名>ADD<完整性约束名>;举例:假设在创立paper表时没有定义主键,现要求将pno(论文编号)设置为主键。ALTERTABLEpaper ADDPRIMARYKEY(pno);数据定义2023/11/5数据库原理与应用PrincipleandApplicationofDataBase举例:增加外码键。

altertabletprole1add

FOREIGNKEY(pno)

REFERENCESpaper(pno);举例:删除属性的唯一性约束。altertablepaperdropunique(pname);数据定义2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据定义索引的建立和删除

建立索引

CREATE[UNIQUE/CLUSTER]INDEX<索引名>ON<表名>(<属性名1>[ASC/DESC][,<属性名1>[ASC/DESC]]…);举例:在教师信息表(teacher)上按姓名(tname)降序建立唯一索引。

CREATEUNIQUEINDEXteanoON teacher(tnameDESC);

在许多DBMS中,如果创立表结构时建立了主键,系统将自动以主键升序建立唯一索引2023/11/5数据库原理与应用PrincipleandApplicationofDataBase索引的建立和删除

删除索引

DROPINDEX<索引名>;

数据定义2023/11/5数据库原理与应用PrincipleandApplicationofDataBase结构化查询语言-SQL根本操作:1SQL简介2数据定义命令3数据操纵命令4数据控制命令5视图2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵数据输入(INSERT)输入新数据 INSERTINTO<表名>[(属性列表)]VALUES(<常量表>);举例:向教师信息表中插入教师“李丽〞的信息。INSERTINTOteacherVALUES(‘200305313’,‘李丽’,‘女’,35,TO_DATE(‘1971-01-25’,‘yyyy/mm/dd’),TO_DATE(‘1994-07-01’,‘yyyy/mm/dd’),

‘副教授’,‘农工’,‘硕士’);注意:数据类型、属性列的一致性,完整性约束2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵数据输入(INSERT)输入查询结果

INSERTINTO<表名>[(<属性列表>)] SELECT查询;将一次查询结果的数据成批插入到指定表中举例:从论文信息表paper中复制论文编号(pno)、论文名称(pname)和论文出版刊物(ppub)到新表p_temp中,要求只复制论文级别为“国家核心〞的那局部数据信息。2023/11/5数据库原理与应用PrincipleandApplicationofDataBase首先建立表p_temp:

CREATETABLEp_temp( pnochar(6)notnullprimarykey, pnamechar(40), ppubchar(20));数据操纵将paper表中相应的列值复制到新建的p_temp表中:

INSERTINTOp_temp SELECTpno,pname,ppub FROMpaperWHEREplevel=‘国家核心’;2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵数据更新(UPDATE)UPDATE<表名>SET<属性列>=<表达式>[,<属性列>=<表达式>]…[WHERE<条件表达式>];

UPDATE命令用提供的常量或表达式计算结果替代属性现有值,来更新由WHERE条件所决定的行中假设干属性列的值,当命令中缺省WHERE子句时将更新所有元组。2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵举例:将教师“李丽〞的职称修改为“教授〞。 UPDATEteacher SETtposition=‘教授’ WHEREtname=‘李丽’;举例:将所有教师的年龄增加1岁。

UPDATEteacher SETtage=tage+1;2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵数据删除(DELETE)DELETEFROM<表名> [WHERE<条件>];

DELETE命令将删除指定条件下的所有元组,当缺省WHERE条件子句时将删除指定表中的所有元组。2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵举例:从教师信息表teacher中删除编号为“200305310〞的教师信息。DELETEFROMteacher WHEREtno=‘200305310’;举例:从论文信息表paper中删除2000年以前发表的论文信息。

DELETE FROMpaperWHEREpdate<TO_DATE(‘2000-1’,‘yyyy/mm’);在ORACLE环境下验证的2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵举例:从教师信息表teacher中删除编号为“200305310〞的教师信息。 DELETE FROMteacher WHEREtno=‘200305310’;举例:删除全部。

DELETE FROMteacher; 2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵数据保存(COMMIT) COMMIT;

保证对表的内容的修改被物理地存储在磁盘上恢复数据(ROLLBACK)

ROLLBACK;

COMMIT前,可以用ROLLBACK命令将数据库恢复到前一状态保证数据库更新的完整性2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵查询(SELECT)

简单查询复杂查询多表查询嵌套子查询集合查询2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵查询(SELECT)简单查询SELECT[DISTINCT|ALL]<*|属性列表>FROM<表名>[WHERE<条件表达式>][GROUPBY<属性列>[HAVING<条件表达式>]][ORDERBY<属性列>[ASC|DESC]];SELECT命令从FROM指定的表中检索出符合WHERE子句中指定条件的所有元组

所有列重复行2023/11/5数据库原理与应用PrincipleandApplicationofDataBase数据操纵

举例:从教师信息表teacher中查询所有教师的编号、姓名和职称。SELECTtno,tname,tpositionFROMteacher;

举例:列出所有论文信息记录。

SELECT* FROMpaper;

举例:查找论文信息表中登记过的所有论文级别,消除重复行。SELECTDISTINCTplevel FROMpaper;2023/11/5数据库原理与应用PrincipleandApplicationofDataBaseSELECT[DISTINCT|ALL]<*|属性列表>FROM<表名>[WHERE<条件表达式>][GROUPBY

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论