1、单击此处编辑母版文本样式,第二级,第三级,*,单击此处编辑母版标题样式,数据库原理与应用,SQL Server,2,目录,第一部分,SQL Server 2005,的安装与管理器,第二部分 数据库管理,第三部分 数据表管理,第四部分 数据管理,第五部分 视图与索引,第六部分,T-SQL,编程,第七部分 事务,第八部分 游标,第九部分 存储过程,第十部分 触发器,第十一部分 权限以及安全,第十二部分 数据库设计,第一部分,SQL Server 2005,的安装与管理器,1.,数据库的应用,2.,数据库相关概念,3.,关系数据库,4.SQL Server 2005,5.SQL Server 200
2、5,的启动,总结,数据库的应用,超市收银员扫描条码,就能调出商品价格,便于快速结账。,火车售票员录入出发地和目的就能调出车次、价格及车票剩余数量,利于快速售票。,到营业厅输入手机号和时间段就能打印出通话记录单。,录入你的游戏账号和密码就能调出玩家的信息。,网站发布的新闻、可转载的网络小说、网络视频、博客文章。,都在使用数据库,4,数据库和应用程序,2-1,数据库服务器,响应和提供数据,应用程序,操作和查询,数 据 库,5,数据库和应用程序,2-2,应用程序,作用:响应操作并显示结果,、向数据库请求数据,要求:美观、操作简单方便,数据库,作用:,存储数据、检索数据、生成新的数据,要求:统一、安全
3、性能等,6,数据库优点,存储大量数据,方便检索和访问,保持数据信息的一致、完整,共享和安全,通过组合分析,产生新的有用信息,7,数据库的相关概念,3-1,数据,Data,描述事物的符号,可以有多种形式:数字、文字、图形、图像、声音等,数据库,存放数据的地方,需要长期存放在计算机内的、有组织的、可共享的数据集合,物理形式是存储在磁盘上的一个或多个数据文件,数据库管理系统,是操纵和管理数据库的大型软件,可建立、使用和维护数据库,它对数据库进行统一管理和控制,保证数据库的安全性和完整性,8,数据库的相关概念,3-2,数据库管理员,管理和维护数据库的人,数据库系统,一般指数据库、数据库管理系统以及运
4、行硬件、应用程序、数据库管理员和用户的集合,数据模型,指数据库管理系统中数据的存储结构,9,数据库的相关概念,3-3,10,11,数据库的发展史,初级阶段,第一代数据库,出现了,层次模型、网状模型,的数据库,中级阶段,第二代数据库,关系型,数据库和结构化查询语言,高级阶段,新一代数据库,“面向对象”型数据库,关系数据库(,Relational DataBase,RDB,)就是基于关系模型的数据库,在计算机中,关系数据库是数据和数据库对象的集合。,定义,疑问,大多数公司都使用工资管理系统,对员工的信息、工资数据做统一管理。那么你所想到的张三、李四、王五,这些员工的信息在关系数据库如何有效存储的呢
5、使用数据表存储数据,!,关系数据库,12,某公司的员工信息,行,(,记录,),列(字段),数据表是由行,(Row),和列,(Column),组成的二维表。每行描述一个实体;数据表中的列通常叫做字段,,,它代表数据表中存储实体的共有属性。,那么实体和属性具体指的是什么呢?,关系数据库,数据表,13,关系数据库,实体,只要客观存在的,并且可以被描述的事物称为实体。,14,关系数据库,属性,属性是对实体具体特征的描述。,描述高明这名员工,可以从员工编号、姓名、性别、工资等方面来描述,而“员工编号、姓名、性别、工资”就称为属性。,例如,属性(字段),对不同员工的描述,其实都可以从员工编号、姓名、性
6、别、工资这几方面进行描述,但是具体到不同的员工其员工编号、姓名、性别、工资的数据是不同的,不同的数据体现了不同的实体。,不同的员工属于不同的实体,15,16,SQL Server 2005,概述,2-1,MS SQL Server 2005,是,Microsoft,开发的基于关系数据库的管理系统,采用“请求,-,应答”工作方式,SQL S,erver 2005,针对不同用户群体提供多个版本。,易用性好,受广大用户青睐。,版本,企业版,(Enterprise Edition),标准版,(Standard Edition),开发板,(Developer Edition),工作组版,(Workgro
7、up Edition),精简版,(Express Edition),SQL Server 2005,概述,2-2,17,SQL Server2005,安装要求,最少:,1.0GHz,奔腾,以上,处理器。,推荐:,2.0GHz,或速度更快的处理器,。,最小:,512MB,。,推荐:,2.048GB,或更大的内存,。,完全安装,1.7GB,。,处理器,内存,磁盘容量,MB,配置要求,硬件要求,软件要求,Windows XP Professional SP2,,,Windows Vista,的各个版,Windows2003,各个版本,,Windows 7,的各个版本。,18,SQL Server 2
8、005,的安装,演示整个安装过程,19,SQL Server2005,管理工具,Microsoft SQL Server Management Studio,开发人员和,DBA,最常用的管理工具,使用它可以执行许多,SQL Server,的核心管理任务。例如:创建数据库、创建表、,视图、存储过程、执行,SQL,语句等。,SQL Server Profiler,SQL Server2005,外围应用配置器,能帮助系统管理员监视数据库和服务器的行为,比如死锁的数量,致命的错误,跟踪,DELETE,、,INSERT,、,UPDATE,等,Transact-SQL,语句和,存储过程。便于后期一步一步分
9、析。,提供对,SQL Server2005,本地实例和远程实例,的外围应用的更多控制,提高了可管理性和安全性。,SQL Server,配置管理器,通过,SQL Server,配置管理器是对,Microsoft SQL Server,提供的各种服务进行登录身份配置、网络协议配置及服,务的停止启动配置;另外还提供一些高级选项。其中登,录身份和各种服务停止和启动配置是较为常用,.,20,21,停止和启动,SQL Server,在对,SQL Server,数据库进行任何操作之前,必须启动本地或远程,SQL Server,服务器,使用操作系统服务管理器,使用,SQL Server Configurati
10、on Manager(,配置管理,),使用,SQL Server Mangement Studio(,管理平台,),启动,SQL Server Mangement Studio,Windows,身份验证,SQL Server,身份验证,演示整个启动,/,停止过程,连接到,SQL Server2005,演示连接到服务器,选择服务器,默认本机,录入登录名和密码,单击连接,连接成功后,显示,SQL Server,企业管理器,22,23,第一部分总结,掌握技能,SQL Server 2005,的安装,SQL Server,服务的启动,/,停止,SQL Server,管理平台的进入,了解的概念,两种身份
11、验证,数据库相关概念以及相应的英文拼写,4,种数据模型,缺点:由于数据纵向发展,横向关系难以建立,数据可 能会重复出现,造成维护的不便。,层次模型,24,缺点:关系错综复杂,当数据逐渐增多时,将很难对结 构中的关联性进行维护,扩展性受到限制。,网状模型,25,优点:结构简单、格式唯一,理论基础严格,而且数据 表之间是相对独立的,目前应用最为广泛。,时下流行的,Oracle,、,SQL S,erver,、,DB2,都采用关系模型存储数据。,关系模型,2-1,26,27,关系模型,2-2,记录和记录之间通过属性之间的关系来进行连接,保证数据独立性,并形成数据集之间的关系,将面向对象的思想和数据库技
12、术结合起来,可以使数据系统的分析、设计与人们对客观世界的认识一致,。,伸缩性和扩展性,处理复杂的数据模型和关系模型。,利用继承的方法实现数据的重用,避免数据冗余。,提高了对大对象(文本、图像、视频)信息的描述、操纵和检索能力。,缺乏像关系型数据模型那样坚实成熟的理论基础。,糟糕的运行效率。,优点:,缺点:,面向对象模型,28,第二部分数据库管理,1.,数据库分类,2.,数据库文件,3.,数据库的创建、修改(管理平台),4.,数据库的分离和附加,5.,数据库的脱机和联机,6.,数据库的删除,7.,数据库的创建、删除(,SQL,语句),总结,数据库的分类,系统数据库,用户数据库,数,据,库,30,
13、创建数据库,-,数据库文件的构成,数 据 库,必备文件,主数据文件,.mdf,日志文件,.ldf,次数据文件,.ndf,可选文件,一个数据库只能有一个主数据文件,一个数据库可有多个日志文件,一个数据库可有多个次数据文件,31,32,采用多个数据库文件来存储数据的优点,数据库文件可以不断扩充而不受操作系统文件大小的限制,可以将数据库文件存储在不同的硬盘中,这样可以同时对几个硬盘做数据存取提高了数据处理的效率,对于服务器型的计算机尤为有用,32,创建数据库,-Systop,数据库,主数据文件,日志文件,次数据文件,可分别存储在不同的磁盘中,演示创建数据库,33,管理和维护:分离数据库,演示分离数据
14、库,34,管理和维护:附加数据库,演示附加数据库,35,管理和维护:脱机和联机,演示设置数据库的脱机和联机状态,36,管理和维护:删除数据库,演示删除数据库,37,回顾,数据库发展经历的,4,种数据模式,分别是什么?,一个,SQL Server,数据库一般可包含哪几种文件?扩展名分别是什么?,数据库服务的启动和关闭,数据库的链接的身份验证模式分别是什么?,数据库的创建、删除,数据库的分离、附加、脱机、联机,38,为什么使用,T-SQL,操作数据库,管理数据库有两种方法:,使用,Sql Server Management studio,管理数据库,使用,Transact-Sql,语言管理数据库,
15、将数据库移植到客户的计算机,如果考虑,SQL SERVER,各种版本的兼容性,最好的办法就是编写比较通用的,SQL,语句创建数据库。,39,结构化查询语言,SQL Structured Query Language,SQL,是,RDBMS,的标准语言,遵循,ANSI(,美国国家标准协会,),所制定的标准。,SQL,分类,数据查询语言(,DQL):,Select*FROM ABC,数据操作语言(,DML):,Update ABC SET A=“CH”,数据控制语言(,DCL):,Revoke Create Table FROM U1,数据定义语言(,DDL,):,Create database
16、ABC,通用命令语言(,CCL,):,Declare CS Cursor For,SQL,的分类,40,创建数据库的语法,2-1,CREATE DATABASE,databasesName,ON,primary,(,name,=databases_data,-,表示数据库文件的逻辑名,filename,=,路径,databases_data.mdf,-,表示数据库文件的物理文件名,size,=XXmb,-,表示数据库文件的初始大小,maxsize,=XXmb,-,表示数据库文件的最大大小,filegrowth,=xx,-,表示数据库文件的增长速度,),数据库的数据文件主要参数,可以省略,语法,
17、41,创建数据库的语法,2-2,log on,(,name,=databases_log,-,表示日志文件的逻辑名,filename,=,路径,databases_log.ldf,-,表示日志文件的物理文件名,size,=XXmb,-,表示日志文件的初始大小,maxsize,=XXmb,-,表示日志文件的最大大小,filegrowth,=xx,-,表示日志文件的增长速度,),数据库的日志文件主要参数,42,创建数据库示例,1,create database,Systop,on primary,(,/*,以下是主数据文件的属性*,/,name=,Systop,-,主数据文件的逻辑名称,filen
18、ame=,E,:,SystopDBSystop,.mdf,-,主数据文件的物理路径,size=,3,mb,-,主数据文件的初始大小,maxsize=,unlimited,-,主数据文件的最大值,filegrowth=1,0,%,-,主数据文件的增长率,),log on,(,/*,以下是日志文件的属性*,/,name=,Systop,_log,-,日志文件的逻辑名称,filename=,E,:,SystopDBSystop,_log.ldf,-,日志文件的物理路径,size=,1,mb,-,日志文件的初始大小,filegrowth=,10%,-,日志文件的增长率,),go,数据文件的主要参数,日
19、志文件的主要参数,教员演示,43,create database,Systop,on primary,(,/*,以下是主数据文件的属性*,/,name=,Systop,-,主数据文件的逻辑名称,filename=,E,:,SystopDBSystop,.mdf,-,主数据文件的物理路径,size=,3,mb,-,主数据文件的初始大小,maxsize=,unlimited,-,主数据文件的最大值,filegrowth=1,0,%,-,主数据文件的增长率,),(,/*以下是次要数据文件的属性*/,name=,Systop,_,sec1,-,次要数据,文件的逻辑名称,filename=,E,:,Sy
20、stopDBSystop,_,sec1,.,n,df,-,次要数据,文件的物理路径,size=,3,mb,-,次要数据,文件的初始大小,filegrowth=,10%,-,次要数据,文件的增长率,),创建数据库示例,2,主数据文件,次要数据文件,44,创建数据库示例,2,log on,(/*以下是日志文件的属性*/,name=,Systop,_log,-日志文件的逻辑名称,filename=,E,:,SystopDBSystop,_log.ldf,-日志文件的物理路径,size=,1,mb,-日志文件的初始大小,filegrowth=,2MB,-日志文件的增长率,),go,日志文件,教员演示,
21、45,创建数据库时的错误提示,如果,Sql Server,中已经存在,myschool,数据库,再次运行代码创建该数据库,会出现什么情况呢?,演示:重复创建数据库,46,系统数据表,Sysdatabases,Sql Sever2005,安装完成后,系统自带,master,系统数据库,,sysdatabases,是其中一个系统数据表,存放所有数据库的一些信息。,use,master,Select*from,sysdatabases,47,删除数据库,Drop database,数据库名,Drop database,Systop,语法,示例,48,删除数据库时的错误提示,删除某个数据库前,一定要确
22、保该数据库存在;否则,系统就会提示错误。,演示:删除数据库,49,完整的删除数据库的,SQL,语句,-,设置当前数据库为,master,,以前访问,s,ysdatabases,use,master,go,if,exists(select*from sysdatabases,where name,=,Systop,),drop database,Systop,检测某个记录是否存在,50,完整的创建数据库的,SQL,use,master,-设置当前数据库为master,以前访问sysdatabases,go,if,exists(select*from sysdatabases where name
23、Systop,),drop database,Systop,create database,Systop,on primary,(,/*以下是,主,数据文件的属性*/,),log on,(,/*以下是日志文件的属性*/,),go,51,注意事项,SQL,语句在书写的时候不区分大小写,一条语句可以写在多行上,但不能将多条语句写在一行上,52,回顾,SQL,的全拼是什么?,T-SQL,的分类,创建数据库的,create database,语句,实训课习题,53,上机出现问题,格式的书写,FileName,属性的赋值:包含路径和文件名,Size,和,MaxSize,属性的赋值,默认单位是,MB,
24、若不是,MB,作为单位,赋值时必须给设置对应的单位,多个文件的分隔,数据库的逻辑文件名不能重复,文件组的应用,54,问题,创建了数据库后,发现需要再添加一个数据库文件,怎样实现?,提问,55,修改数据库的语法,ALTER DATABASE,databasesName,ADD FILE TO FILEGROUP,文件组名,|ADD LOG FILE,|REMOVE FILE,逻辑文件名,|ADD FILEGROUP,文件组名,|,REMOVE FILEGROUP,文件组名,|MODIFY FILE,|MODIFY FILEGROUP,文件组名,文件组属性,语法,56,57,第,02,章总结,掌握
25、概念,数据库包含哪几种文件?,应用技能,用户数据库的创建、删除,数据库与系统的分离与附加,数据库与系统的脱机与联机,57,58,系统数据库,tempdb,临时数据库,临时数据可被自动删除,不需要特殊权限,系统中仅有一个,空间不足可自动扩展,系统数据库,用户数据库,master,model,msdb,pubs,Northwind,Market,distribution,示例数据库,主控数据库,用于管理其他数据库和保存,SQL Server,系统信息,模板数据库,当创建一个用户数据库时其内容自动复制到新数据库中,来存储计划信息以及与备份和恢复相关的信息,,SQL Server,代理使用其安排报警、
26、作业并记录操作员,58,59,数据库文件组,将多个数据文件存放在不同的磁盘上并把多个数据文件组成一个或多个文件组,数据库根据组内数据文件的大小,按比例地写入组内所有数据文件,使多个磁盘同时并行工作、提高读写速度,在一个数据库中可以创建多个文件组,而一个数据文件只能属于一个文件组,事务日志文件不能属于任何文件组,一个数据文件或文件组只被一个数据库使用,59,第三部分数据表的管理,1.,管理平台创建数据表,2.,数据类型,3.,数据冗余,4.,数据完整性,5.,约束,6.,语句创建数据表,总结,60,本章任务,创建,BooksManager,数据库中,Authors,和,Books,数据表,创建,
27、Authors,和,Books,数据表,作者表,图书表,61,本章目标,掌握数据表的创建过程,能够创建约束来满足数据完整性的要求,掌握主外键的作用以及引用完整性的实施步骤,62,在,SQL Server,中建立数据表,列名,数据类型,描述,AuthorID,int,作者编号,AuthorName,nvarchar(40),作者名称,Sex,Nvarchar(4),性别,Age,int,年龄,Birthday,Datetime,生日,Email,Nvarchar(50),电子邮件,TelPhone,nvarchar(30),电话,City,Nvarchar(30),居住城市,图书销售系统一般应用
28、于图书批发行业,是用来存储图书信息、作者信息、,库存信息和销售情况的,不同的信息需要不同的数据表来分别存储。请问要,建立一个表来存储作者信息,那么这个表应包含哪些列?,提问,作者姓名,年龄,性别,电话,电子邮件,作者表,列名应该有意义,再考虑图书表有哪些列呢?,简要介绍图书销售系统,63,在,SQL Server,中建立数据表,列名,数据类型,描述,BookCode,nvarchar(30),图书编号,BookName,nvarchar(100),图书名称,AuthorName,nvarchar(50),作者名称,Publisher,nvarchar(100),出版商名称,UnitPrice,
29、money,单价,Catagory,nvarchar(30),图书类别,图书表结构,那么如何在,SQL Server2005,的,BooksManager,数据库中创建表呢?,64,创建数据库表,Authors,演示创创建表的过程,.,65,数据类型,分类,备注和说明,数据类型,说明,数字数据,包含数字,正数、负数以及分数,bigint,int,smallint,tinyint,整数。,bigint,:长度为,8,个字节,存储从,-263,到,263-1,。,int,:长度为,4,个字节,存储从,(-2147483648),到,(2147483647),。,Smallint:,长度为,2,个字
30、节,存储从,-32768,到,32767,。,tinyint,:长度为,1,个字节,存储,0,到,255,的数字。,float,real,浮点数,float:,存储,-1.79E+308,到,1.79E+308,。,real,:,存储大小为,4,字节。,-3.40E+38,到,3.40E+38,。,文本数据类型,字符数据包含任意字母、符号、数字字符的组合。,char,固定长度的非,Unicode,字符数据,最大长度为,8000,字符。,varchar,可变长度的非,Unicode,数据。,nchar,固定长度的,Unicode,数据。,nvarchar,可变长度的,Unicode,数据。,te
31、xt,存储长文本信息,ntext,存储可变长度的长文本,日期和时间,日期和时间在单引号内分别输入,datetime,日期和时间,bit,数据类型,表示是,/,否的数据,只有两种选择。在,SQL Server,中,1,和,0,表示,一般,1,表示是,,0,表示否。,bit,存储布尔数据类型,二进制数据类型,用于存储非字符和文本数据,binary,固定长度的二进制数据,varbinary,可变长度的二进制数据,Image,存储图像,66,小结,简述创建数据表的过程?,真假信息使用什么数据类型?,图片信息使用什么数据类型?,年龄信息使用什么数据类型?,提问,67,数据表存在的问题,(,一,),数据冗
32、余,BookCode,BookName,AuthorName,Category,Publisher,169876,C#,程序设计(第三版),谭浩强,计算机,清华大学出版社,165212,大话设计模式,程杰,计算机,清华大学出版社,168901,数据结构,(C,语言版,),吴伟民,计算机,清华大学出版社,数据冗余,CategoryID,CategoryName,1,计算机,2,经济管理,3,企业管理,PublisherID,PublisherName,1,清华大学出版社,2,中信出版社,3,东方出版社,新增类别表,(,Categories,),新增出版商表,(,Publishers,),Book
33、Code,BookName,AuthorID,CategoryID,PublisherID,169876,C#,程序设计(第三版),1,1,1,165212,大话设计模式,6,1,1,168901,数据结构,(C,语言版,),7,1,1,AuthorID,AuthorName,1,谭浩强,2,侯俊杰,图书表和作者表设计完成后,小新向图书表中插入了几条图书信息,,观察下面数据,能否发现一些问题呢?,作者表,(,Authors,),解决冗余最好的方法就是分类存储。,68,数据表存在的问题,(,二,),数据完整性,2,、网状模型,请看下面作者表中存储的信息,能否发现不合理的数据?,提问,侯俊杰的年龄
34、不可靠,年龄为,620,岁,年龄数据不准确。,电子邮件地址不合法,数据表中存在不正确、不准确的数据,数据库“失去了完整性”,69,数据表存在的问题,(,二,),数据完整性,数据完整性是指数据库中数据的准确性,从数据表中取得的数据是准确的和可靠的。,什么是数据完整性,?,数据完整性的问题大多是由于设计引起的,为了避免上述问题的发生我们应重视表的前期设计。,下面列举一些常用的数据完整性要求,70,数据完整性,数据表中是否存在重复数据?,作者表中一个作者只能出现一次。,图书表中每本图书只能描述一次。,是否符合特定规则的要求。,会员信誉等级为,90,以上,才能,成为版主。,对表中整行的要求,自定义规则
35、数据是否在允许的范围内?,性别信息只能是“男”或“女”。,数据类型是否正确?,生日必须是日期类型。,输入的格式是否正确?,电子邮件中应包含“,”,。,对表的列信息要求,71,数据完整性,实体完整性,1,、实体完整性:要求表中的每一行数据都反映不同的实体,不能存在重复的数据行,。,49,崔西,5,39,汪中求,4,48,郎咸平,3,51,吴俊杰,2,62,谭浩强,1,.,年龄,作者姓名,作者编号,51,吴俊杰,2,约束方法:主键约束、标识列、唯一约束,72,主键约束,完善,Authors,表,增加主键约束,避免作者重复问题。,演示增加主键约束,.,73,主键约束,设置,AuthorID,为主键
36、后,再录入重复信息将给予提示。,演示效果,.,74,选择主键的原则,最少性,尽量选择单个键作为主键。,稳定性,尽量选择数值更新少的列作为主键。,如果表中一列不能确定一个实体,需要几列,的组合才能确定,那么这几列可以联合作为主键,,称为“联合主键”。,75,标识列,有时在设计表的时候,表中各列都会出现重复信息的可能,不知道用,哪个字段作为主键好,怎么办?,疑问,分析,在表中增加标识列。,标识列也称自增字段,一般为数字类型,本身没有实际意义,不属于实体,属性,只是用来区别不同行信息。,演示增加标识列,.,76,标识列,思考,标识列必须是数字类型吗?,标识列只能是数字类型。,如果标识种子是,2,,标
37、识增量是,3,,那么增加,2,行数据,如果删除最后那条数据后,再插入信息时,标识列值应该是多少?,应该是,8.,删除数据后,标识列的数值依然继续递增。,77,数据完整性,域完整性,2,、域完整性:限制列信息的有效性。,约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束,40,程杰,6,cx,49,崔西,5,wzq,39,汪中求,4,lxp,48,郎咸平,3,wjj,51,吴俊杰,2,thq,62,谭浩强,1,电子邮件,年龄,作者姓名,作者编号,78,检查约束,设置检查约束,以避免作者表中年龄数据在不合理的范围。,演示增加检查约束,.,79,非空约束,如果表中某些字段为必填项,可设置非
38、空约束。,演示增加非空约束,.,80,默认约束,演示增加默认约束,.,81,数据完整性,引用完整性,3,、引用完整性:用来保持表之间的关系,确保插入到表中数据是有效的。,图书表,67.00,3,谁都逃不,.,178922,28.00,3,金融超限,.,157862,30.00,5,数据结构,.,168901,45.50,6,大话设计,.,165212,40.50,1,C,程序设,.,169876,价格,作者,图书名称,图书编号,杜晓月,50,1110001,5,李小旭,100,168901,4,高好,1,168901,3,纪晓岚,50,178922,2,李云龙,5,165212,1,和珅,10
39、169876,1,订购人,订购数量,图书编号,订单编号,订单表,约束方法:外键约束,82,外键约束,如何保证向图书表中录入的作者信息是有效的?,提问,分析,向图书表中增加外键约束,使图书表中,AuthorID,字段与作者表,AuthorID,建立引用关系,可确保向图书表中插入的作者信息是有效的。,演示设置外键,.,83,建立关系图,主表,子表,演示建立关系图,.,84,引用关系规则,不能将主表中关联列不存在的数据,插入到子表中。,图书表中不能够出现作者信息表中不存在的作者编号。,不能更改主表中的数据,而导致子表中数据的孤立。,如果作者表中的作者编号改变了,图书表中作者编号也应随之改变。,不能
40、删除主表中的数据,而导致子表中数据的孤立,如果删除了作者表中作者信息,那么图书表中对应的作者信息也应随之删除。,删除主表前,先删子表,先删图书表、再删除作者表。,逐一演示规则,可以设置级联更新,可设置级联删除,85,数据完整性,自定义完整性,会员号,姓名,信用,.,00001,李云龙,100,00002,张帝,95,00003,吴选,98,00004,李广,91,00005,吴梦,60,4,、自定义完整性:用来定义特定的业务规则。,游戏,李广,Y0004,妇婴,李摇篮,S0003,技术,吴选,J0001,娱乐,张帝,G0003,军事,李云龙,G0002,.,管理版块,版主姓名,版主编号,约束方
41、法:规则、存储过程、触发器,触发器:检查信用值是否大于,90,86,回顾,管理平台创建数据表的步骤,数据完整性,指数据库中数据的准确性,从数据表中取得的数据是准确的和可靠的。,实体完整性,域完整性,引用完整性,自定义完整性,各种约束,表达式,87,创建数据表的语法,2-1,CREATE TABLE,表名,(,字段名,1,数据类型 列的属性 列约束,字段名,2,数据类型 列的属性 列约束,字段名,3,数据类型 列的属性 列约束,),语法,88,创建数据表的语法,2-2,列属性的格式:,NULL|NOT NULL IDENTITY(,标识种子,标识增量,),语法,列约束的格式:,CONSTRAIN
42、T,约束名,PRIMARY KEY(,列名,),CONSTRAINT,约束名,UNIQUE(,列名,),CONSTRAINT,约束名,FOREIGEN KEY(,外键列,)REFERENCES,主表名,(,引用列,),CONSTRAINT,约束名,CHECK(,检查表达式,),CONSTRAINT,约束名,DEFAULT,默认值,89,创建数据表的示例,use,BooksManager,G,o,/*,创建作者表,*/,create,table,Authors,(,AuthorID,int,NOT,NULL,-,编号,Author,Name,n,varchar,(,4,0,),NOT,NULL,
43、作者,姓名,Sex,bit,NOT,NULL,-,性别,Birthday,datetime NULL,-,生日,Email,nv,archar,(,5,0,),-电子邮箱,TelPhone,nvarchar,(60),-,联系电话,City,nvarchar,(50),-,居住城市,Description,ntext,-,作者简介,),教员演示,90,系统数据表,sysobjects,每个数据库中都有一个系统表,sysobjects,,存储了本数据库所有的数据表、约束等信息。,Use BooksManager,go,Select*from sysobjects where xtype=u,
44、91,删除数据表,如果当前数据库已经存在,Authors,表,再次创建时会引发错误,应该怎么办?,USE,BooksManager,GO,/*,检测是否存在,s,tudents,表,*/,IF,EXISTS,(,SELECT,*,FROM,sysobjects,WHERE,name,=,Authors,),DROP,TABLE,Authors,92,完整的创建数据表的,SQL,USE,BooksManager,GO,/*,检测是否存在,Author,s,表,*/,IF,EXISTS,(,SELECT,*,FROM,sysobjects,WHERE,name,=,Authors,),DROP,T
45、ABLE,Authors,go,/*,创建作者表,*/,create,table,Authors,(,),go,93,回顾,SQL SERVER,中的约束,添加约束的目的是什么?,常用的约束类型有哪几种?,提问,94,创建表时添加约束,use,BooksManager,G,o,/*,创建作者表,*/,create,table,Authors,(,AuthorID,int,NOT,NULL,identity(1,1)PRIMARY KEY,-,编号,Author,Name,n,varchar,(,4,0,),NOT,NULL,-,作者,姓名,Sex,bit,NOT,NULL,DEFAULT 1,
46、性别,Birthday,datetime NULL,-,生日,Email,nv,archar,(,5,0,),DEFAULT,eCHECK(Email like%),-电子邮箱,TelPhone,nvarchar,(60),-,联系电话,City,nvarchar,(50),DEFAULT 北京,-,居住城市,Description,ntext,-,作者简介,),教员演示,95,现有数据表中添加约束的语法,ALTER TABLE,表名,ADD CONSTRAINT,约束名 约束类型 具体的约束说明,语法,96,现有数据表添加约束的示例,-,添加主键约束(将,AuthorID,作为主键),a
47、lter,table,Author,s,add,constraint,pk_,AuthorID,primary,key,(,AuthorID,),-,添加,默认约束,(,性别默认值为,1,),alter,table,Authors,add,constraint,DF,_,Sex,DEFAULT,(,1,),for Sex,-,添加,检查约束,(,电子邮箱必须包含,),alter,table,Author,s,add,constraint,CK,_,Emial,Check,(,Email like,%,),97,删除约束,ALTER TABLE,表名,DROP CONSTRAINT,约束名,us
48、e,BooksManager,alter,table,Author,s,drop,constraint,DF,_,S,ex,语法,示例,98,99,修改表,ALTER TABLE,表名,ADD,列名 数据类型,(,长度,)NULL|NOT NULL,|ALTER COLUMN,列名 数据类型,(,长度,)NULL|NOT NULL,|DROP COLUMN,字段名,n,|ADD CONSTRAINT,约束定义,n,|DROP CONSTRAINT,约束名,n,|NOCHECK CONSTRAINT,约束名,|CHECK CONSTRAINT,约束名,99,100,使用,ADD,子句添加列,AL
49、TER TABLE,表名,ADD,列名 数据类型,(,长度,)NULL|NOT NULL,若向已存在记录的表中添加列,新添加的列可以设置允许为空;若不允许为空,则需指定默认值,100,101,使用,DROP COLUMN,子句删除列,ALTER TABLE,表名,DROP COLUMN,字段名,在删除列时,必须先删除基于该列的索引和约束后,才能删除该列,101,102,使用,ALTER COLUMN,子句修改列属性,ALTER TABLE,表名,ALTER COLUMN,列名 数据类型,(,长度,)NULL|NOT NULL,在默认状态下,列可以被设置为空值,将一个原来允许为空值的列改为不允许
50、为空值时,必须满足列中没有存放空值的记录以及在列上没有创建索引,102,103,使用,NOCHECK CONSTRAINT,子句使约束无效,ALTER TABLE,表名,NOCHECK CONSTRAINT,约束名,|,CHECK CONSTRAINT,约束名,该子句只对外键约束和检查约束起作用,103,104,删除表,DROP TABLE,表名,n,drop table,语句不能删除系统表,如果一个表被其他表通过外键约束引用,那么必须先删除设置了外键约束的表,或删除其外键约束,104,总结,创建数据库或表时一般需要预先检测是否存在该对象,如何检测?,数据库从,master,系统数据库的,sy
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818