【精品】关系数据库标准语言sql(可编辑.ppt
《【精品】关系数据库标准语言sql(可编辑.ppt》由会员分享,可在线阅读,更多相关《【精品】关系数据库标准语言sql(可编辑.ppt(149页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关系数据库标准语言SQL3.1 3.1 SQLSQL概述概述SQL语言及其标准2020世纪世纪7070年代中期,年代中期,IBMIBM公司在研制公司在研制System-R System-R RDBMSRDBMS的过程中,开发了世界上最早的的过程中,开发了世界上最早的SQLSQL语言,后语言,后来在许多数据库系统中被使用,由于其广泛的使用,来在许多数据库系统中被使用,由于其广泛的使用,出现标准化需求,形成出现标准化需求,形成SQLSQL标准。标准。SQL-86SQL-86SQL-89SQL-89SQL-92(SQL2)SQL-92(SQL2)SQL:1999(SQL3)SQL:1999(SQL3
2、)SQL2003SQL2003SQLSQL语言特点语言特点SQL的特点综合统一高度非过程化面向集合的操作方式以同一种语法结构提供两种使用方法语言简洁,易学易用5.5.语言简捷,易学易用语言简捷,易学易用3.2 3.2 架构(架构(SCHEMASCHEMA)CREATE CREATE SCHEMA SCHEMA AUTHORIZATION AUTHORIZATION CREATE SCHEME ST AUTHORIZATION WANGCREATE SCHEME ST AUTHORIZATION WANGDROP SCHEME DROP SCHEME DROP SCHEME ZHANG CSCA
3、DEDROP SCHEME ZHANG CSCADE架构与表架构与表要为每一个基本表指定所属模式,可通要为每一个基本表指定所属模式,可通过以下方式:过以下方式:在表名中显式地给出模式名;在表名中显式地给出模式名;在创建模式时创建表;在创建模式时创建表;设置所属的模式设置所属的模式3.33.3基本表的定义、删除和修改基本表的定义、删除和修改CREATE TABLE CREATE TABLE (,););:所要定义的基本表的名字:所要定义的基本表的名字 :组成该表的各个属性(列):组成该表的各个属性(列):仅仅涉涉及及单单列列的的完完整整性约束条件性约束条件 :涉及一个或多个属:涉及一个或多个属性
4、列的完整性约束条件性列的完整性约束条件 定义基本表(续)定义基本表(续)常用完整性约束常用完整性约束主码约束主码约束:PRIMARY KEYPRIMARY KEY唯一性约束:唯一性约束:UNIQUEUNIQUE非空值约束:非空值约束:NOT NULLNOT NULL检查约束:检查约束:CHECKCHECK参照完整性约束参照完整性约束:FOREIGN KEYFOREIGN KEY(属性名属性名)REFERENCESREFERENCES 表名表名(属性名属性名)PRIMARY KEYPRIMARY KEY与与 UNIQUE UNIQUE的区别?的区别?可使用可使用 UNIQUE UNIQUE 约束
5、确保在非主键列中不输入约束确保在非主键列中不输入重复值。重复值。UNIQUE UNIQUE 约束和约束和 PRIMARY KEY PRIMARY KEY约束都强制唯一约束都强制唯一性,性,一个表可以定义多个一个表可以定义多个 UNIQUE UNIQUE 约束,而只能定约束,而只能定义一个义一个 PRIMARY KEY PRIMARY KEY 约束。约束。允许空值的列。允许空值的列。允许空值的列上可以定义允许空值的列上可以定义 UNIQUE UNIQUE 约束,而不能定义约束,而不能定义 PRIMARY KEY PRIMARY KEY 约束。约束。SQL Server2005SQL Server
6、2005数据类型数据类型二进制数据类型二进制数据类型字符数据类型字符数据类型 Unicode Unicode 数据类型数据类型 日期和时间数据类型日期和时间数据类型 数值数据类型数值数据类型货币数据类型货币数据类型特殊数据类型特殊数据类型 二进制数据类型二进制数据类型Binary(N)Binary(N)是是 n n(1 1 到到 8000 8000)位固定位固定的二进制数据。的二进制数据。Varbinary(N)Varbinary(N)是是 n n(1 1 到到 8000 8000)位)位变长度的二进制数据。变长度的二进制数据。ImageImage 数据类型中存储的数据是以位字符串数据类型中存
7、储的数据是以位字符串存储的,不是由存储的,不是由 SQL Server SQL Server 解释的,必须解释的,必须由应用程序来解释。由应用程序来解释。字符型数据类型字符型数据类型CharChar(n n)定长字符数据,其长度最多为定长字符数据,其长度最多为 8KB8KB。VarChar VarChar(n n)是变长字符数据,其长度最是变长字符数据,其长度最多为多为 8KB 8KB。TextText数据类型,可用来存储超过数据类型,可用来存储超过8KB8KB的的ASCLLASCLL数据。数据。UnicodeUnicode 数据类型数据类型它为每种语言中的每个字符设定了统一并且它为每种语言中
8、的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。行文本转换、处理的要求。Unicode Unicode 数据类型包括数据类型包括 Nchar,Nvarchar Nchar,Nvarchar 和和NtextNtext。使用使用Unicode Unicode 数据类型,所占用的存储空间数据类型,所占用的存储空间是使用非是使用非 Unicode Unicode 数据类型所占用空间的两数据类型所占用空间的两倍。倍。日期和时间数据类型日期和时间数据类型 Date timeDate time所存储的日期范围是从所存储的日期范围
9、是从 1753 1753 年年 1 1 月月 1 1 日开始,到日开始,到9999 9999 年年1212月月3131日结束,日结束,每一个值要求每一个值要求 8 8 个存储字节。个存储字节。SmalldatetimeSmalldatetime所存储的日期范围是所存储的日期范围是 1900 1900年年1 1月月1 1日开始,到日开始,到 2079 2079 年年 12 12 月月 31 31 日结束,日结束,每一个值要求每一个值要求 4 4 个存储字节。个存储字节。日期格式包括日期格式包括 MDY MDY、DMYDMY、YMDYMD、YDMYDM、MYD MYD 和和 DYM DYM。在默认
10、情况下,日期格式为。在默认情况下,日期格式为 MDY MDY,可通过可通过Set DateFormatSet DateFormat改变。改变。数值数据类型数值数据类型 整数数据类型:整数数据类型:intint、smallintsmallint、tinyinttinyint分分别用别用4 4、2 2、1 1个字节存储整数。个字节存储整数。精确小数精确小数DecimalDecimal(n,m)n,m)和和NumbericNumberic(n,m),(n,m),占用存储空间由数据位数确定。占用存储空间由数据位数确定。decimal decimal 数据类型最多可以存储数据类型最多可以存储 38 38
11、 个数字,个数字,所有这些数字均可位于小数点后面。所有这些数字均可位于小数点后面。decimal decimal 数据类型存储精确的数字表示形式,存储值没数据类型存储精确的数字表示形式,存储值没有近似值。有近似值。定义定义 decimal decimal 列、变量和参数的两种属性为:列、变量和参数的两种属性为:p p:指定精度或对象能够支持的数字个数。指定精度或对象能够支持的数字个数。s s:指定可以放在小数点右边的小数位数或数字个数。指定可以放在小数点右边的小数位数或数字个数。p p 和和 s s 必须遵守规则:必须遵守规则:0=0=s s=p p=38=38。numeric numeric
12、 和和 decimal decimal 数据类型的默认最大精度为数据类型的默认最大精度为 3838。在。在 Transact-SQL Transact-SQL 中,中,numeric numeric 的功能等同于的功能等同于 decimal decimal 数据类型。数据类型。当数据值必须严格按指定存储时,可以使用当数据值必须严格按指定存储时,可以使用 decimal decimal 数据类型来存储带小数的数字。数据类型来存储带小数的数字。decimal(2,1)decimal(2,1),有效长度为,有效长度为2 2,小数位占,小数位占1 1位。位。此时,插入数据此时,插入数据“12.3”“1
13、2.3”、“12”“12”等会出现等会出现“数数据溢出错误据溢出错误”的异常;插入的异常;插入“1.23”“1.23”或或“1.2345.”“1.2345.”会自动四舍五入成会自动四舍五入成“1.2”“1.2”;插入;插入“2”“2”会自动补成会自动补成“2.0”“2.0”,以确保,以确保2 2位的有效长位的有效长度,其中包含度,其中包含1 1位小数。位小数。近似小数近似小数realreal和和floatfloatfloat float 和和 real real 数据类型被称为近似数据类型。数据类型被称为近似数据类型。近似数值数据类型并不存储为许多数字指定的精确近似数值数据类型并不存储为许多数
14、字指定的精确值,它们只储存这些值的最近似值。由于值,它们只储存这些值的最近似值。由于 float float 和和 real real 数据类型的这种近似特性,因此当要求使数据类型的这种近似特性,因此当要求使用精确数值时,比如在财务应用程序、需要等值核用精确数值时,比如在财务应用程序、需要等值核对中,请勿使用这些数据类型。而应使用对中,请勿使用这些数据类型。而应使用 integer integer、decimaldecimal、money money 或或 smallmoney smallmoney 数据类型。数据类型。在在 WHERE WHERE 子句搜索条件(特别是子句搜索条件(特别是=和
15、和 运算符)运算符)中,应避免使用中,应避免使用 float float 列或列或 real real 列。列。float float 列列和和 real real 列最好只限于列最好只限于 比较或比较或 比较。比较。货币数据类型货币数据类型Money Money 数据类型要求数据类型要求 8 8 个存储字节个存储字节Smallmoney Smallmoney 数据类型要求数据类型要求 4 4 个存储字节个存储字节两者都带有四位小数两者都带有四位小数货币数据不需要用单引号货币数据不需要用单引号()()引起来。虽引起来。虽然可以指定前面带有货币符号的货币值,但然可以指定前面带有货币符号的货币值,
16、但 SQL Server SQL Server 不存储任何与符号关联的货币不存储任何与符号关联的货币信息,它只存储数值。信息,它只存储数值。特殊数据类型特殊数据类型TimestampTimestamp 用于表示用于表示SQL Server SQL Server 活动的先后活动的先后顺序,与插入数据或者日期和时间没有关系。顺序,与插入数据或者日期和时间没有关系。uniqueidentifieruniqueidentifier此类型数据存储二进制值,此类型数据存储二进制值,其作用与全局唯一标识符其作用与全局唯一标识符(GUID)(GUID)一样。一样。GUID GUID 主要用于在有多个节点、多台
17、计算机的网络中,主要用于在有多个节点、多台计算机的网络中,分配必须具有唯一性的标识符。占用分配必须具有唯一性的标识符。占用16bytes16bytes存储空间。存储空间。BitBit由由1 1或者或者0 0组成。当表示真或者假、组成。当表示真或者假、ON ON 或或者者 OFF OFF 时,使用时,使用 Bit Bit 数据类型。数据类型。例例1 1 建建立立一一个个“学学生生”表表StudentStudent,它它由由学学号号SnoSno、姓姓名名SnameSname、性性别别SsexSsex、年年龄龄SageSage、所所在在系系SdeptSdept五五个个属属性性组组成成。其其中中学学号
18、号不不能能为为空空,值是唯一的,并且姓名取值也唯一。值是唯一的,并且姓名取值也唯一。CREATE TABLE Student CREATE TABLE Student (Sno CHAR(5)NOT NULL UNIQUE (Sno CHAR(5)NOT NULL UNIQUE,Sname CHAR(20)UNIQUE Sname CHAR(20)UNIQUE,Ssex CHAR(1)Ssex CHAR(1),Sage INT Sage INT,Sdept CHAR(15)Sdept CHAR(15);例例2 2 建立一个建立一个“学生选课学生选课”表表SCSC,它由学号,它由学号SnoSno
19、、课程、课程号号CnoCno,修课成绩,修课成绩GradeGrade组成,其中组成,其中(Sno,Cno)(Sno,Cno)为主码为主码,Sno,Sno为外码参照为外码参照student.sno,student.sno,成绩在【成绩在【0 0100100】。】。CREATE TABLE SC(CREATE TABLE SC(Sno CHAR(5),Sno CHAR(5),Cno CHAR(3),Cno CHAR(3),Grade int,Grade int,CONSTRAINT grd_chk CHECK(Grade between 0 and CONSTRAINT grd_chk CHECK
20、(Grade between 0 and 100)100)Primary key(Sno,Cno)Primary key(Sno,Cno),CONSTRAINT frk_Sno FOREIGN KEY(Sno)CONSTRAINT frk_Sno FOREIGN KEY(Sno)REFERENCE student(Sno)REFERENCE student(Sno)ON DELETE CSCADE ON DELETE CSCADE ON UPDATE CSCADE;ON UPDATE CSCADE;二、修改基本表二、修改基本表ALTER TABLE ALTER TABLE ADD ADD 完整
21、性约束完整性约束 DROP DROP|ALTER ALTER ;:要修改的基本表:要修改的基本表ADDADD子句:增加新列和新的完整性约束条件子句:增加新列和新的完整性约束条件DROPDROP子句:删除指定的完整性约束条件或字段子句:删除指定的完整性约束条件或字段ALTERALTER子句:用于修改列名和数据类型子句:用于修改列名和数据类型向向StudentStudent表表增增加加“入入学学时时间间”列列,其其数数据据类类型型为为日日期期型。型。ALTER TABLE Student ADD Scome DATEALTER TABLE Student ADD Scome DATE;不不论论基基
22、本本表表中中原原来来是是否否已已有有数数据据,新新增增加加的的列列一一律律为为空值。空值。删除属性列删除属性列ALTER TABLE Student DROP COLUMN ScomeALTER TABLE Student DROP COLUMN Scome;将年龄的数据类型改为半字长整数。将年龄的数据类型改为半字长整数。ALTER TABLE Student MODIFY Sage SMALLINTALTER TABLE Student MODIFY Sage SMALLINT;删除学生姓名必须取唯一值的约束。删除学生姓名必须取唯一值的约束。ALTER TABLE Student DROP
23、UNIQUE(Sname)ALTER TABLE Student DROP UNIQUE(Sname);三、删除基本表三、删除基本表 DROP TABLE DROP TABLE;基基本本表表定定义义一一旦旦删删除除,表表中中的的数数据据、此此表表上上建建立立的的索索引引和和视视图图都都将将自自动动被被删删除除掉掉。但但是是有有的的系系统统,如如OracleOracle则则将将视视图图定定义义保保留留在在数数据据字字典典中中。但但是是用用户户引引用用时就报错。时就报错。删除删除StudentStudent表表DROP TABLEDROP TABLEStudent;Student;3.4 3.4
24、索引索引 索引索引一一个个索索引引就就是是一一个个指指向向表表中中数数据据的的指指针针,记记录了被索引列的每一个取值在表中的位置录了被索引列的每一个取值在表中的位置索引用途索引用途建立索引是加快查询速度的有效手段建立索引是加快查询速度的有效手段保证数据唯一性保证数据唯一性加快表联接的速度加快表联接的速度3.4 3.4 索引索引 索引类型索引类型单列索引单列索引唯一索引唯一索引符合索引符合索引3.4 3.4 索引索引 建立索引建立索引DBADBA或表的属主(即建立表的人)根据需要建立或表的属主(即建立表的人)根据需要建立SQL SERVERSQL SERVER自动建立以下列上的索引自动建立以下列
25、上的索引 PRIMARY KEYPRIMARY KEY UNIQUE UNIQUE维护索引维护索引 DBMS DBMS自动完成自动完成使用索引使用索引 DBMS DBMS自动选择是否使用索引以及使用哪些索引自动选择是否使用索引以及使用哪些索引一、建立索引一、建立索引 语句格式语句格式CREATE CREATE UNIQUE UNIQUE CLUSTERCLUSTER INDEX INDEX ON ON (,);用用 指定要建索引的基本表名字指定要建索引的基本表名字索索引引可可以以建建立立在在该该表表的的一一列列或或多多列列上上,各各列列名之间用逗号分隔名之间用逗号分隔用用 指指定定索索引引值值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 关系 数据库 标准 语言 sql 编辑
限制150内