第七章 SQL Server2000简介及应用

7.1 SQL Server2000概述

7.1.1 SQL Server2000的结构和版本

1.SQL Server的结构

2.SQL Server2000的版本

7.1.2 SQL Server2000的环境介绍

1.系统目录用途介绍

2.自动创建的数据库

在安装SQL Server2000时,安装程序会自动创建4个系统数据库(Master、Model、Msdb、Tempdb)和两个范例数据库(Northwind、Pubs),系统数据库由系统自动维护。

(1)Master数据库:记录了所有SQL Server2000的系统信息、登录账号、系统配置设置、系统中所有数据库及其系统信息以及存储介质信息。

(2)Model数据库:是SQL Server2000为用户创建数据库提供的模板数据库,每个新建的数据库都是在一个Model数据库的副本上扩展而成的,所以对Model数据库的修改一定要小心。

(3)Msdb数据库:主要用于SQL Server2000存储任务计划信息、事件处理信息、备份恢复信息以及异常报告等。

(4)Tempdb数据库:存放所有临时表和临时的存储程序,并且供SQL Server2000存放目前使用中的表,它是一个全局的资源,临时表和存储程序可供所有用户使用。每次SQL Server2000启动时她会自动重建并且重设为默认大小,使用中它会依需求自动增长。

3.SQL Server2000提供的服务

7.1.3 工具介绍

1.SQL Server2000的主要工具

2.服务管理器

3.查询分析器

7.2 企业管理器

7.2.1 数据库的操作

1.创建数据库

2.修改数据库

3.删除数据库

4.收缩数据库

5.更改数据库名称

exec sp_renamedb '原数据库名','新数据库名'

7.2.2 表的操作

1.创建数据表

2.修改表

3.删除表

4.数据的查看和修改

7.2.3 索引

7.2.4 视图

7.2.5 存储过程

存储过程的有点主要有提供了安全机制、改进了执行性能、减少了网络流量和增强了代码的重用性。

1.创建存储过程

2.修改存储过程

3.删除存储过程

4.带参数的存储过程

7.2.6 触发器

1.触发器的基本知识

触发器是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程。触发器不能直接执行,它们只能为表上的Insert、Update、Delete事件所触发。此外触发器也不能传递或接受参数。

在SQL Server中,触发器只对每一个DML操作触发一次,无论一个DML操作一共影响了多少行。

2.创建触发器

3.修改和删除触发器

7.2.7 用户自定义函数

用户自定义函数可以分为三类:

(1)返回单值的标量函数:可以返回单个数据值。

(2)返回可更新数据表的内嵌表值函数:包含单个Select语句,且该语句可更新,返回可更新的数据表。

(3)返回不可更新数据表的多语句表值函数:包含多个Select语句,或包含一个不可更新的Select语句,返回不可更新的数据表。

1.创建返回单值的标量函数

CREATE FUNCTION func1 ( @lname varchar(50) , @fname varchar(50) )

RETURNS varchar(100)  AS  

BEGIN 

declare @tname varchar(100)

set @tname=@fname+' '+@lname

return @tname

END

select au_id,dbo.func1(au_lname,au_fname) as name

from authors

2.创建返回可更新数据表的内嵌表值函数

内嵌表值函数返回的师表,它非常类似于视图,都包含有一条存储的select语句。但是内嵌表值函数还具有视图所没有的两个优点:预先编译和可以使用函数。

create function func2(@state varchar(10))

returns table as

return ( select * from authors where state=@state )

select * from dbo.func2('CA')

3.创建返回不可更新数据表的多表值函数

多语句表值函数既可以像标量函数那样包含复杂的代码,也可以像内嵌表值函数那样返回一个结果集。这类函数会创建一个表变量,并使用代码对它进行填充,最后返回这个表变量。多语句表值函数的主要优点是:可以用代码产生复杂的结果集,然后方便地在Select语句中使用它。因此可以使用这些函数来替代返回结果集的存储过程。

create function func3()

returns @id_zip table (id varchar(11),zip char(5))

begin 

  insert into @id_zip(id,zip) select au_id,zip from authors

  return 

end

select * from dbo.func3()

7.2.8 备份恢复与导入导出

1.备份设备

2.备份数据库

3.还原数据库

4.导入导出

7.2.9 安全管理

SQL Server的安全性是基于用户、角色、对象和权限概念的。一个用户要访问SQL Server数据库中的数据,他必须要经过三个认证过程。第一个认证过程是身份验证,使用登录账号来表示用户,身份验证只验证用户连接到SQL Server数据库服务器的资格,即验证该用户师父具有连接到数据库服务器的“连接权”。第二个认证过程是当用户访问数据库时,他必须具有对具体数据库的访问权,即验证用户是否是改数据库的合法用户。第三个认证是当用户操作数据库中的数据或对象时,他必须具有所要进行操作的操作权。

1.SQL Server的验证模式

SQL Server具有两种身份验证模式:Windows身份验证模式和混合验证模式。

2.登录账号

3.角色

7.3 T-SQL语言

7.3.1 T-SQL批处理

批处理由一条或多条T-SQL语句构成,前端应用程序会将所有这些语句作为单个代码单元发送给SQL Server。

默认的批处理分隔符是go,它只能放在单独的一行,否则不起作用。在结束一个批处理时,将会释放所有由该批处理所创建的局部变量、临时表和游标。

使用批处理要注意下面两点:

(1)CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER、CREATE VIEW语句不能再批处理中与其他语句组合使用。批处理必须以CREATE语句开始。所有跟在该批处理后的其他语句将被解释为第一个CREATE语句定义的一部分。

(2)不能在同一个批处理中更改表,然后引用新列。

7.3.2 变量

T-SQL语言中,变量分为局部变量和全局变量。局部变量由用户定义和维护,名称以单个@字符开头;全局变量由系统定义和维护,以两个@字符开头,用户不能定义全局变量。

声明变量时使用Declare命令,并且要指定声明的变量名及其数据类型。

局部变量的作用域(即可以使用变量的应用程序和变量的声明周期)只能是当前的批处理。新声明的变量的默认值为空值,在表达式中使用它们之前必须为它们赋初值。

为变量赋值可以使用Set命令和Select命令。它们之间的主要区别在于:Select可以从表、子查询或者视图中检索数据,并且也可以包含其他的Select子句;而Set命令则只能从表达式中获取数据。在Set和Select命令中都可以使用函数。

7.3.3 流程控制

1.If…Else语句

If…Else语句是条件判断语句,根据表达式的真假,选择执行某个语句或者语句块。

2.Begin…End

使用Begin…End语句可以将多条SQL语句封装起来,形成一个语句块,使这些语句作为一个整体执行。

3.While语句

While语句可以重复执行一个语句块,直到条件为假为止。

在While语句的循环体中可以使用Break和Continue语句。

4.Goto

T-SQL中的Goto语句可以使SQL语句的执行流程无条件地转移到指定的标签处,但是该标签只能在同一个批处理或过程中。

7.3.4 临时表和表变量

1.局部临时表

创建临时表的方法与创建用户定义表的方式基本相同,只是在创建局部临时表时必须使用由符合“#”开头的表名。实际上,临时表是创建并保存在Tempdb数据库中的。

2.全局临时表

全局临时表与局部临时表类似,区别在于作用域更广泛,所有用户都可以引用全局临时表,直到最后一个引用它的会话结束后它才会被删除。

创建全局临时表需要使用两个“#”符号开头的表名。

3.表变量

表变量类似于临时表,它的有点在于它存在于内存中。表变量与变量具有同样的作用域和生命周期

<!--EndFragment-->
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值