书签 分享 收藏 举报 版权申诉 / 185
上传文档赚钱

类型SQLServer数据库访问应用程序接口-Read课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2950362
  • 上传时间:2022-06-14
  • 格式:PPT
  • 页数:185
  • 大小:1.40MB
  • 【下载声明】
    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

    26、ES C(CNO) )例例3 建立建立“选修选修”关系表关系表SC,定义,定义SNO,CNO为为SC的外部键,的外部键,(SNO,CNO)为该表的主键。为该表的主键。练习:建立如下表练习:建立如下表 Student(Sno,Sname,Ssex,Sage,Sdept) 要求:要求:Sno为主码,为主码,Sage在在1545间间(包括包括15和和45), Ssex只能取男或女,默认值为男。只能取男或女,默认值为男。 Course(Cno,Cname,Cpno,Ccredit) 要求:要求:Cno为主码。为主码。 Sc(Sno,Cno,Grade) 要求:要求:Sno和和Cno为主码,利用为主码,

    27、利用Sno建立与表建立与表Student 的关联、的关联、Cno建立与表建立与表Course的关联。的关联。 Grade只能接收空值或只能接收空值或0100(包括包括0和和100)的值。的值。CREATE TABLE Student ( Sno CHAR(5) NOT NULL PRIMARY KEY, Sname VARCHAR(8), Ssex CHAR(2) DEFAULT 男男 CHECK (Ssex IN (男男,女女), Sage SMALLINT CHECK(Sage=15 AND Sage=45), Sdept CHAR(2) )CREATE TABLE Course ( Cn

    28、o CHAR(2) NOT NULL PRIMARY KEY, Cname VARCHAR(20), Cpno CHAR(2), Ccredit SMALLINT)CREATE TABLE Sc ( Sno CHAR(5) NOT NULL FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL, Grade SMALLINT CHECK(Grade IS NULL) OR (Grade BETWEEN 0 AND 100), PRIMARY KEY(Sno,Cno), FOREIGN KEY(Cno) REFERENCES Cour

    29、se(Cno)ALTER TABLE 表名表名 ALTER COLUMN 列名 新类型 (长度 ,小数位 ) NULL | NOT NULL ADD 新列名 AS 表达式或别名 ,.n WITH CHECK | WITH NOCHECK ADD 完整性约束 DROP CONSTRAINT 约束名 | COLUMN 列名 ,.n CHECK | NOCHECK CONSTRAINT 约束名 ,.n 2、修改基本表、修改基本表 其中其中: 指定需要修改的基本表,指定需要修改的基本表,ADD子句用于增加新列和新的完整性约束条件,子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约

    30、束条件或原有列,子句用于删除指定的完整性约束条件或原有列,ALTER子句用于修改原有的列定义。子句用于修改原有的列定义。CHECK|NOCHECKCONSTRAINT 指定启用或禁用指定启用或禁用 constraint_name。如果禁用,将来插入或更新该列时将不用该。如果禁用,将来插入或更新该列时将不用该约束条件进行验证。此选项只能与约束条件进行验证。此选项只能与 FOREIGN KEY 和和 CHECK 约约束一起使用。束一起使用。例例4 向S表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE S ADD SCOME DATETIME例例5 将年龄的数据类型改为半字长整数。

    31、 ALTER TABLE S ALTER COLUMN AGE SMALLINT 例例6 删除例4增加的“入学时间”列。 ALTER TABLE S DROP COLUMN SCOME例例7 禁止SC中的参照完整性C_F。 ALTER TABLE S NOCHECK CONSTRAINT C_F对学生表进行如下操作:对学生表进行如下操作: 将姓名列的长度先改为将姓名列的长度先改为6 6,不允许有空值。,不允许有空值。 增加两列,性别增加两列,性别(char(2) (char(2) 电话电话(varchar(11)(varchar(11); 再将新建的两列删除。再将新建的两列删除。练习:练习:a

    32、lter tablealter table 学生学生 alter column alter column 姓名姓名 char(6) not nullchar(6) not nullgogoalter tablealter table 学生学生 add add 性别性别 char(2),char(2),电话电话 varchar(11)varchar(11)gogoalter tablealter table 学生学生 drop column drop column 性别性别, ,电话电话gogo例例: : 1) 1) 为为xsxs表添加主键约束表添加主键约束, ,该主键约束由学号单列组成该主键约

    33、束由学号单列组成, ,约束约束 名为名为pk_xhpk_xh. . 2) 2) 修改修改xsxs表的主键约束表的主键约束, ,该主键约束由学号和姓名两列该主键约束由学号和姓名两列 组成组成, ,约束名为约束名为pk_xh_xmpk_xh_xm. .1) 1) ALTER TABLEALTER TABLE xs xs ADD CONSTRAINTADD CONSTRAINT pk_xh pk_xh PRIMARY KEYPRIMARY KEY ( (学号学号) ) 2) 2) ALTER TABLEALTER TABLE xs xs DROP CONSTRAINTDROP CONSTRAINT

    34、pk_xh pk_xh GOGO ALTER TABLEALTER TABLE xs xs ADD CONSTRAINTADD CONSTRAINT pk_xh_xm pk_xh_xm PRIMARY KEYPRIMARY KEY( (学号学号, ,姓姓名名) )例例: :为选课表添加外键约束为选课表添加外键约束, ,约束名为约束名为FK_kcbhFK_kcbh, ,使之与课程表建使之与课程表建 立级联删除和级联更新操作立级联删除和级联更新操作. .ALTER TABLEALTER TABLE 选课表选课表ADD CONSTRAINTADD CONSTRAINT FK_kcbh FK_kcbh

    35、 FOREIGN KEYFOREIGN KEY ( (课程编号课程编号) ) REFERENCESREFERENCES 课程表课程表( (课程编号课程编号) )ON DELETE CASCADEON DELETE CASCADEON UPDATE CASCADEON UPDATE CASCADEUPDATEUPDATE 课程表课程表SETSET 课程编号课程编号=1111=1111WHEREWHERE 课程编号课程编号=0001=0001DELETE DELETE 课程表课程表WHERE WHERE 课程编号课程编号=1111=1111ALTER TABLEALTER TABLE 选课表选课表

    36、DROP CONSTRAINTDROP CONSTRAINT FK_kcbh FK_kcbh例例: :为选课表添加外键约束为选课表添加外键约束, ,约束名为约束名为FK_xhFK_xh, ,使之与学生表建使之与学生表建 立级联删除和级联更新操作立级联删除和级联更新操作. .ALTER TABLEALTER TABLE 选课表选课表ADD CONSTRAINTADD CONSTRAINT FK_xh FK_xh FOREIGN KEYFOREIGN KEY ( (学号学号) ) REFERENCESREFERENCES 学生表学生表( (学号学号) )ON DELETE CASCADEON DE

    37、LETE CASCADEON UPDATE CASCADEON UPDATE CASCADEALTER TABLEALTER TABLE 选课表选课表DROP CONSTRAINTDROP CONSTRAINT FK_xhFK_xh例:例:1 1)建立)建立XSXS表,包括学号表,包括学号 char(2) char(2) 姓名姓名 char(6)char(6),同时以学,同时以学 号建立唯一性约束,约束名为号建立唯一性约束,约束名为UK_xhUK_xh. . 2 2)为)为XSXS表以姓名建立唯一性约束,约束名为表以姓名建立唯一性约束,约束名为UK_xmUK_xm。 3 3)删除)删除XSXS

    38、表中的表中的UK_xhUK_xh的唯一性约束。的唯一性约束。CREATE TABLECREATE TABLE XS XS( (学号学号 charchar(2) (2) CONSTRAINTCONSTRAINT UK_xh UK_xh UNIQUEUNIQUE, , 姓名姓名 charchar(6)(6)ALTER TABLEALTER TABLE XS XS ADD ADD CONSTRAINTCONSTRAINT UK_xm UK_xm UNIQUEUNIQUE( (姓名姓名) )ALTER TABLEALTER TABLE XS XS DROP CONSTRAINTDROP CONSTRA

    39、INT UK_xh UK_xhCREATE TABLECREATE TABLE score score( (学号学号 charchar(4),(4), 课号课号 charchar(1),(1), 分数分数 decimaldecimal(5,2) (5,2) CONSTRAINTCONSTRAINT CK_cj CK_cj CHECK CHECK ( (分数分数=0 and =0 and 分数分数=100)=0 and =0 and 分数分数=150)=150)例:例:建立建立scorescore表,包括学号表,包括学号char(4) char(4) 课号课号char(1) char(1) 分数

    40、分数 decimal(5,2)decimal(5,2),为分数建立检查约束,约束名为,为分数建立检查约束,约束名为CK_cjCK_cj,要求分,要求分数只能在数只能在01000100间间8.4.5 8.4.5 默认约束默认约束例例 员工表员工表employeeemployee的的sexsex列添加默认约束,默认值是列添加默认约束,默认值是“男男”。ALTER TABLEALTER TABLE employee employee ADD CONSTRAINT ADD CONSTRAINT sex_default sex_default DEFAULT DEFAULT 男男 FORFOR sex

    41、sex 更改表更改表employeeemployee为为hire_datehire_date列定义默认约束。列定义默认约束。ALTER TABLEALTER TABLE employee employee ADD CONSTRAINT hire_date_df ADD CONSTRAINT hire_date_df DEFAULT getdate( ) FOR DEFAULT getdate( ) FOR hire_datehire_dateDROP TABLE 例例8 删除S表。 DROP TABLE S 3、删除基本表、删除基本表 建立索引是加快查询速度的有效手段。可在基本表上建立一个或建

    42、立索引是加快查询速度的有效手段。可在基本表上建立一个或多个索引,以提供多种存取路径,加快查询速度。多个索引,以提供多种存取路径,加快查询速度。 系统在存取数据时会自动选择合适的索引作为存取路径,用户不系统在存取数据时会自动选择合适的索引作为存取路径,用户不必也不能显式地选择索引。必也不能显式地选择索引。 按照索引记录的存放位置不同,可分为聚集索引按照索引记录的存放位置不同,可分为聚集索引(Clustered Index)与非聚集索引与非聚集索引(Non-Clustered Index)两类。两类。 聚集索引是指索引项的顺序与表中记录的物理顺序一致的索引组聚集索引是指索引项的顺序与表中记录的物理

    43、顺序一致的索引组织;织; 非聚集索引按照索引的字段排列记录,但是排列的结果并不会存非聚集索引按照索引的字段排列记录,但是排列的结果并不会存储在表中,而是另外存储。在检索记录时,聚集索引会比非聚集储在表中,而是另外存储。在检索记录时,聚集索引会比非聚集索引速度快,一个表中只能有一个聚集索引,而非聚集索引可以索引速度快,一个表中只能有一个聚集索引,而非聚集索引可以有多个。有多个。3.2.2 设计、创建和维护索引设计、创建和维护索引1、索引的概念、索引的概念 CREATE UNIQUE CLUSTERED|NONCLUSTERED INDEX ON | ( ASC | DESC ,.n )2、创建索

    44、引、创建索引 例例9 为学生为学生-课程数据库中的课程数据库中的S、C、SC三个表建立索引。三个表建立索引。其中其中S表按学号升序建惟一索引,表按学号升序建惟一索引,C表按课程号降序建立聚簇索引,表按课程号降序建立聚簇索引,SC表按学号升序和课程号降序建非聚簇索引。表按学号升序和课程号降序建非聚簇索引。CREATE UNIQUE INDEX S_SNO ON S(SNO)CREATE CLUSTERED INDEX C_CNO ON C(CNO DESC)CREATE NONCLUSTERED INDEX SC_SNO_CNO ON SC(SNO ASC,CNO DESC)1 1、按、按emp

    45、loyeeemployee表的表的employee_nameemployee_name列建立非聚集列建立非聚集索引。索引。 CREATE NONCLUSTERED INDEX CREATE NONCLUSTERED INDEX name_idxname_idx ON ON employee(employee_nameemployee(employee_name) )2、在学生表上创建一个名为学号、在学生表上创建一个名为学号_index的唯一性聚簇索的唯一性聚簇索 引,索引关键字为学号,降序。引,索引关键字为学号,降序。CREATE UNIQUE CLUSTEREDCREATE UNIQUE C

    46、LUSTEREDINDEXINDEX 学号学号_index_indexON ON 学生表学生表 ( (学号学号 DESC DESC ) ) 3 3、在选课表上创建一个名为学号、在选课表上创建一个名为学号_ _课号课号_index_index的非聚簇复合索引,的非聚簇复合索引,索引关键字为学号索引关键字为学号, ,课号,升序课号,升序CREATE NONCLUSTERED CREATE NONCLUSTERED INDEXINDEX 学号学号_ _课号课号_index_indexONON 学生表学生表 ( (学号学号 ASCASC , ,课号课号 ASCASC) ) 删除索引的命令语法删除索引的

    47、命令语法:DROP INDEX 例例1010 删除S表的S_SNO索引。DROP INDEX S_SNODROP INDEX S_SNO3、删除索引、删除索引 SELECT ALL|DISTINCT 目标列表达式目标列表达式,目标列表达式目标列表达式. INTO 新表名新表名FROM 表名或视图名表名或视图名,表名或视图名表名或视图名 . WHERE 条件表达式条件表达式 GROUP BY 列名列名1 HAVING 条件表达式条件表达式 ORDER BY 列名列名2 ASC|DESC .3.3 SQL数据查询3.3.1 SELECT命令的格式及其含义命令的格式及其含义1、查询指定列、查询指定列

    48、 例例11 查询全体学生的学号与姓名。 SELECT SNO,SN FROM S 例例12 查询全体学生的姓名、学号、所在系。 SELECT SN,SNO,DEPT FROM S 3.3.2 单表查询单表查询在在Select子句中给出包含所选字段的一个列表,各个字段之间用逗子句中给出包含所选字段的一个列表,各个字段之间用逗号分隔,字段的次序可以任意指定。号分隔,字段的次序可以任意指定。如在如在FromFrom子句中指定了两个表,而这两个表中又有同名子句中指定了两个表,而这两个表中又有同名的字段,使用这些字段时就应在其字段名前冠以表名。的字段,使用这些字段时就应在其字段名前冠以表名。USEUSE

    49、 JWGL JWGLSelectSelect studentstudent. .student_idstudent_id, student_name,monitor, student_name,monitor FromFrom student,class student,class WhereWhere class.class_id=student.class_id class.class_id=student.class_id 例例13 查询全体学生的详细记录。 SELECT * FROM S 等价于: SELECT SNO,SN,SEX,AGE,DEPT FROM S2、查询全部列、查询全

    50、部列 SELECT子句的不仅可以是表中的属性列,也可以是有关表达式。例例14 查全体学生的姓名及其出生年份。 SELECT SN, 2005-AGE FROM S输出的结果为: SN - - 李涛 1986 王林 1987 陈高 1984 张杰 1988 吴小丽 1986 徐敏敏 19853、查询经过计算的列、查询经过计算的列 例例15 查全体学生的姓名、出生年份和所在系,要求用小写字母表示所有系名。 SELECT SN, 出生年份出生年份:,2005-AGE,lower(DEPT) FROM S输出的结果为: SN - - - - 李涛 出生年份: 1986 信息 王林 出生年份: 1987

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:SQLServer数据库访问应用程序接口-Read课件.ppt
    链接地址:https://www.163wenku.com/p-2950362.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库