800 likes | 1.31k Views
第 9 章 SQL Server 数据库基础. 内容提要. SQL Server 基本知识 SQL Server 数据库管理 SQL Server 数据表管理 SQL Server 数据表基本操作 SQL Server 索引操作 SQL Server 视图操作. 9.1 SQL Server 概述. 9.1.1 SQL Server 2000 简介 SQL Server 的发展 1988 年 首次推出了 SQL Server 的第一个版本 1992 年 Microsoft 公司将 SQL Server 移植到 Windows NT 操作系统中
E N D
内容提要 • SQL Server 基本知识 • SQL Server 数据库管理 • SQL Server 数据表管理 • SQL Server 数据表基本操作 • SQL Server 索引操作 • SQL Server 视图操作
9.1SQL Server 概述 9.1.1 SQL Server 2000简介 • SQL Server的发展 1988年首次推出了SQL Server的第一个版本 1992年Microsoft公司将SQL Server移植到Windows NT操作系统中 1996年Microsoft推出了SQL Server 6.5 版本 1998年推出了SQL Server 7.0版本 2000年推出了SQL Server 2000 2005年推出了目前最新的版本SQL Server 2005
9.1.2 SQL Server 2000的安装 1.安装SQL Server 2000的环境需求 (1)硬件需求 1) CPU 2) 内存 3) 硬盘容量 (2)软件需求 软件需求主要指对操作系统的要求,SQL Server 2000有多个版本,不同的版本对操作系统的要求也不尽相同
软件需求 企业版:一般作为生产数据库服务器使用,它支持SQL Server 2000的所有功能。它必须运行于安装了Microsoft Windows NT Server 4.0、Microsoft Windows NT Server Enterprise Edition 4.0、Windows 2000 Advanced Server或Windows 2000 Data Center Server的操作系统下。 标准版:一般作为小型工作组或部门的数据库服务器使用。它必须运行于安装了Microsoft Windows NT Server 4.0、Microsoft Windows NT Server Enterprise Edition 4.0、Windows 2000 Server、Windows 2000 Advanced Server或Windows 2000 Data Center Server的操作系统下。 个人版:主要适用于移动用户,除事务处理复制功能外,个人版能够支持所有标准版支持的特性。它可运行在安装了Windows 98、Windows Me、Windows NT Workstation 4.0、Windows 2000 Professional、Windows NT Server 4.0、Windows 2000 Server和所有更高级的Windows版本操作系统下。 开发版:该版本可以供程序员用来开发以SQL Server 2000作为数据存储的应用程序,它只能作为开发和测试系统使用,而不能作为生产服务使用。它可运行于安装了Windows NT Workstation 4.0、Windows 2000 Professional以及其它所有更高级的Windows NT和Windows 2000版本的操作系统下。
SQL Server 2000的安装 • SQL Server 2000的服务管理器负责启动/停止SQL Server服务。 • 启动SQL Server服务: 【开始】→【程序】→【Microsoft SQL Server】→【服务管理器】,打开“SQL Server服务管理器”对话框
9.1.3 SQL Server 常用工具 • 服务管理器 主要作用是:启动数据库服务器的实时服务、暂停和停止正在运行的服务,或在暂停服务后继续启动服务。
企业管理器 • 启动企业管理器的步骤: 【开始】→【程序】→【Microsoft SQL Server】→【企业管理器】 • 主要功能: • 管理SQL Server服务器 • 创建和管理数据库 • 创建和管理各种数据库对象 • 备份数据库和事务日志、恢复数据库 • 复制数据库 • 设置任务调度 • 设置警报 • 管理用户帐户 • 建立Transact-SQL命令语句
查询分析器 • SQL Server 2000查询分析器允许用户交互式输入和执行SQL语句,并能立即返回语句的执行结果。 • 启动查询分析器: 【开始】→【程序】→【Microsoft SQL Server】→【查询分析器】
服务器网络实用工具 SQL Server 2000服务器网络实用工具用于管理服务器网络连接的相关设置,该实用工具用于指定: • SQL Server 2000实例在其上监听客户端请求的网络协议栈 • 从应用程序建立连接时考虑使用的服务器顺序 • SQL Server 2000实例监听的新网络地址
客户端网络实用工具 • SQL Server 2000的客户端网络实用工具用来配置客户端的网络连接,它允许用户创建到指定服务器的网络协议连接和更改默认的网络协议,并用于显示当前系统中安装的网络库的有关信息。 • 启动客户端网络实用工具 : 【开始】→【程序】→【Microsoft SQL Server】→【客户端网络实用工具】
事件探测器 • SQL Server 2000的事件探测器是从服务器捕获SQL Server 2000事件的工具,它能够监视服务器和数据库活动(如死锁数、严重错误、跟踪存储过程和Transact-SQL语句或登录活动等)。 • 启动事件探测器:选择【开始】→【程序】→【Microsoft SQL Server】→【事件探测器】
导入和导出数据工具 • SQL Server 2000的导入和导出数据工具采用向导程序来完成在不同的SQL Server服务器之间传递数据,同时还可以用于与其它数据库管理系统(如Access、Foxpro等)或其它数据格式(如电子表格、文本文件等)进行数据交换。 • 启动导入和导出数据工具:选择【开始】→【程序】→【Microsoft SQL Server】→【导入和导出数据】
Transact-SQL语言 Transact-SQL语言功能 实用工具和应用程序使用两个组件来访问SQL Server: • 数据库应用编程接口(API) • Transact-SQL 语句。 Transact-SQL 语句是根据SQL Server 2000的Transact-SQL语言生成的。大多数数据库操作都是由以下四个Transact-SQL语句之一实现的: • SELECT 语句用于检索现有数据。 • UPDATE 语句用于更改现有数据。 • INSERT 语句用于添加新的数据行。 • DELETE 语句用于删除不再需要的行。
9.2 SQL Server 数据库管理 • 9.2.1 引例 大四学生小李经过了三年的学习后进入了毕业前的实习阶段,他和几个同学联系了一所新建成的独立学院的教务处作为实习地点。教务处要求他们负责学校选课系统的数据库建设,并要求选用SQL Server 2000作为数据库平台。在已有数据库设计方案情况下,小李和同学们面临的第一个问题是如何建立和管理选课数据库?要解决这个问题,需要了解以下问题: • SQL Server 2000数据库由哪些文件构成? • 数据库和数据表之间有什么关系? • 可以采有哪些方法创建数据库? • 如何查看、修改或删除已有数据库?
9.2.2 数据库概述 • 1.文件类型 • 主数据文件 • 辅助数据文件 • 事务日志文件
数据库文件组 • 为了更好地实现数据库文件的组织,以便于分配和管理,SQL Server从7.0版本开始允许将多个文件归纳为一组,并赋予一个名称,这就是数据库文件组。 • SQL Server数据库文件组分为以下三类: • 主文件组 • 自定义文件组 • 默认文件组
系统数据库 系统数据库是在SQL Server 2000安装完成时系统自动建立的特殊数据库,包括同master、model、msdb、tempdb、pubs和Northwind六个数据库。 • master数据库 • master数据库是SQL Server 2000中的主控数据库,记录了SQL Server系统的所有系统信息,包括所有的登录信息、系统设置信息、系统初始化信息、其它系统数据库和用户数据库的信息等。
系统数据库 • model数据库 model数据库是SQL Server 2000中的模板数据库,当创建一个用户数据库时,系统会自动将model数据库的内容复制到该数据库中 • msdb数据库 msdb数据库主要被SQL Server Agent用于进行复制、作业调度以及管理报警等活动,它常用于通过调度任务排除故障。 • tempdb数据库 tempdb数据库用于存储用户创建的临时表、存储过程或全局变量。 • pubs和Northwind数据库 pubs和Northwind数据库是SQL Server 2000中自带的两个实例数据库,可以作为学习SQL Server 2000的工具。
9.2.3 创建数据库 • 在SQL Server 2000中可以通过三种方法来创建数据库:使用向导、使用企业管理器以及使用Transact-SQL语句创建数据库。
2.利用企业管理器创建数据库 • 依次选择【开始】→【程序】→【Microsoft SQL Server】→【企业管理器】 • 在窗口左边的“树”窗格中,依次展开“Microsoft SQL Server”和“SQL Server组”,选中要在其上创建新数据库的服务器或其下的任一节点,只要工具栏上的【新数据库】按钮呈可选状态即可。单击该按钮,出现“数据库属性”对话框
3.利用Transact-SQL语句创建数据库 • 【例9-1】用CREATE DATABASE语句创建test数据库,所有参数均取默认值。 语句清单如下: • CREATE DATABASE test • 这是利用CREATE DATABASE语句创建数据库最简单的方法。将上述语句在SQL Server 2000查询分析器的编辑窗格中输入,单击工具栏上的“执行查询”按钮或“F5”键,就可以快速建立test数据库。
3.利用Transact-SQL语句创建数据库 • 【例9-2】用CREATE DATABASE语句创建“选课”数据库,其中主数据文件的逻辑文件名为“course_dat”,物理文件名为“coursedb.mdf”,存放在“d:\mssql\example\”目录下,初始大小为2MB,最大大小为50MB,增长增量为1MB;事务日志文件的逻辑文件名为“course_log”,物理文件名为“courselog.ldf”,存放在“d:\mssql\example\”目录下,初始大小为1MB,最大大小为10MB,增长增量为10%,其它参数均取默认值。 语句清单如下: CREATE DATABASE选课 ON ( NAME = course_dat, FILENAME = 'd:\mssql\example\coursedb.mdf', SIZE = 2, MAXSIZE = 50, FILEGROWTH = 1 ) LOG ON ( NAME = course_log, FILENAME = 'd:\mssql\example\courselog.ldf', SIZE = 1MB, MAXSIZE = 10MB, FILEGROWTH = 10% )
9.2.4 操作数据库 • 数据库创建之后,可以通过查看数据库操作来了解当前数据库的相关信息。数据库信息主要包括基本信息、维护信息和空间使用情况。 • 可以通过SQL Server 2000的企业管理器和系统存储过程两种方法来查看数据库信息。
利用企业管理器查看数据库 • 选择【开始】→【程序】→【Microsoft SQL Server】→【企业管理器】,打开“SQL Server Enterprise Manager”窗口。 • 在窗口左边的“树”窗格中,依次展开“Microsoft SQL Server”、“SQL Server组”、“数据库”节点,在列出的数据库列表中选中要查看的数据库,单击右按钮,在弹出的快捷菜单中,单击【属性】命令
利用系统存储过程查看数据库 语法格式如下: [EXECUTE] sp_helpdb [数据库名] • 【例9-3】用sp_helpdb存储过程查看test 数据库的信息。 语句清单如下: • EXEC sp_helpdb test
修改数据库 • 利用企业管理器修改数据库 打开要修改数据库的“属性”对话框,在“数据文件”、“事务日志”、“文件组”、“选项”、“权限”选项卡中修改需改变的属性 • 利用Transact-SQL语句修改数据库 通过企业管理器来修改数据库,只能修改数据库的属性,不能更改数据库的名字,Transact-SQL则提供了这两方面的修改方法。
利用Transact-SQL语句修改数据库 (1)数据库更名 • 【例9-4】将已存在的test数据库更名为test2。 语句清单如下: EXEC sp_renamedb test , test2
利用Transact-SQL语句修改数据库 2)修改数据库属性 • 【例9-5】更改test2数据库以添加一个初始大小为3 MB 大小的新数据文件,其逻辑文件名为“test2_dat2”,物理文件名为“test2data2.ndf”,存放在“d:\mssql\example\”目录下,最大大小为30MB,增长增量为2MB。 语句清单如下: ALTER DATABASE test2 ADD FILE ( NAME = test2_dat2, FILENAME = 'd:\mssql\example\test2data2.ndf' SIZE = 3MB, MAXSIZE = 30MB, FILEGROWTH = 2MB )
删除数据库 • 利用企业管理器删除数据库 • 利用Transact-SQL语句删除数据库 【例9-6】删除已存在的test2数据库。 语句清单如下: DROP DATABASE test2
9.3 SQL Server 数据表管理 • 9.3.1 引例 在建好“选课”数据库后,小李负责其中“学生”数据表的建立。小李又面临以下新的问题: • SQL Server 2000数据表由哪些部分构成? • 建立数据表结构需要哪些信息? • 在建立数据表结构时,如何保证数据的完整性? • 可以采有哪些方法创建数据表? • 如何查看、修改或删除已有数据表结构?
9.3.2 数据表概述 • 1.数据表概念 • 数据表是互相关联的行列集合,用来存储数据库中的实际数据。在关系型数据库中每一个关系都体现为一张数据表,表的结构包括列和行。列主要描述数据的属性,称为字段;而行则组织数据的单位,称为记录。
整型数据类型 • 浮点数据类型 • 字符数据类型 • 日期和时间数据类型 • 文本和图形数据类型 • 货币数据类型 • 二进制数据类型 • 位数据类型
数据完整性 数据的完整性是指存储在数据库中的数据的正确性和相容性以防止数据库中存在不符合语义的数据或在进行各种数据操作(插入、删除、修改等)时破坏了数据的一致性。 (1)实体完整性 • 实体完整性要求数据表中所有的行唯一,即所有记录都是可区分的,例如一个学校的每个学生在学生档案库中应该有且只有一条记录。 (2)域完整性 • 域完整性是指给定列的输入有效性,例如在代表月份的列中,应该只能输入1~12之间的数值,否则输入是无效的。 (3)引用完整性 • 在输入或删除记录时,引用完整性保持表之间已定义的关系。在SQL Server 2000 中,引用完整性基于外键与主键之间或外键与唯一键之间的关系(通过FOREIGN KEY 和CHECK 约束)。 (4)用户定义完整性 • 用户定义完整性使用户得以定义不属于其它任何完整性分类的特定业务规则。
数据约束 • 约束可以分为列级约束和表级约束,列级约束是行定义的一部分,只能够应用在一列上;表级约束的定义独立于列的定义,可以应用在一个表中的多列上。 (1)非空(NOT NULL)约束 (2)检查(CHECK)约束 (3)唯一(UNIQUE)约束 (4)主键(PRIMARY KEY)约束 (5)外键(FOREIGN KEY)约束
9.3.3 创建数据表 • 利用企业管理器创建数据表 (1)创建表结构 (2)设置约束
利用Transact-SQL语句创建数据表 【例9-7】用CREATE TABLE语句在“选课”数据库创建如表9-1所示“学生”数据表。 语句清单如下: USE 选课 CREATE TABLE 学生 ( 学号 char(12) NOT NULL, 姓名 nvarchar(10) NOT NULL, 专业编号 char(4) , 性别 char(2), 出生日期 datetime, 入学时间 datetime, 入学成绩 numeric, 团员否 bit, 简历 ntext )
设置约束 【例9-8】用CREATE TABLE语句在“选课”数据库创建如表9-1所示“学生”数据表,并将“学号”设置为主键,“姓名”设置为具有唯一性,“入学成绩”设置为必须大于等于0。 语句清单如下: USE 选课 CREATE TABLE 学生 ( 学号 char(12) NOT NULL PRIMARY KEY, 姓名 nvarchar(10) NOT NULL, 专业编号 char(4) , 性别 char(2), 出生日期 datetime, 入学时间 datetime, 入学成绩 numeric 5, 团员否 bit, 简历 ntext, CONSTRAINT UNIQ_FIELD UNIQUE(姓名), CONSTRAINT CHECK_FIELD CHECK(入学成绩>=0), )
设置外键约束 • 另外,若需要建立另一张数据表“学生选课”表,因为其中的“学号”字段来源于“学生”数据表,则在建立“学生选课”表时,应将表中的“学号”字段与“学生”表中的“学号”字段建立外键约束: CREATE TABLE学生选课 ( …… , CONSTRAINT FOREIGN_FIELD FOREIGN KEY(学号)REFERENCES 学生(学号) )
9.3.4 操作数据表 • 1.利用企业管理器查看数据表 • (1)查看数据表结构 • (2)查看数据表约束
2.利用Transact-SQL的存储过程和语句查看数据表 【例9-9】用sp_help存储过程查看“学生”表的结构和约束。 语句清单如下: USE 选课 EXEC sp_help 学生
修改数据表 • 1.利用企业管理器修改数据表 • 2.利用Transact-SQL语句修改数据表 【例9-10】用ALTER TABLE 语句修改“学生”表的结构,将“姓名”字段的类型改为varchar(8)型,删除“团员否”字段,增加“政治面貌”字段,类型为char(4)型。 语句清单如下: USE 选课 ALTER TABLE 学生 ALTER COLUMN 姓名 varchar(8) ALTER TABLE 学生 DROP COLUMN 团员否 ALTER TABLE 学生 ADD 政治面貌 char(4) 如果“学生”表中建有约束,上述操作可能会失败,要先去除约束,才能执行成功。
修改数据表 【例9-11】用ALTER TABLE 语句修改”学生”表的结构,去除在例9-8中建立的名为UNIQ_FIELD的约束,同时设置“性别”字段的值只能为“男”或“女”。 语句清单如下: USE 选课 ALTER TABLE 学生 DROP UNIQ_FIELD ALTER TABLE 学生 ADD CONSTRAINT SEX_CHECK CHECK(性别 IN('男','女'))