SQLSERVER教程.docx
- 文档编号:12051807
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:70
- 大小:145.36KB
SQLSERVER教程.docx
《SQLSERVER教程.docx》由会员分享,可在线阅读,更多相关《SQLSERVER教程.docx(70页珍藏版)》请在冰豆网上搜索。
SQLSERVER教程
SQLSERVER2000教程
第一章
第一节简介
SQLServer2000是微软公司开发的采用SQL语言的关系型数据库管理系统,它拥有高弹性与多元化的结构,不仅符合业界的需要,更能与现今的互联网紧密集成,而对WindowsCE/98/NT/2000/XP/2003等操作系统的全面支持的优越性得到最终程序开发人员的普遍认可。
SQLServer2000是服务器级的数据库管理系统,不论是客户机/服务器、多层结构,还是DatabaseWeb应用程序,SQLServer2000都起着后端数据库的角色。
可以说,SQLServer2000是所有数据的汇总与管理
中心,是整个应用系统的枢纽。
第二节数据库分类逻辑数据库
(1)系统数据库:
系统数据库作为SQLSERVER默认安装的一部分而安装,由系统表和存储过程组成。
系统数据库、表以及存储过程共同为您提供
了设计、创建、部署和维护世界级SQLSERVER数据库的工具和支持。
a)Master数据库:
是追踪所有其它数据库和配置信息的关键数据库。
它控制着用户数据库和SQLSERVER的操作。
Master数据库对你的信息绝对重要,所
以你应该总是保留Master数据库的最近备份。
b)Msdb数据库:
是SQLSERVERAgent的主要支持。
SQLSERVERAgent负责复制、任务调度、警报、系统操作员信息以及备份信息。
因此,Msdb也是非常重
要的,哪怕你不使用SQLSERVERAgent,在Msdb中的备份信息也有助于数据库的恢复。
c)Model数据库:
是一个创建新数据库的模板,它包含了应该出现在每个用户数据库中的系统表。
在创建一个数据库时,SQLSERVER会把Model数据库的
全部内容复制到新数据库中。
因此,如果你想每次创建数据库时自动地创建某些对象、权限和用户,你就可以把它们放在Model数据库中。
d)Tempdb数据库:
保存所有临时表和临时存储过程。
临时表可以被程序员显示的创建。
当客户端连接终止时,这些临时表也会被自动删除。
默认大小为
8MB.SQLSERVER支持两种类型的临时表:
1、以##符号开头的全局临时表可为所有连接所用。
在一个全局表创建之后,所有用户都可以使用它。
2、以#符号开头的局部临时表仅在创建它们的连接中可见,并且仅能由表的所有者访问。
在Tempdb中创建临时表不需要在名称前加标志,并
且可以授予权限和废除权限。
在Tempdb中直接创建的临时表必须显示的删除,否则它们会一直留在Tempdb中,除非SQLSERVER重新启动。
(2)演示数据库:
PUBS和NORTHWIND,是SQLSERVER提供的示例数据库。
该数据库及其中的表经常在联机帮助的文档内容所介绍的示例中使用。
(3)自定义数据库:
用户通过SQL命令自己创建的数据库。
第三节数据库分类物理数据库
(1)主要数据文件:
此文件是数据库的起始点。
每个数据库必须有且仅有一个主要数据文件。
主要数据文件的扩展名.mdf。
(2)次要数据文件:
这些文件是可选的,可以包含所有不在主要数据文件中的数据和对象。
数据库可以有多个次要数据文件。
次要数据文件的扩展名为.ndf。
(3)日志文件:
这些文件包含所有用于恢复数据库的事务日志信息。
每个数据库至少有一个日志文件。
日志文件扩展名为.ldf。
注意:
数据库文件一词通常指的是三种文件类型中的任何一种。
数据文件一词则指的是主要数据文件和次要数据文件。
日志文件一词指的则是作为数据库事务日志一部分的文件。
第四节数据的存储方式
1、页:
在SQLSERVER中页是最基本的存储单位。
页包含数据本身以及数据的物理存放位置的信息。
所有页
的大小都是相同的:
8KB(在7.0版本以前,页的大小是2KB)。
2、盘区:
分为混合盘区和统一盘区。
当创建一个表时,在混合盘区上分配给该表引一个页。
如果对该数据
库来说不存在混合盘区,就给它分配一个这样的盘区。
混合盘区可以包含来自几个表的页。
一个混合
盘区最多可包含来自8个表的页(因为一个盘区由8页组成,所以大小为64KB)。
当一个表增加的页超过
8页时,就作为统一盘区被保留为该表专用。
第五节文件组
文件组是一个或多个文件的集合,这些文件组成分配和管理的单元。
文件组可以在一开始创建数据库时创
建,以后多个文件添加到数据库中时再创建。
但是,一旦文件添加到数据库中以后,就不能再将这些文件移
动到其他不同的文件组中。
文件组只能包含数据文件,不能有事务日志文件。
一个文件不能属于多个文件组。
文件组有三种类型:
1、主文件组:
这些文件组包含主要数据文件和未放入其他文件组的所有其他文件。
系统表的所有页都是从主文件组分配的。
2、用户定义文件组:
这些文件组是在CREATEDATABASE或ALTERDATABASE语句中,或企业管理器中的属性页中使用FILEGROUP
关键字指定的。
3、默认值:
这些文件组包含所有表和索引的页,这些表和索引在创建时未指定文件组。
在每个数据库中,一次只有
一个文件组为默认文件组。
如果没有指定默认文件组,则默认文件组为主文件组。
注意:
每个数据库最多只能创建256个文件组,而且文件组不能独立于数据库文件创建。
文件组是对数据库中
的文件进行分组的一种管理机制。
本文出自51CTO.COM技术博客
第二章创建和管理数据库
第一节创建数据库
---格式
Createdatabase数据库名
On[Primary]
(Name=逻辑文件名,
Filename=物理文件名,
Size=文件起始大小,
Maxsize=文件最大容量,
Filegrowth=文件增量),
……
Filegroup文件组名
(Name=逻辑文件名,
Filename=物理文件名,
Size=文件起始大小,
Maxsize=文件最大容量,
Filegrowth=文件增长容量)
……
Logon
(Name=逻辑文件名,
Filename=物理文件名,
Size=文件起始大小,
Maxsize=文件最大容量,
Filegrowth=文件增长容量)
……
说明:
(1)Primary:
指定下面文件为主文件组的文件。
可省略。
(2)Filename:
指定文件的实际存储位置。
(3)Size:
指定文件的起始大小。
(4)Maxsize:
指定文件可达到的最大容量。
(5)Filegrowth:
定义的文件的增量。
文件的增量设置不能超过Maxsize
设置。
可以指定一个确切的增长数值,也可以指定增长的百分比
(起始值的百分比),默认为10%。
(6)Logon:
指定下面为日志文件。
---实例
(1)创建只有一个数据文件和一个日志
文件的数据库
Createdatabasestudent
OnPrimary
(Name=student_mdf,
Filename='d:
\sql\student_mdf.mdf',
Size=2,
Maxsize=10,
Filegrowth=1
)
Logon
(Name=student_ldf,
Filename='d:
\sql\student_ldf.ldf',
Size=1,
Maxsize=5,
Filegrowth=1
)
(2)创建有多个数据文件和日志文件的数据库
Createdatabasescore
OnPrimary
(Name=score_mdf,
Filename='d:
\sqlserver\score_mdf.mdf',
Size=5MB,
Maxsize=50MB,
Filegrowth=5MB),
(Name=score_ndf1,
Filename='d:
\sqlserver\score_ndf1.ndf',
Size=3MB,
Maxsize=30MB,
Filegrowth=20%),
(Name=score_ndf2,
Filename='d:
\sqlserver\score_ndf2.ndf',
Size=6,
Maxsize=50,
Filegrowth=4)
Logon
(Name=score_ldf1,
Filename='d:
\sqlserver\score_ldf1.ldf',
Size=8MB,
Maxsize=100MB,
Filegrowth=5MB),
(Name=score_ldf2,
Filename='d:
\sqlserver\score_ldf2.ldf',
Size=10,
Maxsize=100,
Filegrowth=10)
(3)创建带有多个文件组的数据库
Createdatabasebook
OnPrimary
( Name=book_mdf,
Filename='d:
\books\book_mdf.mdf',
Size=3,
Maxsize=30,
Filegrowth=3),
Filegroupgroup1
( Name=book_ndf1,
Filename='d:
\books\book_ndf1.ndf',
Size=2MB,
Maxsize=20MB,
Filegrowth=25%),
Filegroupgroup2
( Name=book_ndf2,
Filename='d:
\books\book_ndf2.ndf',
Size=4,
Maxsize=30,
Filegrowth=4)
Logon
( Name=book_ldf1,
Filename='d:
\books\book_ldf1.ldf',
Size=5,
Maxsize=40,
Filegrowth=5),
( Name=book_ldf2,
Filename='d:
\books\book_ldf2.ldf',
Size=6,
Maxsize=60,
Filegrowth=30%)
第二节修改数据库
(1)添加数据文件:
a)格式:
Alterdatabase数据库名AddFile
(Name=逻辑文件名,
Filename=物理文件名,
Size=文件起始大小,
Maxsize=文件最大容量,
Filegrowth=文件增量)
[ToFileGroup文件组名]
b)说明:
ToFileGroup:
指定添加的数据文件到
哪个文件组中,该文件组必须存在,默认为主文
件组。
c)实例:
Alterdatabasestudent
addfile
(Name=student_ndf,
Filename='d:
\sql\student_ndf.ndf',
Size=1,Maxsize=5,
Filegrowth=1)
(2)添加日志文件:
a)格式:
Alterdatabase数据库名
AddLogFile
(Name=逻辑文件名,
Filename=物理文件名,
Size=文件起始大小,
Maxsize=文件最大容量,
Filegrowth=文件增量)
b)实例:
Alterdatabasestudent
Add LogFile
(Name=student_ldf1,
Filename='d:
\sql\student_ldf1.ldf',
Size=4,
Maxsize=40,
Filegrowth=15%)
(3)添加文件组:
a)格式:
Alterdatabase数据库名AddFilegroup文件
组名。
b)实例:
AlterdatabasestudentAddFilegroupgroup1
向该文件组中添加文件
AlterdatabasestudentAddFile
(Name=student_ndf2,
Filename='d:
\sql\student_ndf2.ndf',
Size=3,
Maxsize=30,
Filegrowth=3)
ToFilegroupgroup1
(4)修改文件(数据文件和日志文件):
a)格式:
Alterdatabase数据库名ModifyFile
(Name=逻辑文件名,
[Size=新的文件大小,]
[Maxsize=将要达到的容量,]
[Filegrowth=修改后的增量])
b)说明:
修改数据文件和日志文件的格式是相同的,但逻辑
文件名和物理文件名不能修改。
在修改文件时,必须指定
文件的逻辑名,用来标识将要修改的文件。
而不必指定文
件的物理名,否则将出现错误。
如果指定修改文件的
Size,则新的文件大小必须比当前文件大小要大。
而修改
文件的Maxsize和Filegrowth时,数值可以增大,也可以
和原来的相同。
c)实例:
AlterdatabasestudentModify File
(Name=student_ldf1,
Filegrowth=20%)
(5)修改文件组属性:
a)Alterdatabase数据库名ModifyFilegroup文件组
名readonly|readwrite|default
b)说明:
当想修改文件组的属性时,必须保证该文件组中
存在文件。
Readonly为只读、readwrite为读写、default为默认设
置。
一般不修改。
c)实例:
AlterdatabasestudentModifyFilegroup
group1readwrite
(6)删除文件:
a)格式:
Alterdatabase数据库名RemoveFile文件名
b)说明:
不能删除主要数据文件和主要日志文件。
c)实例:
AlterdatabasestudentRemoveFile
student_ldf1
(7)删除文件组:
a)格式:
Alterdatabase数据库名RemoveFilegroup文
件组名
b)说明:
要删除的文件组中不能包含数据文件。
c)实例:
AlterdatabasestudentRemoveFile
student_ndf2
AlterdatabasestudentRemoveFilegroupgroup1
第三节删除数据库
(1)格式:
Dropdatabase数据库名
(2)实例:
Dropdatabasestudent
第四节设置数据库选项
1、格式:
SP_dboption数据库名[,‘选项名’[,ture|false]]
2、说明:
SP_dboption:
系统的存储过程,可以通过它设置数据库选项,它支持对所有
可用的数据库选项进行设置。
a)如果只设置{SP_dboption数据库名},那么将显示在本数据库中设置为True的选项。
b)如果设置{SP_dboption数据库名,‘选项名’},那么将显示指定的选项当前处于什么状态(ON或者OFF)
3、实例:
将student数据库的readonly选项设置为True,即打开此选项。
SP_dboptionstudent,'readonly','true'
第五节清空数据库的LOG日志文件
1)格式:
DUMPTRANSACTION数据库名WITHNO_LOG
(2)实例:
DUMPTRANSACTIONstudentWITHNO_LOG
第六节压缩数据库
有时,人们可能为预期有一定程度活动的数据库分配了太多的空间,当意识到分配了太多空间时,可能决
定压缩分配的空间大小。
SQLSERVER提供三种可以压缩数据库大小的方法,autoshrink数据库选项,“企业
管理器”和“数据库一致性检查器(DBCC)”命令。
1、使用DBCCShrinkdatabase压缩数据库:
DBCCShrinkdatabase命令在默认情况下会对数据库的数
据和日志部分都进行压缩。
如果您只想减少数据和日志部
分,则您必须首先压缩整个数据库,然后使用
Alterdatabase语句来增加数据库的数据或日志部分。
a)、格式:
DBCCShrinkdatabase(数据库名,
压缩后可使用的百分比)
[NOTRUNCATE|TRUNCATEONLY]
b)、说明:
NOTRUNCATE:
不会将可用的空间释放给
操作系统,而是留给数据库文件。
TRUNCATEONLY:
将数据文件未用的空间释放给操作系统。
c)、实例:
DBCCShrinkdatabase(student,20)
TRUNCATEONLY
2、使用“企业管理器”压缩数据库:
有两种方式:
a)在企业管理器中,选中要压缩的数据库,点击鼠标右
键,点击属性,从弹出的“数据库属性”的对话框中选
中“选项”标签,在复选框中选中“自动压缩”选项即可。
b)在企业管理器中,选中要压缩的数据库,点击鼠标右
键,选中“所有任务”,点击“收缩数据库”,填充相应
的选项即可。
第七节维护数据库
SetShowPlan_Text
SetShowPlan_All
第三章数据类型
第一节系统数据类型
是SQLSERVER支持的内置数据类型。
1、字符型:
char、nchar、varchar、nvarchar、text、ntext
a)char:
固定长度的非Unicode字符数据,最大的长度为8000字符。
b)nchar:
固定长度的Unicode数据,最大的长度为4000字符。
c)varchar:
可变长度的非Unicode数据,最大的长度为8000字符。
d)nvarchar:
可变长度的Unicode数据,最大的长度为4000字符。
e)text:
可变长度的非Unicode数据,最大的长度为2^31-1个字符。
f)ntext:
可变长度的Unicode数据,最大的长度为2^30-1个字符
对于定义为char或nchar的列,SQLSERVER将用字符串来填满指定的字节数。
定义为varchar或nvarchar的列只存储输入的实际长度,可能舍去尾部空间。
SQLSERVER处理尾部空间,取决于SETANSI_PADDING,以及该列是固定长度还是可变长度。
根据SETANSI_PADDING值处理尾部空间ANSI_PADDING char和nchar Varchar和nvarchar
ON 串被空格填充到列的长度 串未被空格填充到列的长度,尾部空间被保留
OFF 串被空格填充到列的长度 串未被空格填充到列的长度,尾部空间被截掉
2、日期和时间型:
smalldatetime、datetime。
a)smalldatetime:
从1900年1月1日到2079年6月6日,精确到1分钟。
b)datetime:
从1753年1月1日到9999年12月31日,精确到三百分之一秒,即3.33毫秒。
3、数据型数值类型
A、整型:
smallint、int、tinyint。
a)smallint:
从2^15到2^15-1。
b)int:
从-2^31到2^31-1。
c)tinyint:
从0到255。
B、近似数字数据类型:
float和real。
a)float:
浮点精度数字数据,从-1.79E+308到1.79E+308。
b)real:
:
浮点精度数字数据,从-3.40E+308到3.40E+308。
C、精确数字数据类型:
decimal和numeric。
a) decimal:
不带符号的整数,按10进位。
b) numeric:
decimal(十近制)的同义词。
D、货币数据类型:
money和smallmoney。
a) money:
从-2^63到2^63-1,精确到每个货币单位的万分之一。
b) smallmoney:
从-214,748.3648到+214,748.3647,精确到每个货币单位的万分之一。
4、逻辑数据类型:
bit
Bit:
整形数据,值为1或0。
本文出自51CTO.COM技术博客
第二节用户自定义数据类型
是SQLSERVER支持的内置数据类型。
用户可以通过两个系统存储过程创建和删除用户定义类型。
(它们不是真正的新数据类型,而像是一种复合型数据类型或结构。
)
Sp_addtype过程创建用户定义的数据类型,Sp_droptype过程删除定义的数据类型。
1、创建自定义的数据类型
(1)、格式:
Sp_addtype自定义数据类型名,系统的数据类型,’[null|notnull]’
(2)、说明:
A、用户自定义的数据类型是基于系统的数据类型创建的。
B、[null|notnull]:
指定该列是否为空。
默认为null。
C、如果系统数据类型包括圆括弧,必须用引号把它括起来。
(3)、实例:
Sp_addtypebirthday,datetime,’notnull’
Createtablestu1(sidint, sbirthdaybirthday)
2、删除自定义的数据类型
(1)、格式[:
Exec]sp_droptype自定义的数据类型。
(2)、实例:
[Exec]sp_droptypebirthday。
注意:
我们还可以通过企业管理器创建自定义的数据类型。
首先,选中一个数据库,点击右键,
选中“新建”,从弹开的菜单中选中“用户定义的数据类型”,在打开的窗体中填充相应的选
项即可。
本文出自51CTO.COM技术博客
第四章创建和维护表
第一节创建表、修改表、删除表
1、创建表
(1)、格式:
Createtable表名(字段名1 数据类型,………字段名n 数据类型)
(2)、说明:
表名的定名原则要遵循标识符的定名原则。
字段和字段之间用逗号隔开。
(3)、实例:
Usebook
go
Createtablebook(bo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLSERVER 教程