SQL入门教程初学

上传人:彧*** 文档编号:145834588 上传时间:2022-08-30 格式:PPT 页数:401 大小:14.29MB
收藏 版权申诉 举报 下载
SQL入门教程初学_第1页
第1页 / 共401页
SQL入门教程初学_第2页
第2页 / 共401页
SQL入门教程初学_第3页
第3页 / 共401页
资源描述:

《SQL入门教程初学》由会员分享,可在线阅读,更多相关《SQL入门教程初学(401页珍藏版)》请在装配图网上搜索。

1、数据库原理与应用数据库原理与应用SQL Server2目录q 第一部分第一部分 SQL Server 2005的安装与管理器的安装与管理器q 第二部分第二部分 数据库管理数据库管理q 第三部分第三部分 数据表管理数据表管理q 第四部分第四部分 数据管理数据管理q 第五部分第五部分 视图与索引视图与索引q 第六部分第六部分 T-SQL编程编程q 第七部分第七部分 事务事务q 第八部分第八部分 游标游标q 第九部分第九部分 存储过程存储过程q 第十部分第十部分 触发器触发器q 第十一部分第十一部分 权限以及安全权限以及安全q 第十二部分第十二部分 数据库设计数据库设计第一部分第一部分SQL Ser

2、ver 2005的安装与管理器的安装与管理器1.数据库的应用数据库的应用2.数据库相关概念数据库相关概念3.关系数据库关系数据库4.SQL Server 20055.SQL Server 2005的启动的启动总结总结数据库的应用q超市收银员扫描条码,就能调出商品价格,便于超市收银员扫描条码,就能调出商品价格,便于快速结账。快速结账。q火车售票员录入出发地和目的就能调出车次、价火车售票员录入出发地和目的就能调出车次、价格及车票剩余数量,利于快速售票。格及车票剩余数量,利于快速售票。q到营业厅输入手机号和时间段就能打印出通话记到营业厅输入手机号和时间段就能打印出通话记录单录单。q录入你的游戏账号和

3、密码就能调出玩家的信息录入你的游戏账号和密码就能调出玩家的信息。q网站发布的新闻、可转载的网络小说、网络视频网站发布的新闻、可转载的网络小说、网络视频、博客文章。、博客文章。都在使用数据库都在使用数据库数据库和应用程序 2-1数据库服务器数据库服务器应用程序应用程序数据库和应用程序 2-2q应用程序应用程序q作用:响应操作并显示结果作用:响应操作并显示结果、向数据库请求数据、向数据库请求数据q要求:美观、操作简单方便要求:美观、操作简单方便q数据库数据库q作用:作用:存储数据、检索数据、生成新的数据存储数据、检索数据、生成新的数据q要求:统一、安全、性能等要求:统一、安全、性能等数据库优点q存

4、储大量数据,方便检索和访问存储大量数据,方便检索和访问q保持数据信息的一致、完整保持数据信息的一致、完整q共享和安全共享和安全q通过组合分析,产生新的有用信息通过组合分析,产生新的有用信息数据库的相关概念3-1q 数据数据Dataq 描述事物的符号描述事物的符号q 可以有多种形式:数字、文字、图形、图像、声音等可以有多种形式:数字、文字、图形、图像、声音等q 数据库数据库q 存放数据的地方存放数据的地方q 需要长期存放在计算机内的、有组织的、可共享的数据集合需要长期存放在计算机内的、有组织的、可共享的数据集合q 物理形式是存储在磁盘上的一个或多个数据文件物理形式是存储在磁盘上的一个或多个数据文

5、件q 数据库管理系统数据库管理系统q 是操纵和管理数据库的大型软件是操纵和管理数据库的大型软件q 可建立、使用和维护数据库可建立、使用和维护数据库q 它对数据库进行统一管理和控制,保证数据库的安全性和完整性它对数据库进行统一管理和控制,保证数据库的安全性和完整性数据库的相关概念3-2q数据库管理员数据库管理员q管理和维护数据库的人管理和维护数据库的人q数据库系统数据库系统q一般指数据库、数据库管理系统以及运行硬件、应用一般指数据库、数据库管理系统以及运行硬件、应用程序、数据库管理员和用户的集合程序、数据库管理员和用户的集合q数据模型数据模型q指数据库管理系统中数据的存储结构指数据库管理系统中数

6、据的存储结构数据库的相关概念3-311数据库的发展史q初级阶段初级阶段第一代数据库第一代数据库q出现了出现了层次模型、网状模型层次模型、网状模型的数据库的数据库q中级阶段中级阶段第二代数据库第二代数据库q关系型关系型数据库和结构化查询语言数据库和结构化查询语言q高级阶段高级阶段新一代数据库新一代数据库q“面向对象面向对象”型数据库型数据库 关系数据库(关系数据库(Relational DataBase,RDB)就是基于关)就是基于关系模型的数据库,在计算机中,关系数据库是数据和数系模型的数据库,在计算机中,关系数据库是数据和数据库对象的集合据库对象的集合。大多数公司都使用工资管理系统,对员工的

7、信息、工资数大多数公司都使用工资管理系统,对员工的信息、工资数据做统一管理。那么你所想到的张三、李四、王五据做统一管理。那么你所想到的张三、李四、王五这些员工这些员工的信息在关系数据库如何有效存储的呢?的信息在关系数据库如何有效存储的呢?使用数据表存储数据使用数据表存储数据!关系数据库某公司的员工信息某公司的员工信息行行(记录记录)列(字段)列(字段)数据表是由行数据表是由行(Row)和列和列(Column)组成的二维表。组成的二维表。每行描述一个实体;数每行描述一个实体;数据表中的列通常叫做字段据表中的列通常叫做字段,它代表数据表中存储实体的共有属性。它代表数据表中存储实体的共有属性。那么实

8、体和属性具体指的是什么呢?那么实体和属性具体指的是什么呢?关系数据库数据表关系数据库实体 只要客观存在的,并且可以被描述的事物称为实体只要客观存在的,并且可以被描述的事物称为实体。关系数据库属性 属性是对实体具体特征的描述。属性是对实体具体特征的描述。描述高明这名员工,可以从员工编号、姓名、性别、工资等方面来描述,描述高明这名员工,可以从员工编号、姓名、性别、工资等方面来描述,而而“员工编号、姓名、性别、工资员工编号、姓名、性别、工资”就称为属性。就称为属性。属性(字段)属性(字段)对不同员工的描述,其实都可以从员工编号、姓名、性别、工资这几方面对不同员工的描述,其实都可以从员工编号、姓名、性

9、别、工资这几方面进行描述,但是具体到不同的员工其员工编号、姓名、性别、工资的数据进行描述,但是具体到不同的员工其员工编号、姓名、性别、工资的数据是不同的,不同的数据体现了不同的实体是不同的,不同的数据体现了不同的实体。不同的员工属于不同的实体不同的员工属于不同的实体16SQL Server 2005概述2-1qMS SQL Server 2005是是Microsoft开发的基于关开发的基于关系数据库的管理系统系数据库的管理系统q采用采用“请求请求-应答应答”工作方式工作方式 SQL Server 2005 针对不同用户群体提供多个版本。针对不同用户群体提供多个版本。易用性好,受广大用户青睐。易

10、用性好,受广大用户青睐。版本版本 企业版企业版(Enterprise Edition)标准版标准版(Standard Edition)开发板开发板(Developer Edition)工作组版工作组版(Workgroup Edition)精简版精简版(Express Edition)SQL Server 2005概述2-2SQL Server2005安装要求最少:最少:1.0GHz 奔腾奔腾以上以上处理器。处理器。推荐:推荐:2.0GHz或速度更快的处理器或速度更快的处理器。最小:最小:512MB。推荐:推荐:2.048GB或更大的内存或更大的内存。完全安装完全安装1.7GB。处理器处理器 内

11、存内存磁盘容量磁盘容量MB配置要求配置要求 硬件要求硬件要求 软件要求软件要求 Windows XP Professional SP2,Windows Vista的各个版的各个版Windows2003各个版本,各个版本,Windows 7的各个版本的各个版本。SQL Server 2005的安装演示整个安装过程演示整个安装过程SQL Server2005管理工具 Microsoft SQL Server Management Studio 开发人员和开发人员和DBA最常用的管理工具,使用它可以执行许多最常用的管理工具,使用它可以执行许多SQL Server的核心管理任务。例如:创建数据库、创建

12、表、的核心管理任务。例如:创建数据库、创建表、视图、存储过程、执行视图、存储过程、执行SQL语句等。语句等。SQL Server Profiler SQL Server2005外围应用配置器外围应用配置器 能帮助系统管理员监视数据库和服务器的行为能帮助系统管理员监视数据库和服务器的行为,比如死锁的数量,致命的错误,跟踪比如死锁的数量,致命的错误,跟踪DELETE、INSERT、UPDATE 等等Transact-SQL 语句和语句和存储过程存储过程。便于后期一步一步分析。便于后期一步一步分析。提供对提供对SQL Server2005本地实例和远程实例本地实例和远程实例的外围应用的更多控制,提高

13、了可管理性和安全性。的外围应用的更多控制,提高了可管理性和安全性。SQL Server 配置管理器配置管理器 通过通过SQL Server配置管理器是对配置管理器是对Microsoft SQL Server 提供的各种服务进行登录身份配置、网络协议配置及服提供的各种服务进行登录身份配置、网络协议配置及服务的停止启动配置;另外还提供一些高级选项。其中登务的停止启动配置;另外还提供一些高级选项。其中登录身份和各种服务停止和启动配置是较为常用录身份和各种服务停止和启动配置是较为常用.21停止和启动SQL Serverq在对在对SQL Server数据库进行任何操作之前,必须数据库进行任何操作之前,必

14、须启动本地或远程启动本地或远程SQL Server服务器服务器q使用操作系统服务管理器使用操作系统服务管理器q使用使用SQL Server Configuration Manager(配置管理配置管理)q使用使用SQL Server Mangement Studio(管理平台管理平台)q启动启动SQL Server Mangement StudioqWindows身份验证身份验证qSQL Server身份验证身份验证演示整个启动演示整个启动/停止过程停止过程连接到SQL Server2005演示连接到服务器演示连接到服务器选择服务器选择服务器,默认本机默认本机录入登录名录入登录名和密码和密码单

15、击连接单击连接连接成功后,显示连接成功后,显示SQL Server企业管理器企业管理器23第一部分总结 q 掌握技能掌握技能q SQL Server 2005的安装的安装q SQL Server服务的启动服务的启动/停止停止q SQL Server管理平台的进入管理平台的进入q 了解的概念了解的概念q 两种身份验证两种身份验证q 数据库相关概念以及相应的英文拼写数据库相关概念以及相应的英文拼写q 4种数据模型种数据模型缺点:由于数据纵向发展,横向关系难以建立,数据可缺点:由于数据纵向发展,横向关系难以建立,数据可 能会重复出现,造成维护的不便。能会重复出现,造成维护的不便。层次模型缺点:关系错

16、综复杂,当数据逐渐增多时,将很难对结缺点:关系错综复杂,当数据逐渐增多时,将很难对结 构中的关联性进行维护,扩展性受到限制。构中的关联性进行维护,扩展性受到限制。网状模型优点:结构简单、格式唯一,理论基础严格,而且数据优点:结构简单、格式唯一,理论基础严格,而且数据 表之间是相对独立的,目前应用最为广泛。表之间是相对独立的,目前应用最为广泛。时下流行的时下流行的Oracle、SQL Server、DB2都采用关系模型都采用关系模型存储数据。存储数据。关系模型2-127关系模型2-2q记录和记录之间通过属性之间的关系来进行连接记录和记录之间通过属性之间的关系来进行连接q保证数据独立性,并形成数据

17、集之间的关系保证数据独立性,并形成数据集之间的关系 将面向对象的思想和数据库技术结合起来,可以使数据将面向对象的思想和数据库技术结合起来,可以使数据系统的分析、设计与人们对客观世界的认识一致系统的分析、设计与人们对客观世界的认识一致。伸缩性和扩展性,处理复杂的数据模型和关系模型。伸缩性和扩展性,处理复杂的数据模型和关系模型。利用继承的方法实现数据的重用,避免数据冗余。利用继承的方法实现数据的重用,避免数据冗余。提高了对大对象(文本、图像、视频)信息的描述、提高了对大对象(文本、图像、视频)信息的描述、操纵和检索能力。操纵和检索能力。缺乏像关系型数据模型那样坚实成熟的理论基础。缺乏像关系型数据模

18、型那样坚实成熟的理论基础。糟糕的运行效率。糟糕的运行效率。优点:优点:缺点:缺点:面向对象模型第二部分第二部分数据库管理数据库管理1.数据库分类数据库分类2.数据库文件数据库文件3.数据库的创建、修改(管理平台)数据库的创建、修改(管理平台)4.数据库的分离和附加数据库的分离和附加5.数据库的脱机和联机数据库的脱机和联机6.数据库的删除数据库的删除7.数据库的创建、删除(数据库的创建、删除(SQL语句)语句)总结总结数据库的分类q系统数据库系统数据库 用户数据库用户数据库数数据据库库创建数据库-数据库文件的构成必备文件必备文件主数据文件主数据文件.mdf日志文件日志文件.ldf次数据文件次数据

19、文件.ndf可选文件可选文件一个数据库只能有一个数据库只能有一个主数据文件一个主数据文件一个数据库可有一个数据库可有多个日志文件多个日志文件一个数据库可有多一个数据库可有多个次数据文件个次数据文件32采用多个数据库文件来存储数据的优点q数据库文件可以不断扩充而不受操作系统文件大数据库文件可以不断扩充而不受操作系统文件大小的限制小的限制q可以将数据库文件存储在不同的硬盘中,这样可可以将数据库文件存储在不同的硬盘中,这样可以同时对几个硬盘做数据存取提高了数据处理的以同时对几个硬盘做数据存取提高了数据处理的效率,对于服务器型的计算机尤为有用效率,对于服务器型的计算机尤为有用创建数据库-Systop数

20、据库主数据文件主数据文件日志文件日志文件次数据文件次数据文件可分别存储在可分别存储在不同的磁盘中不同的磁盘中演示创建数据库演示创建数据库管理和维护:分离数据库演示分离数据库演示分离数据库管理和维护:附加数据库演示附加数据库演示附加数据库管理和维护:脱机和联机演示设置数据库的脱机和联机状态演示设置数据库的脱机和联机状态管理和维护:删除数据库演示删除数据库演示删除数据库回顾q数据库发展经历的数据库发展经历的4种数据模式,分别是什么?种数据模式,分别是什么?q一个一个SQL Server数据库一般可包含哪几种文件?数据库一般可包含哪几种文件?扩展名分别是什么?扩展名分别是什么?q数据库服务的启动和关

21、闭数据库服务的启动和关闭q数据库的链接的身份验证模式分别是什么?数据库的链接的身份验证模式分别是什么?q数据库的创建、删除数据库的创建、删除q数据库的分离、附加、脱机、联机数据库的分离、附加、脱机、联机为什么使用T-SQL操作数据库q管理数据库有两种方法:管理数据库有两种方法:q使用使用Sql Server Management studio管理数据库管理数据库 q使用使用Transact-Sql语言管理数据库语言管理数据库 q将数据库移植到客户的计算机,如果考虑将数据库移植到客户的计算机,如果考虑SQL SERVER各种版本的兼容性,最好的办法就是编各种版本的兼容性,最好的办法就是编写比较通

22、用的写比较通用的SQL语句创建数据库。语句创建数据库。q结构化查询语言结构化查询语言 SQL Structured Query Language SQL是是RDBMS的标准语言,遵循的标准语言,遵循ANSI(美国美国国家标准协会国家标准协会)所制定的标准。所制定的标准。qSQL分类分类 数据查询语言(数据查询语言(DQL):):Select*FROM ABC 数据操作语言(数据操作语言(DML):):Update ABC SET A=“CH”数据控制语言(数据控制语言(DCL):):Revoke Create Table FROM U1 数据定义语言(数据定义语言(DDL):):Create

23、database ABC 通用命令语言(通用命令语言(CCL):):Declare CS Cursor For SQL 的分类的分类创建数据库的语法2-1CREATE DATABASE databasesNameON primary (name=databases_data,-表示数据库文件的逻辑名表示数据库文件的逻辑名 filename=路径路径databases_data.mdf,-表示数据库表示数据库文件的物理文件名文件的物理文件名 size=XXmb,-表示数据库文件的初始大小表示数据库文件的初始大小 maxsize=XXmb,-表示数据库文件的最大大小表示数据库文件的最大大小 fil

24、egrowth=xx-表示数据库文件的增长速度表示数据库文件的增长速度 )数据库的数据文件主要参数数据库的数据文件主要参数可以省略可以省略创建数据库的语法2-2 log on (name=databases_log,-表示日志文件的逻辑名表示日志文件的逻辑名 filename=路径路径databases_log.ldf,-表示日志文件表示日志文件的物理文件名的物理文件名 size=XXmb,-表示日志文件的初始大小表示日志文件的初始大小 maxsize=XXmb,-表示日志文件的最大大小表示日志文件的最大大小 filegrowth=xx-表示日志文件的增长速度表示日志文件的增长速度 )数据库的

25、日志文件主要参数数据库的日志文件主要参数创建数据库示例1create database Systopon primary(/*以下是主数据文件的属性以下是主数据文件的属性*/name=Systop,-主数据文件的逻辑名称主数据文件的逻辑名称 filename=E:SystopDBSystop.mdf,-主数据文件的物理路径主数据文件的物理路径 size=3mb,-主数据文件的初始大小主数据文件的初始大小 maxsize=unlimited,-主数据文件的最大值主数据文件的最大值 filegrowth=10%-主数据文件的增长率主数据文件的增长率)log on(/*以下是日志文件的属性以下是日志

26、文件的属性*/name=Systop_log,-日志文件的逻辑名称日志文件的逻辑名称 filename=E:SystopDBSystop_log.ldf,-日志文件的物理路径日志文件的物理路径 size=1mb,-日志文件的初始大小日志文件的初始大小 filegrowth=10%-日志文件的增长率日志文件的增长率)go数据文件的主要参数数据文件的主要参数日志文件的主要参数日志文件的主要参数教员演示教员演示create database Systopon primary(/*以下是主数据文件的属性以下是主数据文件的属性*/name=Systop,-主数据文件的逻辑名称主数据文件的逻辑名称 fil

27、ename=E:SystopDBSystop.mdf,-主数据文件的物理路径主数据文件的物理路径 size=3mb,-主数据文件的初始大小主数据文件的初始大小 maxsize=unlimited,-主数据文件的最大值主数据文件的最大值 filegrowth=10%-主数据文件的增长率主数据文件的增长率),(/*以下是次要数据文件的属性以下是次要数据文件的属性*/name=Systop_sec1,-次要数据次要数据文件的逻辑名称文件的逻辑名称 filename=E:SystopDBSystop_sec1.ndf,-次要数据次要数据文件的物文件的物理路径理路径 size=3mb,-次要数据次要数据

28、文件的初始大小文件的初始大小 filegrowth=10%-次要数据次要数据文件的增长率文件的增长率)创建数据库示例2主数据文件主数据文件次要数据文件次要数据文件创建数据库示例2log on(/*以下是日志文件的属性以下是日志文件的属性*/name=Systop_log,-日志文件的逻辑名称日志文件的逻辑名称 filename=E:SystopDBSystop_log.ldf,-日志文件的物日志文件的物理路径理路径 size=1mb,-日志文件的初始大小日志文件的初始大小 filegrowth=2MB -日志文件的增长率日志文件的增长率)go日志文件日志文件教员演示教员演示创建数据库时的错误提

29、示q如果如果Sql Server中已经存在中已经存在myschool数据库,数据库,再次运行代码创建该数据库,会出现什么情况再次运行代码创建该数据库,会出现什么情况呢?呢?演示:重复创建数据库演示:重复创建数据库系统数据表SysdatabasesqSql Sever2005安装完成后,系统自带安装完成后,系统自带master系统数据库,系统数据库,sysdatabases 是其中一个系统是其中一个系统数据表,存放所有数据库的一些信息。数据表,存放所有数据库的一些信息。use masterSelect*from sysdatabases删除数据库Drop database 数据库名数据库名Dro

30、p database Systop删除数据库时的错误提示q删除某个数据库前,一定要确保该数据库存在删除某个数据库前,一定要确保该数据库存在;否则,系统就会提示错误。;否则,系统就会提示错误。演示:删除数据库演示:删除数据库完整的删除数据库的SQL语句-设置当前数据库为设置当前数据库为master,以前访问,以前访问sysdatabasesuse master goif exists(select*from sysdatabases where name=Systop)drop database Systop 检测某个记录是否存在检测某个记录是否存在完整的创建数据库的SQLuse master-

31、设置当前数据库为设置当前数据库为master,以前访问,以前访问sysdatabasesgoif exists(select*from sysdatabases where name=Systop)drop database Systop create database Systopon primary(/*以下是以下是主主数据文件的属性数据文件的属性*/)log on(/*以下是日志文件的属性以下是日志文件的属性*/)go注意事项qSQL语句在书写的时候不区分大小写语句在书写的时候不区分大小写q一条语句可以写在多行上一条语句可以写在多行上q但不能将多条语句写在一行上但不能将多条语句写在一行上

32、回顾qSQL的全拼是什么?的全拼是什么?qT-SQL的分类的分类q创建数据库的创建数据库的create database语句语句q实训课习题实训课习题上机出现问题q格式的书写格式的书写qFileName属性的赋值:包含路径和文件名属性的赋值:包含路径和文件名qSize和和MaxSize属性的赋值属性的赋值q默认单位是默认单位是MBq若不是若不是MB作为单位,赋值时必须给设置对应的单位作为单位,赋值时必须给设置对应的单位q多个文件的分隔多个文件的分隔q数据库的逻辑文件名不能重复数据库的逻辑文件名不能重复q文件组的应用文件组的应用问题q创建了数据库后,发现需要再添加一个数据库文创建了数据库后,发现

33、需要再添加一个数据库文件,怎样实现?件,怎样实现?修改数据库的语法ALTER DATABASE databasesName ADD FILE TO FILEGROUP 文件组名文件组名|ADD LOG FILE|REMOVE FILE 逻辑文件名逻辑文件名|ADD FILEGROUP 文件组名文件组名|REMOVE FILEGROUP 文件组名文件组名|MODIFY FILE|MODIFY FILEGROUP 文件组名,文件组属性文件组名,文件组属性57第02章总结 q掌握概念掌握概念q数据库包含哪几种文件?数据库包含哪几种文件?q应用技能应用技能q用户数据库的创建、删除用户数据库的创建、删除

34、q数据库与系统的分离与附加数据库与系统的分离与附加q数据库与系统的脱机与联机数据库与系统的脱机与联机58系统数据库tempdb临时数据库,临时数据可被自动删除,临时数据库,临时数据可被自动删除,不需要特殊权限,系统中仅有一个,不需要特殊权限,系统中仅有一个,空间不足可自动扩展空间不足可自动扩展系统数据库系统数据库用户数据库用户数据库mastermodelmsdbpubsNorthwindMarketdistribution示例数据库示例数据库主控数据库,用于管主控数据库,用于管理其他数据库和保存理其他数据库和保存SQL Server系统信息系统信息模板数据库,模板数据库,当创建一个用当创建一个

35、用户数据库时其户数据库时其内容自动复制内容自动复制到新数据库中到新数据库中来存储计划信息以及与备份来存储计划信息以及与备份和恢复相关的信息,和恢复相关的信息,SQL Server代理使用其安排报警、代理使用其安排报警、作业并记录操作员作业并记录操作员59数据库文件组q将多个数据文件存放在不同的磁盘上并把多个数将多个数据文件存放在不同的磁盘上并把多个数据文件组成一个或多个文件组据文件组成一个或多个文件组q数据库根据组内数据文件的大小,按比例地写入数据库根据组内数据文件的大小,按比例地写入组内所有数据文件,使多个磁盘同时并行工作、组内所有数据文件,使多个磁盘同时并行工作、提高读写速度提高读写速度q

36、在一个数据库中可以创建多个文件组,而一个数在一个数据库中可以创建多个文件组,而一个数据文件只能属于一个文件组据文件只能属于一个文件组q事务日志文件不能属于任何文件组事务日志文件不能属于任何文件组q一个数据文件或文件组只被一个数据库使用一个数据文件或文件组只被一个数据库使用第三部分第三部分数据表的管理数据表的管理1.管理平台创建数据表管理平台创建数据表2.数据类型数据类型3.数据冗余数据冗余4.数据完整性数据完整性5.约束约束6.语句创建数据表语句创建数据表总结总结本章任务q创建创建BooksManager数据库中数据库中Authors和和Books数据表数据表创建创建AuthorsAuthor

37、s和和BooksBooks数据表数据表作者表作者表图书表图书表本章目标q掌握数据表的创建过程掌握数据表的创建过程q能够创建约束来满足数据完整性的要求能够创建约束来满足数据完整性的要求q掌握主外键的作用以及引用完整性的实施步骤掌握主外键的作用以及引用完整性的实施步骤在SQL Server中建立数据表列名数据类型描述 AuthorIDint作者编号作者编号AuthorNamenvarchar(40)作者名称作者名称SexNvarchar(4)性别性别Ageint年龄年龄BirthdayDatetime生日生日EmailNvarchar(50)电子邮件电子邮件TelPhonenvarchar(30)

38、电话电话CityNvarchar(30)居住城市居住城市 图书销售系统一般应用于图书批发行业,是用来存储图书信息、作者信息、图书销售系统一般应用于图书批发行业,是用来存储图书信息、作者信息、库存信息和销售情况的,不同的信息需要不同的数据表来分别存储。请问要库存信息和销售情况的,不同的信息需要不同的数据表来分别存储。请问要建立一个表来存储作者信息,那么这个表应包含哪些列?建立一个表来存储作者信息,那么这个表应包含哪些列?作者姓名作者姓名年龄年龄性别性别电话电话电子邮件电子邮件作者表作者表列名应该有意义,再考虑图书表有哪些列呢?列名应该有意义,再考虑图书表有哪些列呢?简要介绍图书销售系统简要介绍图

39、书销售系统在SQL Server中建立数据表列名数据类型描述 BookCodeBookCodenvarchar(30)nvarchar(30)图书编号图书编号BookNameBookNamenvarchar(100)nvarchar(100)图书名称图书名称AuthorNameAuthorNamenvarchar(50)nvarchar(50)作者名称作者名称PublisherPublishernvarchar(100)nvarchar(100)出版商名称出版商名称UnitPriceUnitPricemoneymoney单价单价CatagoryCatagorynvarchar(30)nvarc

40、har(30)图书类别图书类别图书表结构图书表结构那么如何在那么如何在SQL Server2005的的BooksManager数据库中创建表呢?数据库中创建表呢?创建数据库表Authors演示创创建表的过程演示创创建表的过程.数据类型分类备注和说明数据类型 说明 数字数据包含数字,正数、负数以及分数bigintintsmallinttinyint整数。bigint:长度为8个字节,存储从-263到263-1。int:长度为4个字节,存储从(-2147483648)到(2147483647)。Smallint:长度为2个字节,存储从-32768到32767。tinyint:长度为1个字节,存储0

41、到255的数字。floatreal浮点数float:存储-1.79E+308到1.79E+308。real:存储大小为4字节。-3.40E+38到3.40E+38。文本数据类型字符数据包含任意字母、符号、数字字符的组合。char固定长度的非Unicode字符数据,最大长度为8000字符。varchar可变长度的非Unicode数据。nchar固定长度的Unicode数据。nvarchar可变长度的Unicode数据。text存储长文本信息ntext存储可变长度的长文本日期和时间日期和时间在单引号内分别输入datetime日期和时间bit数据类型表示是/否的数据,只有两种选择。在SQL Serv

42、er中1和0表示,一般1表示是,0表示否。bit存储布尔数据类型二进制数据类型用于存储非字符和文本数据binary固定长度的二进制数据varbinary可变长度的二进制数据Image存储图像小结q简述创建数据表的过程?简述创建数据表的过程?q真假信息使用什么数据类型?真假信息使用什么数据类型?q图片信息使用什么数据类型?图片信息使用什么数据类型?q年龄信息使用什么数据类型?年龄信息使用什么数据类型?数据表存在的问题(一)数据冗余BookCodeBookNameAuthorNameCategoryPublisher169876C#程序设计(第三版)谭浩强计算机清华大学出版社165212大话设计模

43、式程杰计算机清华大学出版社168901数据结构(C语言版)吴伟民计算机清华大学出版社数据冗余数据冗余CategoryIDCategoryName1计算机2经济管理3企业管理PublisherIDPublisherName1清华大学出版社2中信出版社3东方出版社新增类别表新增类别表(Categories)新增出版商表新增出版商表(Publishers)BookCodeBookNameAuthorIDCategoryIDPublisherID169876C#程序设计(第三版)111165212大话设计模式611168901数据结构(C语言版)711AuthorIDAuthorName1谭浩强2侯俊

44、杰 图书表和作者表设计完成后,小新向图书表中插入了几条图书信息,图书表和作者表设计完成后,小新向图书表中插入了几条图书信息,观察下面数据,能否发现一些问题呢?观察下面数据,能否发现一些问题呢?作者表作者表(Authors)解决冗余最好的方法就是分类存储。解决冗余最好的方法就是分类存储。数据表存在的问题(二)数据完整性2、网状模型、网状模型 请看下面作者表中存储的信息,能否发现不合理的数据?请看下面作者表中存储的信息,能否发现不合理的数据?侯俊杰侯俊杰的年龄的年龄不可靠不可靠年龄为年龄为620620岁,年龄岁,年龄数据不准确。数据不准确。电子邮件地址不合法电子邮件地址不合法数据表中存在不正确、不

45、准确的数据,数据库数据表中存在不正确、不准确的数据,数据库“失去了完整性失去了完整性”数据表存在的问题(二)数据完整性 数据完整性是指数据库中数据的准确性,从数据表中数据完整性是指数据库中数据的准确性,从数据表中取得的数据是准确的和可靠的。取得的数据是准确的和可靠的。什么是数据完整性什么是数据完整性?数据完整性的问题大多是由于设计引起的,为数据完整性的问题大多是由于设计引起的,为了避免上述问题的发生我们应重视表的前期设计。了避免上述问题的发生我们应重视表的前期设计。下面列举一些常用的数据完整性要求下面列举一些常用的数据完整性要求数据完整性 数据表中是否存在重复数据?数据表中是否存在重复数据?作

46、者表中一个作者只能出现一次。作者表中一个作者只能出现一次。图书表中每本图书只能描述一次。图书表中每本图书只能描述一次。是否符合特定规则的要求。是否符合特定规则的要求。会员信誉等级为会员信誉等级为90以上,才能以上,才能 成为版主。成为版主。对表中整行的要求对表中整行的要求自定义规则自定义规则 数据是否在允许的范围内?数据是否在允许的范围内?性别信息只能是性别信息只能是“男男”或或“女女”。数据类型是否正确?数据类型是否正确?生日必须是日期类型。生日必须是日期类型。输入的格式是否正确?输入的格式是否正确?电子邮件中应包含电子邮件中应包含“”。对表的列信息要求对表的列信息要求数据完整性实体完整性

47、1、实体完整性:要求表中的每一行数据都反映不同的实体,不能存在重复实体完整性:要求表中的每一行数据都反映不同的实体,不能存在重复的数据行的数据行。49崔西崔西539汪中求汪中求448郎咸平郎咸平351吴俊杰吴俊杰262谭浩强谭浩强1.年龄年龄作者姓名作者姓名作者编号作者编号51吴俊杰吴俊杰2约束方法:主键约束、标识列、唯一约束约束方法:主键约束、标识列、唯一约束主键约束 完善完善Authors表,增加主键约束,避免作者重复问题。表,增加主键约束,避免作者重复问题。演示增加主键约束演示增加主键约束.主键约束 设置设置AuthorID为主键后,再录入重复信息将给予提示。为主键后,再录入重复信息将给

48、予提示。演示效果演示效果.选择主键的原则 最少性最少性 尽量选择单个键作为主键。尽量选择单个键作为主键。稳定性稳定性 尽量选择数值更新少的列作为主键。尽量选择数值更新少的列作为主键。如果表中一列不能确定一个实体,需要几列 的组合才能确定,那么这几列可以联合作为主键,称为“联合主键”。标识列 有时在设计表的时候,表中各列都会出现重复信息的可能,不知道用有时在设计表的时候,表中各列都会出现重复信息的可能,不知道用哪个字段作为主键好,怎么办?哪个字段作为主键好,怎么办?在表中增加标识列。在表中增加标识列。标识列也称自增字段,一般为数字类型,本身没有实际意义,不属于实体标识列也称自增字段,一般为数字类

49、型,本身没有实际意义,不属于实体属性,只是用来区别不同行信息属性,只是用来区别不同行信息。演示增加标识列演示增加标识列.标识列 标识列必须是数字类型吗?标识列必须是数字类型吗?标识列只能是数字类型。标识列只能是数字类型。如果标识种子是如果标识种子是2,标识增量是,标识增量是3,那么增加,那么增加2行数据,如行数据,如果删除最后那条数据后,再插入信息时,标识列值应该是果删除最后那条数据后,再插入信息时,标识列值应该是多少?多少?应该是应该是8.删除数据后,标识列的数值依然继续递增。删除数据后,标识列的数值依然继续递增。数据完整性域完整性 2、域完整性:限制列信息的有效性。、域完整性:限制列信息的

50、有效性。约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束40程杰程杰49崔西崔西39汪中求汪中求48郎咸平郎咸平51吴俊杰吴俊杰62谭浩强谭浩强1电子邮件电子邮件年龄年龄作者姓名作者姓名作者编号作者编号检查约束设置检查约束,以避免作者表中年龄数据在不合理的范围。设置检查约束,以避免作者表中年龄数据在不合理的范围。演示增加检查约束演示增加检查约束.非空约束如果表中某些字段为必填项,可设置非空约束。如果表中某些字段为必填项,可设置非空约束。演示增加非空约束演示增加非空约束.默认约束演示增加默认约束演示增加默认约束.数据完整性引

51、用完整性 3、引用完整性:用来保持表之间的关系,确保插入到表中数据是有效的、引用完整性:用来保持表之间的关系,确保插入到表中数据是有效的。图书表图书表67.003谁都逃不谁都逃不.178922 28.003金融超限金融超限.15786230.005数据结构数据结构.16890145.506大话设计大话设计.165212 40.501C程序设程序设.169876价格价格作者作者图书名称图书名称图书编号图书编号杜晓月杜晓月5011100015李小旭李小旭1001689014 高好高好11689013纪晓岚纪晓岚501789222李云龙李云龙51652121 和珅和珅101698761订购人订购人订

52、购数量订购数量图书编号图书编号订单编号订单编号订单表订单表约束方法:外键约束约束方法:外键约束外键约束如何保证向图书表中录入的作者信息是有效的?如何保证向图书表中录入的作者信息是有效的?向图书表中增加外键约束,使图书表中向图书表中增加外键约束,使图书表中AuthorID字段与作者表字段与作者表AuthorID建立引用关系,可确保向图书表中插入的作者信息是有效的。建立引用关系,可确保向图书表中插入的作者信息是有效的。演示设置外键演示设置外键.建立关系图主表主表子表子表演示建立关系图演示建立关系图.引用关系规则 不能将主表中关联列不存在的数据,插入到子表中。不能将主表中关联列不存在的数据,插入到子

53、表中。图书表中不能够出现作者信息表中不存在的作者编图书表中不能够出现作者信息表中不存在的作者编号。号。不能更改主表中的数据,而导致子表中数据的孤立。不能更改主表中的数据,而导致子表中数据的孤立。如果作者表中的作者编号改变了,图书表中作者编如果作者表中的作者编号改变了,图书表中作者编号也应随之改变。号也应随之改变。不能删除主表中的数据,而导致子表中数据的孤立不能删除主表中的数据,而导致子表中数据的孤立 如果删除了作者表中作者信息,那么图书表中对应如果删除了作者表中作者信息,那么图书表中对应的作者信息也应随之删除。的作者信息也应随之删除。删除主表前,先删子表删除主表前,先删子表先删图书表、再删除作

54、者表。先删图书表、再删除作者表。逐一演示规则逐一演示规则可以设置级联更新可以设置级联更新可设置级联删除可设置级联删除数据完整性自定义完整性会员号姓名信用.00001李云龙10000002张帝9500003吴选9800004李广9100005吴梦60 4、自定义完整性:用来定义特定的业务规则、自定义完整性:用来定义特定的业务规则。游戏游戏李广李广Y0004妇婴妇婴李摇篮李摇篮S0003技术技术吴选吴选J0001娱乐娱乐张帝张帝G0003军事军事李云龙李云龙G0002.管理版块管理版块版主姓名版主姓名版主编号版主编号约束方法:规则、存储过程、触发器约束方法:规则、存储过程、触发器触发器:检查信用值

55、是触发器:检查信用值是否大于否大于90回顾q管理平台创建数据表的步骤管理平台创建数据表的步骤q数据完整性数据完整性q指数据库中数据的准确性,从数据表中取得的数据是指数据库中数据的准确性,从数据表中取得的数据是准确的和可靠的。准确的和可靠的。q实体完整性实体完整性q域完整性域完整性q引用完整性引用完整性q自定义完整性自定义完整性q各种约束各种约束表达式表达式创建数据表的语法2-1CREATE TABLE 表名表名(字段名字段名1 数据类型数据类型 列的属性列的属性 列约束列约束,字段名字段名2 数据类型数据类型 列的属性列的属性 列约束列约束,字段名字段名3 数据类型数据类型 列的属性列的属性

56、列约束列约束,)创建数据表的语法2-2列属性的格式:列属性的格式:NULL|NOT NULL IDENTITY(标识种子标识种子,标识增量标识增量)列约束的格式:列约束的格式:CONSTRAINT 约束名约束名 PRIMARY KEY(列名列名)CONSTRAINT 约束名约束名 UNIQUE(列名列名)CONSTRAINT 约束名约束名 FOREIGEN KEY(外键列外键列)REFERENCES 主表名主表名(引用列引用列)CONSTRAINT 约束名约束名 CHECK(检查表达式检查表达式)CONSTRAINT 约束名约束名 DEFAULT 默认值默认值创建数据表的示例use Books

57、ManagerGo/*创建作者表创建作者表*/create table Authors(AuthorID int NOT NULL,-编号编号 AuthorName nvarchar(40)NOT NULL,-作者作者姓名姓名 Sex bit NOT NULL,-性别性别 Birthday datetime NULL,-生日生日 Email nvarchar(50),-电子邮箱电子邮箱 TelPhone nvarchar(60),-联系电话联系电话 City nvarchar(50),-居住城市居住城市 Description ntext-作者简介作者简介)教员演示教员演示系统数据表sysob

58、jectsq每个数据库中都有一个系统表每个数据库中都有一个系统表sysobjects,存,存储了本数据库所有的数据表、约束等信息。储了本数据库所有的数据表、约束等信息。Use BooksManagergoSelect*from sysobjects where xtype=u删除数据表q如果当前数据库已经存在如果当前数据库已经存在Authors表,再次创表,再次创建时会引发错误,应该怎么办?建时会引发错误,应该怎么办?USE BooksManagerGO/*检测是否存在检测是否存在students表表*/IF EXISTS(SELECT*FROM sysobjects WHERE name=A

59、uthors)DROP TABLE Authors完整的创建数据表的SQLUSE BooksManagerGO/*检测是否存在检测是否存在Authors表表*/IF EXISTS(SELECT*FROM sysobjects WHERE name=Authors)DROP TABLE Authorsgo/*创建作者表创建作者表*/create table Authors()go回顾SQL SERVER中的约束q添加约束的目的是什么?添加约束的目的是什么?q常用的约束类型有哪几种?常用的约束类型有哪几种?创建表时添加约束use BooksManagerGo/*创建作者表创建作者表*/create

60、 table Authors(AuthorID int NOT NULL identity(1,1)PRIMARY KEY,-编号编号 AuthorName nvarchar(40)NOT NULL,-作者作者姓名姓名 Sex bit NOT NULL DEFAULT 1,-性别性别 Birthday datetime NULL,-生日生日 Email nvarchar(50)DEFAULT CHECK(Email like%),-电子邮箱电子邮箱 TelPhone nvarchar(60),-联系电话联系电话 City nvarchar(50)DEFAULT 北京北京,-居住城市居住城市 D

61、escription ntext-作者简介作者简介)教员演示教员演示现有数据表中添加约束的语法ALTER TABLE 表名表名ADD CONSTRAINT 约束名约束名 约束类型约束类型 具体的约束说明具体的约束说明 现有数据表添加约束的示例-添加主键约束(将添加主键约束(将AuthorID作为主键)作为主键)alter table Authorsadd constraint pk_AuthorID primary key(AuthorID)-添加添加默认约束默认约束(性别默认值为性别默认值为1 1)alter table Authorsadd constraint DF_Sex DEFAUL

62、T(1)for Sex-添加添加检查约束检查约束(电子邮箱必须包含电子邮箱必须包含)alter table Authorsadd constraint CK_Emial Check(Email like%)删除约束ALTER TABLE 表名表名 DROP CONSTRAINT 约束名约束名 use BooksManageralter table Authors drop constraint DF_Sex99修改表ALTER TABLE 表名表名 ADD 列名列名 数据类型数据类型(长度长度)NULL|NOT NULL|ALTER COLUMN 列名列名 数据类型数据类型(长长度度)NULL

63、|NOT NULL|DROP COLUMN 字段名字段名,n|ADD CONSTRAINT 约束定义约束定义,n|DROP CONSTRAINT 约束名约束名,n|NOCHECK CONSTRAINT 约束名约束名|CHECK CONSTRAINT 约束名约束名100使用ADD子句添加列ALTER TABLE 表名表名ADD 列名列名 数据类型数据类型(长度长度)NULL|NOT NULLq若向已存在记录的表中添加列,新添加的列可以若向已存在记录的表中添加列,新添加的列可以设置允许为空;若不允许为空,则需指定默认值设置允许为空;若不允许为空,则需指定默认值101使用DROP COLUMN子句删

64、除列ALTER TABLE 表名表名DROP COLUMN 字段名字段名,q在删除列时,必须先删除基于该列的索引和约束在删除列时,必须先删除基于该列的索引和约束后,才能删除该列后,才能删除该列102使用ALTER COLUMN子句修改列属性ALTER TABLE 表名表名ALTER COLUMN 列名列名 数据类型数据类型(长度长度)NULL|NOT NULLq在默认状态下,列可以被设置为空值,将一个原在默认状态下,列可以被设置为空值,将一个原来允许为空值的列改为不允许为空值时,必须满来允许为空值的列改为不允许为空值时,必须满足列中没有存放空值的记录以及在列上没有创建足列中没有存放空值的记录以

65、及在列上没有创建索引索引103使用NOCHECK CONSTRAINT子句使约束无效ALTER TABLE 表名表名NOCHECK CONSTRAINT 约束名约束名|CHECK CONSTRAINT约束名约束名q该子句只对外键约束和检查约束起作用该子句只对外键约束和检查约束起作用104删除表DROP TABLE 表名表名 ,ndrop table 语句不能删除系统表语句不能删除系统表如果一个表被其他表通过外键约束引用,那么必如果一个表被其他表通过外键约束引用,那么必须先删除设置了外键约束的表,或删除其外键约须先删除设置了外键约束的表,或删除其外键约束束总结q创建数据库或表时一般需要预先检测是

66、否存在该创建数据库或表时一般需要预先检测是否存在该对象,如何检测?对象,如何检测?q数据库从数据库从master系统数据库的系统数据库的sysdatabases表中查表中查询询 q表从该数据库的系统表表从该数据库的系统表sysobjects表中查询表中查询q创建约束有哪两种方式?创建约束有哪两种方式?第3章 总结q需要创建一个数据表,你如何创建,需要考虑哪需要创建一个数据表,你如何创建,需要考虑哪些问题?些问题?q在数据表中数据重复的现象就是数据冗余,解决在数据表中数据重复的现象就是数据冗余,解决数据冗余常用的办法是什么?数据冗余常用的办法是什么?q数据完整性的概念是什么?数据完整性的概念是什么?q通过哪些约束来保证数据的实体完整性通过哪些约束来保证数据的实体完整性?条件运算符运算符运算符含义含义示例示例=等于AuthorID5大于Price50小于Quantity=大于等于Age=50=小于等于Price=100不等于Birthday1970-10-10常用的条件运算符常用的条件运算符通配运算符运算符运算符含义含义示例示例%任意长度的字符串Email Like%.com_任意一个字符

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!