SQL Server 实用教程课件_第1页
SQL Server 实用教程课件_第2页
SQL Server 实用教程课件_第3页
SQL Server 实用教程课件_第4页
SQL Server 实用教程课件_第5页
已阅读5页,还剩663页未读 继续免费阅读

下载本文档

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

文档简介

数据库基本概念1.1.1数据模型1.1.1数据模型

(1)关系模型以二维表格(关系表)的形式组织数据库中的数据。学号姓名专业名性别出生时间总学分备注001101王林计算机男1980-02-1050

001102程明计算机男1981-02-0150

001103王燕计算机女1979-10-0650

001104韦严平计算机男1980-08-2650

001106李方方计算机男1980-11-2050

001107李明计算机男1980-05-0154提前修完《数据结构》,并获学分001108林一帆计算机男1979-08-0552已提前修完一门课001109张强民计算机男1978-08-1150

001110张蔚计算机女1981-07-2250三好生001111赵琳计算机女1980-03-1850

001113严红计算机女1979-08-1148有一门功课不及格,待补考1.1.1数据模型学生信息表001201王敏通信工程男1978-06-1042

001202王林通信工程男1979-01-2940有一门课不及格,待补考001203王玉民通信工程男1980-03-2642

001204马琳琳通信工程女1978-02-1042

001206李计通信工程男1979-09-2042

001210李红庆通信工程男1979-05-0144已提前修完一门课,并获得学分001216孙祥欣通信工程男1978-03-0942

001218孙研通信工程男1980-10-0942

001220吴薇华通信工程女1980-03-1842

001221刘燕敏通信工程女1979-11-1242

001241罗林琳通信工程女1980-01-3050转专业学习1.1.1数据模型课程信息表

课程号课程名类别开课学期学时学分0101计算机导论216430102C++程序设计1210040103数据结构1312050104计算机组成原理139640105操作系统1412050106数据库原理1411250107计算机网络159640108计算机新技术313220201国际贸易概论227230202经营管理138040203系统工程149651.1.1数据模型成绩信息表

学号课程号成绩学号课程号成绩学号课程号成绩0011011018000110710178001111206760011011027800110710280001113101630011012067600110720668001113102790011031016200110810185001113206600011031027000110810264001201101800011032068100110820687001202101650011041019000110910166001203101870011041028400110910283001204101910011042066500110920670001210101760011021027800111010195001216101810011022067800111010290001218101700011061016500111020689001220101820011061027100111110191001221101760011062068000111110270001241101901.1.1数据模型(2)层次模型以树型层次结构组织数据。

1.1.1数据模型(3)网状模型每一个数据用一个节点表示,每个节点与其它节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络。1.1.2E-R模型学生成绩管理系统中的实体集及每个实体集涉及的属性。1.1.2E-R模型(1)一对一的联系(1:1)

1.1.2E-R模型(2)一对多的联系(1:n)

1.1.2E-R模型(3)多对多的联系(m:n)

1.1.3逻辑结构设计1.(1:1)联系的E-R图到关系模式的转换

(1)联系单独对应一关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。

BJ(班级编号,院系,专业名,人数) BZ(学号,姓名)SY(学号,班级编号)(2)联系不单独对应一关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。BJ(班级编号,院系,专业名,人数)BZ(学号,姓名,班级编号)或者BJ(班级编号,院系,专业名,人数,学号)BZ(学号,姓名)1.1.3逻辑结构设计2.(1:n)联系的E-R图到关系模式的转换(1)联系单独对应一关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。BJ(班级编号,院系,专业名,人数)XS(学号,姓名,专业名,性别,出生时间,总学分,备注)SY(学号,班级编号)(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。BJ(班级编号,院系,专业名,人数)XS(学号,姓名,专业名,性别,出生时间,总学分,备注,班级编号)1.1.3逻辑结构设计3.(m:n)联系的E-R图到关系模式的转换

对于(m:n)的联系,单独对应一关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。例如:图描述的“学生(XS)”与“课程(KC)”实体集之间的联系可设计如下关系模式:

XS(学号,姓名,专业名,性别,出生时间,总学分,备注)KC(课程号,课程名称,类别,开课学期,学时,学分)

XS_KC(学号,课程号,成绩)

关系模式XS_KC的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。1.2.1SQLServer2000简介SQLServer2000是一个基于客户机/服务器(C/S)模式的关系数据库管理系统。1.2.2SQLServer2000软硬件环境

安装SQLServer2000除了要有合适的Windows操作系统外,还应确保计算机能满足其硬件要求。硬件名称最低要求计算机Intel或其兼容机,Pentium166MHz,或更高

内存(RAM)企业版:64MB标准版:32MB

硬盘空间要求SQLServer2000:180MB(完全安装)、170MB(典型安装)、65MB(最小安装)、90MB(只安装客户端工具)

安装SQLServer2000的Windows操作系统对硬件最低要求见Windows操作系统的有关说明。1.2.3SQLServer2000的安装

SQLServer2000的安装步骤如下:第1步将SQLServer2000安装盘放入光驱,运行光驱中的autorun.exe,出现安装界面,如图所示。第2步选择“安装数据库服务器”选项,进入安装向导的欢迎窗口,按照安装向导提示的单击“下一步”,选择本地计算机/远程计算机。1.2.3SQLServer2000的安装第3步进入SQLServer2000的安装选项窗口,如图1.10所示。选“创建新的SQLServer实例,或安装客户端工具(C)”,单击“下一步”。第4步系统显示对话框,用户输入姓名和公司名,单击“下一步”。第5步选择“创建新的SQLServer的服务器实例或安装客户端工具”,此时,安装向导将进一步给用户提供如图1.11所示的选择:

仅客户端:若已有数据库服务器,只需安装客户端工具时选择此项。

服务器和客户端:用于安装数据库服务器和客户机工具。

仅连接:用于应用程序开发时使用,只是安装连接工具。1.2.3SQLServer2000的安装

第6步选择安装服务器和客户端,并输入服务器实例名,则进入安装类型选择窗口。

典型安装。系统默认的安装选项,也是最常用的安装选项,此方式下将安装SQLServer2000的全部管理工具及SQLServer2000的在线手册。最小安装。仅安装使用SQLServer2000数据库管理系统必须的选项,主要为配置较低的用户使用。自定义安装。允许在安装SQLServer2000的过程中,用户根据自己的需要,选择安装内容,这一安装方式适用于有经验的用户。1.2.3SQLServer2000的安装第7步选择启动“服务账户”,确定SQLServer服务和SQLServer代理服务是同一账户用户启动,还是由不同账户用户启动。1.2.3SQLServer2000的安装第8步进入身份验证模式窗口,如图所示。Windows验证模式:使用WindowsNT、Windows2000、Windows2003上的登录账户进行连接,SQLServer利用Windows操作系统的用户安全特性控制登录访问,实现了SQLServer与WindowsNT、Windows2000、Windows2003的登录安全集成。混合模式(Windows身份验证和SQLServer身份验证):使用Windows身份验证或SQLServer身份验证与SQLServer连接。1.2.3SQLServer2000的安装第9步选择授权模式,如图所示。

1.3.1SQLServer2000服务器组件

SQLServer2000服务器组件是SQLServer2000系统的主要服务单元。主要包括:

SQLServer数据库引擎(MSSQLServer服务)

SQLServer代理程序(SQLServerAgent服务)

Microsoft搜索服务分布式事务处理协调器(MSDTC服务)。SQLServer2000服务器组件可由SQLServer服务管理器启动、停止和暂停。

1.SQLServer数据库引擎

(1)默认实例:SQLServer2000默认实例仅由运行该实例的计算机的名称唯一标识,它没有单独的实例名,默认实例的服务名称为MSSQLServer。(2)命名实例:除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。1.3.1SQLServer2000服务器组件2.SQLServer代理程序实现运行调度的SQLServer管理任务的代理程序。在计算机上运行的每个SQLServer实例都有一个SQLServer代理服务。3.Microsoft搜索服务仅用于WindowsNT、Windows2000和Windows2003,实现全文本检索引擎。不论计算机上有多少个SQLServer实例,都只有一个搜索服务。4.分布式事务处理协调器仅用于WindowsNT、Windows2000和Windows2003,管理分布式事务。不论计算机上有多少个SQLServer实例,都只有一个MSDTC服务。1.3.2SQLServer2000服务启动和停止

1.启动和停止SQLServer服务器实例启动和停止SQLServer服务器实例有下列方法:(1)在操作系统启动时自动启动每个服务。开始

所有程序

管理工具

服务,系统打开Windows2003服务窗口如图。选择名称为“MSSQLSERVER”的服务,单击“操作”菜单

选“启动”菜单项。1.3.2SQLServer2000服务启动和停止(2)用SQLServer服务管理器启动或停止服务。开始

所有程序

MicrosoftSQLServer

服务管理器,则进入服务管理器界面,如图

1.3.2SQLServer2000服务启动和停止(3)在WindowsNT或Windows2000中,使用netstart和netstop命令启动或停止SQLServer服务器服务,如图所示。(4)用SQLServer企业管理器启动或停止服务。第1步选择开始

所有程序

MicrosoftSQLServer

企业管理器,进入企业管理器界面,右边为系统安装时建立的默认SQLServer组的图标。第2步双击SQLServer组图标,右边显示的是系统安装时建立的默认服务器实例的图标,图中的服务器实例处于停止状态。1.3.2SQLServer2000服务启动和停止启动企业管理器后的界面未启动服务器服务时的企业管理器第3步双击该图标,系统将启动SQLServer服务器的服务,并建立企业管理器与该实例的连接,如图所示。1.3.3设置Windows服务账户

Windows两种类型的服务账户:本地系统账户:本地系统账户不需要设置密码,没有网络访问权限,使用本地系统账户限制了SQLServer与其它服务器的通信。(2)域用户账户:只有使用域用户账户时,一些服务器到服务器的活动才能进行。默认情况下,显示当前登录到计算机的域用户的账户信息。所有域用户账户必须满足如下条件:账户必须是Administrators本地组的成员。账户密码必须是永久有效(即设置PasswordNeverExpires属性)。该账户有在SQLServer计算机上登录的全部服务权限,并可在任意时间登录。

在WindowsNT、2000、2003环境下安装SQLServer2000,首先要创建Windows服务账户。SQLServer2000中的SQLServer、SQLServerAgent和MS-DTC都是作为服务启动和运行的。1.4.1SQL企业管理器

SQLServer2000企业管理器(SQLEnterpriseManager)是Microsoft管理控制台(MMC)的管理单元组件。MMC支持从单个控制台管理多种类型的服务器,企业管理器是按照“数据库服务器组”

“数据库服务器”

“数据库”

“数据库对象(表、视图等)”这样一个层次结构组织对象并进行管理的。1.4.1SQL企业管理器企业管理器的主要功能如下:注册服务器配置本地服务器配置远程服务器配置多重服务器设置登录安全性对数据库、数据库对象进行管理和操作创建警告建立操作员为独立的环境创建和安排作业为多重服务器环境创建和安排作业创建和管理复制方案为企业管理器设置轮询间隔1.4.2SQL查询分析器1.从SQLServer企业管理器调用SQL查询分析器选择菜单:“工具”

“SQL查询分析器”。

1.4.2SQL查询分析器2.由“开始”任务栏进入查询分析器从“开始”任务栏,选择“程序”

“MicrosoftSQLServer”“查询分析器”。若要连接网上其它的SQLServer服务器,选择菜单项:文件

连接,出现如图所示的对话框。1.5注册服务器注册服务器后,将该服务器加入指定的服务器组。利用企业管理器注册服务器的步骤:第1步启动企业管理器

选择SQLServer服务器组图标

右击,出现图所示的快捷菜单;第2步选择“新建SQLServer服务器注册”快捷菜单项,进入图服务器注册向导;第3步选择“下一步”,进入添加可用服务器的的界面;第4步选择“下一步”,进入SQLServer服务器注册向导的身份验证界面;第5步选择“下一步”,进入SQLServer服务器注册向导选择连接选项的界面;1.5注册服务器第6步选择“下一步”,进入图所示SQLServer服务器注册向导选择服务器组的界面;第7步选择“下一步”,进入注册完成界面,然后与注册的服务器连接,以检测服务器注册是否成功。1.5注册服务器

SQLServer服务器注册向导的身份验证界面

SQLServer服务器注册向导选择连接选项的界面1.5注册服务器SQLServer服务器注册向导选择服务器组的界面

利用账户sa成功注册到SQLServer服务器HU后的界面

1.6SQLServer2000应用过程SQLServer2000作为后台数据库,在前台应用程序开发环境下设计应用程序,可按以下步骤进行:第1步根据学生成绩管理的特点,确定数据库包含的表及每个表的结构。第2步启动企业管理器,并完成以下工作:(1)建立学生成绩数据库(XSCJ);建立XSCJ数据库学生、课程和成绩信息表;建立数据库、表及输入数据的详细步骤请参考第2~3章。第3步利用前台应用程序开发环境设计界面和相应的程序。(1)设计表单,根据需要加入有关控件并设置相应的属性参数;在表单中加入数据控件,并设置参数,建立应用程序与数据库间的联接;根据应用要求,设计应用程序。第4步在开发环境下调试运行程序,使运行结果满足成绩管理的应用要求。第5步对调试通过的程序进行编译联接,形成.EXE文件,并在Windows环境下运行该EXE文件,检查是否符合要求。2.1.1数据库1.逻辑数据库

SQLServer2000数据库是存储数据的容器,是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。

数据库对象说明表由行和列构成的集合,用来存储数据数据类型定义列或变量的数据类型,SQLServer提供了系统数据类型,并允许用户自定义数据类型视图由表或其他视图导出的虚拟表索引为数据快速检索提供支持且可以保证数据唯一性的辅助数据结构约束用于为表中的列定义完整性的规则默认值为列提供的缺省值存储过程存放于服务器的预先编译好的一组T-SQL语句触发器特殊的存储过程,当用户表中数据改变时,该存储过程被自动执行2.1.1数据库(1)完全限定名完全限定名是对象的全名,包括四个部分:服务器名、数据库名、所有者名和对象名,其格式为:server.database.owner.object在SQLServer2000上创建的每个对象都必须有一个唯一的完全限定名。(2)部分限定名在使用T-SQL编程时,使用全名往往很繁琐且没有必要,所以常省略全名中的某些部分,对象全名的四个部分中的前三个部分均可以被省略,当省略中间的部分时,圆点符“.”不可省略。

在部分限定名中,未指出的部分使用以下默认值:服务器:默认为本地服务器。数据库:默认为当前数据库。所有者:默认为在数据库中与当前连接会话的登录标识相关联的数据库用户名,或者数据库所有者(dbo)。2.1.1数据库2.物理数据库

下面讨论物理数据库的文件和文件组。文件SQLServer2000使用一组操作系统文件来存储数据库的各种逻辑成分,包括三类文件:(1)主数据文件主数据文件简称主文件,正如其名字所示,该文件是数据库的关键文件,包含了数据库的启动信息,并且存储数据。每个数据库必须有且仅能有一个主文件,其默认扩展名为.MDF。(2)辅助数据文件辅助数据文件简称辅(助)文件,用于存储未包括在主文件内的其他数据。辅助文件的默认扩展名为.NDF。(3)日志文件日志文件用于保存恢复数据库所需的事务日志信息。每个数据库至少有一个日志文件,也可以有多个。日志文件的扩展名为.LDF。2.1.1数据库

文件组

有两类文件组:(1)主文件组主文件组主数据文件和任何没有明确指派给其它文件组的其它文件。(2)用户定义文件组T-SQL语句中用于创建和修改数据库的语句分别是CREATEDATABASE语句和ALTERDATABASE。

在安装SQLServer2000时,将创建四个系统数据库:master、model、msdb和tempdb。(1)master包含了SQLServer诸如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和SQLServer的运行。(2)model数据库为新创建的数据库提供模板。(3)msdb为SQLServerAgent调度信息和作业记录提供存储空间。(4)tempdb为临时表和临时存储过程提供存储空间,所有与系统连接的用户的临时表和临时存储过程都存储于该数据库中。2.1.2表表是在日常工作和生活中经常使用的一种表示数据及其关系的形式,表2.2就是一个学生情况表。学

号姓

名专业名性

别出生时间总学分备注001101王林计算机男1980-02-1050

001102程明计算机男1981-02-0150

001103王燕计算机女1979-10-0650

001104韦严平计算机男1980-08-2650

001106李方方计算机男1980-11-2050

001107李明计算机男1980-05-0154提前修完《数据结构》,并获学分001108林一帆计算机男1979-08-0552已提前修完一门课001109张强民计算机男1978-08-1150

2.1.2表

表结构每个数据库包含了若干个表。每个表具有一定的结构,即组成表的各列的名称及数据类型,也就是日常表格的“栏目信息”。记录每个表包含了若干行数据,它们是表的“值”,表中的一行称为一个记录(Record),因此,表是记录的有限集合。字段每个记录由若干个数据项构成,将构成记录的每个数据项称为字段(Field)。例如学生情况表中,表结构为(学号,姓名,专业名,性别,出生时间,总学分,备注),包含7个字段,由8个记录组成。关键字注意到,在学生情况表中,若不加以限制,每个记录的姓名、专业、性别、出生时间、总学分和备注这6个字段的值都有可能相同,但是学号字段的值对表中所有记录来说一定不同,即通过“学号”字段可以将表中的不同记录区分开来。2.2.1数据库的创建、修改和删除

1.创建数据库(1)通过企业管理器创建数据库对于新创建的数据库,系统对数据文件的默认值为:初始大小1MB,最大大小不限制,而实际上仅受硬盘空间的限制,允许数据库自动增长,增长方式为按10%比例增长;对日志文件的默认值为:初始大小1MB,最大大小不限制,而实际上也仅受硬盘空间的限制,允许日志文件自动增长,增长方式为按10%比例增长。【例2.1】创建数据库XSCJ,初始大小为5MB,最大大小50MB,数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB(默认为不限制),按1MB增长(默认是按10%比例增长);所有者是Administrator。以Administrator身份登录计算机,并启动SQLServer服务。第1步开始

程序

MicrosoftSQLServer

企业管理器,SQLServer“企业管理器”启动。2.2.1数据库的创建、修改和删除第2步在“SQLServerEnterpriseManager”窗口中展开MicrosoftSQLServers和SQLServer组,选择SQLServer服务器。在选择的SQLServer服务器上点击鼠标右键,出现如图2.1所示的快捷菜单,选择“新建”

“数据库…”。2.2.1数据库的创建、修改和删除第3步第2步操作结束后,出现如图2.2所示的“数据库属性”对话框,该对话框共有三个选项卡:常规、数据文件和日志文件。在“常规”选项卡“名称”文本框中输入创建的数据库名(本例中数据库名为XSCJ)。2.2.1数据库的创建、修改和删除

系统的主数据文件默认存储位置和文件如下:

SQLServer2000根目录\data\数据库名_Data.MDF

系统的主日志文件的默认存储位置和文件如下:

SQLServer2000根目录\data\数据库名_Log.LDF

本例中SQLServer2000安装目录为e:\sql,所以创建的XSCJ数据库的数据文件和日志文件的默认路径及文件分别为:

e:\sql\data\XSCJ_Data.MDFe:\sql\data\XSCJ_Log.LDF

选择“数据文件”和“事务日志”两个标签栏,显示系统的默认设置,用户可以更改这两个文件的存放位置和文件名。2.2.1数据库的创建、修改和删除第4步选择“数据文件”标签栏,在文件名为“XSCJ_DATA”这一行的“初始大小”列将系统缺省大小1改为5,设置是否允许数据库增长、增长方式以及最大文件大小。见图2.3中的标注。2.2.1数据库的创建、修改和删除第5步选择“事务日志”标签栏,与第4步类似,设置日志文件的初始大小、是否增长、增长方式及最大大小,其界面如图2.4所示。2.2.1数据库的创建、修改和删除第6步单击“确定”按钮,数据库就创建好了。创建好的数据库XSCJ的界面如图2.5所示。2.2.1数据库的创建、修改和删除在第3步中,选择“数据文件”和“事务日志”标签栏,则在其中可分别改变这两个文件的存储位置,操作过程为:在“数据库文件”列表中,单击相应行的“位置”一栏的“…”按钮,在所弹出的“查找数据库文件”或“查找事务日志文件”对话框中即可选择或输入文件路径和文件名,如图2.6和图2.7所示。2.2.1数据库的创建、修改和删除(2)使用向导创建数据库(CreateDatabaseWizard)这里仍以创建数据库XSCJ(其属性与(1)相同)为例说明使用向导(CreateDatabaseWizard)创建数据库的操作过程。2.2.1数据库的创建、修改和删除第1步启动SQLServer的“企业管理器”(EnterpriseManager)。在“SQLServerEnterpriseManager”窗口中展开MicrosoftSQLServers和SQLServer组,选择SQLServer服务器。第2步在“工具”菜单中选择“向导…”项,如图2.8所示。2.2.1数据库的创建、修改和删除第3步选择“向导…”后,出现如图2.9所示的“选择向导”对话框,展开“数据库”,如图2.10所示,选择“创建数据库向导”,单击“确定”。2.2.1数据库的创建、修改和删除第4步第3步操作完成后,出现如图2.11所示的“创建数据库向导”界面,单击“下一步”。2.2.1数据库的创建、修改和删除第5步输入数据库名,输入或选择数据文件和日志文件的存放位置,具体操作见图2.12中的标注,单击“下一步”。2.2.1数据库的创建、修改和删除第6步指定各数据文件的名称及初始大小,操作方法见图2.13中的标注,单击“下一步”。2.2.1数据库的创建、修改和删除第7步定义数据库文件的增长,操作方法见图2.14中的标注,单击“下一步”。2.2.1数据库的创建、修改和删除第8步指定日志文件名和初始大小,操作方法标示于图2.15中,单击“下一步”。2.2.1数据库的创建、修改和删除第9步定义事务日志文件的增长,操作方法标示于图2.16中,单击“下一步”。2.2.1数据库的创建、修改和删除第10步完成。在图2.17(a)中单击“完成”按钮,将出现如图2.17(b)所示的提示信息,单击“确定”。2.2.1数据库的创建、修改和删除2.修改数据库对已存在的数据库可以进行的修改包括:增加或删除数据文件改变数据文件的大小和增长方式改变日志文件的大小和增长方式增加或删除日志文件增加或删除文件组在进行任何修改操作以前,都要在“企业管理器”中选择需要进行修改的数据库,在该数据库名上点击鼠标右键,出现快捷菜单,选择“属性”,如图2.18所示。2.2.1数据库的创建、修改和删除(1)改变数据文件的大小和增长方式【例2.2】将XSCJ数据库的主数据文件XSCJ_Data.mdf文件的最大大小由50MB修改为不限制。2.2.1数据库的创建、修改和删除(2)增加数据文件【例2.3】在XSCJ数据库中增加数据文件XSCJBAK,其属性均取系统默认值。操作方法:在“数据文件”选项卡中点击紧随已有文件名后的空白行,在“文件名”一栏中输入数据文件名,并可设置文件的初始大小和增长属性,单击“确定”。如图2.20所示。2.2.1数据库的创建、修改和删除所增加的文件是辅助数据文件,单击“…”按钮,在弹出的对话框中可见新增文件扩展名为.NDF,如图2.21所示。2.2.1数据库的创建、修改和删除(3)删除数据文件【例2.4】将XSCJ数据库中刚增加的辅助文件XSCJBAK删除。操作方法如图2.22所示。2.2.1数据库的创建、修改和删除(4)增加或删除文件组【例2.5】设要在数据库XSCJ中增加一个名为FGroup的文件组。操作方法为:选择“文件组”标签栏,在PRIMARY行的下面一行输入“FGroup”文件组,单击“确定”按钮,如图2.23所示。2.2.1数据库的创建、修改和删除操作方法为:选择“数据文件”标签栏,按增加数据文件的操作方法输入数据文件名,然后选择文件组“Fgroup”,如图2.24所示。2.2.1数据库的创建、修改和删除【例2.6】将刚才新增的FGroup文件组删除。首先要删除其中的数据文件XSCJ2,然后,选择“文件组”标签栏,选择FGroup文件组,单击“删除”按钮,如图2.25所示。2.2.1数据库的创建、修改和删除【例2.7】删除XSCJ数据库。第1步在“企业管理器”中选择名为XSCJ的数据库,在其上单击鼠标右键,在弹出的快捷菜单上选择“删除”,如图2.26所示。2.2.1数据库的创建、修改和删除第2步在弹出如图2.27所示的对话框中单击“确定”,即删除了数据库XSCJ。注意:删除数据库后,该数据库的所有对象均被删除,将不能再对该数据库作任何操作,因此应十分慎重。2.2.2表的创建、修改和删除1.SQLServer支持的数据类型

精度:指数值数据中所存储的十进制数据的总位数。小数位数:指数值数据中小数点右边可以有的数字位数的最大值。例如数值数据3890.587的精度是7,小数位数是3。长度:指存储数据所使用的字节数。数据类型符

识整数型bigint,int,smallint,tinyint精确数值型decimal,numeric浮点型float,real货币型money,smallmoney位型bit字符型char,varcharUnicode字符型nchar,nvarchar文本型text,ntext二进制型binary,varbinary日期时间类型datetime,smalldatetime时间戳型Timestamp图象型Image其他cursor,sql_variant,table,uniqueidentifier2.2.2表的创建、修改和删除

下面分别说明系统数据类型:整数型整数包括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。

bigint:大整数,数范围为-263(-9223372036854775808)~263-1(9223372036854775807),其精度为19,小数位数为0,长度为8字节。

int:整数,数范围为-231(-2,147,483,648)~231-1(2,147,483,647),其精度为10,小数位数为0,长度为4字节。

smallint:短整数,数范围为-215(-32768)~215-1(32767),其精度为5,小数位数为0,长度为2字节。

tinyint:微短整数,数范围为0~255,长度为1字节,其精度为3,小数位数为0,长度为1字节。2.2.2表的创建、修改和删除(2)精确整数型decimal和numeric可存储从-1038+1到1038–1的固定精度和小数位的数字数据,它们的存储长度随精度变化而变化,最少为5字节,最多为17字节。精度为1~9时,存储字节长度为5;精度为10~19时,存储字节长度为9;精度为20~28时,存储字节长度为13;精度为29~38时,存储字节长度为17。(3)浮点型real:使用4字节存储数据,表数范围为-3.40E+38到3.40E+38,数据精度为7位有效数字。

float:定义中的n取值范围是1~53,用于指示其精度和存储大小。

2.2.2表的创建、修改和删除(4)货币型

money:数据的数范围为-263(-922337203685477.5808)~263-1(922337203685477.5807),其精度为19,小数位数为4,长度为8字节。

smallmoney:数范围为–231(-2,147,48.3648)~231-1(2,147,48.3647),其精度为10,小数位数为4,长度为4字节。(5)位型SQLServer中的位(bit)型数据相当于其他语言中的逻辑型数据,它只存储0和1,长度为一个字节。(6)字符型字符型数据用于存储字符串,字符串中可包括字母、数字和其它特殊符号(如#、@、&等等)。SQLServer字符型包括两类:固定长度(char)或可变长度

(varchar)字符数据类型。2.2.2表的创建、修改和删除(7)Unicode字符型Unicode是“统一字符编码标准”,用于支持国际上非英语语种的字符数据的存储和处理。

nchar[(n)]:nchar[(n)]为包含n个字符的固定长度Unicode字符型数据,n

的值在1与4,000之间,缺省为1。长度为2n字节。若输入的字符串长度不足n,将以空白字符补足。

nvarchar[(n)]:nvarchar[(n)]为最多包含n个字符的可变长度Unicode字符型数据,n

的值在1与4,000之间,缺省为1。(8)文本型文本型包括text和ntext两类,分别对应ASCII字符和Unicode字符。text类型可以表示最大长度为231-1(2,147,483,647)个字符,其数据的存储长度为实际字符数个字节。ntext可表示最大长度为230-1(1,073,741,823)个Unicode字符,其数据的存储长度是实际字符个数的两倍(以字节为单位)。2.2.2表的创建、修改和删除(9)二进制型

binary[(n)]:固定长度的n个字节二进制数据。n取值范围为1到8,000,缺省为1。

varbinary

[(n)]:n个字节变长二进制数据。n取值范围为1到8,000,缺省为1。varbinary(n)数据的存储长度为实际输入数据长度+4个字节。(10)日期时间类型datetime类型数据长度为8字节,日期和时间分别使用4个字节存储。(11)时间戳型标识符是timestamp。若创建表时定义一个列的数据类型为时间戳类型,那么每当对该表加入新行或修改已有行时,都由系统自动将一个计数器值加到该列,即将原来的时间戳值加上一个增量。2.2.2表的创建、修改和删除创建表空值(NULL)概念空值通常表示未知、不可用或将在以后添加的数据。列的identity(标识)属性对任何表都可创建包含系统所生成序号值的一个标识列,该序号值唯一标识表中的一行,可以作为键值。【例2.8】以XSCJ数据库中创建学生情况表为例说明通过SQLServer的企业管理器创建表的操作过程。列名数据类型长度是否允许为空值默认值说明学号定长字符型(char)6×无主键姓名定长字符型(char)8×无

专业名定长字符型(char)10√无

性别位型(bit)1×1男1,女0出生时间日期时间类型(smalldatetime)4×无

总学分整数型(tinyint)1√无

备注文本型(text)16(系统默认值)√无

2.2.2表的创建、修改和删除以下是通过“企业管理器”创建表XS的操作步骤:第1步启动SQLServer企业管理器,用鼠标右键单击选择数据库(这里是数据库XSCJ),将出现如图2.28所示的快捷菜单,选择“新建(N)”

“表(T)…”。2.2.2表的创建、修改和删除第2步在所弹出的编辑窗口中分别输入或选择各列的名称、数据类型、是否允许为空值等属性,在“学号”列上单击鼠标右键,选择“设置主键”菜单项,将学号列设置为主键,将“性别”列的缺省值设置为1。如图2.29所示。2.2.2表的创建、修改和删除第3步在表的各列的属性均编辑完成后,单击“保存”图形按钮,出现如图2.30所示的“选择表名”对话框。第4步在“选择表名”对话框中输入表名XS,单击“确定”,XS表就创建好了,如图2.31所示。2.2.2表的创建、修改和删除创建课程表,名称为KC,表结构如表2.5所示。KC表创建后的界面,如图2.32所示。列

名数据类型长度是否允许为空值默认值说明课程号定长字符型(char)3×无主键课程名定长字符型(char)16×无

开课学期整数型(tinyint)1×1只能为1—8学时整数型(tinyint)1×无

学分整数型(tinyint)1√无

2.2.2表的创建、修改和删除创建成绩表,名称为XS_KC,表结构如表2.6所示。KC表创建后的界面,如图2.33所示。2.2.2表的创建、修改和删除创建成绩表,名称为XS_KC,表结构如表2.6所示。KC表创建后的界面,如图2.33所示。列名数据类型长度是否允许为空值默认值说明学号定长字符型(char)6×无主键课程号定长字符型(char)3×无主键成绩整数型(tinyint)1√无

学分整数型(tinyint)1√无

2.2.2表的创建、修改和删除3.修改表对一个已存在的表可以进行的修改操作包括:更改表名增加列删除列修改已有列的属性(列名、数据类型、是否为空值)(1)更改表名SQLServer中允许改变一个表的名字,但当表名改变后,与此相关的某些对象如视图,以及通过表名与表相关的存储过程将无效,建议一般不要更改一个已有的表名,特别是在其上定义了视图或建立了相关的表。【例2.9】将XS表的表名改为student。2.2.2表的创建、修改和删除更改表名的操作步骤:第1步在SQLServer企业管理器中展开需更名的表,在其上单击鼠标右键,在弹出的快捷菜单上选择“重命名”,如图2.34所示。2.2.2表的创建、修改和删除第2步在表名位置上输入新的表名,如图2.35所示,按下回车键。2.2.2表的创建、修改和删除第3步系统弹出如图2.36所示的对话框,提示用户若更改了表名,那么将引起引用该表的存储过程、视图或触发器无效,要求用户对更名操作予以确认。点击“是”按钮确认该操作。第4步第3步操作完成后,系统弹出如图2.37所示的对话框,提示用户表更名操作已经完成。点击“确定”。2.2.2表的创建、修改和删除(2)增加列【例2.10】向表XS中添加一个“奖学金等级”列,“奖学金等级”列为微整型,允许为空值。在SQLServer企业管理器中展开需进行操作的表XS,在其上单击鼠标右键,在弹出的快捷菜单上选择“设计表”,如图2.38所示。2.2.2表的创建、修改和删除

在SQLServerEnterpriseManager的设计表“XS

”窗口中点击第一个空白行,输入列名“奖学金等级”,选择数据类型“tinyint”,如图2.39所示。2.2.2表的创建、修改和删除

当需向表中添加的列均输入完毕后,点击关闭设计表“XS”窗口按钮,此时将弹出如图2.40所示的对话框,单击“是”,保存修改后的表。(3)删除列在SQLServer企业管理器中展开需进行操作的表XS,在其上单击鼠标右键,在弹出的快捷菜单上选择“设计表”。2.2.2表的创建、修改和删除(4)修改已有列的属性具有以下特性的列不能被修改:具有text、ntext、image或timestamp数据类型的列计算列全局标识符列复制列用于索引的列(但若用于索引的列为varchar、nvarchar或varbinary数据类型时,可以增加列的长度)用于由CREATESTATISTICS生成统计的列。若需修改这样的列,必须先用DROPSTATISTICS语句删除统计用于主键或外键约束的列用于CHECK或UNIQUE约束的列关联有默认值的列这里所罗列的特性。当改变列的数据类型时,要求:原数据类型必须能够转换为新数据类型;新类型不能为timestamp类型;如果被修改的是IDENTITY列,则新数据类型必须是有效的IDENTITY数据类型。2.2.2表的创建、修改和删除【例2.11】在创建的XS表中,将“姓名”列的列名改为“name”,数据长度由8改为10,允许为空值;将“出生时间”列的列名改为“birthday”,数据类型由“smalldatetime”改为“datetime”。第1步在SQLServer企业管理器中展开需进行操作的表XS,在其上单击鼠标右键,在弹出的快捷菜单上选择“设计表”。第2步在SQLServer企业管理器的设计表“XS

”窗口中点击需修改的列(本例中是“姓名”和“出生时间”),修改相应的属性,如图2.42所示。2.2.2表的创建、修改和删除第3步当需修改的列均修改完毕后,点击关闭设计表“XS”窗口按钮,此时将弹出对话框,单击“是”保存修改后的表。4.表的删除删除一个表时,表的定义、表中的所有数据以及表的索引、触发器、约束等均被删除。设需将XSCJ数据库中的表test删除,操作过程为:第1步在“企业管理器”中展开数据库XSCJ,再展开表,在表test上点击鼠标右键,在弹出的快捷菜单上选择“删除”,如图2.43所示。2.2.2表的创建、修改和删除第2步上一步操作结束后,系统弹出如图2.44所示的“除去对象”对话框,点击“全部除去”按钮,即可删除选择的表。2.3命令方式创建数据库和表

语法格式:CREATEDATABASEdatabase_name[ON /*指定数据库文件和文件组属性*/

[<filespec>[,...n]]

[,<filegroup>[,...n]]][LOGON{<filespec>[,...n]}] /*指定日志文件属性*/[COLLATEcollation_name][FORLOAD|FORATTACH]

<filespec>::=[PRIMARY]([NAME=logical_file_name,]

FILENAME='os_file_name'

[,SIZE=size]

[,MAXSIZE={max_size|UNLIMITED}]

[,FILEGROWTH=growth_increment])[,...n]

<filegroup>::=FILEGROUPfilegroup_name<filespec>[,...n]2.3.1使用CREATEDATABASE创建数据库

【例2.12】创建一个名为XSCJ1的数据库,其初始大小为5MB,最大大小50MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。假设SQLServer服务已启动,并以Administrator身份登录计算机。2.3.1使用CREATEDATABASE创建数据库在T-SQL语句输入窗口中输入如下语句:CREATEDATABASEXSCJ1 ON ( NAME='XSCJ1_Data', FILENAME='e:\sql\data\MSSQL\Data\XSCJ1.mdf', SIZE=5MB, MAXSIZE=50MB, FILEGROWTH=10% ) LOGON ( NAME='XSCJ1_Log', FILENAME='e:\sql\data\MSSQL\Data\XSCJ1_Log.ldf', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB )GO2.3.1使用CREATEDATABASE创建数据库输入完毕后,单击“执行查询”按钮。如图2.47所示。2.3.1使用CREATEDATABASE创建数据库【例2.13】创建TEST1的数据库。CREATEDATABASETEST1ON( NAME=‘TEST1_data’, FILENAME=‘e:\sql\data\MSSQL\data\t1.mdf’)GO【例2.14】创建一个名为TEST2的数据库,它有三个数据文件,其中主数据文件为100MB,最大大小为200MB,按20MB增长;2个辅数据文件为20MB,最大大小不限,按10%增长;有2个日志文件,大小均为50MB,最大大小均为100MB,按10MB增长。CREATEDATABASETEST2 ON PRIMARY ( NAME=‘TEST2_data2’, FILENAME=‘e:\sql\data\t2\test2_data2.ndf’, SIZE=20MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% ),( NAME=‘TEST2_data3’, FILENAME=‘e:\sql\data\t2\test2_data3.ndf’, SIZE=20MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% )LOGON( NAME=‘TEST2_log1’, FILENAME=‘e:\sql\data\t2\test2_log1.ldf’, SIZE=50MB, MAXSIZE=100MB, FILEGROWTH=10MB),( NAME=‘TEST2_log2’, FILENAME=‘e:\sql\data\t2\test2_log2.ldf’, SIZE=50MB, MAXSIZE=100MB, FILEGROWTH=10MB )GO2.3.1使用CREATEDATABASE创建数据库2.3.2使用ALTERDATABASE修改数据库使用ALTERDATABASE命令对数据库可进行以下修改:增加或删除数据文件改变数据文件的大小和增长方式改变日志文件的大小和增长方式增加或删除日志文件增加或删除文件组1.ALTERDATABASE语句2.3.2使用ALTERDATABASE修改数据库语法格式:ALTERDATABASEdatabase_name{ ADDFILE<filespec>[,…n][TOFILEGROUPfilegroup_name] /*在文件组中增加数据文件*/ |ADDLOGFILE<filespec>[,…n] /*增加日志文件*/ |REMOVEFILElogical_file_name /*删除数据文件*/ |ADDFILEGROUPfilegroup_name /*增加文件组*/ |REMOVEFILEGROUPfilegroup_name /*删除文件组*/ |MODIFYFILE<filespec> /*更改文件属性*/ |MODIFYNAME=new_dbname /*数据库更名*/ |MODIFYFILEGROUPfilegroup_name{filegroup_property|NAME=new_filegroup_name} |SET<optionspec>[,...n][WITH<termination>]/*设置数据库属性*/ |COLLATE<collation_name>/*指定数据库排序规则*/}2.3.2使用ALTERDATABASE修改数据库【例2.16】设已经创建了数据库XSCJ,它只有一个主数据文件,其逻辑文件名为XSCJ_Data,物理文件名为e:\sql\data\MSSQL\data\XSCJ_Data.mdf,大小为5MB,最大大小为50MB,增长方式为按10%增长;ALTERDATABASEXSCJ MODIFYFILE ( NAME=XSCJ_Data,MAXSIZE=UNLIMITED) GO/*这是第1次,将主数据文件的最大大小改为不限制。*/ ALTERDATABASEXSCJ MODIFYFILE ( NAME=XSCJ_Data, FILEGROWTH=5MB) GO/*这是第2次,将主数据文件的增长方式改为按5MB增长。*/2.3.2使用ALTERDATABASE修改数据库【例2.17】先为数据库XSCJ增加数据文件XSCJBAK。然后删除数据文件XSCJBAK。ALTERDATABASEXSCJ ADDFILE ( NAME=XSCJBAK FILENAME=‘e:\sql\data\MSSQL\data\XSCJBAK_dat.ndf’, SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5% )GO通过企业管理器观察数据库XSCJ是否增加数据文件XSCJBAK。ALTERDATABASEXSCJREMOVEFILEXSCJBAKGO2.3.2使用ALTERDATABASE修改数据库【例2.18】为数据库XSCJ添加文件组FGROUP,并为此文件组添加两个大小均为10MB的数据文件。ALTERDATABASEXSCJADDFILEGROUPFGROUPGOALTERDATABASEXSCJ ADDFILE ( NAME=XSCJ_DATA2, FILENAME='e:\sql\data\MSSQL\data\XSCJ_Data2.ndf', SIZE=10MB, MAXSIZE=30MB, FILEGROWTH=5MB ), ( NAME=XSCJ_DATA3, FILENAME='e:\sql\data\MSSQL\data\XSCJ_Data3.ndf', SIZE=10MB, MAXSIZE=30MB, FILEGROWTH=5MB ) TOFILEGROUPFGROUPGO2.3.2使用ALTERDATABASE修改数据库【例2.19】从数据库中删除文件组,将示例4添加到XSCJ数据库中的数据组FGROUP删除。注意被删除的文件组中的数据文件必须先删除,且不能删除主文件组。ALTERDATABASETEST REMOVEFILETEST_DATA2GOALTERDATABASETESTREMOVEFILETEST_DATA3GOALTERDATABASETEST REMOVEFILEGROUPTGROUPGO2.3.2使用ALTERDATABASE修改数据库【例2.20】为数据库XSCJ添加一个日志文件。ALTERDATABASEXSCJ ADDLOGFILE ( NAME=XSCJ_LOG2, FILENAME='e:\sql\data\MSSQL\data\XSCJ_Log2.ldf', SIZE=5MB, MAXSIZE=10MB, FILEGROWTH=1MB )GO【例2.21】从数据库XSCJ中删除一个日志文件,将日志文件XSCJ_LOG2删除。注意不能删除主日志文件。ALTERDATABASETEST REMOVEFILEXSCJ_LOG2GOALTERDATABASEXSCJ MODIFYNAME=JUST_TESTGO语法格式:CREATETABLE[database_name.[owner].|owner.]table_name({<column_definition> /*列的定义*|column_nameAScomputed_column_expression/*定义计算列*/|<table_constraint>} /*指定表的约束*/)[ON{filegroup|DEFAULT}]/*指定存储表的文件组*/[TEXTIMAGE_ON{filegroup|DEFAULT}]/*指定存储text、ntext和image类型数据的文件组*/2.3.3使用DROPDATABASE删除数据库语法格式:DROPDATABASEdatabase_name[,…n]其中database_name是要删除的数据库名。要删除数据库TEST,使用命令:DROPDATABASETESTGO2.3.4使用CREATETABLE创建表2.3.4使用CREATETABLE创建表【例2.22】设已经创建了数据库XSCJ,现在该数据库中需创建学生情况表XS,该表的结构见表2.2。创建表XS的T-SQL语句如下:USEXSCJCREATETABLEXS( 学号char(6)NOTNULL,

姓名char(8)NOTNULL,

专业名char(10)NULL,

性别bitNOTNULL,

出生时间smalldatetimeNOTNULL,

总学分tinyintNULL,

备注textNULL)GO2.3.5使用ALTERTABLE修改表

语法格式:ALTERTABLEtable{[ALTERCOLUMNcolumn_name /*修改已有列的属性*/

{new_data_type[(precision[,scale])]

[COLLATE<collation_name>]

[NULL|NOTNULL]

|{ADD|DROP}ROWGUIDCOL}

]

|ADD /*增加新列*/

{[<column_definition>]

|column_nameAScomputed_column_expression

}[,...n]

|[WITHCHECK|WIT

温馨提示

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

评论

0/150

提交评论