第2章数据库和表的创建课件

上传人:无*** 文档编号:241627357 上传时间:2024-07-11 格式:PPT 页数:59 大小:737KB
返回 下载 相关 举报
第2章数据库和表的创建课件_第1页
第1页 / 共59页
第2章数据库和表的创建课件_第2页
第2页 / 共59页
第2章数据库和表的创建课件_第3页
第3页 / 共59页
点击查看更多>>
资源描述
第二章第二章 数据库和表的创建数据库和表的创建2.1.1创建数据库创建数据库2.1.2修改数据库修改数据库2.1.3删除数据库删除数据库2.2表的操作表的操作2.2.1创建表创建表2.2.2修改表修改表2.2.3向表中添加数据向表中添加数据2.2.4修改和删除表中的数据修改和删除表中的数据2.2.5删除表删除表2.1SQLServer数据库概述数据库概述7/11/2024第二章第二章 数据库和表的创建数据库和表的创建 SQL Server2000 SQL Server2000 中一台服务器上可创建多个数据库。中一台服务器上可创建多个数据库。SQL Server2000SQL Server2000中的数据库是由数据表的集合组成的,每个数中的数据库是由数据表的集合组成的,每个数据表中包含数据以及其他数据库对象,这些对象包括视图、索据表中包含数据以及其他数据库对象,这些对象包括视图、索引、存储过程和触发器等。引、存储过程和触发器等。数据库系统使用一组操作系统文件来映射数据库管理系统数据库系统使用一组操作系统文件来映射数据库管理系统中保存的数据库,数据库中的所有数据和对象都存储在其映射中保存的数据库,数据库中的所有数据和对象都存储在其映射的操作系统文件中。这些操作系统文件可以是数据文件或日志的操作系统文件中。这些操作系统文件可以是数据文件或日志文件。文件。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建2.1 SQL ServerSQL Server数据库概述数据库概述数据库文件和文件组数据库文件和文件组 SQL SQL ServerServer的的数数据据库库由由数数据据文文件件和和日日志志文文件件组组成成。数数据据文文件件是是用用来来存存放放数数据据库库中中的的数数据据的的。数数据据文文件件又又包包括括主主数数据据文文件件和和次次数数据据文文件件。每每个个数数据据库库都都包包括括一一个个主主数数据据文文件件和和一一个个或或多个日志文件,还可以有次数据文件。多个日志文件,还可以有次数据文件。主主数数据据文文件件(.mdf)(.mdf):存存储储数数据据信信息息和和数数据据库库的的启启动动信信息息。一个数据库有且仅有一个主数据文件。一个数据库有且仅有一个主数据文件。次次数数据据文文件件(.ndf)(.ndf):存存储储主主数数据据文文件件存存储储不不下下的的数数据据信信息息。一个数据库可以没有次数据文件,也可有多个次数据文件。一个数据库可以没有次数据文件,也可有多个次数据文件。日日志志文文件件(.ldf)(.ldf):存存储储数数据据库库的的所所有有事事务务日日志志信信息息,包包含含用用于于恢恢复复数数据据库库的的日日志志信信息息,一一个个数数据据库库至至少少有有一一个个日日志志文件,也可以有多个日志文件。文件,也可以有多个日志文件。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建数据库文件组数据库文件组为为了了方方便便管管理理、提提高高系系统统性性能能,将将多多个个数数据据库库文文件件组组织织成成一一组组,即即称称为为数数据据库库文文件件组组。数数据据库库文文件件组组控控制制各各个个文文件件的的存存放放位位置置,常常常常将将每每个个文文件件建建立立在在不不同同的的硬硬盘盘驱驱动动器器上上。这这样样可可以以减减轻轻单单个个硬硬盘盘驱驱动动器器的的存存储储负负载载,提提高高数数据据库库的的存存储储效效率率,从而实现提高系统性能的目的。从而实现提高系统性能的目的。在使用数据库文件和文件组时,应该注意以下几点:在使用数据库文件和文件组时,应该注意以下几点:1)1)每个文件或文件组只能用于一个数据库。每个文件或文件组只能用于一个数据库。2)2)每个文件只能属于一个文件组。每个文件只能属于一个文件组。3)3)日日志志文文件件是是独独立立的的。数数据据库库的的数数据据和和日日志志信信息息不不能能放放在在同一个文件或文件组中,数据文件和日志文件总是分开的。同一个文件或文件组中,数据文件和日志文件总是分开的。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建系统数据库和示例数据库系统数据库和示例数据库 SQL Server SQL Server支持系统数据库、示例数据库和用户数据库。支持系统数据库、示例数据库和用户数据库。系系统统和和示示例例数数据据库库是是在在安安装装 SQL SQL ServerServer后后自自动动创创建建的的,用户数据库是由系统管理员或授权的用户创建的数据库。用户数据库是由系统管理员或授权的用户创建的数据库。系统数据库系统数据库 SQL Server SQL Server的系统数据库包括以下几个数据库:的系统数据库包括以下几个数据库:mastermaster数据库数据库 是是SQL SQL ServerServer的的总总控控数数据据库库,保保存存了了SQL SQL ServerServer系系统统的的全全部部系系统统信信息息、所所有有登登录录信信息息和和系系统统配配置置,保保存存了了所所有有建建立立的的其其他他数数据据库库及及其其有有关关信信息息。用用户户应应随随时时备备份份该该数据库,以保证系统的正常运行。数据库,以保证系统的正常运行。mastermaster数数据据库库中中包包含含大大量量的的系系统统表表、视视图图和和存存储储过过程程,用用于于保保存存ServerServer级级的的系系统统信信息息,并并实实现现系系统统管管理理。其中特有的、常用的系统表和存储过程见附录其中特有的、常用的系统表和存储过程见附录B B和附录和附录C C。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建tempdbtempdb数据库数据库 tempdbtempdb是是一一个个临临时时数数据据库库,是是全全局局资资源源,它它保保存存全全部部的的临临时时表表和和临临时时存存储储过过程程。每每次次启启动动 SQL SQL ServerServer时时,tempdbtempdb数数据据库库都都被被重重建,因此,该数据库在系统启动时总是干净的。建,因此,该数据库在系统启动时总是干净的。使使用用tempdbtempdb不不需需要要特特殊殊的的权权限限。不不管管SQL SQL ServerServer中中安安装装了了多多少少数数据据库库,tempdbtempdb只只有有一一个个。tempdbtempdb是是系系统统中中负负担担最最重重的的数数据据库库,几几乎所有的查询都可能使用它。乎所有的查询都可能使用它。modelmodel数据库数据库 是是一一个个模模板板数数据据库库。每每当当创创建建一一个个新新数数据据库库时时,SQL SQL ServerServer就就复复制制modelmodel数数据据库库的的内内容容到到新新建建数数据据库库中中,因因此此,所所有有新新建建数数据据库库的内容都和这个数据库完全一样。的内容都和这个数据库完全一样。如如果果用用户户想想使使每每个个新新建建的的数数据据库库一一开开始始就就具具有有某某些些对对象象,可可以以将将这这些些对对象象放放到到modelmodel数数据据库库中中,这这样样所所有有新新建建的的数数据据库库都都将将继继承承这这些些内内容容。modelmodel数数据据库库中中有有1818个个系系统统表表(master(master数数据据库库中中也也有有这这些些系统表系统表)、视图以及存储过程,用于保存数据库级的系统信息。、视图以及存储过程,用于保存数据库级的系统信息。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建msdbmsdb数据库数据库 msdbmsdb数数据据库库是是一一个个和和自自动动化化有有关关的的数数据据库库。SQL SQL Server Server 代代理理(SQL SQL Server Server AgentAgent)使使用用 msdbmsdb数数据据库库来来安安排排报报警警、作作业业,并并记记录录操操作作员员。如如完完成成一一些些调调度度性性的的工作,备份和复制等。工作,备份和复制等。示例数据库示例数据库SQL ServerSQL Server的示例数据库主要包括以下两个数据库。的示例数据库主要包括以下两个数据库。pubspubs数据库数据库一一个个图图书书出出版版方方面面的的示示例例数数据据库库,虽虽然然用用户户可可以以随随时时修修改改、甚甚至至删删除除该该数数据据库库,但但建建议议用用户户保保留留该该数数据据库库,以便更好地学习以便更好地学习SQL ServerSQL Server。NorthwindNorthwind数据库数据库一一个个涉涉及及虚虚构构的的NorthwindNorthwind贸贸易易公公司司在在世世界界范范围围内内进出口食品的销售情况示例数据库。进出口食品的销售情况示例数据库。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建2.1.1 创建数据库创建数据库创创建建数数据据库库:就就是是为为数数据据库库确确定定名名称称、大大小小、存存放放位位置置、文文件件名和所在文件组的过程。名和所在文件组的过程。文文件件名名称称:数数据据文文件件和和日日志志文文件件的的名名称称(逻逻辑辑名名)。文文件件名名必必须须符符合合命命名名规规则则。在在同同一一台台SQL SQL ServerServer服服务务器器上上,各各数数据据库库的的名名称称是是惟惟一一的的。数数据据库库的的创创建建信信息息存存放放在在mastermaster数数据据库库的的sysdatabasessysdatabases系系统统表表中中。创创建数据库后,系统自动把建数据库后,系统自动把modelmodel数据库中的信息复制到新建的数据库中。数据库中的信息复制到新建的数据库中。创创建建数数据据库库之之前前,首首先先要要考考虑虑数数据据库库的的拥拥有有者者、数数据据库库的的初初始始容容量量、最最大大容容量量、增增长长量量以以及及数数据据库库文文件件的的存存放放路路径径等等因因素素,文文件件大大小小一一般般以以MBMB为单位。为单位。SQL Server 2000SQL Server 2000中创建数据库的方法:中创建数据库的方法:使用企业管理器创建数据库使用企业管理器创建数据库使用使用Transact-SQLTransact-SQL语句创建数据库语句创建数据库使用向导创建数据库使用向导创建数据库7/11/2024第二章第二章 数据库和表的创建数据库和表的创建使用企业管理器创建数据库使用企业管理器创建数据库例:例:以默认形式创建以默认形式创建mydbmydb数据库,数据库,步骤如下:步骤如下:(1)(1)启启动动企企业业管管理理器器,连连接接服服务务器器,展展开开其其树树形形目目录录,用用鼠鼠标标右右键键单单击击【数数据据库库】文文件件夹夹,在在弹弹出出的的快快捷捷菜菜单单中中,单单击击【新新建数据库建数据库】打开图】打开图2-22-2所的对话框。所的对话框。(2)(2)在在【数数据据库库属属性性】对对话话框框的的【名名称称】文文本本框框内内输输入入数数据据库库名名(逻逻辑辑名名)。例例如如MyDBMyDB,这这个个对对话话框框自自动动以以该该数数据据库库名名命命名名,系系统统默默认认用用该该数数据据库库名名与与“_data”“_data”串串的的连连接接命命名名数数据据文文件件(见见图图2-32-3),该该数数据据库库名名与与“_log”“_log”串串的的连连接接命命名名日日志志文文件件(见见图图2-42-4)。这这两两个个不不同同选选项项卡卡界界面面内内的的设设置置,分分别别为为数数据据主主文文件件和和日日志志文文件件的的名名称称、存存储储位位置置、初初始始大大小小、所所属属文文件件组组(默默认认为为主主文文件件组组 PRIMARY)PRIMARY)、文文件件是是否否自自动动增增长长、增增长长的的方方式式和文件大小的限制等。和文件大小的限制等。(3)(3)单单击击【确确定定】按按钮钮,数数据据库库就就创创建建好好了了,在在默默认认位位置置、采采用默认设置创建了一个名为用默认设置创建了一个名为MyDBMyDB的数据库。的数据库。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建图图2-2 2-2 数据库属性对话框数据库属性对话框 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建图图2-3 2-3 数据文件选项卡界面数据文件选项卡界面 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建图图2-4 2-4 事务日志文件选项卡界面事务日志文件选项卡界面7/11/2024第二章第二章 数据库和表的创建数据库和表的创建使用使用Transact-SQLTransact-SQL命令创建数据库命令创建数据库CREATE DATABASE database_nameCREATE DATABASE database_name ON PRIMARY ON PRIMARY ,n ,n ,.n n LOG ON LOG ON ,.n n FOR LOAD|FOR ATTACH FOR LOAD|FOR ATTACH 其中,其中,(文件格式)语法格式如下:(文件格式)语法格式如下:(NAME=logical_,(NAME=logical_,os_ os_ ,SIZE =sizeSIZE =size ,MAXSIZE=max_size|UNLIMITEDMAXSIZE=max_size|UNLIMITED ,)7/11/2024第二章第二章 数据库和表的创建数据库和表的创建【例【例2-12-1】省略】省略CREATE DATABASECREATE DATABASE命令中各选项创建一个命令中各选项创建一个数据库数据库exampledblexampledbl。命令和执行结果见图。命令和执行结果见图2-52-5。图图2-5 2-5 创建数据库创建数据库exampledblexampledbl 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建【例例 2-22-2】使使 用用 ONON和和 LOGLOG ONON选选 项项 创创 建建 一一 个个 数数 据据 库库exampledb2exampledb2。命令和执行结果见图命令和执行结果见图2-62-6。图图2 2-6 6 创创建建数数据据库库e ex xa am mp pl le ed db b2 2 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建用向导创建数据库用向导创建数据库 使使用用向向导导创创建建数数据据库库是是一一种种非非常常简简单单的的方方法法。启启动动企企业业管管理器,在工具菜单中选择向导即可按向导进行相应的操作。理器,在工具菜单中选择向导即可按向导进行相应的操作。2.1.2 修改数据库修改数据库 创创建建数数据据库库后后,可可能能会会由由于于某某种种原原因因需需要要对对其其进进行行修修改改。例例如如增增加加和和删删除除数数据据库库的的文文件件和和文文件件组组、修修改改文文件件和和文文件件组组的的属属性性。但但只只有有sysadminsysadmin和和dbcreatordbcreator服服务务器器角角色色成成员员和和DBODBO才才能能修改数据库。修改数据库。使用企业管理器修改数据库使用企业管理器修改数据库 有两种方法来修改:有两种方法来修改:使用企业管理器修改数据库使用企业管理器修改数据库使用使用T-SQLT-SQL命令修改数据库命令修改数据库7/11/2024第二章第二章 数据库和表的创建数据库和表的创建使用企业管理器修改数据库使用企业管理器修改数据库步骤如下:步骤如下:(1)(1)启启动动企企业业管管理理器器,连连接接服服务务器器,展展开开其其树树形形目目录录,展展开开【数数据据库库】文文件件夹夹,用用鼠鼠标标右右键键单单击击要要修修改改的的数数据据库库名名,例例如如exampledb1exampledb1,在在弹弹出出的的快快捷捷菜菜单单中中,单单击击【属属性性】命命令令,则则弹弹出如图出如图2-72-7所示的对话框。所示的对话框。(2)(2)在在exampledb1exampledb1属属性性对对话话框框【数数据据文文件件】选选项项卡卡画画面面中中,可可以以修修改改数数据据库库的的主主文文件件组组和和用用户户定定义义文文件件组组中中各各数数据据文文件件的的信信息息,包包括括逻逻辑辑名名、物物理理文文件件名名、初初始始长长度度、所所属属文文件件组组及及自自动动增长的限制等。增长的限制等。(3)(3)单单击击【事事务务日日志志】选选项项卡卡,在在这这个个选选项项卡卡画画面面中中,用用户户可可以以修修改改数数据据库库的的日日志志文文件件的的信信息息,包包括括逻逻辑辑名名、物物理理文文件件名名、初始长度及自动增长的限制等。初始长度及自动增长的限制等。(4)(4)单单击击【文文件件组组】、【选选项项】、【权权限限】等等选选项项卡卡,可可以以修修改数据库的文件组、数据库选项、数据库访问权限等内容。改数据库的文件组、数据库选项、数据库访问权限等内容。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建图图2-7 2-7 数据库属性对话框数据库属性对话框 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建使用使用TransactSQLTransactSQL命令修改数据库命令修改数据库 ALTER DATABASE database ALTER DATABASE database ADD ADD,n)TOn)TO ADD LOG ADD LOG,nn REMOVE REMOVE|ADD|ADD|REMOVE|REMOVE|MODIFY FILE|MODIFY FILE|MODIFY|MODIFY 其中其中语法格式如下:语法格式如下:(NAME=logical_ (NAME=logical_ ,os_os_ ,SIZE=sizeSIZE=size ,MAXSIZE=max_ MAXSIZE=max_ size UNLIMITED size UNLIMITED ,growth_increment)growth_increment)7/11/2024第二章第二章 数据库和表的创建数据库和表的创建 【例【例2-42-4】在】在exampledblexampledbl数据库中添加一个文件组数据库中添加一个文件组 exampledbl_group exampledbl_group,命令行为:,命令行为:ALTER DATABASE exampledbl ALTER DATABASE exampledbl ADD exampledbl_group ADD exampledbl_group【例【例2-52-5】将一个新的数据文件】将一个新的数据文件exampledbl_data2exampledbl_data2添加到添加到 exampledbl exampledbl数据库的数据库的exampledbl_groupexampledbl_group文件组中,命令行为文件组中,命令行为 ALTER DATABASE exampledb1 ALTER DATABASE exampledb1 ADD FILE(ADD FILE(NAME=exampledbl_data2 NAME=exampledbl_data2,c:c:mssql2000mssql2000exampledbl_data2.mdf)exampledbl_data2.mdf)TO exampledbl_group TO exampledbl_group7/11/2024第二章第二章 数据库和表的创建数据库和表的创建【例例2-62-6】修修改改数数据据文文件件exampledb2exampledb2的的初初始始长长度度为为2MB(2MB(前前面面默默认认设置为设置为IMB)IMB),命令行为:,命令行为:ALTER DATABASE exampledbdb2 ALTER DATABASE exampledbdb2 MODIFY FILE (MODIFY FILE (NAME=exampledb2 NAME=exampledb2,SIZE=2)SIZE=2)【例例 2-72-7】将将 一一 个个 新新 的的 日日 志志 文文 件件 exampledbl_log2exampledbl_log2添添 加加 到到exampledblexampledbl数据库中,命令行为:数据库中,命令行为:ALTER DATABASE exampledbl ALTER DATABASE exampledbl ADD LOG FILE(ADD LOG FILE(NAME=exampledbl_log2 NAME=exampledbl_log2,c:c:mssql2000 exampledbl_log2mssql2000 exampledbl_log21df1df )7/11/2024第二章第二章 数据库和表的创建数据库和表的创建修改数据库名修改数据库名 系系统统存存储储过过程程sp_renamedb(sp_renamedb(在在mastermaster系系统统数数据据库库中中)能够修改数据库的名称。能够修改数据库的名称。在在使使用用sp_renamedbsp_renamedb修修改改数数据据库库名名之之前前,必必须须将将数数据据库库设设置置成成单单用用户户模模式式。设设置置数数据据库库为为单单用用户户模模式式,用用户户可可以以在在图图2-72-7所所示示的的数数据据库库属属性性对对话话框框中中选选择择【选选项项】,在在弹弹出出的的对对话话框框中中选选择择【限限制制访访问问】,再再选选中中该该数数据据库库的的【单单用用户户】选选项项。用用户户也也可可以以使使用用系系统统存存储储过过程程sp_dboption(sp_dboption(在在mastermaster系系统统数数据据库库中中)设设置置【单用户】选项。【单用户】选项。下下 述述 命命 令令 行行 是是 将将 exampledblexampledbl数数 据据 库库 更更 名名 为为exampledbexampledb的完整过程的完整过程,用用sp_helpdbsp_helpdb来查看。见图来查看。见图2-82-8。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建图图2-8 2-8 数据库更名过程数据库更名过程 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建2.1.3 删除数据库删除数据库使用企业管理器删除数据库使用企业管理器删除数据库 使使用用企企业业管管理理器器删删除除数数据据库库非非常常简简单单,但但每每次次只只能能删删除除一一个个数数据据库库。方方法法是是启启动动企企业业管管理理器器后后,展展开开【数数据据库库】文文件件夹夹,单单击击要要删删除除的的数数据据库库后后如如exampledb2exampledb2,用用鼠鼠标标右右键键单单击击要要删删除除的的数数据据库库名名,从从弹弹出出的的快快捷捷菜菜单单中中单单击击【删删除除】命命令令,系系统统弹弹出出警警告告对对话话框框见见图图2-92-9,要要求求用用户户确确认认是是否否删删除除该该数数据据库库,单单击【是】按钮,就删除了该数据库。击【是】按钮,就删除了该数据库。使用使用TransactSOLTransactSOL命令删除数据库命令删除数据库 DROP DATABASE database_name DROP DATABASE database_name ,nn database_namedatabase_name指指定定要要删删除除的的数数据据库库,且且一一次次可可以以删删除除多多个个数数据据库库。但但不不要要随随便便删删除除系系统统数数据据库库,可可能能会会造造成成SQL SQL ServerServer系统崩溃。系统崩溃。【例【例2-82-8】删除数据库】删除数据库exampledb,exampledb2exampledb,exampledb2。DROP DATABASE exampledb,exampledb2 DROP DATABASE exampledb,exampledb2 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建图图2-9 2-9 删除数据库对话框删除数据库对话框7/11/2024第二章第二章 数据库和表的创建数据库和表的创建2.2 表的操作表的操作 SQL SQL ServerServer的的一一个个数数据据库库中中可可以以存存储储2020亿亿个个表表,一一个个表表最最多多允允许许定定义义10241024个个列列。表表的的行行数数和和总总大大小小仅仅受受可可使使用用空空间间的的限限制。表的每一列必须具有相同的数据类型。制。表的每一列必须具有相同的数据类型。命名表命名表 在在一一个个数数据据库库中中,允允许许多多个个用用户户创创建建表表。创创建建表表的的用用户户称称为为该该表表的的所所有有者者。因因此此,表表的的名名称称应应该该体体现现数数据据库库、用用户户和和表表名三方面的信息。格式如下:名三方面的信息。格式如下:database_name.owner.table_name database_name.owner.table_name数据类型数据类型 确确定定表表的的每每列列的的数数据据类类型型,是是设设计计表表的的重重要要步步骤骤。列列的的数数据类型就是定义该列所能存放的数据的值。据类型就是定义该列所能存放的数据的值。SQL SQL Server Server 20002000的的数数据据类类型型很很丰丰富富,这这里里仅仅给给出出SQL SQL Server Server 常用的数据类型。见常用的数据类型。见表表2-42-4。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建设计表设计表 在在为为一一个个数数据据库库设设计计表表之之前前,应应该该完完成成了了需需求求分分析析,确确定定了了概概念念模模型型,将将概概念念模模型型转转换换为为关关系系模模型型。关关系系模模型型中中的的每每一一个关系对应数据库中的一个表。个关系对应数据库中的一个表。由由第第1 1章章和和第第2 2章章对对图图书书管管理理系系统统的的分分析析与与设设计计知知,若若该该系系统统的的数数据据库库为为已已创创建建的的MyDbMyDb数数据据库库,则则需需要要为为该该数数据据库库创创建建读读者者信信息息表表(Readers)(Readers)、图图书书信信息息表表(Books)(Books)、借借阅阅信信息息表表(Borrowinf)(Borrowinf)、读者类型表(、读者类型表(typetype)。)。创创建建表表的的过过程程,就就是是将将一一种种具具体体的的关关系系DBMSDBMS(例例如如SQL SQL Server Server 20002000)作作为为工工具具,实实现现关关系系模模型型(逻逻辑辑模模型型)到到物物理理模模型型的的转转换换,即即关关系系模模型型的的物物理理实实现现。因因此此,以以下下称称关关系系为为表表,称元组为行(或记录),称属性为列(或字段)称元组为行(或记录),称属性为列(或字段)。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建 设计表时需要确定如下内容:设计表时需要确定如下内容:1)1)表中需要的列以及每一列的类型表中需要的列以及每一列的类型(必要时还要有长度必要时还要有长度)。2)2)列是否可以为空。列是否可以为空。3)3)是否需要在列上使用约束、默认值和规则。是否需要在列上使用约束、默认值和规则。4)4)需要使用什么样的索引。需要使用什么样的索引。5)5)哪些列作为主键。哪些列作为主键。表表的的设设计计要要体体现现完完整整性性约约束束的的实实现现。实实体体完完整整性性约约束束的的体体现现是是主主键键约约束束,即即主主键键的的各各列列不不能能为为空空,且且主主键键作作为为行行的的惟惟一一标标识识;外外键键约约束束是是参参照照完完整整性性约约束束的的体体现现;默默认认值值和和规规则则等等是是用用户户定定义义的的完完整整性性约约束束的的体现。体现。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建下下面面对对SQL SQL Server Server 2000 2000 中中实实现现用用户户定定义义完完整整性性的的方方法法予以介绍予以介绍:。检查检查(CHECK)(CHECK)检检查查约约束束使使用用逻逻辑辑表表达达式式来来限限制制列列上上可可以以接接受受的的数数据据。比比如如,可可以以指指定定BooksBooks表表中中的的定定价价必必须须大大于于零零,这这样样当当插插入入表表中中的的图图书书记记录录的的定定价价为为0 0或或负负数数时时,插插入入操操作作不不能能成成功功执执行,从而保证了表中数据的正确性。行,从而保证了表中数据的正确性。可可以以在在一一列列上上使使用用多多个个检检查查约约束束,在在表表上上建建立立的的一一个个检检查约束也可以在多个列上使用。查约束也可以在多个列上使用。默认值默认值(DEFAULT)(DEFAULT)数数据据库库中中每每一一行行中中的的每每一一列列都都应应该该有有一一个个值值,当当然然这这个个值值也也可可以以是是空空值值。但但有有时时向向一一个个表表中中添添加加数数据据(添添加加一一行行记记录录)时时,某某列列的的值值不不能能确确定定,或或该该列列的的值值大大量量重重复复的的取取同同一一个个值值,这这时时可可以以将将该该列列定定义义为为允允许许接接受受空空值值或或给给该该列列定定义义一个默认值。一个默认值。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建空值空值(NULL)(NULL)空空值值(NULL)(NULL)意意味味着着数数据据的的值值不不确确定定。比比如如,BooksBooks表表中中某某一一行行的的“出出版版社社”列列为为空空值值,并并不不表表示示该该书书没没有有出出版版社社,而而是是表表示示目目前前还还不不知知道道它它的的出出版社。版社。又又如如,表表BooksBooks中中的的书书名名列列设设置置为为不不允允许许取取空空值值,则则输输入入数数据据时时,必必须须给给该该列列指指定定非非空空值值,否否则则输入失败。输入失败。使使用用以以上上这这些些约约束束实实施施的的完完整整性性被被称称为为声声明明型型数数据据完完整整性性,它它们们是是作作为为表表和和列列定定义义的的一一部部分分在在语语法法中中实实现现的的,可可以以在在CREATE CREATE TABLETABLE语语句句或或ALTER ALTER TABLETABLE语句中定义或修改。语句中定义或修改。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建2.2.1 创建表创建表使用企业管理器创建表使用企业管理器创建表 利用企业管理器提供的图形界面来创建表,步骤如下:利用企业管理器提供的图形界面来创建表,步骤如下:(1)(1)在在树树形形目目录录中中展展开开【服服务务器器组组】【服服务务器器】【数数据据库库】【MyDbMyDb】。】。(2)(2)选选择择【表表】,单单击击鼠鼠标标右右键键,在在弹弹出出的的快快捷捷菜菜单单中中选选择择【新建表新建表.】命令,打开设计表对话框。】命令,打开设计表对话框。(3)(3)如如图2-102-10所所示示,设计表表对话框框的的上上半半部部分分有有一一个个表表格格,在在这个个表表格格中中输入入列列的的列列名名、数数据据类型型、长度度(有有的的数数据据类型型不不需需要要指指定定长度度,如如datetimedatetime类型型的的长度度为固固定定值8 8)、是是否否可可以以为空空,在在允允许空空域域中中单击鼠鼠标左左键,可可以以切切换是是否否允允许为空空值的的状状态,打打勾勾说明明允允许为空空值,空空白白说明明不不允允许为空空值,默默认状状态是允是允许为空空值的。的。(4)(4)图图2-102-10所所示示的的设设计计表表对对话话框框的的下下半半部部分分是是特特定定列列的的详详细细属属性,包括是否是标识列、是否使用默认值等。性,包括是否是标识列、是否使用默认值等。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建 (5)(5)用图用图2-102-10所示的方法逐个定义好表中的列。所示的方法逐个定义好表中的列。(6)(6)设设置置主主键键约约束束:选选中中要要作作为为主主键键的的列列,单单击击工工具具条条上上的的【设设置置主主键键】按按钮钮,主主键键列列的的前前上上方方将将显显示示钥钥匙匙标标记记,如如图图2-112-11所示。所示。(7)(7)鼠鼠标标右右键键单单击击表表中中的的任任意意一一行行(即即任任意意一一个个列列的的定定义义),在在弹弹出出的的快快捷捷菜菜单单中中选选择择【属属性性】命命令令,可可以以打打开开如如图图2-122-12所所示示的的表表属属性性对对话话框框,在在该该对对话话框框中中选选择择表表选选项项卡卡,可可以以指指定定表表的的属属性性,比比如如表表名名、所所有有者者、表表的的标标识识列列等等。图图2-122-12中中将将表表的的名名称设置为称设置为ReadersReaders,所有者设置为所有者设置为dbodbo。(8)(8)在在属属性性对对话话框框中中选选择择【关关系系】选选项项卡卡,可可以以设设置置列列上上的的外外键键约约束束。选选择择【索索引引/键键】选选项项卡卡,可可以以设设置置列列上上的的索索引引,以以及及主主键键约约束束和和惟惟一一性性约约束束。选选择择【checkcheck约约束束】选选项项卡卡,可可以以设置列上的检查约束。设置列上的检查约束。(9)(9)定定义义好好所所有有列列后后,单单击击图图2-112-11工工具具栏栏上上的的 按按钮钮,表表就就创建完成了。创建完成了。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建图图2-10 2-10 创建表对话框创建表对话框 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建图图2-11 2-11 将编号设为主键将编号设为主键 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建图图2-12 2-12 指定表的属性指定表的属性 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建创建惟一性约束的步骤如下:创建惟一性约束的步骤如下:(1)(1)在在如如图图2-122-12所所示示的的属属性性对对话话框框的的【索索引引/键键】选选项项卡卡中中,单单击击【新新建建】按钮。】按钮。(2)(2)在列名列表中选择要定义惟一性约束。在列名列表中选择要定义惟一性约束。(3)(3)选中【创建选中【创建UNIQUEUNIQUE】复选框,表示创建惟一性约束。】复选框,表示创建惟一性约束。(4)(4)在索引名框中输入约束名,或接受默认的名字。在索引名框中输入约束名,或接受默认的名字。创建外键约束的步骤如下:创建外键约束的步骤如下:(1)(1)在在图图5-125-12所所示示的的属属性性对对话话框框的的【关关系系】选选项项卡卡中中,单单击击【新新建建】按按钮。钮。(2)(2)在在【外外键键表表】下下拉拉列列表表框框中中选选择择要要定定义义外外健健约约束束的的表表,并并在在其其下下的的列表中选择表中要定义外键约束的列。列表中选择表中要定义外键约束的列。(3)(3)在在【主主键键表表】下下拉拉列列表表框框中中选选择择外外键键引引用用的的表表,并并在在其其下下的的列列表表中中选择表中外键引用的列。选择表中外键引用的列。(4)(4)在【关系名】框中输入约束的名称,或接受默认的名称。在【关系名】框中输入约束的名称,或接受默认的名称。(5)(5)选择【级联更新相关的字段】复选框指定使用级联修改。选择【级联更新相关的字段】复选框指定使用级联修改。(6)(6)选择【级联删除相关的记录】复选框指定使用级联删除。选择【级联删除相关的记录】复选框指定使用级联删除。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建创建检查约束的步骤如下创建检查约束的步骤如下:(1)(1)在在如如图图2-122-12所所示示的的属属性性对对话话框框的的【checkcheck约约束束】选项卡中,单击【新建】按钮。】选项卡中,单击【新建】按钮。(2)(2)在【约束表达式】框中输入检查表达式。在【约束表达式】框中输入检查表达式。(3)(3)在在【约约束束名名】框框中中输输入入约约束束的的名名称称,或或接接受受默默认的名称。认的名称。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建使用使用Transact-SQLTransact-SQL命令创建表命令创建表 在在Transact-SQLTransact-SQL中中,使使用用CREATE CREATE TABLETABLE命命令令创建建表表。语法法格式如下:格式如下:CREATE TABLE CREATE TABLE database_name.owner.|owner.Table_name database_name.owner.|owner.Table_name (-(-列定列定义|column_name AS computed_column_expression|column_name AS computed_column_expression -计算列定算列定义|,n ,n )ON ON TEXTIMAGE_ON TEXTIMAGE_ON 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建【例【例2-92-9】创建图书信息表创建图书信息表BooksBooks。CREATE TABLE booksCREATE TABLE books (编号编号 char(15)PRIMARY KEY NOT NULL char(15)PRIMARY KEY NOT NULL CONTRAINT PK_Books PRIMARY KEY,CONTRAINT PK_Books PRIMARY KEY,书名书名 varchar(42)NULL,varchar(42)NULL,作者作者 varchar(8)NULL,varchar(8)NULL,出版社出版社 varchar(28)NULL,varchar(28)NULL,定定价价 real real NULL NULL CONTRAINT CONTRAINT CK_Books CK_Books CHECK(CHECK(定定价价0)0)7/11/2024第二章第二章 数据库和表的创建数据库和表的创建【例【例2-102-10】创建图书借阅信息表创建图书借阅信息表BorrowinfBorrowinf。CREATE TABLE borrowinf CREATE TABLE borrowinf (读者编号读者编号 char(8)NOT NULL char(8)NOT NULL REFERENCE Readers(REFERENCE Readers(编号编号)ON DELETE CASCADE,)ON DELETE CASCADE,图书编号图书编号char(15)NOT NULLchar(15)NOT NULL FOREIGN KEY(FOREIGN KEY(图书编号图书编号)REFERENCES Books(REFERENCES Books(编号编号)ON DELETE NO ACTION,)ON DELETE NO ACTION,借期借期 datetime NULL DEFAULT(getdate(),datetime NULL DEFAULT(getdate(),还期还期 datetime NULL datetime NULL )ON DELETE ON DELETE子句有两个选项。子句有两个选项。NO NO ACTIONACTION:被被其其他他表表外外键键引引用用的的行行不不能能被被删删除除,这这是是SQL SQL Server 7.0Server 7.0以前版本的做法。以前版本的做法。CASCADE:CASCADE:被被其其他他表表外外键键引引用用的的行行可可以以被被删删除除,而而且且其其他他表表中通过外键引用了该行的行都将被删除。中通过外键引用了该行的行都将被删除。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建【例【例2-112-11】创建读者信息表创建读者信息表readersreaders。CREATE TABLE readers CREATE TABLE readers (编号编号char(10)NOT NULL PRIMARY KEY,char(10)NOT NULL PRIMARY KEY,姓名姓名char(8)NULL,char(8)NULL,读者类型读者类型 int NULL,int NULL,限借阅数量限借阅数量 int NULL int NULL,借阅期限借阅期限 int NULL int NULL )7/11/2024第二章第二章 数据库和表的创建数据库和表的创建2.2.2 修改表修改表可以使用可以使用ALTER TABLE ALTER TABLE 语句或企句或企业管理器管理器进行表的修改。行表的修改。ALTER TABLEALTER TABLE命令格式命令格式 ALTER TABLE ALTER TABLE table_name table_name ALTER COLUMN ALTER COLUMN column_namecolumn_name new_data_typenew_data_type(precisionprecision,scalescale)NULL|NOT NULL)NULL|NOT NULL|ADD|DROPROWGUIDCOL|ADD|DROPROWGUIDCOL|ADD|ADD|column_name column_name AS AS computed_column_expressioncomputed_column_expression,.,.n n|WITH CHECK|WITH NOCHECK|WITH CHECK|WITH NOCHECK|ADD ,.|ADD ,.n n|DROP CONSTRAINT|DROP CONSTRAINTconstraint_nameconstraint_name|COLUMN|COLUMN column column ,.,.n n|CHECK|NOCHECK CONSTRAINT|CHECK|NOCHECK CONSTRAINT ALL|ALL|constraint_nameconstraint_name,.,.n n 7/11/2024第二章第二章 数据库和表的创建数据库和表的创建修改列属性修改列属性 表表中中的的每每一一列列都都有有列列名名、数数据据类类型型、数数据据长长度度以以及及是是否否允允许为空值等属性,这些属性可以在表创建后修改。许为空值等属性,这些属性可以在表创建后修改。修修改改列列属属性性使使用用子子句句ALTER ALTER COLUMNCOLUMN。比比如如,以以下下的的语语句句将将rooksrooks表表的的出出版版社社列列改改为为最最大大长长度度为为3030的的varcharvarchar型型数数据据,且且不不允许空值。允许空值。ALTER TABLE Books ALTER COLUMN ALTER TABLE Books ALTER COLUMN 出版社出版社 varchar(30)NOT NULL varchar(30)NOT NULL 默默认认状状态态下下,列列是是被被设设置置为为允允许许空空值值的的,将将一一个个原原来来允允许许空空 值的列改为不允许空值,必须满足以下两个条件:值的列改为不允许空值,必须满足以下两个条件:表中记录在该列上均不为空值。表中记录在该列上均不为空值。该列上没有创建索引。该列上没有创建索引。7/11/2024第二章第二章 数据库和表的创建数据库和表的创建添加和删除列添加和删除列 向向表表中中增增加加列列时时,应应使使新新增增加加的的列列有有默默认认值值或或允允许许为为空空值值,如如果果既既没没有有提提供供默默认认值值也也不不允允许许为为空空值值,那那么么新新增增列列的的操操作将出错。作将出错。向表中添加列需要使用向表中添加列需要使用ALTER TABLEALTER TABLE的的ADDADD子句。子句。例例如如,向向表表booksbooks中中添添加加出出版版日日期期列列,DataTime,DataTime型型,允允许许空空值值,可以使用如下语句可以使用如下语句:ALTER TABLE books ADD ALTER TABLE books ADD 出版日期出版日期 datetime NULL datetime NULL 又又如如,向向readersreaders表表中中添添加加电电子子邮邮件件地地址址列列,且且要要求求输输入入的的电子邮件地址必须包含:电子邮件地址必须包含:符号,可以使用以下语句:符号,可以使用以下语句:ALTER TABLE readers ADD ALTER TABLE readers ADD 邮件地址邮件地址 varchar(50)NULL varchar(50)NULL CONSTRAINT CK_EA CHECK(CONSTRAINT CK_EA CHECK(邮件地址邮件地址likelike,%)%)7/11/2024第二章第二章 数据库和表的创建数据库和表的创建删除删除列需要使用列需要使用ALTER TABLEALTER TABLE的子句。的子句。比如,比如,删除删除readersreaders表的邮件表的邮件地址列,可以使用以下语句:地址列,可以使用以下语句:ALTER TABLE readers DROP COLUMNALTER TABLE readers DROP COLUMN邮件地址邮件地址修改约束修改约束 如如果果创创建建表表borrowinfborrowinf时时没没有有定定义义主主键键约约束束(该该表表的的主主键键由由读读者者编编号号、图图书书编编号号、借借期期3 3个个属属性性列列组组成成),则则可可以以用用以以下下语语句定义主键:句定义主键:ALTER TABLE Readers ADD CONSTRAINT PK_BHALTER TABLE Readers ADD CONSTRAINT PK_BH 表中已有的数据在这几列上需要满足以下两个条件:表中已有的数据在这几列上需要满足以下两个条件:不能有重复的数据。不能有重复的数据。不能有空值。不能有空值。删除主键约束删除主键约束PK_BHPK_BH,可以使用以下语句:,可以使用以下语句:ALTER TABLE Readers DROP CONSTRAINT PK_BH ALTER TABLE Readers DROP CONSTRAINT PK_BH PRIMARY KEY(PRIMARY KEY(读者编号读者编号,图书编号图书编号,借期借期)7/11/2024第二章第二章 数据库和表的创建数据库和表的创建修改约束时几个子句的说明:修改约束时几个子句的说明:(1)WITH NOCHECK (1)WITH NOCHECK子句子句 添添加加的的约约束束只只对对在在以以后后改改变变或或插插入入的的行行发发生生作作用用,而而不不检查已存在的行。检查已存在的行。比比如如,要要对对booksbooks表表的的定定价价列列添添加加约约束束,使使定定价价大大于于O O,可以使用如下代码:可以使用如下代码:ALTER TABLE Books WITH NOCHECKALTER TABLE Books WITH NOCHECK ADD CONSTRAINT CK_Books(ADD CONSTRAINT CK_Books(定价定价0)0)(2)(2)NOCHECK NOCHECK CONSTRAINTCONSTRAINT子子句句和和CHECK CHECK CO
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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