1、计算机应用基础教材与课时安排使用教材:使用教材:SQL Server SQL Server 数据库应用数据库应用 高等教育出版社高等教育出版社课程安排:课程安排:授课:授课:3232学时学时 实验:实验:1616学时学时第一章 SQL Server概述本章主要内容本章主要内容SQLSQL及其特点及其特点SQL ServerSQL Server的结构的结构SQL ServerSQL Server的安装的安装几个问题 什么是数据?什么是数据?什么是数据库?什么是数据库?数据库有什么用处?数据库有什么用处?日常生活中与自己密切相关的数据库日常生活中与自己密切相关的数据库有哪些?有哪些?数据:存储在某
2、一种媒体上能够识别的物理符号。数据有数字、文字、图形、图象、声音等多种表现形式。数据库:数据库:(DataBase(DataBase,DB)DB)是指存储在计是指存储在计算机存储设备上结构化的相关数据集合。算机存储设备上结构化的相关数据集合。它不仅包括描述事物的数据本身,而且还它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。可以被多个用包括相关事物之间的联系。可以被多个用户共享的、与应用程序相互独立。户共享的、与应用程序相互独立。1.1 SQL与SQL Server 1.1.概念概念 SQLSQL是用来对存放在计算机中的数据是用来对存放在计算机中的数据库进行组织、管理和检索的库进行
3、组织、管理和检索的语言语言。SQLSQL一词是一词是“Structured Query LanguageStructured Query Language(结构式查询语言)(结构式查询语言)”的缩写的缩写1982 ANSI 着手SQL标准化工作1986 ANSI 第一个SQL标准1987 ISO SQL标准 1992 ISO SQL-92至今-SQL 标准计算机数据库查询语言 数据定义数据定义(Definition)数据操纵数据操纵(Manipulation)数据管理数据管理(Management)存取保护存取保护(Access Protection)处理控制处理控制(Control)SQLS
4、QL功能:功能:如何确定数据存储位置?如何确定数据存储位置?表表(table)索引索引(index)码码(keys)行行(rows)列列(columns)SQLSQL本身并不是一个很完整的本身并不是一个很完整的编程语言,如编程语言,如不支持流控制不支持流控制等。等。一般它都与其他编程语言一般它都与其他编程语言(如如DELPHIDELPHI、PowerbuilderPowerbuilder、VBVB、VCVC等等)结合来使用,这些用来结合来使用,这些用来作为前台开发语言,而这些语作为前台开发语言,而这些语言大多数是面向对象的语言言大多数是面向对象的语言2.2.特点特点(1 1)一体化的特点)一体
5、化的特点(2 2)统一的语法结构,多种使用方式)统一的语法结构,多种使用方式(3 3)高度非过程化)高度非过程化(4 4)语言简洁)语言简洁(5 5)客户机)客户机/服务器(服务器(Client/ServerClient/Server)结构结构(6 6)支持异类复制)支持异类复制(7 7)InternetInternet数据库功能的集成数据库功能的集成(1)(1)一体化的特点一体化的特点SQLSQL语言能完成数据库生命期当中的全语言能完成数据库生命期当中的全部活动,如:部活动,如:定义关系模式定义关系模式 录入数据以建立数据库录入数据以建立数据库 查询、更新、维护查询、更新、维护 数据库重构数
6、据库重构 数据库安全性控制数据库安全性控制(2)(2)统一的语法结构,多种使用方式统一的语法结构,多种使用方式SQLSQL有有两种使两种使用方式用方式联机使用方式联机使用方式嵌入程序方式嵌入程序方式大多数的大多数的程序接口程序接口采用嵌入采用嵌入的的SQL虽然使用方式不同,虽然使用方式不同,SQL的语法的语法结构是一致的。结构是一致的。(3)(3)高度非过程化高度非过程化 在在SQLSQL中,只需用户提出中,只需用户提出“干什干什么么”,而无须指出,而无须指出“怎么干怎么干”存取路径的选择和存取路径的选择和SQLSQL语句操作的过语句操作的过程由系统自动完成程由系统自动完成 如:如:查询等,不
7、必指明路径查询等,不必指明路径(4)(4)语言简洁语言简洁SQLSQL语法简单、易学语法简单、易学SQLSQL按其功能可以分为三大部分:按其功能可以分为三大部分:数据定义语言(DDL)定义、撤销和修定义、撤销和修改数据库对象改数据库对象数据操纵语言(DML)数据库中数据数据库中数据的修改和检索的修改和检索数据控制语言(DCL)用于数据访问用于数据访问权限的控制权限的控制(5)SQL Server 的应用结构 目前数据库应用系统的开发一般是基于目前数据库应用系统的开发一般是基于Client/ServerClient/Server(简称(简称C/SC/S)模式的,这样模式的,这样的系统结构有的系统
8、结构有3 3个部分:个部分:(6)(6)支持异类复制:支持异类复制:它可以将它可以将SQL ServerSQL Server数据复制到数据复制到其他的数据库中其他的数据库中 包括包括AccessAccess、OracleOracle、SybaseSybase和和DB2DB2,并采用,并采用ODBCODBC作为其连接机制作为其连接机制(7)Internet(7)Internet数据库功能的集成:数据库功能的集成:SQL ServerSQL Server的数据库引擎提供对的数据库引擎提供对WebWeb技术的支持,支持数据库信息自动技术的支持,支持数据库信息自动发布到发布到HTMLHTML文档文档1
9、.1.2 SQL Server的特点数据库管理数据库管理1010个最重要的特点个最重要的特点有关开发的有关开发的1010个最重要的特点个最重要的特点有关商业智能特征的有关商业智能特征的1010个最重要的特点个最重要的特点1.1.3关系数据库模型简介 关系数据库关系数据库是一种所有用户可见数是一种所有用户可见数据都严格按表的形式组织起来的表,据都严格按表的形式组织起来的表,且所有且所有库操作库操作都针对这些表中的数据都针对这些表中的数据 关系数据模型关系数据模型是以集合论中的关系是以集合论中的关系(relation)(relation)概念为基础发展起来的概念为基础发展起来的数数据模型据模型。几
10、个概念数据模型数据模型:是数据库管理系统用来表示是数据库管理系统用来表示实体实体与实体之与实体之间联系的方法。间联系的方法。实体:实体:客观事物在信息世界中称为实体客观事物在信息世界中称为实体(EntityEntity),它是现实世界中任何可区分、),它是现实世界中任何可区分、识别的事物。实体可以是具体的人或物,也识别的事物。实体可以是具体的人或物,也可以是抽象概念可以是抽象概念 例:例:图书图书 联系人联系人 实体具有许多特性,实体所具有的实体具有许多特性,实体所具有的特性称为特性称为属性属性(AttributeAttribute)。一个实)。一个实体可用若干属性来刻画体可用若干属性来刻画
11、例:例:联系人联系人 图书图书数据库系统所支持的模型主要有 关系模型关系模型 层次模型层次模型 网状模型网状模型通过关系,按给定的选通过关系,按给定的选择条件,选出符合条件择条件,选出符合条件的元组,较灵活的元组,较灵活要查找一个记录必须从要查找一个记录必须从根记录开始,按给定条根记录开始,按给定条件沿一个层次路径进行件沿一个层次路径进行查找查找在查找语句中要说明查在查找语句中要说明查找的对象和存取的路径,找的对象和存取的路径,操作较繁琐操作较繁琐 班级社团学生关系模型关系模型是是RDBMSRDBMS的基础,的基础,它包括三它包括三部分部分数据结构数据结构关系的完整性规则关系的完整性规则 关系
12、操作集合关系操作集合 一般一般ODBCODBC所支持的数据源大部所支持的数据源大部分是关系数据库管理系统分是关系数据库管理系统(RDBMS)(RDBMS)。关系数据库是应用数学方法关系数据库是应用数学方法来处理数据库数据的,与层次来处理数据库数据的,与层次模型和网状模型相比,有很大模型和网状模型相比,有很大改进。改进。数据库管理系统:是指数据库系数据库管理系统:是指数据库系统中对数据进行管理的软件系统统中对数据进行管理的软件系统改进表现在如下几点:改进表现在如下几点:面向集合的处理,可以一次操作面向集合的处理,可以一次操作多个行多个行数据的逻辑独立性,使得应用程数据的逻辑独立性,使得应用程序不
13、随数据库的改变而改变序不随数据库的改变而改变数据的自动导航,数据的访问路数据的自动导航,数据的访问路径由数据库优化器决定,方便了径由数据库优化器决定,方便了用户操作用户操作 关系模型的数据结构为单一的关系模型的数据结构为单一的数据结构由行和列组成的两维表,数据结构由行和列组成的两维表,任意任意两行互不相同两行互不相同,列值是不可分列值是不可分的的数据项,行和列的次序可任意数据项,行和列的次序可任意 两行相同两行相同d=m+n列值可分关系模型的关系模型的完整性完整性实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性用主键唯一标用主键唯一标志表中行和列,志表中行和列,主键的任
14、一属主键的任一属性不能为空性不能为空外键或者为空,外键或者为空,或者等于它所或者等于它所参照的表的主参照的表的主键的某个值键的某个值对某一具体对某一具体的数据库的的数据库的约束条件约束条件 关系模型的操作表达能力非常强大,关系模型的操作表达能力非常强大,定义了很多的操作,其中主要有选择定义了很多的操作,其中主要有选择(select operation)(select operation)、投影、投影(project(project operation)operation)、集合、连接等操作、集合、连接等操作 1.2 SQL Server 的结构 目前数据库应用系统的开发一般是基于目前数据库应用
15、系统的开发一般是基于Client/ServerClient/Server(简称(简称C/SC/S)模式的,这样模式的,这样的系统结构有的系统结构有3 3个部分:个部分:SQLSQL使应用程序采取分布式使应用程序采取分布式C/SC/S结构结构前端前端(pc端端):交交互式查询、报表互式查询、报表打印和应用程序打印和应用程序后端后端(服务器端服务器端):存储和数据管理存储和数据管理的数据库引擎的数据库引擎SQL作为作为前端工具和后前端工具和后端引擎之间通端引擎之间通信的桥梁信的桥梁1.3 SQL Server 2005的安装 SQL Server 2005 版本版本(1)SQL Server 20
16、05 Enterprise Edition(32位和位和64位位)(2)SQL Server 2005 Standard Edition(32位和位和64位位)(3)SQL Server 2005 Workgroup Edition(仅适用于仅适用于32位位)(4)SQL Server 2005 Developer Edition(32位和位和64位位)(5)SQL Server 2005 Express Edition(仅适用于仅适用于32位位)32位平台上安装和运行SQL Server 2005的硬件要求1.3.1 SQL2005的安装要求SQL Server 2005各组件对磁盘空间的要
17、求64位平台上安装和运行SQL Server 2005的硬件要求1.2.2 SQL Server 2005的安装内容数据库包括:数据库包括:系统数据库系统数据库+用户数据库用户数据库在安装在安装SQL ServerSQL Server时,安装程序创建时,安装程序创建系系统数据库统数据库master数据库数据库model数据库数据库msdb数据库数据库tempdb数据库数据库示例数据库示例数据库PubsPubsNorthwind Northwind mastermaster数据库:数据库:记录记录SQL SQL ServerServer的所有的所有系统级信息,系统级信息,包括:包括:master
18、master数据库记录数据库记录SQL ServerSQL Server的初始化信息的初始化信息实例范围的元数据实例范围的元数据端点端点链接服务器链接服务器系统配置设置系统配置设置其他数据库其他数据库 modelmodel数据库用作在数据库用作在SQL ServerSQL Server实例上创建的所有数据库模板实例上创建的所有数据库模板 由于由于SQL ServerSQL Server每次启动时都要每次启动时都要创建创建 tempdb tempdb 数据库,数据库,model model 数据数据库必须一直存在于库必须一直存在于SQL ServerSQL Server系统系统中中创建数据库时系
19、统自动复制Model中的内容,然后用空页填充新数据库的剩余部分msdb msdb 数据库供数据库供 SQL Server SQL Server 代理计代理计划警报和作业和作业划警报和作业和作业 tempdb tempdb数据库保存所有的数据库保存所有的临时表临时表和和临时存储过程临时存储过程,并满足任何,并满足任何其它临时存其它临时存储储要求要求 tempdb tempdb 数据库是全局资源,在数据库是全局资源,在SQL SQL ServerServer每次启动时都重新创建,属于无每次启动时都重新创建,属于无垃圾数据库垃圾数据库 pubs pubs 示例数据库以一个图书出版示例数据库以一个图书
20、出版公司为模型,用于演示公司为模型,用于演示SQL ServerSQL Server数数据库中可用的许多选据库中可用的许多选项项 该数据库及其中的表经常在文档该数据库及其中的表经常在文档内容所介绍的示例中使用内容所介绍的示例中使用 如果更改了如果更改了 pubs pubs 数据库,可以数据库,可以使用使用 SQL Server SQL Server 安装中安装中 Install Install 目录下的文件重新进行安装目录下的文件重新进行安装 1.3.3 SQL Server 2005的安装过程49第二章第二章 数据库的基本操作数据库的基本操作 50本章主要内容文件和文件组文件和文件组创建数据
21、库创建数据库管理数据库管理数据库51SQL Server 2005 SQL Server 2005 数据库至少具有两数据库至少具有两个系统文件:个系统文件:表、存储过表、存储过程、触发器、程、触发器、视图视图2.1 文件和文件组数据文件数据文件日志文件日志文件恢复数据库恢复数据库中的所有事中的所有事务所需的信务所需的信息息52 SQL ServerSQL Server中常用的数据库对象中常用的数据库对象53主要数据文件:主要数据文件:该文件包含数据库该文件包含数据库的启动信息,并用于存储数据,扩展的启动信息,并用于存储数据,扩展名是名是.mdf.mdf次要数据文件次要数据文件(可选可选):由用
22、户定义并由用户定义并存储存储,这些文件含有不能置于主要数这些文件含有不能置于主要数据文件中的所有数据据文件中的所有数据,扩展名是扩展名是.ndf.ndf 事务日志:事务日志:这些文件包含用于恢复数据这些文件包含用于恢复数据库的日志信息。每个数据库都必须至少库的日志信息。每个数据库都必须至少有一个日志文件有一个日志文件,扩展名是扩展名是.ldf54并将这三个文件指派并将这三个文件指派到文件组到文件组groupgroup中中文件组:文件组:为了方便数据的分为了方便数据的分配、放置和管理,配、放置和管理,SQL SQL ServerServer允许对文件进行分组允许对文件进行分组处理。在同一个组里的
23、文件处理。在同一个组里的文件组成文件组组成文件组Data1.ndfData1.ndfHDDData3.ndfData3.ndfHDDData2.ndfData2.ndfHDD然后,可以在文件组然后,可以在文件组groupgroup上创建表。对表上创建表。对表中数据的查询将被分中数据的查询将被分散到三个磁盘上,查散到三个磁盘上,查询性能将得到提高询性能将得到提高55 数据库的文件组成事务日志文件*.ldf一到多个次数据文件*.ndf零到多个次数据文件*.ndf零到多个主数据文件*.mdf仅有一个主文件组次文件组事务日志仅有一个零到多个56需要注意的有:文件或文件组需要注意的有:文件或文件组不能不
24、能由一个以上的数据库使用由一个以上的数据库使用例如例如:如果文件如果文件 sales.mdf sales.mdf 和和 sales.ndf sales.ndf 包含了数据库包含了数据库salessales中的中的数据和对象,那么任何其它数据库数据和对象,那么任何其它数据库都不能使用这两个文件都不能使用这两个文件件不能属于任件组件不能属于任件组 572.2.12.2.1以图形化界面创建数据库以图形化界面创建数据库2.2.22.2.2用用T-SQLT-SQL命令创建数据库命令创建数据库 2.2 创建数据库Transact-SQLTransact-SQL交互式查询语言交互式查询语言582.2.1以图
25、形化界面创建数据库演示演示592.2.2用T-SQL命令创建数据库CREATE DATABASE database_name ON PRIMARY,n ,n LOG ON,n COLLATE collation_name WITH;数据库名称指定关联的指定关联的定义定义主文件主文件60CREATE DATABASE CREATE DATABASE database_namedatabase_name ON,n ON,n FOR ATTACH FOR ATTACH WITH WITH|ATTACH_REBUILD_LOG|ATTACH_REBUILD_LOG;数据库名称通过附加命令创建数据库的命
26、令格式:通过附加命令创建数据库的命令格式:指定从现有的指定从现有的一组操作系统一组操作系统文件中附加数文件中附加数据库据库 61:=:=(NAME=(NAME=logical_file_namelogical_file_name,FILENAME=os_file_name,FILENAME=os_file_name,数据文件或日数据文件或日志文件的定义志文件的定义数据库的启动位置,数据库的启动位置,也是数据库中其他也是数据库中其他文件的入口位置文件的入口位置 指定文件的指定文件的操作系统文操作系统文件名和路径件名和路径 62,SIZE=,SIZE=sizeKB|MB|GB|TBsizeKB|M
27、B|GB|TB,MAXSIZE=,MAXSIZE=max_sizemax_sizeKB|MB|GB|TBKB|MB|GB|TB|U|UNLIMITEDNLIMITED,FILEGROWTH=,FILEGROWTH=grow_incrementgrow_incrementKB|MB|KB|MB|GB|TB|%GB|TB|%),.n,.n指定数据或日指定数据或日志文件的大小志文件的大小 ,缺省为缺省为1MB 1MB 指定文件能够增长指定文件能够增长到的最大长度到的最大长度 ,若,若不指定长度,将一不指定长度,将一直增长到盘满直增长到盘满 文件的增长增量文件的增长增量 ,缺省为缺省为10%10%,最
28、小,最小值为值为64KB 64KB 63:=:=FILEGROUP filegroup_nameDEFAULTFILEGROUP filegroup_nameDEFAULT ,:=:=DB_CHAINIGON|OFF DB_CHAINIGON|OFF|TRUSTWORTHYON|OFF|TRUSTWORTHYON|OFF 控制外部与数据库之控制外部与数据库之间的双向访问间的双向访问数据库文件组数据库文件组的定义的定义64:=:=ENABLE_BROKER ENABLE_BROKER|NEW_BROKER|NEW_BROKER|ERROR_BROKER_CONVERSATIONS|ERROR_B
29、ROKER_CONVERSATIONS 功能:帮助数据库人员构建安全、功能:帮助数据库人员构建安全、可靠和可伸缩性的应用程序可靠和可伸缩性的应用程序65LOG ON (NAME=logical_file_name,FILENAME=os_file_name,SIZE=size,MAXSIZE=max_size|UNLIMITED,FILEGROWTH=growth_increment),.nCOLLATE collation_name指定建立数据指定建立数据库的日志文件库的日志文件 指定数据库的缺省排指定数据库的缺省排序方式包含控制语言序方式包含控制语言或字母表用法的规则或字母表用法的规则 6
30、6CREATE DATABASE My_DBCREATE DATABASE My_DBON ON PRIMARY PRIMARY(NAMENAME My_DBData,My_DBData,FILENAME=FILENAME=C:My_DBC:My_DB.mdf.mdf,SIZE=10MB,SIZE=10MB,MAXSIZE=30MB,MAXSIZE=30MB,FILEGROWTH=2MB)FILEGROWTH=2MB)例:在例:在C C盘根目录下创建名为盘根目录下创建名为My_DBMy_DB的数的数据库,其主文件大小为据库,其主文件大小为10MB10MB,最大大小,最大大小为为30MB30MB
31、,日志文件大小为,日志文件大小为10MB10MB。67LOG ON LOG ON(NAMENAME My_DBMy_DB Log,Log,FILENAME=FILENAME=C:My_DB.ldfC:My_DB.ldf,SIZE=10MB,SIZE=10MB,MAXSIZE=20MB,MAXSIZE=20MB,FILEGROWTH=25%)FILEGROWTH=25%)COLLATE Chinese_PRC_CI_ASCOLLATE Chinese_PRC_CI_AS68 2.2.3 2.2.3 事务日志事务日志 每个每个 SQL Server 2005 SQL Server 2005 数据库
32、必数据库必须都具有须都具有事务日志事务日志。事务日志是数据。事务日志是数据库的一个重要组件,如果系统出现故库的一个重要组件,如果系统出现故障,它将成为最新数据库的唯一来源障,它将成为最新数据库的唯一来源前面的例子,创前面的例子,创建数据库时指定建数据库时指定了一个日志文件了一个日志文件事务日志是数据库中已发生的所有事务日志是数据库中已发生的所有修改和执行每次修改的事务的一连修改和执行每次修改的事务的一连串记录。事务日志记录每个事务的串记录。事务日志记录每个事务的开始。开始。69事务日志支持的操作恢复个别事务恢复个别事务SQL ServerSQL Server启动时恢复所有未完成的事务启动时恢复
33、所有未完成的事务将还原的数据库、文件、文件组或页前滚到将还原的数据库、文件、文件组或页前滚到故障点故障点702.2.4 2.2.4 查看数据库信息查看数据库信息 (1)1)图形化界面查看数据库信息图形化界面查看数据库信息 演示演示71(2)T-SQL(2)T-SQL命令查看数据库信息命令查看数据库信息 在在T-SQLT-SQL中,常用的中,常用的:函数函数DATABASEPROPERTYEXDATABASEPROPERTYEX或或 系统存储过程系统存储过程sp_helpdbsp_helpdb来显示数据库和数据库参数的有关信息来显示数据库和数据库参数的有关信息72使用函数使用函数DATABASE
34、PROPERTYEXDATABASEPROPERTYEX的语法为:的语法为:SELECT DATABASEPROPERTYEXSELECT DATABASEPROPERTYEX(database,property)其中:其中:Database:需要查看的数据库的名称需要查看的数据库的名称Property:数据库的属性数据库的属性 使用系统存储过程使用系统存储过程sp_helpdb的语法为:的语法为:EXEC sp_helpdb database_name 73例:分别用函数例:分别用函数DATABASEPROPERTYEXDATABASEPROPERTYEX和和系统存储过程系统存储过程sp_h
35、elpdbsp_helpdb两种方法来查两种方法来查看数据库看数据库My_DBMy_DB的属性的属性SELECT DATABASEPROPERTYEX SELECT DATABASEPROPERTYEX(My_DB,Collation)My_DB,Collation)gogoEXEC sp_helpdb My_DBEXEC sp_helpdb My_DBgogo742.3 管理数据库 打开数据库打开数据库 增加数据库容量增加数据库容量 查看及修改数据库选项查看及修改数据库选项缩减数据库容量缩减数据库容量 更改数据库名称更改数据库名称 查看数据库个数查看数据库个数 删除数据库删除数据库75打开数
36、据库:打开数据库:use database_nameuse database_name 在连接在连接SQL ServerSQL Server时,假如没时,假如没有预先指定用户连上哪个数据库,系有预先指定用户连上哪个数据库,系统会自动连上统会自动连上mastermaster数据库,此时要数据库,此时要防止由于用户操作不当而造成防止由于用户操作不当而造成mastermaster数据库的破坏数据库的破坏2.3.12.3.1打开数据库打开数据库76(1)(1)用用T-SQLT-SQL命令扩增数据库容量命令扩增数据库容量使用权限默认为使用权限默认为dbo(dbo(数据库拥有者数据库拥有者)扩增数据库命令
37、语句如下:扩增数据库命令语句如下:ALTER DATABASE ALTER DATABASE database_namedatabase_nameMODIFY FILEMODIFY FILE(NAME=(NAME=file_namefile_name,SIZE=newsizeSIZE=newsize)要扩容的数据库要扩容的数据库要扩容的数要扩容的数据库文件据库文件为该文件指为该文件指定新容量定新容量2.3.22.3.2增加数据库容量增加数据库容量77例:例:数据库文件数据库文件My_DBDataMy_DBData的初始分的初始分配空间大小为配空间大小为10MB10MB,指派给,指派给my_DB
38、my_DB数数据库使用,现在想将其大小扩充至据库使用,现在想将其大小扩充至20MB20MB,则具体操作命令如下:,则具体操作命令如下:USE My_DBUSE My_DBgogoALTER DATABASE My_DBALTER DATABASE My_DBMODIFY FILE MODIFY FILE NAME=My_DBData,NAME=My_DBData,SIZE=20 MB SIZE=20 MB 78(2)(2)通过图形化界面增加容量通过图形化界面增加容量演示演示792.3.32.3.3查看及修改数据库选项查看及修改数据库选项(1 1)T-SQLT-SQL界面查看界面查看用用sp_o
39、ptionssp_options系统存储程序查看:系统存储程序查看:Exec sp_dboption Exec sp_dboption mastermastergogo80(2)(2)用图形化界面查看及修改选项用图形化界面查看及修改选项演示演示 81(3)用T-SQL命令更改数据库选项更改命令如下更改命令如下(使用权限:使用权限:sa,dbo)sa,dbo):sp_dboptionsp_dboptiondnamedname,optnameoptname,true|falsetrue|false其中:其中:dnamedname:想操作的数据库名称想操作的数据库名称OptnameOptname:欲
40、更改的数据库选项欲更改的数据库选项true,falsetrue,false:设定数据库选项的值:设定数据库选项的值例:更改例:更改My_DBMy_DB为只读状态为只读状态Exec sp_dboption Exec sp_dboption My_DB,read _DB,read only,trueonly,truegogo822.3.42.3.4缩减数据库容量缩减数据库容量 用户可以通过缩减数据库容用户可以通过缩减数据库容量来节省设备空间的浪费,其操量来节省设备空间的浪费,其操作也可以通过作也可以通过T-SQLT-SQL命令和图形化命令和图形化方式来完成方式来完成83 执行执行DBCC SHRI
41、NKDNDBCC SHRINKDN命令来完成,但命令来完成,但在此之前需用在此之前需用sp_dboptionsp_dboption命令,将想缩命令,将想缩减容量的数据库设定为单用户模式减容量的数据库设定为单用户模式缩减数据库容量命令语句:缩减数据库容量命令语句:DBCC SHRINKDATABASEDBCC SHRINKDATABASE(database_namedatabase_name,new_size,new_size,MASTEROVERRIDE,MASTEROVERRIDE)(1)(1)用用T-SQLT-SQL命令命令想缩减的想缩减的数据库数据库数据库剩数据库剩下的容量下的容量缩减缩
42、减mastermaster系统数据库系统数据库默认权限默认权限为为sa,dbosa,dbo84例:缩减例:缩减My_DBMy_DB数据库的容量数据库的容量Exec sp_dboptionMy_DB,single Exec sp_dboptionMy_DB,single user,trueuser,truegogouse use My_DBgogoDBCC SHRINKDATABASE(My_DB)DBCC SHRINKDATABASE(My_DB)gogoexec sp_dboption My_DB,single exec sp_dboption My_DB,single user,false
43、user,falsegogo85(2)(2)通过图形化界面操作通过图形化界面操作演示演示 862.3.52.3.5更改数据库名称更改数据库名称 通过通过T-SQLT-SQL命令更改名称语句如下:命令更改名称语句如下:sp_renamedb OldName,NewNamesp_renamedb OldName,NewName使用权限:使用权限:仅仅sasa可以更改数据库名称可以更改数据库名称例:更改数据库例:更改数据库“My_DBMy_DB”名称为名称为 “tsinghuatsinghua”Exec sp_renamedb My_DB,tsing huaExec sp_renamedb My_D
44、B,tsing huaGoGo872.3.62.3.6查看数据库数量查看数据库数量 在在SQLSQL查询分析器中查询分析器中执行如下命令:执行如下命令:USE master USE master gogoSELECT NAME FROMSELECT NAME FROM sys.sysdatabasessys.sysdatabases返回结果:返回结果:MasterMasterTempdbTempdbModelModelMsdbMsdbPubsPubsNorthwindNorthwindLinguisticLinguistics s882.3.72.3.7数据库的删除数据库的删除 当删除一个数据
45、库后,仅能用备当删除一个数据库后,仅能用备份数据重建以前的数据库中的数据份数据重建以前的数据库中的数据 如果还有用户正在使用此数据库,如果还有用户正在使用此数据库,则无法删除则无法删除 删除权限仅限于删除权限仅限于dbo,sadbo,sa也可模拟也可模拟成成dbodbo执行此命令执行此命令 89删除数据库命令如下删除数据库命令如下:DROP DATABASE DROP DATABASE database_name,database_name.database_name,database_name.或:或:sp_dbremove database_namesp_dbremove database
46、_name例例:删除名字为删除名字为tsinghuatsinghua的数据库的数据库USE masterUSE mastergogoDROP DATABASE tsinghua DROP DATABASE tsinghua 要删除的要删除的数据库名数据库名数据文数据文件和日件和日志文件志文件都清除都清除 90第三章数据表的建立91本章主要内容表的概念表的概念SQL Server 的数据类型的数据类型数据库中表的操作数据库中表的操作92数据库数据库表表记录记录字段字段属性属性3.1 表的概念字段记录9394设计数据库时,首先应该做什么?确定数据库所需的表确定数据库所需的表每个表中数据的类型每个表
47、中数据的类型可以访问每个表的用户可以访问每个表的用户95创建表及其对象之前做什么?数据类型数据类型列数列数那些列允许那些列允许空值空值是否要使用以及何处使用约束、默认值是否要使用以及何处使用约束、默认值和规则和规则所需索引的类型所需索引的类型96创建表的方法?创建一个基表创建一个基表添加数据添加数据97 数据类型定义了各列允许使用的数据类型定义了各列允许使用的数据值。数据值。3.2 SQL Server 的数据类型98指定数据类型的方法?使用使用SQL Server 2005 系统数据类型系统数据类型创建基于系统数据类型的别名数据类型创建基于系统数据类型的别名数据类型从在从在Microsoft
48、.NET Framework公共语言运行公共语言运行时创建的用户定义类型时创建的用户定义类型99需要定义数据类型的情况?建立表字段建立表字段申请申请局部变量局部变量申请存储过程中的局部变量申请存储过程中的局部变量转换数据类型转换数据类型本章讨论的内容100数数据据类类型型 二进制型二进制型 b binary(n),varbinary(n),image字符型字符型 char(n)char(n),varchar(n)varchar(n)日期及时间日期及时间 datetimedatetime,smalldatetime smalldatetime 精确数值型精确数值型 decimal(p,s),nu
49、meric(p,s)decimal(p,s),numeric(p,s)intint等等近似数值型近似数值型 float(n)float(n),Real Real 货币型货币型 moneymoney,smallmoney smallmoney 特殊类型特殊类型 bit,timestampbit,timestamp101binarybinary的存取速度比的存取速度比varbinaryvarbinary快,当表中快,当表中数据长度很固定时,应数据长度很固定时,应考虑用考虑用binarybinary类型。类型。二二进进制制数数binarybinaryvarbinaryvarbinary存储空间固定的
50、存储空间固定的数据类型,指定数据类型,指定长度长度80008KB时,image数据102字符数据字符数据由字母、符号和数字的任意组合组成由字母、符号和数字的任意组合组成由单引号由单引号括起括起来来字符字符数据数据char(n):char(n):列大小固定列大小固定varchar(n):varchar(n):列大小不固定列大小不固定最多为最多为80008000字节字节查询速查询速度较快度较快输入字符输入字符长度长度8KB的ASCII字符,text数据103 text和和image数据类型数据类型 text:最多为最多为231-1个符号,存文字个符号,存文字image:最多为最多为231-1个个b