SQLServer数据库访问应用程序接口-Read课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《SQLServer数据库访问应用程序接口-Read课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 数据库 访问 应用程序 接口 Read 课件
- 资源描述:
-
1、第3章 关系数据库标准语言SQL3.1.1 语言的发展及标准化语言的发展及标准化 在在70年代初,年代初,E.F.Codd首先提出了关系模型。首先提出了关系模型。70年代年代中期,中期,IBM公司在研制公司在研制 SYSTEM R关系数据库管理系统关系数据库管理系统中研制了中研制了SQL语言,最早的语言,最早的SQL语言(叫语言(叫SEQUEL2)是在是在1976 年年 11 月的月的IBM Journal of R&D上公布的。上公布的。1979年年ORACLE公司首先提供商用的公司首先提供商用的SQL,IBM公司公司在在DB2 和和SQL/DS数据库系统中也实现了数据库系统中也实现了SQL
2、。1986年年10月,美国月,美国ANSI采用采用SQL作为关系数据库管理作为关系数据库管理系统的标准语言系统的标准语言(ANSI X3. 135-1986),后为国际标准),后为国际标准化组织(化组织(ISO)采纳为国际标准。)采纳为国际标准。3.1 SQL语言的基本概念与特点 1989年,美国年,美国ANSI采纳在采纳在ANSI X3.135-1989报告中定义报告中定义的关系数据库管理系统的的关系数据库管理系统的SQL标准语言,称为标准语言,称为ANSI SQL 89。1992年,年,ISO又推出了又推出了SQL92标准,也称为标准,也称为SQL2。目前目前SQL99(也称为也称为SQL
3、3)在起草中,增加了面向对象的在起草中,增加了面向对象的功能。功能。结构化查询语言结构化查询语言SQL(Structured Query Language)是一是一种介于关系代数与关系演算之间的语言,其功能包括查种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准极强的关系数据库语言。目前已成为关系数据库的标准语言,广泛应用于各种数据库。语言,广泛应用于各种数据库。 一、关系数据库三级模式结构一、关系数据库三级模式结构3.1.2 SQL语言的基本概念语言的
4、基本概念 SQL视图1基本表2视图2基本表3基本表4基本表1存储文件1存储文件2外模式模式内模式 基本表是本身独立存在的表,在基本表是本身独立存在的表,在SQL中一个关系就对应一个中一个关系就对应一个表。一些基本表对应一个存储文件,一个表可以有若干索引,表。一些基本表对应一个存储文件,一个表可以有若干索引,索引也存放在存储文件中。索引也存放在存储文件中。 视图是从基本表或其他视图中导出的表,它本身不独立存储视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库中只存放视图的定义而不存放在数据库中,也就是说数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导
5、出视图的基本表中,视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。因此视图是一个虚表。 存储文件的物理结构及存储方式等组成了关系数据库的内模存储文件的物理结构及存储方式等组成了关系数据库的内模式。存储文件的物理结构及存储方式等不同数据库管理系统式。存储文件的物理结构及存储方式等不同数据库管理系统往往是不同的,一般也是不公开的。往往是不同的,一般也是不公开的。 外模式对应于视图(外模式对应于视图(View)和部分基本表()和部分基本表(Base Table); 模式对应于基本表模式对应于基本表; 内模式对应于存储文件。内模式对应于存储文件。 视图和基本表是视图和基本表是S
6、QL语言的主要操作对象,用户可以用语言的主要操作对象,用户可以用SQL语言对语言对视图和基本表视图和基本表进行各种操作。在用户眼中,视图和基进行各种操作。在用户眼中,视图和基本表都是关系表,而存储文件对用户是透明的。本表都是关系表,而存储文件对用户是透明的。 3.1.3 SQL语言的主要特点语言的主要特点1、综合统一、综合统一SQL集数据定义语言集数据定义语言DDL、数据操纵语言、数据操纵语言DML、数据控制语言、数据控制语言DCL的功的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括:包括: 定义关系模式,
7、插入数据,建立数据库定义关系模式,插入数据,建立数据库; 对数据库中的数据进行查询和更新对数据库中的数据进行查询和更新; 数据库重构和维护数据库重构和维护; 数据库安全性、完整性控制。数据库安全性、完整性控制。SQL集数据查询、数据操纵、数据定义集数据查询、数据操纵、数据定义 和数据控制功能于一体,主和数据控制功能于一体,主要特点包括:要特点包括:2、高度非过程化、高度非过程化非关系数据模型的数据操纵语言是非关系数据模型的数据操纵语言是“面向过程面向过程”的,用的,用“过程化过程化”语言语言完成某项请求,必须指定存储路径。完成某项请求,必须指定存储路径。SQL进行数据操作,只要提出进行数据操作
8、,只要提出“做什么做什么”,而无须指明,而无须指明“怎么做怎么做”,因,因此无需了解存储路径。存储路径的选择以及此无需了解存储路径。存储路径的选择以及SQL的操作过程由系统自动完的操作过程由系统自动完成。这样可以减轻用户的负担,也提高了数据独立性。成。这样可以减轻用户的负担,也提高了数据独立性。3、面向集合的操作方式、面向集合的操作方式非关系数据模型得采用提面向记录的操作方式,操作对象是一条记录。非关系数据模型得采用提面向记录的操作方式,操作对象是一条记录。SQL采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删
9、除、更新操作的对象也可以是元组的集合。而且一次插入、删除、更新操作的对象也可以是元组的集合。4、以同一种语法结构提供多种使用方、以同一种语法结构提供多种使用方式式SQL既是独立的语言,又是嵌入式语言。既是独立的语言,又是嵌入式语言。作为独立的语言,它能够独立地用于联机交互的使用方式,用户可以在作为独立的语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入终端键盘上直接键入SQL命令对数据库进行操作命令对数据库进行操作;作为嵌入式语言,作为嵌入式语言,SQL语句能够嵌入到高级语言(如语句能够嵌入到高级语言(如C、C+、Java)程序中,供程序员设计程序时使用。程序中,供程序员设
10、计程序时使用。而在两种不同的使用方式下,而在两种不同的使用方式下,SQL的语法结构基本上是一致的。的语法结构基本上是一致的。4、以同一种语法结构提供多种使用方、以同一种语法结构提供多种使用方式式5、语言简洁,易学易用、语言简洁,易学易用SQL功能极强,完成核心功能只用了功能极强,完成核心功能只用了9个动词,接近英语口语,所以容易个动词,接近英语口语,所以容易学习,易于使用。学习,易于使用。数据查询数据查询数据定义数据定义数据操纵数据操纵数据控制数据控制SELECTCREATE DROP ALTERINSERT UPDATE DELETEGRANT REVOKE3.2.1 字段数据类型字段数据类
11、型 整数数据类型整数数据类型: bigint,int,smallint,tinyint 精确数值类型精确数值类型: numeric,decimal 近似浮点数值数据类型近似浮点数值数据类型: float,real 日期时间数据类型日期时间数据类型 : datetime,smalldatetime 字符串数据类型字符串数据类型: char,varchar,text Unicode字符串数据类型字符串数据类型: nchar,nvarchar,ntext 二进制数据类型二进制数据类型: binary、varbinary、image 货币数据类型货币数据类型: money,smallmoney 标记数
12、据类型标记数据类型: timestamp,uniqueidentifier 具体见书具体见书P74表表3.13.2 SQL数据定义1、定义基本表、定义基本表 CREATE TABLE ( 列级完整性约束条件列级完整性约束条件 , 列级完整性约束条件列级完整性约束条件 ,) 3.2.2 创建、修改和删除数据表创建、修改和删除数据表建表的同时通常还可以定义与该表有关的完整性约束条件,这建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由数据时由DBMS自动检查该操作是否违背这些完整
13、性约束条件。自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及到该表的多个属性列,则必须定义在如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。表级上,否则既可以定义在列级也可以定义在表级。(1)实体完整性)实体完整性 主码主码(Primary Key)要求:要求: 一个基本表中只能定义一个一个基本表中只能定义一个Primary Key约束约束; 作为作为Primary Key的任何列不能出现空值的任何列不能出现空值; 定义为表级约束的语法格式:定义为表级约束的语法格式: constraint 约束名约束名 Primary Key
14、 (列列1 ASC|DESC,n) 空值空值(Null/Not Null)要求:该约束只能用于列级约束。要求:该约束只能用于列级约束。 唯一值唯一值(Unique)要求:要求: 表示某一列或多个列的组合上的取值必须唯一,系统会自动表示某一列或多个列的组合上的取值必须唯一,系统会自动 为其建立唯一索引为其建立唯一索引; 定义为表级约束的语法格式:定义为表级约束的语法格式: constraint 约束名约束名 Unique Clustered|NonClustered (列列1 ASC|DESC,n)例例1、建立、建立Student表表(Sno char(9) 主码、主码、Sname char(2
15、0) 不为空、不为空、 Ssex char(2)、Sage smallint、Sdept char(20)CREATE TABLE Student ( Sno char(9) PRIMARY KEY, /*在列级定义主码在列级定义主码*/ Sname char(20) NOT NULL, Ssex char(2), Sage smallint, Sdept char(20) )CREATE TABLE Student ( Sno char(9), Sname char(20) NOT NULL, Ssex char(2), Sage smallint, Sdept char(20), /*在表
16、级定义主码在表级定义主码*/ PRIMARY KEY (Sno) )例例2、建立、建立SC表表( Sno char(9) 不为空、不为空、Cno char(4) 不为空、不为空、 Grade Smallint),将,将Sno,Cno属性组定义为主码。属性组定义为主码。CREATE TABLE SC ( Sno char(9) NOT NULL, Cno char(4) NOT NULL, Grade smallint, PRIMARY KEY (Sno,Cno) /*只能在表级定义主码只能在表级定义主码*/ )(2)参照完整性)参照完整性通过通过FOREIGN KEY短语定义哪些列为外码,用短
17、语定义哪些列为外码,用REFERENCES短语短语指明这些外码参照哪些表的主码。指明这些外码参照哪些表的主码。表级约束的语法格式为:表级约束的语法格式为: constraint 约束名约束名 Foreign Key (子表列子表列1,n) References 主表名主表名 (主表列主表列1,n) ON DELETE CASCADE|NO ACTION ON UPDATE CASCADE|NO ACTION 其中:其中:CASCADE 是级联操作是级联操作; NO ACTION 是拒绝操作。是拒绝操作。例例1、建立、建立SC表表( Sno char(9) 不为空、不为空、Cno char(4)
18、 不为空、不为空、 Grade Smallint),(Sno,Cno)是主码,是主码,Sno和和Cno分分 别参照引用别参照引用Student表的主码和表的主码和Course表的主码。表的主码。CREATE TABLE SC ( Sno char(9) NOT NULL, Cno char(4) NOT NULL, Grade smallint, PRIMARY KEY (Sno,Cno) /*在表级上定义实体完整性在表级上定义实体完整性*/ FOREIGN KEY (Sno) REFERENCES Student (Sno), /*在表级上定义参照完整性在表级上定义参照完整性*/ FOREI
19、GN KEY (Cno) REFERENCES Course(Cno) )例例2、显示说明参照完整性的违约处理示例。、显示说明参照完整性的违约处理示例。CREATE TABLE SC( Sno char(9) NOT NULL, Cno char(4) NOT NULL, Grade smallint , PRIMARY KEY(Sno,Cno), Foreign Key (Sno) References Student(Sno) ON DELETE CASCADE ON UPDATE CASCADE, Foreign Key (Cno) References Course(Cno) ON D
20、ELETE NO ACTION /*当删除当删除Course表中的元组造成了与表中的元组造成了与SC表不一致时拒绝删除表不一致时拒绝删除*/ ON UPDATE CASCADE /*当更新当更新Course表中的表中的Cno时,级连更新时,级连更新SC表中相应的元组表中相应的元组*/)(3)用户定义完整性)用户定义完整性Check可用于定义用户自定义的完整性约束规则。语法格式为:可用于定义用户自定义的完整性约束规则。语法格式为: Constraint 约束名约束名 CHECK (条件条件)例例1、建立、建立Student表,要求表,要求Ssex列只允许取列只允许取“男男”或或“女女”。CREA
21、TE TABLE Student ( Sno char(9) PRIMARY KEY, /*在列级定义主码在列级定义主码*/ Sname char(20) NOT NULL, Ssex char(2) CHECK (Ssex IN (男男,女女), Sage smallint, Sdept char(20) )例例2、建立、建立SC表,要求表,要求Grade的值应该在的值应该在0和和100之间。之间。CREATE TABLE SC ( Sno char(9) NOT NULL, Cno char(4) NOT NULL, Grade smallint CHECK (Grade=0 and Gr
22、ade=100), PRIMARY KEY (Sno,Cno) /*只能在表级定义主码只能在表级定义主码*/ )例例3、建立、建立Student表,要求当学生的性别是男时,其名字不能以表,要求当学生的性别是男时,其名字不能以Ms.打头。打头。CREATE TABLE Student ( Sno char(9), Sname char(20) NOT NULL, Ssex char(2), Sage smallint, Sdept char(20), PRIMARY KEY (Sno), CHECK (Ssex=女女 OR Sname NOT LIKE Ms.% ) )(4)完整性约束的命名)完
23、整性约束的命名SQL在在CREATE TABLE语句中提供了完全性约束命名子句语句中提供了完全性约束命名子句Constraint,用来对完整性约束条件命名。从而可以灵活地增加、,用来对完整性约束条件命名。从而可以灵活地增加、删除一个完整性约束条件。删除一个完整性约束条件。例、建立学生登记表例、建立学生登记表Student,要求学号在,要求学号在9000099999之间,姓名之间,姓名不能取空值,年龄小于不能取空值,年龄小于30,性别只能是性别只能是“男男”或或“女女”,主码为,主码为Sno。CREATE TABLE Student ( Sno numeric(6) CONSTRAINT C1
24、Check (Sno BETWEEN 90000 AND 99999), Sname char(20) NOT NULL, Ssex char(2) CONSTRAINT C2 Check (Ssex IN (男男,女女) Sage smallint CONSTRAINT C3 Check (Sage0), DEPT VARCHAR(20), CONSTRAINT SN_U UNIQUE(SN) )例例2 建立建立“课程课程”表表C,它由课程号(,它由课程号(CNO)、课程名()、课程名(CN)、)、学分(学分(CT)三个属性组成。)三个属性组成。CNO为该表主键,学分大于等于为该表主键,学分
25、大于等于1。 CREATE TABLE C ( CNO CHAR(5) NOT NULL PRIMARY KEY, CN VARCHAR(20), CT INT CHECK (CT=1) )CREATE TABLE SC ( SNO CHAR(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES S(SNO), CNO CHAR(5) NOT NULL, SCORE NUMERIC(3), CONSTRAINT S_C_P PRIMARY KEY (SNO,CNO), CONSTRAINT C_F FOREIGN KEY(CNO) REFERENC
展开阅读全文