SQL-Server基础培训PPT优秀课件_第1页
SQL-Server基础培训PPT优秀课件_第2页
SQL-Server基础培训PPT优秀课件_第3页
SQL-Server基础培训PPT优秀课件_第4页
SQL-Server基础培训PPT优秀课件_第5页
已阅读5页,还剩274页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 培训内容培训内容 第一章:数据库基础知识介绍 第二章:SQL Server的安装与系统结构 第三章:SQL Server的日常使用与管理 第四章:SQL Server的开发应用 第五章:数据库性能问题 培训安排培训安排2 培训目标培训目标 熟悉数据库基础知识 掌握SQL Server的安装与数据库的创建 掌握简单的日常管理 进行SQL开发总结:独立创建一个开发系统的过程 初步开发的能力34 内容内容 数据库的组成与简单概念 当前流行的数据库 MS SQL Server 2000简介 目标和要求目标和要求 掌握数据库基本概念5 数据库系统:指引进数据库技术后的计算数据库系统:指引进数据库技术

2、后的计算机系统。包括:硬件系统,数据库集合,机系统。包括:硬件系统,数据库集合,数据库管理系统数据库管理系统(DBMS)及相关软件,数据及相关软件,数据库管理员和用户。库管理员和用户。6物理设备DBMSApplications(应用)网络,协议介质,接口DB Tools(管理工具)存储管理数据库管理数据库中的对象管理1.表单2.视图3.触发器4.索引5.存储过程4.函数、包7部门序号部门序号integerVarchar(20)varchar(20)char(6)char(2)longstring行行列列101911019210202LabrieLabrieMartinAngelaEvaJose

3、FRFRSPx19891x19433x21467HRKarlDHRKarlDHRAmyL 存储数据的地方 由行(row记录)和列(column字段)组成类型类型8部门序号部门序号AndersonAndersonBegerlongstringvarchar(20)char(6)char(2)longstring触发器触发器存储过程存储过程主主键键FKCheckx#101911019210202LabrieLabrieMartinAngelaEvaJoseFRFRSPx19891x19433x21467HRKarlDHRKarlDHRAmyL9 一个表只能包含一个一个表只能包含一个

4、PRIMARY KEY 约束。约束。 如果没有在如果没有在 PRIMARY KEY 约束中指定约束中指定 CLUSTERED 或或 NONCLUSTERED,并且没有为,并且没有为 UNIQUE 约束指定聚集约束指定聚集索引,则将对该索引,则将对该 PRIMARY KEY 约束使用约束使用 CLUSTERED。 在在 PRIMARY KEY 约束中定义的所有列都必须定义为约束中定义的所有列都必须定义为 NOT NULL。如果没有指定为空性,加入。如果没有指定为空性,加入 PRIMARY KEY 约束的所有列的为空性都将设置为约束的所有列的为空性都将设置为 NOT NULL。 10如果如果 UN

5、IQUE 约束中没有指定约束中没有指定 CLUSTERED 或或 NONCLUSTERED,则默,则默认为认为 NONCLUSTERED。每个每个 UNIQUE 约束都生成一个索引。约束都生成一个索引。 例:创建表职工(职工号,姓名,身份证号)的同时定义身份证号取值唯一。例:创建表职工(职工号,姓名,身份证号)的同时定义身份证号取值唯一。T-SQL语句如下:语句如下:CREATE TABLE 职工(职工号char(8) NOT NULL,姓名char(10) ,身份证号 char(18) NULL CONSTRAINT uni_sfz UNIQUE )例:为存在的表职工(职工号,姓名,身份证号

6、)定义身份证号取值唯一的例:为存在的表职工(职工号,姓名,身份证号)定义身份证号取值唯一的约束约束。 T-SQL语句如下:语句如下:ALTER TABLE 职工ADD CONSTRAINT uni_sfz UNIQUE NONCLUSTERED(身份证号)例:删除上例建立的主键约束。例:删除上例建立的主键约束。T-SQL语句如下:语句如下:ALTER TABLE 职工 DROP CONSTRAINT uni_sfz11 若将表中某列定义了若将表中某列定义了DEFAULT约束后,用户在约束后,用户在插入新的数据行时,如未指定该列值,系统自动插入新的数据行时,如未指定该列值,系统自动将该列值赋为默

7、认值(默认值可以是空值)。将该列值赋为默认值(默认值可以是空值)。 使用企业管理器定义、删除使用企业管理器定义、删除DEFAULT约束约束 语法格式:语法格式:CONSTRAINT 约束名约束名 DEFAULT 默认约束值默认约束值 FOR 列名列名 使用使用T-SQL语句删除语句删除DEFAULT约束约束 语法格式:语法格式:DROP CONSTRAINT 约束名约束名12例:创建表学生(学号,姓名,性别)的同时定义性别的默认值为例:创建表学生(学号,姓名,性别)的同时定义性别的默认值为男男。T-SQL语句如下:语句如下:CREATE TABLE 学生学生(学号学号char(8) NOT N

8、ULL,姓名姓名char(10) ,性别性别 char(2) DEFAULT 男男 )例:为存在的表学生(学号,姓名,性别)定义性别的默认值为例:为存在的表学生(学号,姓名,性别)定义性别的默认值为男男 。T-SQL语句如下:语句如下:ALTER TABLE 学生学生 ADD CONSTRAINT dft_xs DEFAULT 男男 FOR 性别性别例:删除上例建立的默认约束。例:删除上例建立的默认约束。T-SQL语句如下:语句如下:ALTER TABLE 学生学生 DROP CONSTRAINT dft_xs13 外键外键 (FK) 是是用于建立和加强两个表数据之用于建立和加强两个表数据之间

9、的链接的一列或多列间的链接的一列或多列。通过将保存表中。通过将保存表中主键值的一列或多列添加到另一个表中,主键值的一列或多列添加到另一个表中,可创建两个表之间的链接可创建两个表之间的链接。 在增加外键结束: ALTER TABLE MS_CF02 ADD CONSTRAINT FK_MS_CF01_CFSB_MS_CF02_CFSB FOREIGN KEY (CFSB) REFERENCES MS_CF01 14 规则也是一种数据库对象,可以绑定到一列或多规则也是一种数据库对象,可以绑定到一列或多列上,作用与列上,作用与CHECK约束相似,在插入数据行时,约束相似,在插入数据行时,指定接受的数

10、据值的范围。指定接受的数据值的范围。 规则对象在功能上与规则对象在功能上与CHECK约束是一样的,在约束是一样的,在使用上有所区别:使用上有所区别: CHECK约束是和表的定义联系在一起的,删除约束是和表的定义联系在一起的,删除表的同时表的同时CHECK约束也被删除约束也被删除 规则对象作为一种单独存储的数据库对象,规则对象作为一种单独存储的数据库对象,独独立于表之外立于表之外(用(用CREATE RULE定义),删除表定义),删除表时并不删除规则对象(用时并不删除规则对象(用DROP RULE删除),删除),15 使用使用T-SQL语句语句CREATE RULE创建规则创建规则对象对象 语法

11、格式:语法格式: CREATE RULE 规则名 AS 规则条件 例:例: 定义规则对象:设置成绩在0分和100分之间。CREATE RULE cj_rlAS cj=0 and cj=10016 使用使用sp_bindrule语句绑定规则对象语句绑定规则对象 语法格式:语法格式:sp_bindrule rulename= 规则对象名 objname= 绑定的列名 例:例: 将规则对象cj_rl绑定到成绩表的成绩列。 exec sp_bindrule cj_rl,成绩.成绩17使用使用sp_unbindrule语句解除绑定语句解除绑定语法格式:语法格式:sp_unbindrule objname

12、= 绑定的列名例:例: 删除学生表性别列和规则对象cj_rl的绑定。 exec sp_unbindrule 成绩.成绩使用使用T-SQL语句语句DROP RULE删除规则对象删除规则对象语法格式:语法格式: DROP RULE 规则对象名例:删除规则对象例:删除规则对象cj_rl 。 DROP DEFAULT cj_rl 注:删除规则对象时,首先要解除规则对象的绑定,然注:删除规则对象时,首先要解除规则对象的绑定,然 后才能删除后才能删除规则对象规则对象。18 索引是关系型数据库的一个基本概念。索引是关系型数据库的一个基本概念。 数据库的索引类似图书的索引,能够使数据库数据库的索引类似图书的索

13、引,能够使数据库程序不用浏览整个表,就可以找到表中的数据。程序不用浏览整个表,就可以找到表中的数据。 索引是一个表中所包含的值的列表,它说明了索引是一个表中所包含的值的列表,它说明了表中包含各个值的行所在的存储位置。表中包含各个值的行所在的存储位置。 用户可以利用索引快速访问数据库表中的特定用户可以利用索引快速访问数据库表中的特定信息。信息。 但使用索引存储地址将占用磁盘空间,同时在但使用索引存储地址将占用磁盘空间,同时在数据维护时,也将花费一定的时间。因此要数据维护时,也将花费一定的时间。因此要合理合理设计索引设计索引。19 语法格式:语法格式:CREATE UNIQUE CLUSTERED

14、 | NONCLUSTERED INDEX 索引名索引名 ON 表名或视图名表名或视图名(列名列名 ASC|DESC,n)ON 文件组名文件组名此选项表示创此选项表示创建惟一索引建惟一索引此选项表示创此选项表示创建聚集索引建聚集索引此选项表示创此选项表示创建非聚集索引建非聚集索引升序升序降序降序20 例:例: 为表为表“学生课程表学生课程表”创建基于创建基于“课程名课程名”列的惟列的惟一非聚集索引一非聚集索引au_csn。CREATE UNIQUE INDEX au_csn ON 学生课程表(课程名)为表为表“XSQK”创建基于创建基于“学号学号”列的惟一聚集索引列的惟一聚集索引in_xh。C

15、REATE UNIQUE CLUSTERED INDEX in_xh ON XSQK(学号)21 使用系统存储过程使用系统存储过程sp_helpindes查看查看 语法格式:语法格式: Sp_helpindex 表名或视图名表名或视图名 例:查看表例:查看表ZY_FYMX上的索引信息。上的索引信息。 Sp_helpindex ZY_FYMX22 当一个索引不再需要时,可以将其从数据库中删当一个索引不再需要时,可以将其从数据库中删除,以回收当前使用的存储空间,便于数据库中除,以回收当前使用的存储空间,便于数据库中的任何对象使用。的任何对象使用。 注:通过设置注:通过设置PRIMARY KEY约束

16、或约束或UNIQUE约约束所建立的索引不允许用户删除,只能通过删除束所建立的索引不允许用户删除,只能通过删除约束或删除表的方法删除。约束或删除表的方法删除。 使用使用T-SQL命令删除索引命令删除索引 语法格式:语法格式: DROP INDEX 表名表名.索引名索引名|视图视图.索引名索引名23 视图:虚拟的表(简化、安全、方便)视图:虚拟的表(简化、安全、方便) title authorLast of the MohicansThe Village Watch-TowerPoemsJames Fenimore CooperKate Douglas WigginWilfred Owentitl

17、e_no title authorsynopsis123Last of the MohicansThe Village Watch-TowerPoemsJames Fenimore CooperKate Douglas WigginWilfred OwenCREATE VIEW dbo.TitleViewAS SELECT title, authorFROM title24 Indexes are B-Trees Structures Which Allow Fast Access to Data(为了能快速存为了能快速存取数据的一种树形结构取数据的一种树形结构) 建立适当的索引可以減少I/O

18、存取的次数AAA E IJ K LMJMM N Q25 聚集聚集(Clustered)Index 资料已经做过物理排序,适合大量資料的处理 每一個资料表只能有一個聚集索引 非非聚集聚集(Non-Clustered)Index 不做物理排序,可以多个。 适用与资料密度低的列,也就是 WHERE 条件时具有高选择性(SELECTIVITY) 复复合(合(Composited) Index 所要用到的列都已经包含在索引页(Index Page)中,故不需要去到物理的资料页(Data Page)一笔一笔去找 为特定查詢命令量身定作用26 存储过程存储过程 为完成特定的功能而汇集在一起的一组SQL 程序

19、语句,将其保存在数据库中,并由SQL Server服务器通过过程名来调用它们。 存储过程在创建时就被编译和优化,调用一次以后,相关信息就保存在内存中,下次调用时可以直接执行。 优点:性能、安全性、业务封装CREATE PROC dbo.find_isbn title longstring = null, translation char(8) = EnglishASIF title is null BEGIN PRINT Please provide a title (or partial title) and the translation PRINT find_isbn Oliver%,

20、Japanese27 系统存储过程系统存储过程 存储在存储在master数据库中,以数据库中,以sp_为前缀。可以为前缀。可以在其他数据库中对其进行调用。在其他数据库中对其进行调用。 用户自定义存储过程用户自定义存储过程 由用户创建并能完成某一特定功能的存储过程。由用户创建并能完成某一特定功能的存储过程。或称本地存储过程。包括临时存储过程、远程存或称本地存储过程。包括临时存储过程、远程存储过程、扩展存储过程。储过程、扩展存储过程。 临时存储过程又包括局部的和全局的临时存储临时存储过程又包括局部的和全局的临时存储过程,前者在过程名的前面带过程,前者在过程名的前面带#,后者在过程名,后者在过程名的

21、前面带的前面带#。全局临时存储过程对所有用户都可。全局临时存储过程对所有用户都可见。见。 扩展存储过程的前缀是扩展存储过程的前缀是xp_ 。 28用用T-SQL命令创建命令创建存储过程的三个组成部分:存储过程的三个组成部分:(1)所有的)所有的输入参数输入参数以及传给调用者的以及传给调用者的输出参数输出参数;(2)被执行的针对数据库的)被执行的针对数据库的操作语句操作语句,包括调用其他存储过程的语,包括调用其他存储过程的语句;句;(3)返回返回给调用者的给调用者的状态值状态值,以指明调用是成功还是失败。,以指明调用是成功还是失败。T-SQL创建存储过程的基本语法格式:创建存储过程的基本语法格式

22、:CREATE PROCEDURE 存储过程名称 参数定义AS SQL语句例例1:创建存储过程,实现查询所有学生信息的功能:创建存储过程,实现查询所有学生信息的功能。Create proc proc_7_1AsSelect * From xsqk29 例例2: 创建存储过程创建存储过程proc_7_2,要求实现根据学生学号,要求实现根据学生学号,产生不同结果,如果该学生信息不存在,则显示产生不同结果,如果该学生信息不存在,则显示“无此学号的学生!无此学号的学生!”,否则返回该学生的基本,否则返回该学生的基本信息信息。Create proc proc_7_2sno char(8)AsIf exi

23、sts(Select * From xsqk where 学号= sno) select * From xsqk where 学号= snoElse print 无此学号的学生!30例例4:在学生成绩库中创建存储过程:在学生成绩库中创建存储过程proc_7_t2,要求实现如要求实现如下功能:根据学生学号,如果此学生存在,则产生该生的下功能:根据学生学号,如果此学生存在,则产生该生的课程成绩列表,其中包括学号、课程号、课程名称、成绩、课程成绩列表,其中包括学号、课程号、课程名称、成绩、学分等;如果此学生不存在,则显示学分等;如果此学生不存在,则显示“无此学生!无此学生!”。并。并调用此存储过程,

24、显示调用此存储过程,显示“02020101”学生的课程成绩情学生的课程成绩情况。况。create proc proc_7_t2 sno char(8) as if exists(select * from xsqk where 学号=sno) Select 学号, xscj.课程号, 课程名, 成绩, xskc.学分 From xscj, xskc Where xscj.课程号 = xskc.课程号 and 学号= sno else print 无此学生!31 实际应用例子,取当前实际应用例子,取当前ID号号CREATE PROCEDURE sp_getidas_in_code varchar

25、(40),an_out_id varchar(20) OUTPUTASBEGIN DECLARE an_count int SELECT an_count = COUNT (*) FROM GY_IDENTITY WHERE BMC = as_in_code IF (an_count = 0) INSERT INTO GY_IDENTITY(BMC,DQZ,CSZ,DZZ)VALUES(as_in_code,1,1,1) ELSE UPDATE GY_IDENTITY SET DQZ = DQZ + 1 WHERE BMC = as_in_code SELECT an_out_id = DQZ

26、 FROM GY_IDENTITY WHERE BMC = as_in_code SELECT CONVERT(VARCHAR(20),an_out_id)ENDGO32 说明:说明: (1)在一个批处理中,)在一个批处理中,Create procedure语句语句不能与其他不能与其他SQL语句合并在一起(封装性)。语句合并在一起(封装性)。 (2)存储过程作为数据库对象其命名必须符合)存储过程作为数据库对象其命名必须符合命名规则。命名规则。 (3)只能在当前数据库中创建属于当前数据库)只能在当前数据库中创建属于当前数据库的存储过程。的存储过程。 (4)一个存储过程的最大尺寸为)一个存储过程的

27、最大尺寸为128M。33 语法格式:语法格式:ALTER PROCEDURE 存储过程名称 参数定义AS SQL语句 例:修改在例例:修改在例7.5中已创建的存储过程中已创建的存储过程proc_7_t1,要求在要求在显示列中加入成绩列。显示列中加入成绩列。alter proc proc_7_t1asSelect xsqk.学号, 姓名, 性别, xskc.课程号, 课程名, xskc.学分, 成绩 From xsqk, xscj, xskc Where xsqk.学号 = xscj.学号 and xscj.课程号 = xskc.课程号 and 班级 = 计算机020334 语法格式:语法格式:

28、 DROP PROCEDURE 存储过程名称存储过程名称 例:删除存储过程例:删除存储过程proc_7_1。 drop proc proc_7_1 一般地,在用一般地,在用T-SQL命令创建存储过程时,总是先确定命令创建存储过程时,总是先确定要创建的存储过程是否已经存在,如果存在,那么就删除要创建的存储过程是否已经存在,如果存在,那么就删除重建。我们可以用如下语句实现:重建。我们可以用如下语句实现: If exists( select name from sysobjects where name = proc_7_1 and type = P) drop proc proc_7_135触发器

29、:用户定义的触发器:用户定义的SQL 事务命令的集合。当对一个表进行插入、事务命令的集合。当对一个表进行插入、更改、删除时,这组命令就会自动执行。更改、删除时,这组命令就会自动执行。主要作用:实现由主键和外键所不能保证的参照完整性和数据的一主要作用:实现由主键和外键所不能保证的参照完整性和数据的一致性;强化约束;跟踪变化;级联运行;存储过程的调用。致性;强化约束;跟踪变化;级联运行;存储过程的调用。 Transaction cannot be processed. * Member number cannot be modifiedCREATE TRIGGER member_update ON

30、 member FOR UPDATEASIF UPDATE (member_no)BEGINRAISERROR (Transaction cannot be processed.* Member number cannot be modified., 10, 1)ROLLBACK TRANSACTIONmember_nolastnamefirstname middleinitial photograph10020100211002210023AndersonBarrBarrAndersonAndrewAndrewBillBillARNULLB1234BarrAndrew RUPDATE mem

31、berSET member_no = 10021WHERE member_no = 123436 触发器的种类触发器的种类 AFTER触发器触发器 只有对表执行某一操作这只有对表执行某一操作这后,才能被触发。可以为表的同一操作定后,才能被触发。可以为表的同一操作定义多个触发器,其触发次序可使用义多个触发器,其触发次序可使用sp_settriggerorder来完成。来完成。 INSTEAD OF触发器触发器 并不执行其所定义并不执行其所定义的操作而仅是执行触发器本身,对所执行的操作而仅是执行触发器本身,对所执行的的SQL语句的一个替代操作,对同一操作语句的一个替代操作,对同一操作只能定义一个只

32、能定义一个instead of 触发器。触发器。37 INSERTED和和DELETED临时表临时表 触发器代码最强大的功能之一是能够比较记录的新旧版触发器代码最强大的功能之一是能够比较记录的新旧版本,用户可以根据记录的改变适时地做出决定。本,用户可以根据记录的改变适时地做出决定。 插入一行时,插入一行时,INSERTED表保存了一份插入行的拷贝。表保存了一份插入行的拷贝。 删除一行时,删除一行时,DELETED表保存了删除行的拷贝。表保存了删除行的拷贝。 更新一行时,更新一行时,INSERTED表中保存了一份新行的拷贝,表中保存了一份新行的拷贝, DELETED表中保存了一份旧行的拷贝。表中

33、保存了一份旧行的拷贝。 可以使用这两个临时的驻留内存的表测试某些数据修改可以使用这两个临时的驻留内存的表测试某些数据修改的效果及设置触发器操作的条件,便不能直接对这两个临的效果及设置触发器操作的条件,便不能直接对这两个临时表中的数据进行更改。时表中的数据进行更改。38 用用T-SQL命令创建命令创建 语法格式:语法格式:CREATE TRIGGER 触发器名称ON 表或视图 FOR | AFTER(默认) | INSTEAD OF DELETE,INSERT,UPDATEAS SQL语句 39这个例子是用来跟踪药房系统发药减库存情况的每一笔明细帐这个例子是用来跟踪药房系统发药减库存情况的每一笔

34、明细帐,当有库存与台帐不符时当有库存与台帐不符时,可以据此来可以据此来判断是哪一笔交易有问题判断是哪一笔交易有问题,从面进一步定位发生错误的模块从面进一步定位发生错误的模块.CREATE TRIGGER dbo.TRI_YF_KCMX_UPDATE ON dbo.YF_KCMX FOR UPDATE AS declare ypxh numeric(10) declare ypcd numeric(10) declare yfsb numeric(2) declare ckbh numeric(2) declare yypsl numeric(10,2) declare xypsl numeri

35、c(10,2) declare host char(50) IF UPDATE (YPSL) BEGIN select yypsl = deleted.YPSL FROM deleted select ypxh = inserted.YPXH,ypcd = inserted.YPCD,yfsb = inserted.YFSB,ckbh = inserted.CKBH, xypsl = inserted.YPSL from inserted if(yfsb = 1) BEGIN select host = hostname from master.dbo.sysprocesses where s

36、pid = spid insert into EMP_KCMX(YFSB,CKBH,YPXH,YPCD,YYPSL,YPSL,XYPSL,HOST,JLSJ) values(yfsb,ckbh,ypxh,ypcd,yypsl,0,xypsl,host,getdate() END END40 CTEATE TRIGGER 语句必须是批处理的第一个语句必须是批处理的第一个语句;语句; 表的所有者具有创建触发器的默认权限,表的所表的所有者具有创建触发器的默认权限,表的所有者不能把该权限传给其他用户;有者不能把该权限传给其他用户; 触发器是数据库对象,其命名必须符合命名规则。触发器是数据库对象,其命名

37、必须符合命名规则。 尽管在触发器的尽管在触发器的SQL语句中可以参照其他数据库语句中可以参照其他数据库中的对象,但是,触发器只能创建在当前数据库中的对象,但是,触发器只能创建在当前数据库中。中。 一个触发器只能对应一个表,这是由触发器的机一个触发器只能对应一个表,这是由触发器的机制决定的。制决定的。 41 修改触发器的名字修改触发器的名字 sp_rename 触发器原名称触发器原名称,新名称新名称 2. 修改触发器正文修改触发器正文 使用企业管理器使用企业管理器 使用使用T-SQL命令命令 语法格式:语法格式: ALTER TRIGGER 触发器名称触发器名称 ON 表或视图表或视图 FOR

38、| AFTER | INSTEAD OF DELETE,INSERT,UPDATE AS SQL语句语句42 语法格式:语法格式: DROP TRIGGER 触发器名称触发器名称 如果删除触发器所在的表时,系统将自动如果删除触发器所在的表时,系统将自动删除与该表相关的触发器。删除与该表相关的触发器。43关系数据库系统基本概念 设备设备(device,tablespace,datafile):存放数据存放数据库的物理定义;库的物理定义; 日志日志(log):记录对数据库的任何操作,用于备记录对数据库的任何操作,用于备份和恢复;份和恢复; 用户用户(User):可以使用数据库中具体内容的人可以使用

39、数据库中具体内容的人员定义;员定义; 角色角色(Role):给同一用户赋予不同的角色,享给同一用户赋予不同的角色,享有不同的权限;有不同的权限; 权限权限(Privilege):赋予用户操作数据的权限;赋予用户操作数据的权限;44 数据库的发展数据库的发展 当前流行数据库:关系型数据库当前流行数据库:关系型数据库 Oracle MS Sql Server Sybase DB2 Infomix 面向对象的数据库面向对象的数据库 Cach 19501960197019801990 2000层次模型层次模型网络模型网络模型关系模型关系模型的提出的提出早期关系模早期关系模型的实现型的实现关系模型关系模

40、型的繁荣的繁荣SQL Server 2000后关系模后关系模型数据库型数据库45 历史历史 最初由Microsoft,Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本,在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上专注于开发推广SQL Server 的Windows NT 版本,Sybase 则较专注于SQL Server在UNIX 操作系统上的应用 版本历史版本历史 96年,SQL Server6.5 9

41、8年,SQL Server 7.0 2000年,SQL Server 2000,中文版 2005年10发布MS SQL Server 200546 表表(Table):数据库存储数据的地方,由属性和记数据库存储数据的地方,由属性和记录构成的二维关系表录构成的二维关系表; 视图视图(View):基于单表或多表的查询;基于单表或多表的查询; 存储过程存储过程(Store procedure):存储于数据库服务存储于数据库服务器上的一系列操作的合集,由服务器执行,可以器上的一系列操作的合集,由服务器执行,可以增强可管理性和运行效率;增强可管理性和运行效率; 触发器触发器(Triggers):当对表的

42、某种操作发生时,就当对表的某种操作发生时,就引发其他的一些逻辑处理;引发其他的一些逻辑处理; 主键主键(Primary Key):用于惟一地确定一条记录用于惟一地确定一条记录 索引索引(Index):服务于快速查询,寄生于表的一种服务于快速查询,寄生于表的一种服务;服务; 数据库数据库(database):上述各对象的集合;上述各对象的集合;4748 内容内容 MS Sql Server 2000的不同版本及要求 MS Sql Server 2000的安装 系统管理工具简单介绍 系统的组成 系统设置 目标和要求目标和要求 熟练掌握数据库安装过程 了解不同版本要求 了解系统设置49 企业版(企业

43、版(Enterprise Edition) 支持所有的SQL Server 2000 特性,可作为大型Web站点、企业OLTP(联机事务处理)以及数据仓库系统等的产品数据库服务器 标准版(标准版(Standard Edition) 用于小型的工作组或部门 个人版(个人版(Personal Edition) 用于单机系统或客户机 开发者版(开发者版(Developer Edition) 用于程序员开发应用程序,这些程序需要SQL Server 2000 作为数据存储设备。此外,此外,SQL Server 2000 还有桌面引擎(还有桌面引擎(Desktop Engine) 和和Windows C

44、E 版。用户可以根据实际情况选择所要安装的版。用户可以根据实际情况选择所要安装的SQL Server 2000 版本。版本。 50计算机 Intel 以及兼容芯片 (Pentium 166 MHz 或者更高内存最小 32 MB最小 64 MB (Windows NT/2000 Server,企业版本) 硬盘95 到 270 MB,一般为 250 MB 文件系统NTFS 或者 FAT推荐使用NTFS格式的文件系统MB操作系统Windows NT Server, Enterprise Edition, 4.0 with SP4 or later; Windows NT Server 4.0 wit

45、h SP6 or later;Windows NT Workstation 4.0 with SP4 or later; orWindows 95/98 Windows95/98Windows NT/2000其他要求Internet Explorer 4.01 及 SP1 或者更高版本5152535455565758596061626364 安装前了解版本要求,确保硬件及软件环安装前了解版本要求,确保硬件及软件环境要求境要求 正式系统注意安装目录的选择正式系统注意安装目录的选择 正式系统注意用户数正式系统注意用户数65 为什么需要讲系统的设置?为什么需要讲系统的设置? 微小的差异可能照成系统性

46、能的巨大差别 内容内容 操作系统安装设置 数据库参数设置66 启用网络应用模式为启用网络应用模式为“最大化网络应用程最大化网络应用程序数据吞吐量序数据吞吐量”67 避免讲系统避免讲系统pagefile.sys与与ms sql server档案放在同一硬盘上档案放在同一硬盘上68 文件系统选择文件系统选择 安全与性能考虑:NTFS 绝对不要使用压缩 开关不必要的服务开关不必要的服务 IIS Web Server,SMTP Virtual Server 不要与大量网络流量应用服务期安装在同一机器中 主域控制器、Exchange Server、MSMQ、FTP Server、Print Server

47、、MTS69 通讯协议设定通讯协议设定 仅安装需要用到的协议,多余的会拖跨系统70 内存设置内存设置:由由SQL Server自动调整自动调整 考虑使用考虑使用“为为SQL Server保留物理内保留物理内存存”71 考虑使用考虑使用“在在Windows上提升上提升SQL Server的优先级的优先级” 预设值是 0,也就是优先权7。 启动后 SQL Server 将在 Microsoft Windows NT 4.0 或 Windows 2000 排程器中以优先权13 执行。 专为执行 SQL Server 的 Server 适用72 SQL SERVER 服务管理服务管理 SQL SERV

48、ER 日常使用基本管理工具日常使用基本管理工具73 SQL Server 服务管理器服务管理器 SQL Server 服务 分布式交易协调器 (Distributed Transaction Coordinator ) 全文搜寻引擎服务(Microsoft Search ) SQL Server 代理程序 (SQL Server Agent )74 使用使用 Windows 2000 服务控制管理器服务控制管理器75 使用企业管理器使用企业管理器76 使用命令启动使用命令启动 net start mssqlserver net start SQLServerAgent 在单用户模式下启动在单用

49、户模式下启动 SQL Server sqlservr.exe -c m 在特殊情况下使用在特殊情况下使用,例如可能要更改服务器配置例如可能要更改服务器配置选项或恢复已损坏的选项或恢复已损坏的 master 数据库或其它系数据库或其它系统数据库。统数据库。 77 菜单菜单 企业管理器(Enterprise Manager) 服务管理器(Service Manager) 查询分析器(Query Analyzer) 导入与导出数据(Input and Export Data) 服务/客户网络实用工具。(Server/Client Network Utility) 事件探察器: 联机丛书 任务栏任务栏

50、 服务管理器 DEMO78 数据库及所有对象任务的管理数据库及所有对象任务的管理 数据库管理(创建、配置、修改、删除、备份) 用户管理 安全管理 日志管理 自动任务管理 集成管理平台集成管理平台 DEMO7980 内容内容 数据库管理介绍 创建新的数据库 数据库的备份与恢复 数据库锁的管理 安全管理(用户与权限) 目标和要求目标和要求 熟练掌握数据库日常管理81系统的安装与升级系统的安装与升级创建并管理数据库创建并管理数据库数据库及用户的安全管理:网络安全、系统核查数据库及用户的安全管理:网络安全、系统核查备份与恢复备份与恢复使用者管理使用者管理其他例行检查工作其他例行检查工作调整及系统监控调

51、整及系统监控容量规划容量规划系统最佳化系统最佳化文件管理文件管理其他其他管理员任务繁重,比喻:大内总管管理员任务繁重,比喻:大内总管总结:总结:1.保证系统的高效运行 2.保证系统的稳定与安全安装升级安装升级创建数创建数据库据库系统最佳系统最佳管理数据库管理数据库用户管理用户管理备份恢复备份恢复网络安全网络安全容量规划容量规划82 内容内容 数据库管理介绍 创建新的数据库 数据库的备份与恢复 数据库锁的管理 安全管理(用户与权限) 目标和要求目标和要求 熟练掌握数据库日常管理83 数据库是如何存储的?数据库是如何存储的? 创建数据库的办法创建数据库的办法 创建文件组创建文件组 如何创建表如何创

52、建表84 创建数据库创建数据库 数据库 表 主键 索引 Demo85 数据库现在直接与文件对应。每一个数据库都数据库现在直接与文件对应。每一个数据库都对应着至少一个数据文件对应着至少一个数据文件(Data file)和日志文和日志文件件(Log file) 主数据文件主数据文件(Primary Data file):数据库的起点,数据库的起点,存储数据库对象的定义。后缀为存储数据库对象的定义。后缀为.mdf 辅助数据文件辅助数据文件(Secondary Data file),后缀后缀为为.ndf 日志文件,存储数据库的事务日志信息。日志文件,存储数据库的事务日志信息。 初始建立时,拷贝初始建立

53、时,拷贝Model库库 Data Page = 8K,单行不能跨页单行不能跨页86Data file.mdf or .ndfLog file.ldfExtent (8 contiguous 8-KB pages)Page (8 KB)Table,indexesData Max row size= 8060 bytesDatabase87 定义好的定义好的SQL 语句语句 定义好的基础数据定义好的基础数据 工具工具 SETUP(标准) PowerDesigner PowerBuider bcp88语句格式:语句格式:CREATE DATABASE 数据库名ON (数据文件文件组定义(FILEGR

54、OUP)LOG ON (日志文件定义)数据日志文件定义格式包括:数据日志文件定义格式包括:逻辑文件名, 物理文件名, 容量 (初始、最大、增长幅度)NAME , FILENAME , SIZE , MAXSIZE, FILEGROWTH定义主数据文件加:定义主数据文件加:PRIMARY定义文件组加:定义文件组加:FileGroup 文件组名文件组名89例 : 创 建 一 个例 : 创 建 一 个 student数 据 库 , 操 作 系 统 文 件 名 为 :数 据 库 , 操 作 系 统 文 件 名 为 :student_dat.mdf,数据文件大小为数据文件大小为2MB,以以10%速度增长

55、,速度增长,日志文件大小为日志文件大小为1MB。T-SQL语句如下:语句如下:create database student on (name=student_dat, filename=d:databasestudent_dat.mdf, filegrowth=10%) log on (name=student_log, filename=d:databasestudent_log.ldf, filegrowth=10%)90 可以使用不同的方法来修改数据库。可以使用不同的方法来修改数据库。 在企业管理器中修改数据库在企业管理器中修改数据库 用用T-SQL语句修改数据库语句修改数据库 ALT

56、ER DATABASE 数据库名数据库名 ADD FILE 数据文件定义数据文件定义 TO FILEGROUP ADD LOG FILE 事务日志文件定义事务日志文件定义 REMOVE FILE 逻辑文件名逻辑文件名 ADD FILEGROUP 文件组名文件组名 REMOVE FILEGROUP 文件组名文件组名 MODIFY FILE 数据文件定义数据文件定义 MODIFY NAME = 新数据库名新数据库名 MODIFY FILEGROUP 文件组名文件组名91 例:例: 向数据库中添加文件 ALTER DATABASE student ADD FILE ( NAME = student_

57、dat2, FILENAME = d:databasestudent_dat2.ndf, SIZE = 5MB, MAXSIZE = 30MB, FILEGROWTH = 5MB ) 更改文件 ALTER DATABASE student MODIFY FILE (NAME =student_dat, SIZE = 20MB) 92 用用T-SQL语句压缩数据库语句压缩数据库 语法语法: DBCC SHRINKDATABASE (数据库名,压缩后所剩余空间百分比) 例:例: 下例将 Student 用户数据库中名为 student_dat的文件收缩到 7 MB。 USE Student go

58、DBCC SHRINKFILE (student_dat, 7) 93 用用T-SQL语句删除数据库语句删除数据库 语法语法: DROP DATABASE 数据库名称数据库名称 注:不能除去当前正在使用的数据库;不注:不能除去当前正在使用的数据库;不能除去系统数据库;在除去用于复制的数能除去系统数据库;在除去用于复制的数据库之前,首先删除复制;据库之前,首先删除复制; 若要使用若要使用DROP DATABASE,连接的数据为上下文连接的数据为上下文必须在必须在master数据库中。数据库中。94 查看数据库定义信息查看数据库定义信息 使用系统存储过程使用系统存储过程sp_helpdb查看数据库

59、查看数据库或所有数据库的信息。或所有数据库的信息。 语法格式:语法格式:sp_helpdb 数据库名称。数据库名称。 如果不指定数据库名称,将返回所有数据如果不指定数据库名称,将返回所有数据库的信息。库的信息。 查看数据库数据、日志空间查看数据库数据、日志空间 使用使用sp_spaceused查看数据库数据空间。查看数据库数据空间。 语法格式:语法格式:sp_spaceused 数据库对象数据库对象95 如果如果master系统数据库遭到破坏系统数据库遭到破坏 ,如何处理如何处理? 从当前备份还原。 用重建主控实用工具完全重建。 原则:如果可以访问 master 数据库(至少部分可用)而能够启

60、动 SQL Server 实例,则可以从完整数据库备份中还原 master 数据库。如果由于 master 数据库严重损坏而无法启动 SQL Server 实例,则首先需要使用重建主控实用工具重建 master 数据库,然后才可以用普通方法还原当前数据库备份。注注:运行运行 Rebuildm.exe。位于。位于 Program FilesMicrosoft SQL Server80ToolsBinn 目录中目录中 96 表表(Table)是最重要的数据库对象是最重要的数据库对象 创建表的两个方法创建表的两个方法 T-SQL Create Table table_name() SQL-EM97

温馨提示

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

评论

0/150

提交评论