770 likes | 1.01k Views
第 2 章 数据库和表创建. 2.1 SQL Server 基本概念. 2.1.1 数据库. 1. 逻辑数据库 SQL Server 2000 数据库是存储数据的容器,是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。. 2.1.1 数据库. ( 1 ) 完全限定名 完全限定名是对象的全名,包括四个部分:服务器名、数据库名、所有者名和对象名,其格式为: server.database.owner.object 在 SQL Server 2000 上创建的每个对象都必须有一个唯一的完全限定名。 ( 2 ) 部分限定名
E N D
第2章 数据库和表创建 2.1 SQL Server基本概念
2.1.1 数据库 1. 逻辑数据库 SQL Server 2000数据库是存储数据的容器,是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。
2.1.1 数据库 (1) 完全限定名 完全限定名是对象的全名,包括四个部分:服务器名、数据库名、所有者名和对象名,其格式为: server.database.owner.object 在SQL Server 2000上创建的每个对象都必须有一个唯一的完全限定名。 (2) 部分限定名 在使用T-SQL编程时,使用全名往往很繁琐且没有必要,所以常省略全名中的某些部分,对象全名的四个部分中的前三个部分均可以被省略,当省略中间的部分时,圆点符“.”不可省略。 在部分限定名中,未指出的部分使用以下默认值: 服务器:默认为本地服务器。 数据库:默认为当前数据库。 所有者:默认为在数据库中与当前连接会话的登录标识相关联的数据库用户名,或者数据库所有者(dbo)。
2.1.1 数据库 2. 物理数据库 • 下面讨论物理数据库的文件和文件组。 • 文件 • SQL Server 2000使用一组操作系统文件来存储数据库的各种逻辑成分,包括三类文件: • (1)主数据文件 • 主数据文件简称主文件,正如其名字所示,该文件是数据库的关键文件,包含了数据库的启动信息,并且存储数据。每个数据库必须有且仅能有一个主文件,其默认扩展名为.MDF。 • (2)辅助数据文件 • 辅助数据文件简称辅(助)文件,用于存储未包括在主文件内的其他数据。辅助文件的默认扩展名为.NDF。 (3)日志文件 日志文件用于保存恢复数据库所需的事务日志信息。每个数据库至少有一个日志文件,也可以有多个。日志文件的扩展名为.LDF。
2.1.1 数据库 • 文件组 有两类文件组: (1)主文件组 主文件组主数据文件和任何没有明确指派给其它文件组的其它文件。 (2)用户定义文件组 T-SQL语句中用于创建和修改数据库的语句分别是CREATE DATABASE语句和ALTER DATABASE。 在安装SQL Server 2000时,将创建四个系统数据库:master、model、msdb和tempdb。 (1)master包含了SQL Server诸如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和SQL Server的运行。 (2)model数据库为新创建的数据库提供模板。 (3)msdb为SQL Server Agent调度信息和作业记录提供存储空间。 (4)tempdb为临时表和临时存储过程提供存储空间,所有与系统连接的用户的临时表和临时存储过程都存储于该数据库中。
2.1.2 表 表是在日常工作和生活中经常使用的一种表示数据及其关系的形式,表2.2就是一个学生情况表。
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身份登录计算机,并启动SQL Server服务。 第1步 开始程序Microsoft SQL Server企业管理器,SQL Server“企业管理器”启动。
2.2.1 数据库的创建、修改和删除 第2步 在“SQL Server Enterprise Manager”窗口中展开Microsoft SQL Servers和SQL Server组,选择SQL Server服务器。在选择的SQL Server服务器上点击鼠标右键,出现如图2.1所示的快捷菜单,选择“新建”“数据库…”。
2.2.1 数据库的创建、修改和删除 第3步 第2步操作结束后,出现如图2.2所示的“数据库属性”对话框,该对话框共有三个选项卡:常规、数据文件和日志文件。在“常规”选项卡“名称”文本框中输入创建的数据库名(本例中数据库名为XSCJ)。
2.2.1 数据库的创建、修改和删除 系统的主数据文件默认存储位置和文件如下: SQL Server 2000根目录\data\数据库名_Data.MDF 系统的主日志文件的默认存储位置和文件如下: SQL Server 2000根目录\data\数据库名_Log.LDF 本例中SQL Server 2000安装目录为e:\sql,所以创建的XSCJ数据库的数据文件和日志文件的默认路径及文件分别为: e:\sql\data\XSCJ_Data.MDF e:\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) 使用向导创建数据库(Create Database Wizard) 这里仍以创建数据库XSCJ(其属性与(1)相同)为例说明使用向导(Create Database Wizard)创建数据库的操作过程。
2.2.1 数据库的创建、修改和删除 第1步 启动SQL Server 的“企业管理器”(Enterprise Manager)。在“SQL Server Enterprise Manager”窗口中展开Microsoft SQL Servers和SQL Server组,选择SQL Server服务器。 第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. SQL Server 支持的数据类型 • 精度:指数值数据中所存储的十进制数据的总位数。 • 小数位数:指数值数据中小数点右边可以有的数字位数的最大值。例如数值数据3890.587的精度是7,小数位数是3。 • 长度:指存储数据所使用的字节数。
2.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) 位型 SQL Server中的位(bit)型数据相当于其他语言中的逻辑型数据,它只存储0和1,长度为一个字节。 (6) 字符型 字符型数据用于存储字符串,字符串中可包括字母、数字和其它特殊符号(如#、@、&等等)。 SQL Server字符型包括两类:固定长度 (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数据库中创建学生情况表为例说明通过SQL Server的企业管理器创建表的操作过程。
2.2.2 表的创建、修改和删除 以下是通过“企业管理器”创建表XS的操作步骤: 第1步 启动SQL Server 企业管理器,用鼠标右键单击选择数据库(这里是数据库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所示。
2.2.2 表的创建、修改和删除 创建成绩表,名称为XS_KC, 表结构如表2.6所示。KC表创建后的界面,如图2.33所示。
2.2.2 表的创建、修改和删除 创建成绩表,名称为XS_KC, 表结构如表2.6所示。KC表创建后的界面,如图2.33所示。
2.2.2 表的创建、修改和删除 3. 修改表 • 对一个已存在的表可以进行的修改操作包括: • 更改表名 • 增加列 • 删除列 • 修改已有列的属性(列名、数据类型、是否为空值) (1) 更改表名 SQL Server中允许改变一个表的名字,但当表名改变后,与此相关的某些对象如视图,以及通过表名与表相关的存储过程将无效,建议一般不要更改一个已有的表名,特别是在其上定义了视图或建立了相关的表。 【例2.9】将XS表的表名改为student。
2.2.2 表的创建、修改和删除 更改表名的操作步骤: 第1步 在SQL Server企业管理器中展开需更名的表,在其上单击鼠标右键,在弹出的快捷菜单上选择“重命名”,如图2.34所示。