数据库sql基础知识大全.ppt
《数据库sql基础知识大全.ppt》由会员分享,可在线阅读,更多相关《数据库sql基础知识大全.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Spring,2009.1数据库原理主讲:赵海霞主讲:赵海霞河南科技大学电信学院河南科技大学电信学院Spring,2009.2第三章关系数据库语言SQLn概述概述nSQL的数据定义的数据定义nSQL的数据操纵的数据操纵nSQL的视图定义的视图定义nSQL的数据控制的数据控制n嵌入式嵌入式SQL第三章关系数据库语言SQLSpring,2009.3概述nSQL(StructuredQueryLanguage)是)是1974年由年由Boyde和和Chamberlin提出的提出的F1974年年IBM的的SystemRF1979年年OracleF1982年年IBM的的DB2F1984年年Sybasen1
2、986年年10月月ANSI公布公布SQL-86标准标准n1989年年ISO公布公布SQL-89标准(标准(120页)页)n1992年公布年公布SQL-92标准(标准(622页)页)n1999年公布年公布SQL-99标准(标准(1700页)页)n2003年公布年公布SQL-2003标准(标准(3600页)页)第三章关系数据库语言SQL3.1概述Spring,2009.4SQL语言的特点n综合统一综合统一F集集DDL、DML、DCL为一体为一体F实体和联系都是关系,因此每种操作只需一种操作符实体和联系都是关系,因此每种操作只需一种操作符n高度非过程化高度非过程化n面向集合的操作方式面向集合的操作方
3、式n以同一种语法结构提供两种使用方式(以同一种语法结构提供两种使用方式(交互式和嵌入式交互式和嵌入式)n语言简捷,易学易用语言简捷,易学易用F数据定义数据定义CREATE、DROP、ALTERF数据查询数据查询SELECTF数据更新数据更新INSERT、UPDATE、DELETEF数据控制数据控制GRANT、REVOKE第三章关系数据库语言SQL3.1概述Spring,2009.5SQL语言的特点n支持三级模式结构支持三级模式结构视图视图外模式外模式基本表(的集合)基本表(的集合)模式模式存储文件和索引存储文件和索引内模式内模式第三章关系数据库语言SQL3.1概述Spring,2009.6SQ
4、L数据库体系结构SQLSQL用户用户视图视图基本表基本表存储文件存储文件第三章关系数据库语言SQL3.1概述Spring,2009.7SQL的组成数据定义语言(The Data Definition Language,DDL)数据操作语言(The Data Manipulation Language,DML)嵌入式和动态SQL事务管理安全性管理触发器和高级完整性约束客户服务器执行和远程数据库存取高级特性第三章关系数据库语言SQL3.1概述Spring,2009.8SQL的数据定义n定义和修改基本表(定义模式中的关系):定义和修改基本表(定义模式中的关系):FCREATETABLEFDROPTA
5、BLEFALTERTABLEn定义视图(定义外模式):定义视图(定义外模式):FCREATEVIEWFDROPVIEWn定义索引(定义内模式):定义索引(定义内模式):FCREATEINDEXFDROPINDEX第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.9基本表的定义n基本格式基本格式CREATETABLE(,););:所要定义的基本表的名字:所要定义的基本表的名字:组成该表的各个属性(列):组成该表的各个属性(列):涉及相应属性列的完整性约束条件:涉及相应属性列的完整性约束条件:涉及一个或多个属性列的完整性约:涉及一个或多个属性列的完整性约束条件束条件第三章关系
6、数据库语言SQL3.2SQL的数据定义Spring,2009.10例例1建建立立一一个个“学学生生”表表Student,它它由由学学号号Sno、姓姓名名Sname、性性别别Ssex、年年龄龄Sage、所所在在系系Sdept五五个个属属性性组组成成。其其中中学学号号不不能能为为空空,值是唯一的,并且姓名取值也唯一。值是唯一的,并且姓名取值也唯一。CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINT,SdeptCHAR(15);基本表的定义第三章关系数据库语言SQL3.2SQL的数据定义
7、Spring,2009.11基本表的定义n说明:说明:FSQL支持空值的概念。允许空值的列未输入支持空值的概念。允许空值的列未输入数据时系统自动置为空值。数据时系统自动置为空值。FSQL支持的数据类型随系统不同而有所差支持的数据类型随系统不同而有所差异,但一般都有:异,但一般都有:全字长整型、半字长整型、定点实型、全字长整型、半字长整型、定点实型、浮点实型、浮点实型、CHAR(n)、)、VARCHAR(n)、TEXT、DATE第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.12基本表的定义n常用完整性约束常用完整性约束F主码约束:主码约束:PRIMARYKEYF唯一性约
8、束:唯一性约束:UNIQUEF非空值约束:非空值约束:NOTNULLF参照完整性约束参照完整性约束FOREIGNKEYFcheckcheck约束约束思考:思考:PRIMARYKEY与与UNIQUE的区别?的区别?nPrimarykey在建立的时候会默认地建立此在建立的时候会默认地建立此field的索引,的索引,且此且此primarykey可以作为作为另外的表的可以作为作为另外的表的foreignkey;n再者再者primarykey跟跟unique的区别是是Primarykey一定是一定是notnull,而,而unique则没有此限制则没有此限制第三章关系数据库语言SQL3.2SQL的数据定义
9、Spring,2009.13SQLServer2005中的数据类型精确数字精确数字bigintdecimalintnumericsmallintmoneytinyintsmallmoneybit近似数字近似数字floatreal日期和时间日期和时间datetimesmalldatetime字符串字符串chartextvarcharUnicode字符串字符串ncharntextnvarchar二进制字符串二进制字符串binaryimagevarbinary其他数据类型其他数据类型cursortimestampsql_variantuniqueidentifiertablexmlSpring,20
10、09.14n例例2建立一个建立一个“课程课程”表表C,它由课程,它由课程号号Cno,课程名称,课程名称Cname,教师,教师Teacher组成,其中组成,其中Cno为主码。为主码。FCREATETABLEC(FCnoCHAR(5),FCnameCHAR(10),FTeacherCHAR(10),FPrimarykey(Cno);F或像书上写的将或像书上写的将Primarykey直接定义在属性列后。直接定义在属性列后。Spring,2009.15基本表的定义n例例3建立一个建立一个“学生选课学生选课”表表SC,它由学号,它由学号Sno、课程号、课程号Cno,修课成绩,修课成绩Grade组成,其中
11、组成,其中(Sno,Cno)为主码。为主码。FCREATETABLESC(FSnoCHAR(5),FCnoCHAR(3),FGradeint,FPrimarykey(Sno,Cno),FFOREIGNKEY(Sno)REFERENCESS(Sno),FFOREIGNKEY(Cno)REFERENCESC(Cno)F);第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.16基本数据类型n(1)数值型(数值型(DB2)FSMALLINT半字长二进制整数半字长二进制整数FINTEGER全字长二进制整数全字长二进制整数FDECIMAL(P,q)或者)或者DEC(p,q)压缩十进制
12、数,共p位,其中小数点后q位FFLOAT双字长浮点数双字长浮点数n(2)字符串型字符串型FCHARTER(n)或或CHAR(n)FVARCHAR(n)n(3)时间型时间型FDATEFTIMEn(4)位串型位串型FBIT(n)Spring,2009.17基本表的删除n基本格式基本格式DROPTABLE表名表名;n示例示例DROPTABLES;第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.18基本表的修改n基本格式基本格式ALTERTABLEADD完整性约束完整性约束DROPALTERCOLUMN;:要修改的基本表要修改的基本表ADD子句子句:增加新列和新的完整性约束条件
13、增加新列和新的完整性约束条件DROP子句子句:删除指定的完整性约束条件删除指定的完整性约束条件ALTERCOLUMN子句子句:用于修改列名和数据类型用于修改列名和数据类型第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.19基本表的修改n增加列基本格式增加列基本格式ALTERTABLE表名表名ADD列名列名类型;类型;F示例示例ALTERTABLESADDADDRESSVARCHAR(30)n修改列基本格式修改列基本格式ALTERTABLE表名表名ALTERCOLUMN列名列名类型;类型;FALTERTABLESALTERCOLUMNSASMALLINT;n删除列基本格式
14、删除列基本格式ALTERTABLE表名表名DROP列名;列名;FALTERTABLESDROPUNIQUE(Sn);第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.20例子例子修改表ALTERTABLEstudentADDsnoCHAR(5)NULL-向向student表中添加一列表中添加一列snoALTERTABLEstudent-修改修改sno的定义保障此列不为空的定义保障此列不为空MODIFYsnoCHAR(5)NOTNULLALTERTABLEstudent-向向student表添加主键约束表添加主键约束ADDPRIMARYKEY(sno)ALTERTABLEs
15、tudent-从从student表删除列表删除列sexDROPCOLUMNsexSpring,2009.21例子例子修改表-向向study表中添加外键约束表中添加外键约束ALTERTABLEstudyADDCONSTRAINTfkcnoFOREIGNKEY(cno)REFERENCEScourse(cno)ONDELETECASCADEONUPDATECASCADE-向向study表中添加外键约束表中添加外键约束ALTERTABLEstudyADDCONSTRAINTfksnoFOREIGNKEY(sno)REFERENCESstudent(sno)ONDELETECASCADEONUPDAT
16、ECASCADESpring,2009.22视图的定义和修改n基本操作基本操作FCREATEVIEWFDROPVIEWn后面详细讨论后面详细讨论第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.23索引的建立和删除n建立索引是加快查询速度的有效手段建立索引是加快查询速度的有效手段n建立索引建立索引FDBA或表的属主(即建立表的人)根据需要建立或表的属主(即建立表的人)根据需要建立F有些有些DBMS自动建立以下列上的索引自动建立以下列上的索引PRIMARYKEYUNIQUEn维护索引维护索引FDBMS自动完成自动完成n使用索引使用索引FDBMS自动选择是否使用索引以及使用哪
17、些索引自动选择是否使用索引以及使用哪些索引第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.24索引的建立和删除n索引的结构RDBMS中,索引一般采用中,索引一般采用B+树或树或HASH索引实现,具体由索引实现,具体由RDBMS决定。决定。B+树具有动态平衡的优点树具有动态平衡的优点HASH索引查找速度快。索引查找速度快。索引是关系数据库的内部实现技术,属内索引是关系数据库的内部实现技术,属内模式范畴。模式范畴。用户创建索引时,可创建唯一索引、非唯用户创建索引时,可创建唯一索引、非唯一索引或聚簇索引。一索引或聚簇索引。Spring,2009.25n在在SQL86和和SQL
18、89标准中,基本表没有关键码概念,标准中,基本表没有关键码概念,可以用可以用索引索引机制来弥补。机制来弥补。n索引属于物理存储的路径概念,而不是逻辑的概念。索引属于物理存储的路径概念,而不是逻辑的概念。n在定义基本表时,还要定义索引,就把数据库的物理在定义基本表时,还要定义索引,就把数据库的物理结构和逻辑结构混在一块了。结构和逻辑结构混在一块了。n因此在因此在SQL2中引入了主码(主键)的概念,用户在创中引入了主码(主键)的概念,用户在创建基本表时用主码子句建基本表时用主码子句Primarykey直接定义主码。直接定义主码。n但至今大多数但至今大多数DBMS仍使用索引机制,有索引创建和仍使用索
19、引机制,有索引创建和撤销语句,其功能仅限于查询时起作用。撤销语句,其功能仅限于查询时起作用。Spring,2009.26索引的建立n索引建立的基本格式索引建立的基本格式ASCDESC,列名,列名ASCDESC););一个索引项对应一个记录一个索引项对应一个记录升序或降序升序或降序CREATEUNIQUECLUSTERINDEX索引名索引名ON表名(列名表名(列名第三章关系数据库语言SQL3.2SQL的数据定义聚簇索引UniqueUnique索引索引表明此索引的每个索引值只对应唯一的数据记录ClusterCluster索引索引又称聚簇索引,必须维护表中行的物理存储顺序和索引顺序一致,经常进行更新
20、操作的表不宜建立聚簇索引。Spring,2009.27索引的建立例例、为为学学生生-课课程程数数据据库库中中的的S,C,SC三三个个表表建建立立索索引引。其其中中S表表按按学学号号升升序序建建唯唯一一索索引引,C表表按按课课程程号号升升序序建建唯唯一一索索引引,SC表表按按学学号号升升序序和和课程号降序建唯一索引。课程号降序建唯一索引。CREATEUNIQUEINDEXSsnoONS(Sno);CREATEUNIQUEINDEXCcnoONC(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);第三章关系数据库语言SQL3.2SQL的数据定义Sprin
21、g,2009.28索引的建立n唯一值索引唯一值索引F对于已含重复值的属性列不能建对于已含重复值的属性列不能建UNIQUE索引索引F对对某某个个列列建建立立UNIQUE索索引引后后,插插入入新新记记录录时时DBMS会会自自动动检检查查新新记记录录在在该该列列上上是是否否取取了了重重复复值值。这相当于增加了一个这相当于增加了一个UNIQUE约束约束第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.29索引的建立n聚簇索引聚簇索引F建建立立聚聚簇簇索索引引后后,基基表表中中数数据据也也需需要要按按指指定定的的聚聚簇簇属属性性值值的的升升序序或或降降序序存存放放。也也即即聚聚簇簇
22、索索引引的的索索引引项项顺序与表中记录的物理顺序一致顺序与表中记录的物理顺序一致例:例:CREATECLUSTERINDEXSsnameONS(SN);在在S表的表的SN(姓名)列上建立一个聚簇索引,而(姓名)列上建立一个聚簇索引,而且且S表中的记录将按照表中的记录将按照SN值的升序存放值的升序存放第三章关系数据库语言SQL3.2SQL的数据定义Spring,2009.30索引的建立F在一个基本表上最多只能建立一个聚簇索引在一个基本表上最多只能建立一个聚簇索引F聚簇索引的用途:对于某些类型的查询,可以提高聚簇索引的用途:对于某些类型的查询,可以提高查询效率查询效率F聚簇索引的适用范围聚簇索引的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 sql 基础知识 大全
限制150内