SQLSERVER教程(数据库应用部分)_第1页
SQLSERVER教程(数据库应用部分)_第2页
SQLSERVER教程(数据库应用部分)_第3页
SQLSERVER教程(数据库应用部分)_第4页
SQLSERVER教程(数据库应用部分)_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

1、.第1章 SQL Server 初步1.1 SQL Server的简介1.1.1 什么是SQL ServerSQL:Structured Query LanguageSQL SERVER是一个以客户服务器(cs)模式访问、使用Transact-SQL语言的关系型数据库管理子统(RDBMS)。SQL Server是一种基于网络的大型数据库软件。主要是用SQL语言来管理、修改、和修改数据库。主要运算在WINNT、WIN2000、也可运行在WIN9X上的一种DBMS。1.1.2 SQL Server 2000的主要版本及发布时间1.1.2.1 主要版本有个人(Personal)版、企业版(Enter

2、Prise)、标准版和开发版等。个人版:最多连接5个用户,可安装在WINDOWS 98、XP、WIN2000。 企业版:可连接1000个用户,需安装在WIN2000服务版上。1.1.2.2 SQL Server 2000的发布时间1988年 MICROSOFTSYBASE合作开发1993年NT3.1平台上的SQL SERVER 421994年 中止合作 独自开发1995年 SQL SERVER 601996年 SQL SERVER 651998年 SQL SERVER 702000年 SQL SERVER 20002005年 SQL SERVER 2005SQL SERVER 2008将于20

3、08年初上市1.1.3 SQL Server的安装运行安装盘上的AUTORUN.EXE。1.1.4 SQL语言的特点1、SQL具有自含式与嵌入式两种形式v 交互式SQL:一般DBMS都提供联机交互工具,用户可直接键入SQL命令对数据库进行操作由DBMS来进行解释v 嵌入式SQL:能将SQL语句嵌入到高级语言(宿主语言),使应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力,一般需要预编译,将嵌入的SQL语句转化为宿主语言编译器能处理的语句v SQL的语法结构基本一致2、SQL具有语言简洁、易学易用的特点 3、SQL支持三级模式结构一个SQL数据库的总体逻辑结构是基本表(Table)

4、的集合,对应于概念模式SQL数据库的底层存储结构采用文件,一个或几个表对应一个存储文件,以及索引文件,对应内模式用户所见的数据结构是视图(View),用户可直接操作的表,可为视图或部分基本表。对应外模式SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件4外模式模式内模式存储文件2存储文件31.2 主要组件由企业管理器、查询分析器、服务管理器等组成。1.2.1 服务管理器SQL Server服务管理器(Service Manager)是在服务器端实际工作时最有用的实用程序。SQL Server服务管理器的主要作用是用来启动数据库服务器的实时服务、暂停和停止正在运行的服务,或在暂

5、停服务后继续服务。 1.2.2 企业管理器企业管理器(Enterprise Manager:EM)是SQL Server中一个很重要的插件,它通过GUI(图形用户界面)环境管理SQL Server。层次:根目录、服务器组、服务器。每一个服务器的名称由以下几项组成:名称、数据库、数据转换服务、管理、复制、安全性、支持服务、Meta Data Service等。1.2.2.1 建立服务器组在企业管理器中,可以连接与管理多个服务器。服务器组是用来把比较上相似的SQLSERVER2000服务器组织在一起的一种方式,如市场部中有4个服务器,生产部中有6个服务器,可以将这些服务器都组织在“SQL SERV

6、ER组”中,也可以创建两个服务器组,一个叫作“市场”,一个叫做“生产”,这样比较容易区分服务器的作用。服务器组的建立:右键单击Microsoft SQL Servers或现有服务器组,从弹出的菜单中选择“新建服务器组”。服务器组的更名:右键单击要更名的服务器组。1.2.2.2 建立服务器首次访问EM时,第一个任务是将服务器注册。如果在服务器上运行,则本地服务器自动在SQL Server组中注册。通过EM可以添加新服务器。1.2.3 查询分析器SQL Server 2000的查询分析器(Query Analyzer)可以使用户交互式地输入和执行各种Transact-SQL语句,并且迅速地查看这些

7、语句的执行结果,来完成对数据库中的数据的分析和处理。1.2.3.1 启动查询分析器执行企业管理器的“工具”菜单下的“SQL 查询分析器”命令或执行“MicroSoft SQL Server”下的“查询分析器”。1.2.3.2 查询分析器的使用新建查询文件保存查询文件1.2.4 使用帮助运行“联机丛书”组件。第2章 Transact-SQL 语言基础Transact-SQL 语言又称T-SQL是MicroSoft 开发的一种SQL语言。2.1 数据类型2.1.1 二进制数据二进制数据以十六进制形式存储。二进制数据:固定长度 (binary) 的或可变长度 (varbinary)的二进制数据类型。

8、格式: binary ( n ) 固定长度的 n 个字节二进制数据。 varbinary ( n ) n 个字节变长二进制数据注释:如果在数据定义或变量声明语句中没有指定n,默认长度为 1。declare b1 varbinary(1)set b1=0x3456select b1结果为0x34而:declare b1 varbinaryset b1=0x3456select b1结果也为0x342.1.2 字符数据用来表示一串字符。字符数据型分为char、varchar等类型。 长度不同时可用 varchar 类型,但任何项的长度都不能超过8KB。 定长使用char类型(最多8KB)。格式:c

9、har(n) 定长为n的字符型数据varchar(n) 最大长度为n的变长字符型数据例: declare char1 char(5) set char1=fff select char1注意:如果没有在数据定义或变量声明语句中指定n,则默认长度为1。2.1.3 日期时间数据日期时间数据类型:用来表示日期与时间,依时间范围与精确程度可分为DATETIME与SMALLDATETIME两种。例:4/01/98 12:15:00:00:00 PM,1:28:29:15:01 AM 8/17/98。datetime 范围为1753.1.1-9999.12.31smalldatetime 范围为1900.

10、1.1-2079.6.6该数据类型长度固定。2.1.4 数值型数据2.1.4.1 整型数据bigint(-263 -263-1) (8B)。int (-2,147,483,648 至 2,147,483,647)(4B)。smallint ( -32,768 至 32,767)(2B)。tinyint(0 255) (1B)。定义数据时要注意数据的范围。2.1.4.2 实型数据定点数数据:使用 decimal(numeric) 数据类型存储:-1038+11038-1格式:decimal(p, s) 其中P为总位数,即精度,S为小数位数 numeric(p, s) 若S缺省,则无小数部分精度存

11、储字节数1 - 9510-19920-281329-3817浮点数数据:用float型和real型存储,浮点数据只是近似数据,不一定能准确表示数据。其中:Float:-1.79E+3081.79E + 308 Real:-3.4E+383,4E+38格式:float(real)(n) n 为用于存储科学记数法 float 数尾数的位数2.1.5 货币数据货币数据类型用于货币值。分为money和smallmoney类型。精确度为四位小数。money :-922,337,203,685,477.5808 922,337,203,685,477.5807)(8B)。Smallmoney:-214,7

12、48.3648 214,748.3647(4B)。2.1.6 特殊数据类型bit 数据类型只能包括 0 或 1。可以用 bit 数据类型代表 TRUE 或 FALSE、YES 或 NO。2.1.7 文本和图像数据类型文本(text):用来处理可变长的大文本数据,其中text可存储2GB。图像(image):用来处理图像数据,可存储2GB。例如,必须将一个有关用户信息的大文本文件 (.txt) 导入到 SQL Server 数据库中。应将这些数据作为一个数据块存储起来,而不是集成到数据表的多个列中。为了达到这个目的,可以创建一个text数据类型的列。然而,如果必须存储当前作为标记图象文件格式 (

13、TIFF) 图像 (.tif) 存储的、每个大小为 10 KB 的公司徽标,则需创建一个 image 数据类型的列。2.2 变量变量分为局部变量和全局变量,但使用前必须使用DECLARE声明2.2.1 局部变量Transact-SQL 局部变量是可以保存特定类型的单个数据值的对象,还可以保存程序执行过程中的中间数据值,保存由存储过程返回的数据值等。2.2.1.1 输出变量的值:格式: select 变量名 或 Print 变量名2.2.1.2 声明局部变量格式:DECLARE 变量名 类型(长度),作用:声明变量并将变量初始化为 NULL 2.2.1.3 变量赋值可通过SET 语句和SELEC

14、T 语句对局部变量赋值。格式:SET 变量名=表达式 SELECT 变量名=表达式2.2.2 全局变量全局变量是由系统提供且预先声明的变量,通过在名称前保留两个 () 符号区别于局部变量。全局变量在整个SQL Server系统内使用。存储的通常是一些SQL Server的配置设定值和统计数据。在使用全局变量时应该注意以下几点:l 全局变量是在服务器级定义的。l 用户只能使用预先定义的全局变量。l 引用全局变量时,必须以标记符“”开头。l 全局变量对用户来说是只读的。l 局部变量的名称不能与全局变量的名称相同。如:SERVERNAME 给出服务器名ROWCOUNT 给出最近一个SELECT影响的

15、行数2.2.3 命令的执行与结果显示执行“查询”菜单下“执行”命令或F5键。执行“查询”菜单下的“文本显示结果”或“以表格显示结果”命令2.3 运算符和表达式2.3.1 运算符2.3.1.1 算术运算符+ - * / %(取模,求余)2.3.1.2 比较运算符=, =, =, , !=(不等于), !(不大于), !(不小于)2.3.1.3 位运算符运算符含义&(按位 AND)按位 AND(两个操作数)|(按位 OR)按位 OR(两个操作数)(按位异或XOR)按位互斥 OR(两个操作数(按位求反 NOT)返回数字的补数。2.3.1.4 逻辑运算符运算符含义ALL如果一系列的比较都为TRUE,那

16、么就为TRUE。AND如果两个布尔表达式都为TRUE,那么就为TRUE。ANY如果一系列的比较中任何一个为TRUE,那么就为TRUE。BETWEEN如果操作数在某个范围之内,那么就为 TRUE。EXISTS如果子查询包含一些行,那么就为TRUE。IN如果操作数等于表达式列表中的一个,那么就为TRUE。LIKE如果操作数与一种模式相匹配,那么就为TRUE。NOT对任何其它布尔运算符的值取反。OR如果两个布尔表达式中的一个为TRUE,那么就为TRUE。SOME如果在一系列比较中,有些为TRUE,那么就为TRUE。2.3.1.5 字符串串联运算符字符串串联运算符允许通过加号“+”进行字符串串联2.3

17、.2 表达式SQL SERVER中表达式非常丰富,除了以上表达式外,还CASE表达式等,用于复杂情况。2.4 函数2.4.1 字符串函数2.4.1.1 ASCII功能:返回字符表达式最左端字符的ASCII代码值。格式:ASCII(character_expression )2.4.1.2 CHAR功能:将ASCII值转换为字符函数。格式:CHAR( integer_expression ) 参数:integer_expression介于0和255之间的整数。如果整数表达式不在此范围内,将返回NULL值。例:显示ASCII字符declare i as tinyintset i=32while i

18、126begin 设置语句块,相当于循环体 print char(i) set i=i+1end2.4.1.3 LEN功能:返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾部空格。格式:LEN( string_expression )参数:string_expression要计算的字符串表达式。例: SELECT LEN(CompanyName)2.4.1.4 LEFT 和RIGHT功能:LEFT为左取子串函数格式:LEFT ( character_expression , integer_expression ) 功能:RIGHT为右取子串函数:格式:RIGHT ( charact

19、er_expression , integer_expression )例:SELECT LEFT(ABCDEFG,5)2.4.1.5 LOWER和UPPER格式:LOWER(character_expression )2.4.2 日期和时间函数。2.4.2.1 DATEADD功能:在向指定日期加上一段时间的基础上,返回新的datetime值。格式:DATEADD (datepart,number,date)日期部分缩写Yearyy, yyyyquarterqq, qMonthmm, mdayofyeardy, yDaydd, dWeekwk, wwHourhhminutemi, nsecon

20、dss, smillisecondms例:SELECT “出生日期”csrq,”周年”=DATEADD(year,1,csrq) from student2.4.2.2 DATEDIFF功能:给出两个日期之间的差值。格式::DATEDIFF(datepart,startdate,enddate) 例:检索所有学生的年龄:SELECT DATEDIFF(YEAR,CSRQ,GETDATE() AS AGE,CSRQ FROM STUDENT2.4.2.3 DAY、MONTH、YEAR格式:DAY ( date )功能:取指定日期的日格式:MONTH ( date )功能:取指定日期的月格式:YE

21、AR ( date )功能:取指定日期的年例:检索所有学生的年龄:SELECT YEAR(GETDATE()-YEAR(CSRQ) AS AGE FROM STUDENT2.4.2.4 GETDATE格式:GETDATE()功能:取当前系统日期和时间2.4.3 数值函数2.4.3.1 CEILING 功能:返回大于或等于所给数字表达式的最小整数。格式:CEILING(numeric_expression)例:SELECT CEILING(123.45),CEILING(-123.45),CEILING(0.0)2.4.3.2 FLOOR功能:返回小于或等于所给数字表达式的最大整数。格式:FLO

22、OR(numeric_expression)例:SELECT FLOOR(123.45),FLOOR(-123.45)2.4.3.3 POWER作用:返回给定表达式乘指定次方的值。语法:POWER(numeric_expression,y)2.4.3.4 RAND返回 0 到1 之间的随机float 值。语法RAND( )declare a as floatset a=rand()print a2.4.3.5 EXP返回所给的float表达式的指数值。语法:EXP(float_expression)2.4.3.6 CONVERT 函数功能:将某种数据类型的表达式显式转换为另一种数据类型。CAS

23、T和CONVERT提供相似的功能。格式:CONVERT(data_type,expression) CAST(expression AS data_type )例:select convert(char(6),567)2.4.4 系统函数返回数据库和数据库对象的特性信息。2.4.4.1 COL_LENGTH功能:返回列的定义长度(以字节为单位)。格式:COL_LENGTH ( table , column ) 参数:table:表名称,Column:列名称2.4.4.2 DB_NAME在master 数据库中,记录了SQL Server系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置

24、及所有其它的数据库的信息,其中包括数据库文件的位置。功能:返回数据库名。语法:DB_NAME ( database_id ) 参数:database_id,是应返回数据库的标识号 (ID)。例:USE master SELECT dbid, DB_NAME(dbid) AS DB_NAME FROM sysdatabases2.4.4.3 DB_ID功能:返回数据库标识 (ID) 号。格式:DB_ID ( database_name ) 参数:database_name,数据库名,如果不填database_name,则返回当前数据库ID。例:此例检查在sysdatabases中的每个数据库,使

25、用数据库名来确定数据库ID。 USE master SELECT name, DB_ID(name) AS DB_ID FROM sysdatabases2.4.4.4 HOST_NAME功能:返回工作站名称。语法:HOST_NAME( )返回类型:nchar例:select HOST_NAME( )第3章 数据库的创建与管理3.1 数据库概述数据库是相关的多维数据集及其所共享的对象的容器。这些对象包括数据源(表)、表、视图、规则、角色、存储过程、自定义函数等。如果多个多维数据集要共享这些对象,那么这些对象和多维数据集必须在同一个数据库中。在对象层次结构中,数据库直接从属于分析服务器。因此,在

26、安装分析服务器后,第一个要创建的对象就是数据库。数据库可以在数据库对话框中进行创建3.1.1 数据库的文件组成数据库可由三种文件组成,主文件(.MDF) 、次要数据文件(.ndf)、 日志文件(.LDF),在 SQL Server中,数据库必须至少包含一个主文件和一个事务日志文件。3.1.1.1 主要数据文件 该文件包含数据库的启动信息,并用于存储数据。每个数据库都有一个主文件。主文件的扩展名为.mdf。3.1.1.2 次要文件 这些文件含有不能置于主要数据文件中的所有数据。如果主文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。有些数据库可能足够大故需要多个次要数据文件,或使用

27、位于不同磁盘驱动器上的辅助文件将数据扩展到多个磁盘。 次要文件可有多个。 次要文件的扩展名为.ndf3.1.1.3 日志文件 事务日志文件保存用来恢复数据库的日志信息。每个数据库必须至少有一个事务日志文件(尽管可以有多个)。事务日志文件最小为512KB。数据和事务日志信息从不混合在同一文件中,并且每个文件只能由一个数据库使用。注意:每个数据库至少有两个文件,一个主文件和一个事务日志文件。3.1.2 文件组文件组是SQL Server中一个或多个文件的命名集合,它构成或分配用于数据库管理的单个单元。文件组允许对文件进行分组,以便于管理和数据的分配放置。例如,可以分别在三个硬盘驱动器上创建三个文件

28、(Data1.mdf、Data2.ndf和Data3.ndf),并将这三个文件指派到文件组fgroup1中。然后,可以明确地在文件组fgroup1上创建一个表。对表中数据的查询将分散到三个磁盘上,在多处理器中,对同一文件组的不同文件,可以采用多线程并行操作,因而性能得以提高。3.1.2.1 文件组的分类3.1.2.1.1 主文件组 此文件组包含主数据文件以及任何其它没有放入其它文件组的文件。系统表都在主文件组。3.1.2.1.2 用户定义文件组 该文件组是用 CREATE DATABASE 或 ALTER DATABASE 语句中的 FILEGROUP 关键字指定的任何文件组。3.1.2.1.

29、3 默认文件组 默认文件组包含在创建时没有指定文件组的所有表和索引的页。在每个数据库中,每次只能有一个文件组是默认文件组。如果没有指定默认文件组,则默认文件组是主文件组。3.1.2.2 文件组说明 最多可以为每个数据库创建256个文件组。文件组只能包含数据文件。事务日志文件不能是文件组的一部分。 文件组不能独立于数据库文件创建。文件组是在数据库中对文件进行分组的一种管理机制。3.2 数据库的创建与管理3.2.1 数据库创建3.2.1.1 使用创建数据库向导打开企业管理器后,选中“数据库”后,执行“工具”菜单下的“向导”命令。3.2.1.2 使用企业管理器打开企业管理器后,右键单击“数据库”,选

30、择“新建数据库”命令。3.2.1.3 使用create 命令格式:CREATE DATABASE database_name :数据库文件名ON PRIMARY :指定数据文件名,包含主文件和次文件( NAME = logical_file_name , :指定操作系统文件对应的逻辑文件名FILENAME = os_file_name, :指定操作系统文件名,必须给出路径SIZE = size, :指定文件的大小,默认为MBMAXSIZE = maxsize, :指定文件的最大值FILEGROWTH = growth_increment) :指定文件增长的增量LOG ON :指定日志文件( N

31、AME = logical_file_name , FILENAME = os_file_name, SIZE = size, MAXSIZE = maxsize, FILEGROWTH = growth_increment) 例如:CREATE DATABASE OrdersON PRIMARY (NAME = Orders_dat, FILENAME = c:program filesmicrosoft sqlservermssqldataOrders.mdf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5% )LOG ON(NAME = Orders_l

32、og, FILENAME = c:program filesmicrosoft sql servermssqldataOrderslog.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB)例:指定多个数据文件和多个事务日志文件CREATE DATABASE Archive ONPRIMARY ( NAME = Arch1, FILENAME = c:program filesmicrosoft sql servermssqldataarchdat1.mdf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 2

33、0),Filegroup f1( NAME = Arch2, FILENAME = c:program filesmicrosoft sql servermssqldataarchdat2.ndf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20),Filegroup f2( NAME = Arch3, FILENAME = c:program filesmicrosoft sql servermssqldataarchdat3.ndf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)LOG ON ( NAM

34、E = Archlog1, FILENAME = c:program filesmicrosoft sql servermssqldataarchlog1.ldf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20),( NAME = Archlog2, FILENAME = c:program filesmicrosoft sql servermssqldataarchlog2.ldf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)3.2.2 数据库管理3.2.2.1 修改数据库方法一:使用企业管理器右键单

35、击要修改的数据库,选择属性命令。方法二:使用ALTER DATABASE命令语法格式:ALTER DATABASE database ADD FILE ,.n TO FILEGROUP filegroup_name :增加数据文件| ADD LOG FILE ,.n :增加日志文件| REMOVE FILE logical_file_name :删除文件| ADD FILEGROUP filegroup_name :增加文件组| REMOVE FILEGROUP filegroup_name :删除文件组| MODIFY FILE :修改文件组| MODIFY NAME = new_dbnam

36、e :修改数据库名| MODIFY FILEGROUP filegroup_name filegroup_property | NAME = new_filegroup_name 3.2.2.1.1 增大数据库文件ALTER DATABASE Ordersmodify file (name=stuman_dat,size=60MB)3.2.2.1.2 增加辅助文件ALTER DATABASE stumanadd file (name=stumanADD,filename=c:stuman_add.ndf,size=20MB,maxsize=50,filegrowth=20%)3.2.2.1.3

37、 从数据库中删除文件ALTER DATABASE Orders REMOVE FILE stumanADD3.2.2.1.4 增加文件组例: ALTER DATABASE OrdersADD FILEGROUP Test1FG1GOALTER DATABASE OrdersADD FILE ( NAME = test1dat3, FILENAME = c:Program FilesMicrosoft SQL ServerMSSQLDatat1dat3.ndf, SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB)TO FILEGROUP Test1FG1

38、3.2.2.1.5 向数据库中添加日志文件ALTER DATABASE OrdersADD LOG FILE ( NAME = test1log2, FILENAME = c:Program FilesMicrosoft SQL ServerMSSQLDatatest2log.ldf, SIZE = 5MB, MAXSIZE = 100MB,FILEGROWTH = 5MB)3.2.2.2 删除数据库3.2.2.2.1 使用企业管理器3.2.2.2.2 使用DROP命令DROP DATABASE从 Microsoft SQL Server 删除一个或多个数据库。语法:DROP DATABASE

39、 database_name 3.3 数据库的其它管理3.3.1 导入与导出数据库导入:将其它类型的数据文件转换为SQL数据库文件,如将.XLS电子表格导入至SQL中。导出:将SQL数据库转换为其他的数据文件。3.3.2 分离与连接数据库SQLSERVER允许用户断开数据库的连接,以后再连接数据库。这为数据库的复制和携带提供了条件,当然,更多的是创建可移动数据库,以使在不同介质上移动数据库。3.3.2.1 分离数据库方法一:使用企业管理器右键单击要分离的数据库名,在“所有任务”中选择“分离数据库”方法二:使用sp_detach_db命令格式:sp_detach_DB 数据库名功能:断开指定数据

40、库的连接,此时要求此数据库没有被使用。Sp_detach_db stuman3.3.2.2 连接数据库方法一:使用企业管理器右键单击空白区域,选择“附加数据库”命令方法二:使用sp_attach_db命令格式:sp_attach_db dbname = 数据库名, filename1 = 数据文件名 ,.16 如:将上例分离出去的STUMAN库与SQL SERVER连接。sp_attach_db stuman,filename1=C:Program FilesMicrosoft SQL ServerMSSQLDatastu.MDF,filename2=C:Program FilesMicros

41、oft SQL ServerMSSQLDatastu.lDF方法三:使用CREATE DATABASE命令格式:CREATE DATABASE 数据库名 ON PRIMARY ( FILENAME = 数据文件名 ) LOG ON ( FILENAME = 事务日志文件名 ) FOR ATTACH例:create database smon primary (filename=C:Program FilesMicrosoft SQL ServerMSSQLDatastuman.MDF)LOG ON (FILENAME=C:Program FilesMicrosoft SQL ServerMSS

42、QLDatastuman.LDF)FOR ATTACH3.3.3 数据库的备份与恢复数据库备份是一个复杂的过程,其主要目的有二:(1) 当当前数据遭到意外破坏时,可以启用后备数据库(2) 为了从一台机器到另一台机器所进行的数据传输数据库的备份包括静态备份和动态备份,完全备份、增量备份及日志备份等,在此只讲述数据库的简单备份。3.3.3.1 备份在企业管理器右击要备份的数据库,在出现的菜单中选择“所有任务/备份数据库”,按要求操作即可。3.3.3.2 恢复在企业管理器中右击,在出现的菜单中选择“所有任务/还原数据库”,按要求操作即可。3.4 系统数据库及样本数据库SQL Server 系统有四个

43、系统数据库,它们用于支持 SQL Server操作,安装应用程序会自动生成。系统数据库包含元数据,即关于数据的数据,这些系统数据库都是不能删除的。3.4.1 master 数据库 记录 SQL Server 系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置、系统存储过程和其他数据库的存储性,另外还记录所有其它的数据库,其中包括数据库文件的位置。如果master数据库被破坏,则SQL Server将无法运行,因此必须经常备份master数据库。Sysdatabases表:是存储在 master 数据库中的一个非常重要的表,它记录了SQL Server 上的所有数据库信息,每个数据库在表

44、中占一行。3.4.2 tempdb 数据库 tempdb 数据库保存所有的临时表和临时存储过程。tempdb 数据库在 SQL Server 每次启动时都重新创建,临时表和存储过程在连接断开时自动除去。3.4.3 model 数据库 model 数据库用作在系统上创建的所有数据库的模板。当执行CREATE DATABASE 语句时,新数据库通过复制 model 数据库中的内容创建。3.4.4 msdb 数据库 Msdb数据库保存SQL Server Agent(代理)的信息,此数据库存储处理作业、备份、警告信息。另外还有两个示例数据库NORTHWIND和PUBS。练习:1、请创建名称为“stu

45、dentmanager”的数据库,要求如下:(1) 数据文件建立在主文件组中。(2) 主数据文件逻辑文件名为“stuman_dat”,物理文件名为“stuman_dat.mdf”,事务日志文件逻辑文件名为“stuman_log”,物理文件名为“stuman_log.log”,都存储在E:SQL文件下。(3) 数据文件及事务文件初始值为2M,每次可增长1M,最大值为10M。(4) 使用SQL命令完成。2、添加一个GROUP1文件组,并在该文件组中添加一个数据文件,逻辑文件名为stuman_dat1,物理文件为stuman_dat1.ndf,存储在d:。3、将数据库更名为“stumansys”。第

46、4章 表的创建和管理4.1 创建表SQL SERVER2000中的存储有一定限制,但我们通常不会达到这个极限,表中的列限于1024列,行中字节数限于8060B(每个页面为8K,但每个页面都包括一个132字节的页面头)。但是,图形之类的数据类型可以存放到2GB,因为这类数据存放在数据行之外的另一数据页中。表中的行数只受存储空间的限制,是物理限制而不是数据库限制。对表的建立,可使用企业管理器,也可使用T-SQL语句完成。4.1.1 用企业管理器建立表的结构4.1.2 用CREATE TABLE命令建立表的结构使用CREATE TABLE语句创建表的简单语法如下: CREATE TABLE 数据库名

47、.表所有者.表名 ( 列名 数据类型 NULL | NOT NULL , ) ON 文件组名 | DEFAULT 说明: (1) 表名最多由128个字符组成 (2) 表均是在特定数据库上创建,创建表时,可直接指定数据库名和表所有者。 CREATE TABLE STUMAN.DBO.TT ()否则要用以下两种方法指定其所属数据库: A. 使用USE 命令先打开数据库 B. 通过工具栏选取当前数据库(3)NULL/NOT NULL:指定该列是否可以取空值4)在建表前,如果不知道是否有同名表存在,可以使用OBJECTID(表名)是否为空的方式判断该表是否存在。if object_id(dbo.tt)

48、 is null create table tt (name char(1)其中OBJECTID(表名)为返回对象的标识号。4.1.3 自动获取列值创建表后,要以往表中添加行,一般情况下,添加行时,应为每一列指定值,但可使用以下方法自动获取列值。4.1.3.1 使用列表达式 创建表时使用列表达式的语法如下: CREATE TABLE 数据库名.数据所有者.表名 ( , 列名 AS 列表达式 , ) 此时,该列不用再指定数据类型。 在企业管理器中添加相应列后,右键单击选择“运行”即可见结果。 如:CREATE TABLE STUDENT1 (NAME CHAR(8), BIRTHDAY SMAL

49、LDATETIME, AGE AS YEAR(GETDATE()-YEAR(BIRTHDAY) )4.1.3.2 指定默认值 方法一:在创建表时指定默认值: CREATE TABLE 数据库名.数据所有者.表名 ( 列名 数据类型 NULL | NOT NULL DEFAULT 常量表达式 , )例:CREATE TABLE STUDENT2 (NAME CHAR(8), COLLEGE CHAR(20) DEFAULT 黑龙江八一农垦大学 )方法二:先创建默认值对象,再绑定到表中的某一列上。 创建默认值对象的格式如下: CREATE DEFAULT 默认值对象名 AS 常量表达式 绑定到指定

50、列上的格式为: SP_BINDEFAULT 默认值对象名,表名.列名例:CREATE default yx1 as 信息技术学院 Go 此处必须入GO命令,否则系统会把后续命令作为默认值的一部分, 从而产生错误 sp_bindefault yx1,student2.yxmc 取消(解除)绑定: Sp_ _unbindefault 表名.列名 删除默认值对象: DROP DEFAULT 默认值对象名4.1.4 标识列每个表中只能创建一个标识符列。如果为该列指定IDENTITY属性,则该列的值由系统根据标识特性产生。标识特性包括种子值和增量值,第一行的表列的值作为种子值,而相邻两行的差值为增量值。

51、格式:CREATE TABLE 数据库名.数据所有者.表名 ( 列名 数据类型 IDENTITY ( 种子值, 增量值 ) NOT NULL , )注意: 1) 一个表只能有一列定义为 IDENTITY 属性,而且该列必须以 decimal、int、numeric、smallint、bigint 或 tinyint 数据类型定义。2) 可指定种子和增量值。二者的默认值均为 1。3) 标识符列不允许空值,也不能包含 DEFAULT 定义。4)可以使用IDENTSEED(表名)函数获得IDENTITY的初始值,也可以通过IDENTINCR(表名)获得IDENTITY的增量值例:CREATE TABLE STUDENT2 (NAME CHAR(8), COLLEGE NCHAR(20)

温馨提示

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

评论

0/150

提交评论