第3章数据库和表的创建.ppt

上传人:s****8 文档编号:68704248 上传时间:2022-12-29 格式:PPT 页数:65 大小:5.16MB
返回 下载 相关 举报
第3章数据库和表的创建.ppt_第1页
第1页 / 共65页
第3章数据库和表的创建.ppt_第2页
第2页 / 共65页
点击查看更多>>
资源描述

《第3章数据库和表的创建.ppt》由会员分享,可在线阅读,更多相关《第3章数据库和表的创建.ppt(65页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、3.13.2L3.1L3.2知识点链接知识点链接创建图书管理数据库创建图书管理数据库 创建图书管理数据库基本表创建图书管理数据库基本表创建图书管理数据库创建图书管理数据库创建图书管理数据库基本表创建图书管理数据库基本表根据SQL Server数据库基本概念数据库基本概念,要创建一个数据库,首先要确定数据库名、所有者(即创建数据库的用户)、数据库大小和存储数据库的文件。本系统中要求创建的图书管理数据库名称定义为MBOOK,所有者为系统管理员。为了保存图书管理系统中需要的信息,MBOOK数据库需要包含一个数据文件和一个日志文件。数据文件用于存放数据库的数据,日志文件用于存放日志信息。存放数据库的数

2、据可以使用多个数据文件,为了简单起见,MBOOK数据库只包含一个数据文件。MBOOK数据库数据文件名称定义为MBOOK.mdf,日志文件名称定义为MBOOK_log.ldf。使用图形界面方式创建图书管理数据库MBOOK,需要完成以下步骤:(1)以系统管理员身份登录计算机,在桌面上单击“开始”“所有程序”“MicrosoftSQLServer2008”选择“SQLServerManagementStudio”。弹出“连接到服务器”对话框,如图3.1所示,“服务器类型”选择“数据库引擎”,“服务器名称”为安装SQLServer时的实例名,“身份验证”选项选择“Windows身份验证”,这里按照默认

3、设置单击“连接”按钮即可连接到SQLServer数据库服务器。图3.1“连接到服务器”对话框(2)进入“SQLServerManagementStudio”主窗口,如图3.2所示。在窗口左边的“对象资源管理器”窗口中,用鼠标右键单击“数据库”目录,在弹出的快捷菜单中选择“新建数据库”菜单项,打开“新建数据库”窗口。图3.2“SQLServerManagementStudio”主窗口(3)在“新建数据库”窗口的左上方选择“常规”选项卡,在“数据库名称”文本框中填写要创建的图书管理数据库的名称“MBOOK”,“所有者”使用默认值。在“数据库文件”栏中,将“MBOOK”的“初始大小”设为5MB,单击

4、“自动增长”标签下的“”按钮,弹出“更改自动增长设置”对话框,将“按MB(M)”单选按钮栏设置为“2”,选择“不限制文件增长”单选按钮,将后面的最大大小改为“100”MB,如图3.3所示。使用相同的方法将“MBOOK_log”的初始大小设置为1MB,最大大小不受限制,增长方式为按10%比例增长。完成后单击“确定”按钮。图3.3“更改自动增长设置”对话框设置完成后的窗口如图3.4所示,单击“确定”按钮完成MBOOK数据库的创建。图3.4“新建数据库”窗口(4)数据库创建完成后,如果能在“对象资源管理器”窗口的“数据库”目录下找到该数据库所对应的图标,如图3.5所示,则表示图书管理数据库MBOOK

5、创建成功。图3.5MBOOK数据库创建成功在SQLServer数据库中,通过命令方式进行操作时使用T-SQL语言语言来进行。使用T-SQL语言创建图书管理数据库MBOOK,需要完成以下操作步骤:(1)以管理员身份连接SQLServer服务器,进入“SQLServerManagementStudio”主窗口,在窗口工具栏上单击“新建查询”按钮,新建一个查询窗口,如图3.6所示。图3.6新建查询(2)在查询窗口中输入创建图书管理数据库的T-SQL语句。CREATEDATABASEMBOOKONPRIMARY(NAME=MBOOK,FILENAME=C:ProgramFilesMicrosoftSQ

6、LServerMSSQL10.MSSQLSERVERMSSQLDATAMBOOK.mdf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=2MB)LOGON(NAME=MBOOK_log,FILENAME=C:ProgramFilesMicrosoftSQLServerMSSQL10.MSSQLSERVERMSSQLDATAMBOOK_log.ldf,SIZE=1MB,FILEGROWTH=10%);(3)单击窗口工具栏的“!执行”按钮,执行结果如图3.7所示。说明:在以上语句中,CREATE DATABASE语句语句用于创建数据库,MBOOK为数据库名称;使用“ON”关键

7、字定义数据库中的数据文件,“PRIMARY”表示是主数据文件;使用“LOGON”关键字定义数据库的日志文件。图3.7在查询窗口中执行T-SQL语句对于数据文件,“NAME”关键字用于定义数据文件的逻辑文件名,名称为MBOOK;“FILENAME”关键字用于定义操作系统中文件的完整路径名;“SIZE”用于定义数据文件的初始大小,本系统中图书管理数据库的数据文件初始大小为5MB;“MAXSIZE”用于定义数据文件的最大大小,为100MB;“FILEGROWTH”用于定义数据文件的增长增量,为2MB。对于日志文件,各个选项的意义与数据文件相同,其中“FILEGROWTH=10%”表示图书管理数据库M

8、BOOK日志文件的增长方式是按10%比例增长。创建完图书管理数据库后,如果需要修改数据库的属性,可以使用ALTER DATABASE语句语句;如果要删除数据库,可以使用DROP DATABASE语句语句。需要创建的图书管理数据库的表包括:(1)用于存储读者信息的TReader表;(2)用于存储图书信息的TBook表;(3)用于存储图书借阅情况的TLend表;(4)用于存储图书借出情况的TBLend表;(5)用于存储还书记录的HLend表。表结构在进行数据库设计时已经确定,接下来需要在图书管理数据库MBOOK中创建这些表。首先,使用界面方式创建读者信息表TReader,操作步骤如下。(1)启动“

9、SQLServerManagementStudio”在“对象资源管理器”中,展开“数据库”用鼠标右键单击“MBOOK”数据库菜单下的“表”选项,在弹出的快捷菜单中,选择“新建表(N)”菜单项,打开如图3.8所示的“表设计器”窗口。图3.8“表设计器”窗口(2)在“表设计器”窗口中,根据已经设计好的TReader的表结构分别输入或选择各列的名称、数据类型、是否允许为空等属性。根据需要,可以在列属性表格的“常规”选项的“默认值或绑定”栏填入默认值,在“全文规范”选项的“说明”栏填写相应的说明。(3)在“借书证号”列上用鼠标右键单击,选择“设置主键”菜单项,选择“设为主键”菜单项,如图3.9所示。图

10、3.9设置TReader表的主键在列属性窗口中的“默认值和绑定”和“说明”项中分别填写各列的默认值和说明。读者信息表TReader结构设计完成后的结果如图3.10所示。图3.10表属性编辑完成结果(4)在表的各列的属性均编辑完成后,单击工具栏中的“”按钮(“保存”按钮),出现“选择表名”对话框。在“选择表名”对话框中输入表名“TReader”,单击“确定”按钮即可创建读者信息表。在“对象资源管理器”窗口中可以找到新创建的TReader表,如图3.11所示。图3.11新创建的TReader表说明:(1)在创建借阅表TLend时,由于“应还时间”应该是在“借书时间”的基础上加上图书能借出的最大天数

11、(本系统规定图书借出的天数为5天),所以需要将“应还时间”列定义为计算列计算列。在创建Lend表的窗口中,选中“应还时间”字段,在列属性窗口中展开“计算列规范”属性,在“公式”栏中填写计算列的定义公式为“借书时间+5”,如图3.12所示。图3.12定义计算列(2)在创建还书记录表HLend表时,由于每当增加一条新的借阅记录时,希望给记录一个唯一而又容易确定的“编号”,这时就可以将“编号”列设为标识标识列列。在创建HLend表的窗口中,选中“编号”字段,在列属性窗口中展开“标识规范”属性,将“是标识”选项设置为“是”,设置“标识增量”和“标识种子”的值都为1,如图3.13所示。图3.13定义标识

12、列在SQLServer2008中,使用界面方式修改表的结构(如添加列、修改列的数据类型等)时,如果强行更改会弹出如图3.14所示的对话框。图3.14不允许保存更改对话框如果要在修改表时不出现此对话框,可以进行以下操作:启动“SQLServerManagementStudio”,在主界面中单击“工具”主菜单,选择“选项”子菜单,在出现的“选项”窗口中选择“Designers”下的“表设计器和数据库设计器”选项卡,将窗口右面的“阻止保存要求重新创建表的更改”复选框前的勾去掉,如图3.15所示,完成操作后单击“确定”按钮,接下来就可以对表进行更改。图3.15解除阻止保存的选项首先,使用命令方式创建T

13、Reader表,启动“SQLServerManagementStudio”,在主界面上单击“新建查询”按钮新建一个查询窗口,在窗口中输入创建TReader表的语句:USEMBOOKGOCREATETABLETReader(借书证号char(6)NOTNULLPRIMARYKEY,密码varchar(20)NOTNULL,姓名char(8)NOTNULL,性别bitNOTNULL,出生时间dateNOTNULL,专业char(12)NOTNULL,借书量intNOTNULLDEFAULT0,照片varbinary(MAX)NULL,备注varchar(200)NULL,联系方式xmlNULL)单

14、击工具栏上的“!执行”按钮执行以上语句,结果如图3.16所示。图3.16使用命令方式创建读者信息表TReader说明:(1)在以上创建读者信息表TReader的语句中,USE语句用于将数据库指定为当前数据库,USEMBOOK即将MBOOK数据指定为当前数据库。此后使用CREATE TABLE语句语句就可以在MBOOK数据库中创建表了。(2)GO命令不是Transact-SQL语句,但它是SQLServerManagementStudio代码编辑器识别的命令。SQLServer实用工具将GO命令解释为应该向SQLServer实例发送当前批Transact-SQL语句的信号。当前批语句由上一个GO

15、命令后输入的所有语句组成,如果是第一条GO命令,则由会话或脚本开始后输入的所有语句组成。注意:GO命令和Transact-SQL语句不能在同一行中,否则运行时会发生错误。(3)“TReader”为要创建的表名,表的结构在表名后的括号中定义。(4)“借书证号”为要定义的列名,“char(8)”为要定义的数据类型和长度,“NOTNULL”声明借书证号不能为空,“PRIMARYKEY”声明“借书证号”列为读者信息表TReader的主键。表中的其他列与“借书证号”列的定义类似,中间用逗号隔开。其中定义“借书量”时,“DEFAULT0”用于定义借书量默认值为0。根据相同的方法,创建图书管理数据库中需要的

16、其他基本表,创建的语句如下:l创建图书信息表TBook:USEMBOOKGOCREATETABLETBook(ISBNchar(18)NOTNULLPRIMARYKEY,书名char(40)NOTNULL,作译者char(16)NOTNULL,出版社char(30)NOTNULL,出版年月 char(10)NULL,价格floatNOTNULL,复本量intNOTNULL,库存量intNOTNULL,分类号char(18)NULL,内容提要 varchar(200)NULL,封面照片 varbinary(MAX)NULL)l创建图书借阅表TLend:CREATETABLETLend(借书证号c

17、har(6)NOTNULL,ISBNchar(18)NOTNULL,图书IDchar(10)NOTNULLPRIMARYKEY,借书时间datetime NOTNULL,应还时间AS借书时间+5)说明:以上语句中,定义“应还时间”列时,使用AS子句将该列定义为计算列。根据实际的图书管理情况,每本书最多只能借5天,则规定应还时间应该是借书时间过后的5天,使用表达式“借书时间+5”。l创建图书是否借出表TBLend:CREATETABLETBLend(图书IDchar(10)NOTNULLPRIMARYKEY,ISBNchar(18)NOTNULL,是否借出 bitNOTNULL)l创建还书记录表

18、HLend:CREATETABLEHLend(编号intNOTNULLIDENTITY(1,1)PRIMARYKEY,借书证号 char(6)NOTNULL,ISBNchar(18)NOTNULL,图书IDchar(10)NOTNULL,借书时间 datetimeNOTNULL,还书时间 datetimeNOTNULL)图书管理系统中的表创建完后,如果需要对有关表进行一些修改,可以使用ALTER TABLE语句语句;如果要删除某些表,可以使用DROP TABLE语句语句。L1SQLServer数据库基本概念C1逻辑数据库逻辑数据库SQLServer数据库是存储数据的容器,是一个存放数据的表和支

19、持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。用户观点将数据库称为逻辑数据库,组成数据库的逻辑成分称为数据库对象。SQLServer的数据库对象主要包括表、视图、索引、存储过程、触发器和约束等。用户经常需要在SQL语句中引用SQLServer对象对其进行操作,如对数据库表进行查询、数据更新等,在语句中需要给出对象的名称。用户可以给出两种对象名,即完全限定名和部分限定名。(1)完全限定名。在SQLServer中完全限定名是对象的全名,包括四个部分:服务器名、数据库名、数据库架构名和对象名,其格式为:server.database.scheme.object在SQLServer20

20、08上创建的每个对象都必须有一个唯一的完全限定名。(2)部分限定名。在使用SQL语句编程时,使用全名往往很烦琐且没有必要,所以常省略全名中的某些部分,对象全名的四个部分中的前三个部分均可以被省略,当省略中间的部分时,圆点符“.”不可省略。把只包含对象完全限定名中的一部分的对象名称为部分限定名。当用户使用对象的部分限定名时,SQLServer可以根据系统的当前工作环境确定对象名称中省略的部分。在部分限定名中,未指出的部分使用以下默认值:服务器:默认为本地服务器;数据库:默认为当前数据库;数据库架构名:默认为dbo。例如,以下是一些正确的对象部分限定名:server.database.object

21、/*省略架构名*/server.scheme.object/*省略数据库名*/database.scheme.object/*省略服务器名*/serverobject/*省略架构名和数据库名*/scheme.object/*省略服务器名和数据库名*/object/*省略服务器名、数据库名和架构名*/C2物理数据库物理数据库(1)页和区。SQLServer中有两个主要的数据存储单位:页和区。页是SQLServer中用于数据存储的最基本单位。每个页的大小是8KB,也就是说,SQLServer每1MB的数据文件可以容纳128页。每页的开头是96字节的标头,用于存储有关页的系统信息。紧接着标头存放的是

22、数据行,数据行按顺序排列。数据库表中的每一行数据都不能跨页存储,即表中的每一行数据字节数不能超过8192个。页的末尾是行偏移表,对于页中的每一行在偏移表中都有一个对应的条目。每个条目记录着对应行的第一个字节与页首部的距离。区是用于管理空间的基本单位。每8个连接的页组成一个区,大小为64KB,即每1MB的数据库就有16个区。区用于控制表和索引的存储。(2)数据库文件。SQLServer所使用的文件包括三类文件。主数据文件。主数据文件简称主文件,正如其名字所示,该文件是数据库的关键文件,包含了数据库的启动信息,并且存储数据。每个数据库必须有且仅能有一个主文件,其默认扩展名为.mdf。辅助数据文件。

23、辅助数据文件简称辅(助)文件,用于存储未包括在主文件内的其他数据。辅助文件的默认扩展名为.ndf。辅助文件是可选的,根据具体情况,可以创建多个辅助文件,也可以不使用辅助文件。一般当数据库很大时,有可能需要创建多个辅助文件;而数据库较小时,则只要创建主文件而不需要辅助文件。日志文件。日志文件用于保存恢复数据库所需的事务日志信息。每个数据库至少有一个日志文件,日志文件的扩展名为.ldf。日志文件的存储与数据文件不同,它包含一系列记录,这些记录的存储不以页为存储单位。(3)文件组。文件组是由多个文件组成,为了管理和分配数据而将它们组织在一起。通常可以为一个磁盘驱动器创建一个文件组,然后将特定的表、索

24、引等与该文件组相关联,那么对这些表的存储、查询和修改等操作都在该文件组中。使用文件组可以提高表中数据的查询性能。在SQLServer2008中有两类文件组。主文件组。主文件组包含主要数据文件和任何没有明确指派给其他文件组的其他文件。管理数据库的系统表的所有页均分配在主文件组中。用户定义文件组。用户定义文件组是指“CREATEDATABASE”或“ALTERDATABASE”语句中,使用“FILEGROUP”关键字指定的文件组。每个数据库中都有一个文件组作为默认文件组运行。若在SQLServer中创建表或索引时没有为其指定文件组,那么将从默认文件组中进行存储页分配、查询等操作。用户可以指定默认文

25、件组,如果没有指定默认文件组,则主文件组是默认文件组。C3系统数据库和用户数据库系统数据库和用户数据库在SQLServer中有两类数据库:系统数据库和用户数据库。系统数据库存储有关SQLServer的系统信息,它们是SQLServer管理数据库的依据。如果系统数据库遭到破坏,SQLServer将不能正常启动。在安装SQLServer后,系统将创建4个可见的系统数据库:master、model、msdb和tempdb。(1)master数据库包含了SQLServer诸如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和SQLServer的运行。(2)model数据库为新创建的

26、数据库提供模板。(3)msdb数据库为“SQLServer代理”调度信息和作业记录提供存储空间。(4)tempdb数据库为临时表和临时存储过程提供存储空间,所有与系统连接的用户的临时表和临时存储过程都存储于该数据库中。每个系统数据库都包含主数据文件和主日志文件。扩展名分别为.mdf和.ldf,例如master数据库的两个文件分别为master.mdf和master.ldf。返回返回在SQLServer数据库中,T-SQL语言由以下几部分组成:(1)数据定义语言(DDL)。DDL用于执行数据库的任务,对数据库以及数据库中的各种对象进行创建、删除、修改等操作。如前所述,数据库对象主要包括表、默认约

27、束、规则、视图、触发器、存储过程。DDL包括的主要语句及功能如表3.1所示。语 句功 能说 明CREATE创建数据库或数据库对象不同数据库对象,其CREATE语句的语法形式不同ALTER对数据库或数据库对象进行修改不同数据库对象,其ALTER语句的语法形式不同DROP删除数据库或数据库对象不同数据库对象,其DROP语句的语法形式不同表3.1 DDL主要语句及功能(2)数据操纵语言(DML)。DML用于操纵数据库中的各种对象,检索和修改数据。DML包括的主要语句及功能如表3.2所示。语 句功 能说 明SELECT从表或视图中检索数据是使用最频繁的SQL语句之一INSERT将数据插入到表或视图中U

28、PDATE修改表或视图中的数据既可修改表或视图的一行数据,也可修改一组或全部数据DELETE从表或视图中删除数据可根据条件删除指定的数据表3.2 DML主要语句及功能(3)数据控制语言(DCL)。DCL用于安全管理,确定哪些用户可以查看或修改数据库中的数据。DCL包括的主要语句及功能如表3.3所示。语 句功 能说 明GRANT授予权限可把语句许可或对象许可的权限授予其他用户和角色REVOKE收回权限与GRANT的功能相反,但不影响该用户或角色从其他角色中作为成员继承许可权限DENY收回权限,并禁止从其他角色继承许可权限功能与REVOKE相似,不同之处在于:除收回权限外,还禁止从其他角色继承许可

29、权限表3.3 DCL主要语句及功能(4)T-SQL增加的语言元素。这部分不是ANSISQL所包含的内容,而是微软为了用户编程的方便增加的语言元素。这些语言元素包括变量、运算符、流程控制语句、函数等。这些T-SQL语句都可以在SQLServerManagementStudio的查询窗口中交互执行。返回返回在SQLServer中,使用命令方式创建数据库使用CREATEDATABASE语句。语法格式:CREATEDATABASEON PRIMARY,n,nLOGON,n;其中::=(NAME=logical_file_name,FILENAME=os_file_name,SIZE=sizeKB|MB

30、|GB|TB,MAXSIZE=max_sizeKB|MB|GB|TB|UNLIMITED,FILEGROWTH=growth_incrementKB|MB|GB|TB|%),n:=FILEGROUPfilegroup_nameDEFAULT,n说明:在对语法格式进行解释之前,需要了解本书T-SQL语句语法格式中使用的约定。表3.4列出了这些约定,并进行了说明。约 定用 于UPPERCASE(大写)Transact-SQL 关键字|分隔括号或大括号中的语法项。只能选择其中一项 可选语法项。不要输入方括号 必选语法项。不要输入大括号,n指示前面的项可以重复 n 次。每一项由逗号分隔n指示前面的项可

31、以重复 n 次。每一项由空格分隔;可选的 Transact-SQL 语句终止符。不要输入方括号:=语法块的名称。此约定用于对可在语句中的多个位置使用的过长语法段或语法单元进行分组和标记。可使用的语法块的每个位置由括在尖括号内的标签指示:表3.4 本书Transact-SQL语法的约定和说明下面对CREATEDABASE命令的语法格式进行说明:l:所创建的数据库逻辑名称,该名称在SQLServer实例中必须唯一。其命名须遵循SQLServer的命名规则,最大长度为128个字符。lON子句:指定了数据库的数据文件和文件组,其中PRIMARY用来指定主文件。若不指定主文件,则各数据文件中的第一个文件

32、将成为主文件。l:指定数据库文件的属性,主要给出文件的逻辑名、存储路径、大小及增长特性。这些特征可以与界面方式创建数据库时对数据库特征的设置相联系。(1)logical_file_name:逻辑文件名,是数据库创建后在所有T-SQL语句中引用文件时所使用的名字。(2)os_file_name:操作系统文件名,是操作系统在创建物理文件时使用的路径和文件名。(3)size:是数据文件的初始容量大小。对于主文件,若不指出大小,则默认为model数据库主文件的大小。对于辅助数据文件,自动设置为1MB。(4)max_size:指定文件的最大大小。UNLIMITED关键字指出文件大小不限,此为默认设置。(

33、5)growth_increament:指出文件每次的增量,有百分比和空间值两种格式,前者如10%,即每次增长是在原来空间大小的基础上增加10%;后者如5MB,即每次增长5MB,而不管原来空间是多少。但要注意,FILEGROWTH的值不能超过MAXSIZE的值。l:定义文件组的属性。filegroup_name为定义的文件组的名称。DEFAULT关键字指定命名文件组为数据库中的默认文件组。用于指定属于该文件组的文件。文件组中各文件的描述和数据文件描述相同。lLOGON子句:用于指定数据库事务日志文件的属性,其定义格式与数据文件的格式相同。如果没有指定该子句,将自动创建一个日志文件。【强化练习】

34、(1)现要将学生课程成绩信息进行统一管理,需要创建一个学生成绩管理数据库,用于存储学生信息、课程信息和学生成绩信息,该数据库命名为PXSCJ,数据库文件大小及增长方式按照默认值设置。以系统管理员身份连接SQLServer,在“SQLServerManagementStudio”窗口中单击“新建查询”按钮创建一个查询分析器窗口,输入如下语句并执行:CREATEDATABASEPXSCJ(2)创建一个具有两个文件组的数据库TEST。要求:主文件组包括文件TEST_dat1,文件初始大小为20M,最大60MB,按5MB增长;有一个文件组名为TESTGroup1,包括文件TEST_dat2,文件初始大

35、小为10MB,最大为30MB,按10%增长;数据库文件存放的位置均为D盘的data目录下。在查询窗口中输入并执行以下语句:CREATEDATABASETESTONPRIMARY(NAME=TEST_dat1,FILENAME=D:dataTEST_dat1.mdf,SIZE=20MB,MAXSIZE=60MB,FILEGROWTH=5MB),FILEGROUPTESTGroup1(NAME=TEST_dat2,FILENAME=D:dataTEST_dat2.ndf,SIZE=10MB,MAXSIZE=30MB,FILEGROWTH=10%)返回返回ALTERDATABASE语句用于修改数据的

36、某些属性,语法格式如下:ALTERDATABASEADDFILE,nTOFILEGROUPfilegroup_name/*在文件组中添加数据文件*/|ADDLOGFILE,n/*增加日志文件*/|REMOVEFILElogical_file_name/*删除数据文件*/|ADDFILEGROUPfilegroup_name/*添加文件组*/|REMOVEFILEGROUPfilegroup_name/*删除文件组*/|MODIFYFILE/*更改文件属性*/|MODIFYNAME=/*数据库更名*/|MODIFYFILEGROUPfilegroup_name|DEFAULT|NAME=/*更改

37、文件组属性*/|SET,nWITH/*设置数据库属性*/;说明:lADDFILE子句:向数据库添加数据文件,文件的属性由给出,构成见CREATEDATABASE语法说明。关键字TOFILEGROUP指出了添加的数据文件所在的文件组,若默认,则为主文件组。lADDLOGFILE子句:向数据库添加日志文件,日志文件的属性由给出。lREMOVEFILE子句:从数据库中删除数据文件,被删除的数据文件由其中的参数logical_file_name给出。当删除一个数据文件时,逻辑文件与物理文件全部被删除。lADDFILEGROUP子句:向数据库中添加文件组,被添加的文件组名由参数filegroup_nam

38、e给出。lREMOVEFILEGROUP子句:删除文件组。lMODIFYFILE子句:修改数据文件的属性,被修改文件的逻辑名由的NAME选项给出,可以修改的文件属性包括FILENAME、SIZE、MAXSIZE和FILEGROWTH。lMODIFYNAME子句:更改数据库名。lMODIFYFILEGROUP子句:用于更改文件组的属性DEFAULT选项表示将默认数据库文件组改为filegroup_name。NAME选项用于修改文件组的名称。lSET子句:用于设置数据库的属性,中指定了要修改的属性,例如设为READ_ONLY时用户可以从数据库读取数据,但不能修改数据库。【强化练习】(1)创建数据库

39、TEST1,它只有一个主数据文件,其逻辑文件名为TEST1_DATA,大小为5MB,最大为50MB,增长方式为按10%增长。要求:修改数据库TEST1现有数据文件TEST1_DATA的属性,将主数据文件的最大大小改为100MB,增长方式改为按每次5MB增长。在“查询分析器”窗口中输入并执行如下语句。(2)先为数据库TEST1增加数据文件TEST1BAK。然后删除该数据文件。ALTERDATABASETEST1ADDFILE(NAME=TEST1BAK,FILENAME=D:dataTEST1BAK.ndf,SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5%)通过查看数据库

40、属性对话框中的文件属性来观察数据库“TEST1”是否增加数据文件TEST1BAK。删除数据文件TEST1BAK的命令如下:ALTERDATABASETEST1REMOVEFILETEST1BAKGO(3)为数据库TEST1添加文件组FGROUP,并为此文件组添加两个大小均为10MB的数据文件。ALTERDATABASETEST1ADDFILEGROUPFGROUPGOALTERDATABASETEST1ADDFILE(NAME=TEST1_DATA2,FILENAME=D:dataTEST1_Data2.ndf,SIZE=10MB),(NAME=TEST1_DATA3,FILENAME=D:d

41、ataTEST1_Data3.ndf,SIZE=10MB)TOFILEGROUPFGROUPGO返回返回删除数据库使用DROPDATABASE命令。语法格式如下:DROPDATABASE,n;例如,要删除数据库TEST1,使用命令:DROPDATABASETEST1GO返回返回L1计算列计算列是物理上并不存储在于表中的虚拟列。计算列由同一表中的其他列通过表达式计算得到。表达式可以是非计算列的列名、常量、函数、变量,也可以是用一个或多个运算符连接的上述元素的任意组合。如果需要将计算列上的数据物理化,则需要另行指定。计算列的值是由服务器通过计算表达式得到的,所以在插入或修改数据时不能对计算列赋值。

42、每当在查询中引用计算列时,都将重新计算它们的值。如果在计算列的计算更改时涉及任何列,将更新计算列的值。计算列的为空性是由SQLServer根据使用的表达式自动确定的。即使只有不可为空的列,大多数表达式的结果也认为是可为空的,因为可能的下溢或溢出也将生成NULL结果。返回返回SQLServer中的标识列又称标识符列,习惯上又叫自增列。该种列具有以下三种特点:(1)列的数据类型为不带小数的数值类型;(2)在进行插入(INSERT)操作时,该列的值是由系统按一定规律生成,不允许空值;(3)列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。系统将自动更新标识列值,如果需要系统帮助维护既保证

43、唯一性,又保证增量方向性时可以使用标识列。创建一个标识列,通常要指定三个内容。(1)类型:在SQLServer中,标识列类型必须是数值类型,如decimal、int、numeric、smallint、bigint或tinyint。其中要注意的是,当选择decimal和numeric时,小数位数必须为零。另外还要注意每种数据类型所有表示的数值范围。(2)种子:指派给表中第一行的起始值,默认为1。(3)递增量:相邻两个标识值之间的增量,默认为1。在创建表时,标识列用IDENTITY属性建立,因此在SQLServer中,又称标识列为具有IDENTITY属性的列或IDENTITY列。返回返回在SQLS

44、erver中,使用命令方式创建基本表使用CREATETABLE语句。语法格式:CREATETABLE(,/*定义列*/,n|ASPERSISTEDNOTNULL/*定义计算列*/)说明:表名。在定义表名时可以指定表所属的数据库和架构,格式如下:.|.定义的表名必须符合SQLServer对象命名规则。如果省略数据库名则默认在当前数据库中创建表,如果省略架构名,则默认是“dbo”。列选项。列选项用于定义列的相关属性,主要有以下几种:NULL|NOTNULL/*指定是否为空*/DEFAULT/*指定默认值*/|IDENTITY(,)/*指定列为标识列*/ROWGUIDCOL/*指定列为全局标识符列*

45、/n/*指定列的完整性约束*/NULL|NOTNULL:NULL表示列可取空值,NOTNULL表示列不可取空值。如果不指定,则默认为NULL。DEFAULT:为所在列指定默认值,必须是一个常量值、标量函数或NULL值。DEFAULT定义可适用于除定义为timestamp或带IDENTITY属性的列以外的任何列。IDENTITY:指出该列为标识列,为该列提供一个唯一的、递增的值。ROWGUIDCOL:表示新列是行的全局唯一标识符列,ROWGUIDCOL属性只能指派给uniqueidentifier列。该属性并不强制列中所存储值的唯一性,也不会为插入到表中的新行自动生成值。:指定主键、替代键、外键

46、等。例如指定该列为主键可以使用PRIMARYKEY关键字。一个表只能定义一个主键,主键必须为NOTNULL。l定义计算列:计算列的值通过得到。如果需要将该列的数据物理化,需要使用PERSISTED关键字。如果没有使用PERSISTED关键字,则在计算列上不能添加如PRIMARYKEY、UNIQUE、DEFAULT等约束条件。l表选项:在定义列选项的时候,可以将某列定义为PRIMARYKEY,但是当主键是由多个列组成的多列索引时,定义列时无法定义此主键,这时就必须在语句最后加上一个PRIMARYKEY(,)子句定义的表选项。另外,表选项中还可以定义索引和完整性约束。【强化练习】(1)设计学生成绩

47、管理数据库时涉及3个表:学生信息表(命名为XSB)、课程表(命名为KCB)和成绩表(命名为CJB),设计过程略。设计完成后的表结构如表3.5至表3.7所示,要求使用命令方式创建这些表。为了和图书管理系统中使用的中文列名做区别,PXSCJ数据库中表的列名均采用英文字母。创建XSB表的语句如下所示:USEPXSCJGOCREATETABLEXSB(XHchar(6)NOTNULLPRIMARYKEY,XMchar(8)NOTNULL,XBbitNULLDEFAULT1,CSSJdateNULL,ZYchar(12)NULL,ZXFintNULL,BZvarchar(500)NULL)创建KCB表的

48、语句如下:CREATETABLEKCB(KCHchar(3)NOTNULLPRIMARYKEY,KCMchar(16)NOTNULL,KKXQtinyintNULL,XStinyintNULL,XFtinyintNULL)创建CJB表的语句如下:CREATETABLECJB(XHchar(6)NOTNULL,KCHchar(3)NOTNULL,CJintNULL,PRIMARYKEY(XH,KCH)(2)在学生成绩管理数据库PXSCJ中创建一个带计算列的表,表中包含课程的课程号、总成绩和学习该课程的人数,和课程的平均成绩。CREATETABLEPJCJ(课程号char(3)PRIMARYKEY

49、,总成绩realNOTNULL,人数intNOTNULL,平均成绩AS总成绩/人数PERSISTED)返回返回ALTERTABLE语句用于更改原有的表结构。例如,可以增加或删减列,更改原有列的类型,修改列的选项等。语法格式:ALTERTABLEALTERCOLUMNNULL|NOTNULL/*修改已有列的属性*/|ADD/*添加列*/|ASPERSISTEDNOTNULL/*添加计算列*/|/*添加表选项*/,n|DROPCOLUMN/*删除列*/|/*删除约束*/|其他lALTERCOLUMN子句。修改表中已有列的属性,如修改数据类型等。“NULL|NOTNULL”表示将列设置为是否可为空,

50、设置成NOTNULL时要注意表中该列是否有空数据。例如,要把表“t1”中的一个列“b”的数据类型改为int,并且为非空:ALTERTABLEt1ALTERCLOUMNbintNOTNULLlADD子句。ADD子句用于向表中添加普通列、计算列和表选项。例如,要在表“t1”中添加新列“a”:ALTERTABLEt1ADDCOLUMNatinyintNULL使用ADD子句一次可以添加多个列,中间用逗号隔开。lDROP子句。DROP子句用于删除表中的列或约束。例如,删除表“t1”中的列“a”:ALTERTABLEt1DROPCOLUMNa【强化练习】(1)设已经在学生成绩管理数据库PXSCJ中创建了表

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com