




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一讲
SQLServer2000基础关系数据库基础知识SQLServer2000概述SQLServer的安装和配置SQLServer工具创建服务器组和注册服务器1.1关系数据库基础知识1.概念模型2.信息世界中的基本概念3.数据模型4.关系型数据库概念
补充:
模型是在现实世界中模拟和抽象某些具体事物的工具。
在数据库中用于抽象、表示和处理现实世界中的数据和信息的工具
提示:数据库是对数据的存储,计算机不可能直接处理现实生活中的具体事物,所以人们必须事先把现实中的具体事物转换成计算机能够处理的数据,而数据库就是利用数据模型这个工具来把现实世界的事物抽象成为数据。模型
数据模型
现实世界认识抽象信息世界概念模型机器世界DBMS支持的数据模型1.1.1
概念模型概念模型是从现实世界到计算机世界的一个中间层次,是现实世界到信息世界的一种抽象,它不依赖于具体的计算机系统。概念模型是进行数据库设计的有力工具,也是数据库设计人员和用户进行交流的语言。1.1.2
信息世界中的基本概念实体(Entity)
现实世界中客观存在,可相互区分的事物称为实体
。
实体可以是可触及的对象,也可以是抽象的事件。属性(Attribute)
实体的某一特性称为属性。
属性有“型”和“值”之分,码(Key)唯一标识实体的属性集称为码,码可以由一个或多个属性组成。域
(Domain)属性的取值范围称为属性的域。实体型(EntityType)具有相同属性的实体具有相同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型Eg:学生(学号,姓名,性别,出生年月,系,入学时间)就是一个实体型。联系
(Relationship)现实世界中的事物内部及事物之间是有联系的,反映在信息世界中为实体(型)内部的联系和实体(型)之间的联系。联系
两个实体型之间的联系主要有一对一,一对多,多对多三种类型。(1)一对一联系(1:1)实体集A中的一个实体至多(也可以没有)与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B
为一对一的联系。记作1:1。(2)一对多联系(1:n)实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应。记作1:n。
(3)多对多联系(m:n)实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体与实体集A中的多个实体相对应。记作(m:n)。可以用图形来表示两个实体型之间的这三类联系
(1)(2)(3)不同实体集实体之间的联系AAABBB联系三个实体型间的联系:
一对一;一对多;多对多班级管理正班长班主任111一对一课程讲授教师参考书1np一对多供应商项目零件提供多对多nmp1.1.3数据模型
直接面向数据库的逻辑结构,它是对现实世界的第二层抽象。直接与数据库管理系统有关,称为逻辑数据模型,也称为结构数据模型。例如:网状、层次、关系模型,它是根据数据存储需求的不同来区分的,主要用于数据库管理系统的实现。常用的数据模型
层次模型网状模型关系模型非关系模型
1.层次模型特点:1、有且只有一个结点没有双亲结点,称根结点。2、根以外的其他结点有且只有一个双亲结点。优点:层次分明、结构清晰、不同层次之间关系直接简单。缺点:节点间难建立横向关系,数据可能重复出现。2.网状模型特点:1、允许一个以上的结点无双亲。2、一个结点可以有多于一个的双亲。优点:很容易地反映实体之间的关联,避免重复性。缺点:关系错综复杂,数据库增多时很难维护。3.关系模型一个关系模型的逻辑结构是一张二维表,它由行和列组成。关系学生登记表关系名字段记录学号姓名性别系别年龄籍贯95001950029500395004……95700李勇刘成王楠张力杨晓东男女女男男计科信息数学计科物理2019181921江苏山东北京北京山西1.1.4
关系型数据库概念
关系型数据库是采用了关系模型作为数据的组织方式。它是表的集合。1.表的关联指数据库中的数据表与数据表之间使用相应的字段实现数据表的连接。表的关联:数据库中数据表和数据表之间使用相应的字段实现数据表的连接。项目编号名称负责人客户开始日期结束日期1SiS2103/12/0006/12/002SiS项目21104/06/0005/01/003Pet2206/17/0008/17/004Pet项目22209/01/0009/18/00编号姓名性别工资1陈朋男20002孙晴女3000编号名称客户负责人1SiSSim22PetPet22.主键和外键键:数据表中的一个字段主键:数据表中具有唯一型的字段,主键不能重复。外键:一个数据表将使用该数据表中的外键连接到其他的数据表,而这个外键字段在其他数据表中作为主键字段出现。员工数据表员工编号员工姓名员工工资部门编号部门数据表部门编号部门名称部门负责人部门职责“员工编号”字段“部门编号”字段“部门编号”字段数据表的主键和外键1.2SQLServer2000概述1.SQLServer发展简史2.SQLServer特点1.2.1SQLServer发展简史SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用户见面;SQLServer2000是Microsoft公司于2000年推出的最新版本。1.2.2SQLServer特点1.真正的客户机/服务器体系结构。2.图形化用户界面,使系统管理和数据库管理更加直观、简单。3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。4.SQLServer与WindowsNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。5.具有很好的伸缩性,可跨越从运行Windows95/98的膝上型电脑到运行Windows2000的大型多处理器等多种平台使用。6.对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。7.SQLServer提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。1.3SQLServer的安装和配置1.SQLServer常见版本2.SQLServer环境需求3.SQLServer2000的安装4.SQLServer系统数据库简介1.3.1SQLServer2000常见的版本标准版(StandardEdition)企业版(EnterpriseEdition)个人版(PersonalEdition)开发版(DeveloperEdition)
SQLServer2000版本操作系统企业版标准版个人版开发版Windows98NNYNWindows2000ProfessionalNNYYWindows2000ServerYYYYWindows2000AdvancedServerYYYYWindowsNTServerYYYYWindowsXPNNYY表1-1:1.3.2SQLServer环境需求1.安装、运行SQLServer2000的硬件需求2.安装、运行SQLServer2000的软件需求1.硬件需求(1)计算机
Inter及其兼容计算机,Pentium166Mz或者更高处理器或DECAlpha和其兼容系统。(2)内存(RAM)最少64MB内存,建议使用128M或更多的内存。(3)硬盘空间完全安装(Full)需要180MB的空间,典型安装(Typical)需要170MB的空间,最小安装(Minimum)需要65MB的空间。支持不同的SQLServer2000版本的操作系统见表(表1-1)。SQLServer2000所有版本的最低要求:WindowsNT4.0ServicePackInternet软件:MicrosoftInternetExplorer5.0,但不必是默认浏览器。网络软件2.软件需求1.3.3SQLServer2000的安装SQLServer2000的安装过程与其它MicrosoftWindows系列产品类似。用户可根据向导提示,选择需要的选项一步一步地完成。1.3.4SQLServer系统数据库简介
SQLServer2000有6个系统数据库1.Master数据库是SQLServer系统最重要的数据库,它记录了SQLServer系统的所有系统信息。这些系统信息包括所有的登录信息、系统设置信息、SQLServer的初始化信息和其它系统数据库及用户数据库的相关信息。2.Tempdb是一个临时数据库,它为所有的临时表、临时存储过程及其它临时操作提供存储空间。3.Model数据库是所有用户数据库和Tempdb数据库的模板数据库,它含有Master数据库所有系统表的子集,这些系统数据库是每个用户定义数据库需要的。4.Msdb数据库是代理服务数据库,为其警报、任务调度和记录操作员的操作提供存储空间。5.Pubs和Northwind数据库是两个实例数据库,它们可以作为SQLServer的学习工具。
1.4SQLServer工具和实用程序
1.服务管理器
2.企业管理器
3.查询分析器
4.联机帮助丛书1.4.1服务管理器(ServiceManager)
SQLServer服务管理器是在服务器端实际工作时最有用的实用程序。服务管理器用来启动、暂停、继续和停止数据库服务器的实时服务。服务包括:SQLServer、SQLServerAgent、MSDTC(MicrosoftDistributedTransactionCoordinator,微软分布式事务协调器)和Microsoftsearch服务。
SQLServer服务管理器(ServiceManager)界面设置是否在开机时自动启动服务注意:在停止SQLServer服务之前,最好先暂停SQLServer服务。1.4.2企业管理器企业管理器是MicrosoftSQLServer程序组中的程序之一,也是最重要的一个管理工具。企业管理器不仅能够配置系统环境和管理SQLServer,而且由于它能够以层叠列表的形式来显示所有的SQLServer对象,因而所有SQLServer对象的建立与管理都可以通过它来完成。
SQLServer企业管理器(EnterpriseManager)界面1.4.3查询分析器(QueryAnalyzer)
用于输入和执行Transaction-SQL语句,并且迅速查看这些语句的结果,以分析和处理数据库中的数据。这是一个非常实用的工具,对掌握SQL语言,深入理解SQLServer的管理工作有很大帮助。1.4.4联机帮助丛书(BooksOnline)SQLServer2000提供了大量的联机文档,它具有索引和全文搜索能力,可根据关键词来快速查找用户所需信息。1.5创建服务器组和注册服务器1.创建服务器组2.创建服务器第二讲数据库的创建和管理本章重点:
1、用企业管理器和T-SQL来创建数据库
2、利用T-SQL语句来修改数据库
3、利用T-SQL来设置数据库本章难点:1、熟练使用T-SQL语言的基本语句并了解其语法结构。第二章数据库的创建和管理数据库的体系结构数据库的存储结构创建数据库管理数据库设置数据库选项2.1数据库的体系结构1.客户机/服务器体系结构2.数据库的逻辑结构3.数据库的物理结构2.1.1
客户机/服务器结构客户机/服务器的两层结构客户机/服务器的三层结构逻辑层次表示层:数据和应用程序对用户的表示业务层:应用程序逻辑和业务规则数据层:数据库定义,数据完整性逻辑,存储过程,以及其他相关的数据操作应用程序架构智能服务器(2层)智能客户端(2层)N层InternetInternetN层智能客户端(2层)智能服务器(2层)表示业务数据浏览器客户端表示业务数据表示业务数据业务数据表示
胖服务器
胖客户机2.1.2
数据库的逻辑结构所谓逻辑结构是指数据库是由哪些性质的信息所组成的。
数据库的对象:1.表2.数据类型3.约束4.默认值5.规则6.索引7.视图8.用户自定义函数9.存储过程10.触发器
2.1.3数据库的物理结构所谓物理结构是指数据库文件是如何在计算机磁盘上存储的。在SQLServer2000中,数据存储在页中,页是数据存储的最小单位,每一页可以存储8K字节的数据。8个连续的页组成一个扩展盘区,它是存放表和索引的基本单元。数据库数据存储方式扩展盘区
(8个连续的
8KB页)页(8KB)表,索引数据每行大小最多8
060字节数据(文件)
.mdf或.ndf日志(文件)
.Idf
扩展盘区类型统一扩展盘区空闲空间混合扩展盘区扩展盘区的类型混合扩展盘区:包含2个或多个对象的页的扩展盘区称为“混合扩展盘区”。每张表起始于一个混合扩展盘区。主要为跟踪空间的页及包含小对象的页使用混合扩展盘区统一扩展盘区:将所有八页分配给单个对象的扩展盘区称为“统一扩展盘区”。在表或索引需要超过64KB空间时使用2.2
文件和文件组1.文件SQLServer的文件亦称为数据库操作系统文件,每一个数据库都对应于两个或多个文件,在该数据库内创建的数据库对象(如表、视图等)都保存在这些文件中。
数据库操作系统文件分为三类:主数据文件、次要数据文件和日志文件。主数据库文件:存放数据,每个数据库有且仅有一个主数据文件,后缀为.mdf。次数据库文件:存放数据,有或没有都可,也可有多个,后缀为.ndf。事务日志文件:存放事务日志,每个数据库必须有一个或多个日志文件。注意:一个简单的数据库可以只有一个主数据文件和一个事务日志文件,如果数据库大,则可以设置多个次文件,如果数据库大则可以设置多个次数据库文件和事务日志文件,并将他们放在不同的磁盘上。2.数据库文件组
文件组的概念文件组是SQLServer中一个或多个文件的命名集合,它构成分配或用于数据库管理的单个单元文件组的使用场合当有多个磁盘,希望把文件分布在这些磁盘上以提高性能文件组的类型两种文件组:主文件组和用户定义文件组包含主文件的文件组为主文件组用户定义的文件组是指在首次创建或以后更改数据库时,用户明确创建的任何文件组数据库文件组(续)指定默认的文件组数据库建立时的默认文件组为主文件组未指定文件组的对象都将放到默认文件组中调整默认的主文件组的大小若主文件组没有空间,就不能再往系统表中写入任何信息文件组的属性READONLY
:指定文件组为只读。不允许更新其中的对象。主文件组不能设置为只读。READWRITE:可读写。允许更新文件组中的对象。DEFAULT:将文件组指定为默认数据库文件组。只能有一个数据库文件组是默认的。注意:如果在CREATETABLE、ALTERTABLE或者CREATEINDEX语句中没有指定文件组,则新表及索引将在默认文件组—中创建。2.3创建数据库定义一个数据库数据库的名字数据库的大小数据库所在的文件定义数据库的两种方法SQLServer企业管理器在查询分析器中输入CREATEDATABASE语句使用企业管理器
一、使用控制面板根结点
创建步骤:⑴打开企业管理器,打开结点,选择“数据库”结点。(2)在“数据库”节点上点击右键,选择“新建数据库”(3)在弹出的数据库属性窗口中完成主要设置二、使用数据库向导完成
定义数据库定义数据库例1:创建一个名为sales1的数据库,数据文件的逻辑文件名为sales1_dat,磁盘文件名为sales1_dat.mdf,初始大小为5MB,最大值为30MB,增幅为2MB;事务日志文件的逻辑文件名为sales1_log,磁盘文件名为sales1_log.ldf,初始大小为2MB,最大值为20MB,增幅为2%;两个磁盘文件都存储在D盘SQL文件夹下。定义数据库1、语法CREATEDATABASEdatebase_name[ON[PRIMARY][<filespec>[,...n][,<filegroup>[,...n]]][LOGON{[<filespec>[,...n]}][<filespec>::=([NAME=logical_file_name,][FILENAME='os_file_name’,][SIZE=size,][MAXSIZE=max_size,][FILEGROWTH=growth_increment])[,...n]<filegroup>::=FILEGROUPfilegroup_name<filespec>[,...n]2、关键字和参数说明CREATEDASEBASEdatebase_name:新数据库的名称。ON用于指定数据库所需的数据文件。LOGON
用于指定数据库的事务日志文件。PRIMARY:指定其后定义的第一个文件是主数据文件。NAME=logical_file_name:定义操作系统文件的逻辑文件名,该文件名只在SQL语句中使用,是全局磁盘文件名的代号FILENAME=os_file_name:定义操作系统文件在操作系统中的存放路径,以及实际文件名。SIZE=size:定义操作系统文件的初始容量。MAXSIZE=max_size:设置操作系统文件能够达到的最大长度。FILEGROWTH=growth_increment:定义操作系统文件长度不够时每次增长的长度。单位的MB。3、语法格式说明
在SQL语法中,SQL关键字采用大写字母,而小写字母是用户书写SQL语句时需要替换的参数
Ⅰ、([])中的内容表示可以省略的选项或参数
Ⅱ、[1…n]表示同样的选项可以重复到1…n遍
Ⅲ、如果某项的内容太多则需要额外说明,则在语法结束后用<>括起来,如语法中的<Filespec>而该项的真正语法在“::=”后面加以定义说明
Ⅳ、{}通常会与符号|连用,表示{}中的选项或参数必须其一,不可省略。
Ⅴ、当[]与符号|连用时,表示[]中的选项任选其一,不能两者同时使用,但也可以不选例1:
创建一个名为sales2的数据库,数据文件的逻辑文件名为sales2_dat,磁盘文件名为sales2_dat.mdf,初始大小为5MB,最大值为30MB,增幅为2MB;事务日志文件的逻辑文件名为sales2_log,磁盘文件名为sales2_log.ldf,初始大小为2MB,最大值为20MB,增幅为2%;两个磁盘文件都存储在D盘SQL文件夹下。语句CREATEDATABASEsales2ON(NAME=sales2_dat,FILENAME=’d:\SQL\sales_dat2.mdf’,SIZE=5,MAXSIZE=30,FILEGROWTH=2)LOGON(NAME=sales2_log,FILENAME=’d:\SQL\sales2_log.ldf’,SIZE=2MB,MAXSIZE=20MB,FILEGROWTH=2%)GO例2:
创建一个名为Report的数据库,定义一个主文件、两个次要文件和两个日志文件。其中主数据文件的逻辑文件名为Rep1,磁盘文件名为rep1_dat.mdf。一个次要文件的逻辑文件名为Rep2,磁盘文件名为rep2_dat.ndf;另一个次要文件的逻辑文件名为Rep3,磁盘文件名为rep3_dat.ndf。一个事务日志文件的逻辑文件名为Rep1_log,磁盘文件名为rep1_log.ldf;另一个事务日志文件的逻辑文件名为Rep2_log,磁盘文件名为rep2_log.ldf。所有文件的初始容量都是5MB,最大容量限制都来是10MB,在最大容量限制内,当文件空间不够时每次的增长量都是1MB。以上文件都存储在D盘SQL文件夹下。语句CREATEDATABASEReportONPRIMARY(NAME=Rep1,FILENAME=’d:\SQL\rep1_dat.mdf’,SIZE=5,MAXSIZE=10,FILEGROWTH=1),(NAME=Rep2,FILENAME=’d:\SQL\rep2_dat.ndf’,SIZE=5,MAXSIZE=10,FILEGROWTH=1),(NAME=Rep3,FILENAME=’d:\SQL\rep3_dat.ndf’,SIZE=5,MAXSIZE=10,FILEGROWTH=1)LOGON(NAME=Rep1_log,FILENAME=’d:\SQL\rep1_log.ldf’,SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=1MB),(NAME=Rep2_log,FILENAME=’d:\SQL\rep2_log.ldf’,SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=1MB)GO例3:创建一个包含两个文件组的数据库。该数据库名为business,主文件组包含business_dat1和business_dat2两个数据文件。文件组business_group包含数据文件business_dat3。该数据库包含一个日志文件business_log。CREATEDATABASEbusinessONPRIMARY(NAME=business_dat1,FILENAME=‘d:\SQL\business_dat1.mdf’,SIZE=10MB,MAXSIZE=50,FILEGROWTH=10),(NAME=business_dat2,FILENAME=‘d:\SQL\business_dat2.ndf’,SIZE=10MB,MAXSIZE=500MB,FILEGROWTH=10),语句FILEGROUPbusiness_group(NAME=business_dat3,FILENAME=‘d:\SQL\business_dat3.ndf’,SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=10%)LOGON(NAME=business_log,FILENAME=‘d:\SQL\business_log.ldf’,SIZE=8MB,MAXSIZE=100MB,FILEGROWTH=10MB)2.4管理数据库1.管理数据文件和日志文件的增长2.收缩数据库或文件3.分离和附加数据库4.删除数据库2.4.1管理数据文件和日志文件的增长
使文件自动增长手动扩充数据库文件添加次要数据库文件语法:ALTERDATABASEdatabase{ADDFILE<filespec>[,...n][TOFILEGROUPfilegroup_name]
|ADDLOGFILE<filespec>[,...n]
|REMOVEFILE
logical_file_name
|
ADDFILEGROUP
filegroup_name
|REMOVEFILEGROUP
filegroup_name
|
MODIFYFILE<filespec>
|MODIFYNAME
=
new_dbname
|
MODIFYFILEGROUP
filegroup_name{filegroup_property|NAME=
new_filegroup_name}
|SET<optionspec>[,...n][WITH<termination>]
|COLLATE<collation_name>
}示例:增加Sample数据库日志文件的大小,并添加一个次要的数据文件。ALTERDATABASESample
MODIFYFILE(NAME='SampleLog',
SIZE=15MB)GOALTERDATABASESample
ADDFILE
(NAME=SampleData2,
FILENAME='c:\ProgramFiles\..\MSSQL\
Data\Sample2.ndf',
SIZE=15MB,
MAXSIZE=20MB
)GO2.4.2收缩数据库或文件
收缩整个数据库企业管理器DBCCSHRINKDATABASE语句DBCCSHRINKDATABASE(数据库名
[,目标百分比][,{NOTRUNCATE|TRUNCATEONLY}])示例:DBCCSHRINKDATABASE(sample,25)思考:如果sample数据库包含6MB的数据,那么该数据库新的大小是多少?收缩数据库中的一个数据文件企业管理器DBCCSHRINKFILE语句DBCCSHRINKFILE({文件名
|文件id}[,目标大小][,{EMPTYFILE|NOTRUNCATE|TRUNCATEONLY}])示例:将sample_dat数据文件的大小收缩为10MB。
DBCCSHRINKFILE(sample_dat,10)2.4.3分离和附加数据库SQLServer2000允许分离数据库的数据和事务日志文件,然后将其重新附加到另一台服务器,甚至同一台服务器上分离数据库分离数据库将从SQLServer删除数据库,但是保持组成该数据库的数据和事务日志文件中的数据库完好无损分离数据库语法:EXECsp_detach_db数据库名分离数据库要求没有用户正在使用数据库,数据库中没有未完成的事务,并且在内存中没有这个数据库的脏页一旦数据库被分离,其条目就从master数据库的sysdatabases表中被移除。从SQLServer的角度看,数据库似乎被删除了但是其物理文件仍然保存在磁盘上分离和附加数据库(续)附加数据库当附加在数据库上时,必须指定主数据文件的名称和物理位置附加数据库语法
EXECsp_attach_db[@数据库名=]‘数据库名’
[@文件名=]‘文件名’[……16]只需要指定当前的文件名,无论当前的名字和从数据库分离时的名字是否相同。亦可以指定不同于原来数据库名字的新的数据库名字。只有当文件位置和在主文件首存储的文件原始位置不同的时候,才需要指定文件名,最多只能指定16个文件。2.4.4删除数据库删除数据库的方法企业管理器DROPDATABASE语句
DROPDATABASE
数据库名
[,…n]
可以一次删除多个数据库删除数据库的限制不能删除:正在被还原的数据库任何用户因为读或写而打开的数据库正在发布它的任何一张表作为SQL
Server
复制组成部分的数据库系统数据库2.4.5重命名数据库和数据库文件ALTERDATABASEdatabaseMODIFYFILE(NAME=logical_file_name,NEWNAME=new_logical_name...)。
|MODIFYNAME=new_dbnamesp_renamedb[@objname=]'object_name',
[@newname=]'new_name'sp_rename[@objname=]'object_name',
[@newname=]'new_name'
[,[@objtype=]'object_type']
注意:如果要重命名的对象是表中的一列,那么object_name必须为table.column形式。如果要重命名的是索引,那么object_name必须为table.index形式。Objtype(对象类型)的可取值:
值
描述COLUMN要重命名的列。DATABASE要重命名用户定义的数据库时需用此选项。INDEX用户定义的索引。OBJECT可用来重命名约束、用户表、视图、存储过程、触发器和规则等对象。USERDATATYPE要重命名的用户定义数据类型。示例:修改文件名将Temp数据库中的数据文件Temp2_dat的文件名改为new_dat。alterdatabasetempmodifyfile(name='Temp2_dat',newname='new_dat')示例:修改数据库名将Temp数据库的名字改为NEWtemp。alterdatabaseTempmodifyname='NEWtemp‘或Sp_rename‘Temp’,’NEWtemp’,database或Sp_renamedb‘Temp’,’NEWtemp’
2.5设置数据库选项
数据库选项的设置将决定数据库的默认行为,用户数据库的这些设置是在数据库创建时从模型数据中继承过来的。一:在企业管理器中设置步骤①打开“数据库属性”对话框,可以在“选项”标签页进行数据库设置
1、访问区设置
2、故障还原设置
3、设置区
4、兼容性设置1、查看数据库选项:可使用存储过程sp_dboption来查看数据库选项。语法格式:EXECsp_dboption2、设置数据库选项:在确定了要修改的数据库选项之后,可使用存储过程sp_dboption设置数据库选项。语法格式:sp_dboption[[@dbname=]’database’][,[@optname=]’option_name’][,[@optvalue=]’value’]二、在查询分析器中设置说明:[@dbname=]‘数据库名称’该参数将确定需要修改选项的数据库的名称。[@optname=]‘选项名称’该参数将确定需要设置的选项的名称。[@optvalue=]‘选项值’该参数将确定选项的新设置。如果该参数省略,sp_dboption将返回当前值。(True、False、ON、OFF)示例1.将pubs数据库设置为只读。
USEmasterEXECsp_dboption'pubs','readonly','TRUE'2.关闭选项:将pubs数据库重新设置为可写。
USEmasterEXECsp_dboption'pubs','readonly','FALSE'第三讲表的创建和管理
在SQLSERVER中,每个数据库最多可以存储20亿张表,每张表可以有1024个字段,每行最多存储8060个字节。在规划表时给每个列分配数据类型是十分重要的一个步骤。§3.1SQLServer2000数据类型SQLSERVER2000为表中的字段提供了丰富的数据类型,SQLSERVER2000在讨论系统数据类型时提供了长度、精度和小数位数几个概念数据类型:定义每个列所能存放的数据值和存储格式
§3.1SQLServer2000数据类型一、系统提供的数据类型二、选择数据类型的指导原则三、用户定义数据类型精度:指数值数据中所存储的十进制数据的总位数。小数位数:指数值数据中小数点右边可以有的数字位数的最大值。长度:指存储数据所使用的字节数。§3.1.1系统提供的数据类型一、字符串类型:字母、数字和符号组成,常量使用单引号做定界符。名称存储长度(字节)存储数值范围备注Char[n]n(若输入数据的长度超过n规定的值,超出部分将被截断,否则,不足部分用空格填充。)最多8000个字符,个数据由n决定。分别表示字长、变长字符型和变长文本型数据,n的默认长度为1。Text常用于存储字符长度大于8000的变长字符。varchar[n]字节数据随输入数据的实际长度而变化,最大长度不得超过n规定的值。最多8000个字符,个数据由n决定。text字节数随输入数据的实际长度而变化。最多231-1个字符。(2147483647)二、数值型数据类型
1、整数数据类型:输入小数时,截取小数部分不四舍五入;输入非法数字时,显示NULL(表示一个未知数)。名称存储长度(字节)存储数据范围备注Bigint大整数8-263~263-1Int整数4-231~231-1Smallint短整数2-215~215-1Tinyint微短整数10~255表示无符号整数。2、精确数值类型:由整数部分和小数部分构成,其所有的数字都是有效位。名称存储长度(字节)字节数随精度改变存储数据范围备注Decimal[(p[,s])]或numeric[(p[,s])]精度字节长度-1038+1~1038-1表示固定精度和大小的十进制数值。精度P为整数和小数数字位数最大值,S为小数据数字位数的最大值。1~9510~19920~281329~38173、浮点型(近似数值型):表示近似的浮点数值,该数值与实际数据之间可能存在一个微小的差别,不能精确表示数值范围内的所有值,多数应用程序可以忽略这一差别。名称存储长度(字节)字节数随n及精度改变存储数据范围备注float[(n)]N值精度字节长度-1.79E+308
~1.79E+308N为以科学计数法表示的浮点数的尾数,该值决定了精度和存储字节数。1~247425~53158real4-3.40E+38
~3.40E+38三、货币型数据类型名称存储长度(字节)存储数据范围备注money8-263~263-1精度为万分之一货币单位,即小数点后4位。smallmoney4-231~231-1提示:货币数据类型在使用时不需要‘’,但货币数值之前必须带有适当的货币符号例如美元、$6000等。四、二进制类型:分别表示定长、变长字符型名称存储长度(字节)存储数据范围备注binary([n])N+4(若输入数据的长度超过n规定的值,超出部分将被截断,否则,不足部分用数字0填充。)n最大值为8000。对于二进制数据常,应在数据前面加标识符0x。n的默认长度为1。varbinary([n])字节数为输入的数据的实际长度+4。n最大值为8000。五、日期时间类型:用于存储日期和时间信息。名称存储长度(字节)存储数据范围备注datetime81753-1-1
~9999-12-31表示日期和时间的组合,其时间精度为1/300或3..33毫秒。smalldatetime41900-1-1
~2079-12-31表示日期和时间的组合,其时间精度为分钟。六、其他数据类型
Sql_variant数据类型是SQLSERVER2000中新增的一类数据类型,如果将一个字段定义为sql_variant数据类型,那么一个单独的字段中就可以存储不同数据类型的数据值。例如:定义为sql_variant
的列可存储除text、ntext、image、rowversion之外的其他类型。
rowversion数据类型:当改变行时,rowversion类型列会保留一个SQLSERVER自动更新的内部序号。在一个数据库中,rowversion列值是唯一的,并且每个表仅有一个rowversion类型列。§3.1.2选择数据类型的指导原则若列值的长度相差很大,那么使用变长数据类型例如某列存储的是人名,地址等谨慎使用tinyint数据类型虽然节省空间,但扩展性很小对于小数数据来说,一般使用decimal数据类型可以精确地控制精度如果行的存储量超过8000字节,使用text或者image若不大于8000字节,可使用char、varchar或者binary数据类型对于货币数据,使用money数据类型不要使用类型为float或者real的列作为主键因为它们不精确,所以不适合用于比较使用sp_addtype创建用户定义数据类型语法:Sp_addtype[@typename=]type,[@phystype=]system_data_type[,[@nulltype=]’null_type’]说明:[@typename=]typename:用户定义的数据类型的名称。[@phystype=]system_data_type:系统数据类型,没有
默认值。
注意:如果定义的基本数据类型中有空格或标点符号,则必须括起来。(varchar(11))[,[@nulltype=]’null_type’]:处理空值的方法。用引号引起来。‘NULL’,‘NOTNULL’。§3.1.3用户定义数据类型execsp_addtypeaddress,‘varchar(80)’,‘notnull’利用系统存储过程删除用户自定义数据类型sp_droptype[@typename=]type删除自定义的生日数据类型。
execsp_droptypebirthday自定义一个地址数据类型§3.2创建表和管理表
在数据库设计、创建完成之后,接下来的工作就是创建表。表是数据库中最主要的数据对象,用于存储和操作数据的一种逻辑结构,是一系列列的集合。
SQLServer2000提供了两种方法创建数据库表:第一种方法是利用企业管理器创建表;
另一种方法是利用T-SQL语句创建表。§3.2.1创建表1.利用企业管理器创建表
步骤:①打开企业管理器,在企业管理器中的树状目录窗口中展开需要创建新表的数据库。②单击“表”节点,此时该是数据库中的表对象显示在内容窗口中,然后选择下列操作之一打开“表设计窗口”
A:在该节点上单击右键,在弹出菜单中选择“新建表”命令。
B:在操作菜单上选择“操作”->新建表
C:单击工具栏上的“新建”按钮描述:指定字段的注释文本描述。
默认值:指定字段的默认值,插入记录时没有指定字段值的情况下,自动使用的值。
精度:指定字段的位数。对于decimal和numeric数据类型的字段可以设置精度属性。
小数据位数:显示该列值小数点右边能出现的最多数字个数。
③定义数据表字段表设计窗口由上下两个窗口组成,上面的窗口用来定义表字段的一般属性,下面的窗口用来定义各个字段的特殊属性。特殊属性说明:标识:指定一个字段是否为标识字段。只能bigint、int、smallint、tinyint、decimal、numeric可以设置该属性。否:不设置该字段为标识字段。是:该字段为标识列,在插入一个新的数据行时不必为字段指定数值,系统会自动生成一个字段值。是(不用于复制):和第二个选项功能相似,如果是以复制的方式向表中输入数据,系统将不自动生成字段值。标识种子:指定标识字段的初始值。标识递增量:指定标识字段的递增值。默认值为1。公式:指定用于计算字段的公式。排序规则:指定当字段值用于对查询结果进行排序时的排序规则,默认情况下使用数据库默认规则。
例子3.1:利用企业管理器创建部门情况表(BMQKB)表结构如下:列名数据类型长度允许空值说明编号char4否PK姓名char10否性别
Char2否默认值:男出生日期datetime8是专业varchar10是工资money8是个人说明
text是2.利用T-SQL语句创建表
其语法形式如下:CREATETABLE[owner.]table_name
(<column_namedata_type[DEFAULTconstant_expression][IDENTITY(seed,increment)][collate<collation_name>][notnull|null][,…n]|[column_nameascomputed_column_expression])[on{filegroup|default}]创建表的各参数的说明如下:
owner:用于指定新建表的所有者的用户名。table_name:用于指定新建的表的名称。column_name:用于指定新建表的列的名称.data_type:用于指定列的数据类型。DEFAULT:用于指定列的缺省值。computed_column_expression:用于指定计算列的列值的表达式。ON{filegroup|DEFAULT}:用于指定存储表的文件组名。例子3.2:用T-SQL语句在查询分析器创建(BMQKB)表结构如下:列名数据类型长度允许空值说明描述numberchar7否pk编号namechar10否姓名sex
Char2否默认值:男性别birthdaydatetime8是出生日期professional_titlechar10是职位salarymoney8是工资memotext是备注其SQL语句的程序清单如下:
CREATETABLEBMQKB(numberchar(7)notnullprimarykey,namechar(10)NOTNULL,sexchar(2)default'男’NOTNULL,birthdaydatetimenull,professional_titlevarchar(10)null,salarymoneynull,memotextnull)例3.3:为数据库salers在文件组user1上创建订单表orders,包含三个字段,其中:orderid为标识列,int型,起始值为10248,增值为1;customerid和salerid字段不允许为空,3字节的单字符型;orderdate字段的默认值为当前日期。语句:UsesalersCreatetableorders(orderidintidentity(10248,1),customeridchar(3)notnull,salerid
char(3)notnull,
Orderdatedatetimedefaultcurrent_timestamp)Onuser1请读下面的语句:USEtempdbCREATETABLEpersons(
标识号intIDENTiTY(1,2),
姓名varchar(8))USEtempdbCREATETABLEcalculate(
最小值int,
最大值int,
平均值AS(最大值+最小值)/2)创建标识列函数创建计算字段§3.2.2修改表
一:使用企业管理器1、对于已经存在的表可以进行如下修改操作。修改已有列的属性增加列删除列关于修改已有列的属性的说明
建议表中有记录后,不要轻易修改表的结构,特别是修改列的数据类型。
下列类型的列不能被修改:具有text、ntext、image、timestamp数据类型的列;计算列或用在计算列中的列;全局标识列;用于索引的列;用于主键约束、外键约束、核查约束、唯一约束的列。二、利用Transact-SQL语言中的Altertable命令修改字段定义ALTERTABLEtable_nameALTERCOLUMNcolumn_namenew_data_type[(precision[,scale])][NULL|NOTNULL]每次只能修改一个列的属性说明:table:用于指定要修改的表的名称。ALTERCOLUMN:用于指定要变更或者修改数据类型的列。column_name:用于指定要更改、添加或删除的列的名称。new_data_type:用于指定新的数据类型的名称。precision:用于指定新的数据类型的精度。scale:用于指定新的数据类型的小数位数。NULL|NOTNULL:用于指定该列是否可以接受空值。把允许这空值的列改为不允许为空值时,前提是表为空或表内每行记录中该列的值都不为空值。例3.4定义project表,包含:“项目编号”和“项目名称”。修改表,将“项目名称”的数据类型从char(20)更改为varchar(25),再将原来不可以为空更改为可以为空。语句:USEcompanyAltertableprojectAltercolumn项目名称varchar(25)null三、利用Transact-SQL语言中的Altertable命令向数据表增加字段(Add)ALTERTABLEtable_nameADD{[<column_definition>][,…n]|[column_nameAScomputed_column_expression]}
说明:Table_name:需要添加字段的数据表名称。column_definition:字段的定义。column_name:添加字段的名称。computed_column_expression:
计算字段表达式例3.5向Project表添加三个字段,分别:“项目负责人”(varchar(15)),“项目难度级别”(int,默认值是1),“预计工期”。其中“预计工期”的取值为“项目难度级别”的值乘以20AltertableprojectAdd项目负责人varchar(15),
项目难度级别intDefault1,
预计工期AS项目难度级别*20例3.6在表customers中添加公司地址(address),char(40);邮政编码(zipcode),用户自定义类型zip,char(6),notnull;电话号码字段(telephone),用户自定义类型telephone_code,varchar(15),null。Execsp_addtypetelephone_code,’varchar(15)’,nullExecsp_addtypezip,’char(6)’,notnullGoAltertablecustomersAddaddresschar(40),zipcodezip,telephonetelephone_code四、利用Transact-SQL语言中的Altertable命令删除一个或多个字段(Drop)ALTERTABLEtable_nameDROPCOLUMNcolumn_name[,….n]table_name:需要删除字段的数据表名column_name:需要删除的字段名称例3.6:删除表Project中的“项目负责人”和“项目难度级别”。语句:AltertableProjectDropcolumn项目负责人,项目难度级别§3.2.3删除表1、删除表时,表的结构定义、表中所有的数据以及表的索引、触发器、约束等均被永久地从数据库中删除。2、如果要删除有过外键约束和唯一约束和主键约束相关的表,必须首先删除具有外键约束的表。(一)利用企业管理器删除表在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“删除”选项,则会出现除去对象对话框。单击“全部删除”按钮,即可删除表。(二)利用DROPTABLE语句删除表DROPTABLE语句可以删除一个表和表中的数据及其与表有关的所有索引、触发器、约束、许可对象。DROPTABLE语句的语法形式如下:DROPTABLEtable_name[,…n]例如:删除表ProjectUSECompanyDROPTABLEProject§3.2.4修改表名(1)在企业管理器中修改(2)使用存储过程sp_rename修改Execsp_renameold_name,new_name[,object]例如:Execsp_renamebusiness,company§3.2.5修改字段名(1)在企业管理器中修改(2)使用存储过程sp_rename修改Execsp_rename‘table.column’,’new_column’,’column’例如:将表customers中的列contacttitle
重命名为
title。
EXECsp_rename'customers.[contacttitle]','title','COLUMN'§3.2.6表的数据操作一、向表中插入数据1、使用企业管理向表中插入数据:在表上右击/打开表/返回所有行/保存钮。2、使用T-SQL语句插入数据语法:INSERT[INTO]table_name[(column_list)]VALUES({DEFAULT|NULL|expression}[,...n])语法说明:[INTO]:用在INSERT和目标表之间;table_name:需要插入数据的目标表;column_list:要在其中插入数据的一列或多列的名称列表。列表顺序与VALUES列表顺序相吻合。省略该项,则VALUES子句给出每一列的值;VALUES:为column_list列表中的各列指定值。其值有三种:DEFAULT(默认值)、NULL(空值)、expression(常量、变量和表达式)例3.7向员工数据表(员工姓名,性别,所属部门、工资)插入一条记录(张三,男,项目部,3000)语句:UsecompanyInsertinto员工数据表
(员工姓名,性别,所属部门,工资)Values(‘张三’,’男’,’项目部’,3000)二、修改表中数据1、使用企业管理器修改表中数据方法一:表上右击/打开表/返回所有行方法二:表上右击/打开表/查询/运行钮!2、使用T-SQL语句UPDATE修改表中数据语法:UPDATEtable_nameSETcolumn_name={expression|DEFAULT|NULL}[WHERE<search_condition>]语句说明:table_name:需要插入数据的目标表;SET:指定要修改的列或变量名称的列表。共有三种情况:column_name{expression|DEFAULT|NULL}:由表达式的值,默认值或空值支修改指定的列值;WHERE<search_condition>:指明只对满足该条件的进行修改,若省略该子句,则对表中的所有进行修改。3.8将员工数据表中所有的项目部的员工的工资统一调整为3000语句:UsecompanyUpdate员工数据表Set工资=3000Where所属部门=‘项目部’3.9将员工数据表中所有的项目部的员工的工资在原来的基础上增加500。语句:UsecompanyUpdate员工数据表Set工资=工资+500Where所属部门=‘项目部’3.10在员工数据表中将“张三”由项目部调到财务部,工资增加为3500。语句:usecompanyUpdate员工数据表set所属部门='财务部',工资=3500where员工姓名='张三'三、删除表中数据1、使用企业管理器删除表中数据:表上右击/打开表/返回所有行/选行/右击/删除。2、使用T-SQL的DELETE语句删除表中数据
DELETE[FROM]table_name
[WHERE<search_condition>]说明与UPDATE相同。3.11删除员工数据表中姓名是“王秋萍”的员工的记录语句:UsecompanyDeletefrom员工数据表Where员工姓名=‘王秋萍’作业:1、使用T-SQL语句创建下表:表名:student字段:sno、sname、ssex,sbirthday、saddress、department、scredit、remark将sno设置成标识字段,种子为0403110,增量为1;department的默认值为’计算机信息工程’。为各个字段选择合适的数据类型注:
sno-学号,sname-姓名,ssex-性别
sbirthday-出生年月,saddress-地址,scredit-学分,department-系别,remark-备注2、修改students中已有列的属性:
将“sname”列的数据类型改为varchar,长度为20;将“scredit”列的数据类型改为int。3、向表Student中增加一列“grade”,数据类型为numeric(4,2),允许空。4、删除表中的“remark”列5、在students表中插入记录sno、sname、ssex,sbirthday、saddress、sdepartment、scredit
分别为:0403115、李华、男、1986-4-16
浙江宁波、计算机信息工程、50的记录。6、将表students中的sno为0403116记录的
sname改为“张振”。7、将表students中的sname为“陈乐”记录的
scredit改为“55”。8、将表students中所有学生的scredit列增加
10分。9、删除表students中sname为“张振”的学生的记录第4讲实现数据完整性数据完整性的类型定义约束约束的类型使用默认值和规则数据完整性的类型4.1数据完整性的类型数据完整性指的是数据库中存储的数据的一致性和准确性数据完整性的类型:域完整性、实体完整性、引用完整性域完整性域(或列)完整性是指对列指定一组有效的值并决定是否可为空值实体完整性实体(或表)完整性要求表中的所有行都有一个惟一的标识符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学毕业英语试卷苏教版
- 2025-2030婴幼儿哺育用品产业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030女性益生菌补品行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030壁灯项目商业计划书
- 2025-2030固定式电动压缩机行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030商教投影机行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030唐装行业发展分析及投资前景与战略规划研究报告
- 2025-2030员工储物柜行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030合金行业竞争格局分析及投资前景与战略规划研究报告
- 2025-2030可降解塑料袋项目商业计划书
- 天津市河东区2024-2025学年九年级下学期结课考试化学试题(含答案)
- 动物疾病的临床表现试题及答案
- 广东省广州市2025届高三下学期综合测试(一)英语试卷
- 山东省济南育英中学 2024-2025学年下学期七年级3月月考英语试题(原卷版+解析版)
- T-SDFA 049-2024 混合型饲料添加剂中安普霉素的测定 液相色谱-串联质谱法
- 2025技术服务合同模板
- 2025年保安证学习资源题及答案
- 2025年甘肃甘南州国控资产投资管理集团有限公司面向社会招聘工作人员12人笔试参考题库附带答案详解
- 2025年高考数学第一次模拟考试(江苏卷1)(全解全析)
- 2025年中级维修电工(四级)技能认定理论考试指导题库(含答案)
- 2025广东深圳证券信息有限公司人员招聘笔试参考题库附带答案详解
评论
0/150
提交评论