实验一 数据库与表的创建与管理
一、实验目的
要求学生熟练使用SQL Server Management Studio、T-SQL创建和管理数据库与表。
二、实验内容
1、创建数据库、查看和修改数据库的属性、修改数据库的名称、删除数据库; 2、创建和删除数据表、修改表结构。
1、创建数据库
在 SQL Server 2008 中创建数据库的方法有两种,一是利用 SQL Server Management Studio 创建数据库,二是使用 T-SQL 语句创建数据库。
实验 1.1 利用 SQL Server Management Studio 创建 TPCH 数据库,其数据库名 为“TPCH”,初始大小为 3MB,最大为 50MB,数据库按 1MB 比例自动增长;日志文 件的初始大小为 1MB,最大可增长到 20MB,按 10%增长。数据库的逻辑文件名为 “TPCH”、物理文件名为“TPCH.mdf”,存放路径为“D:\数据库实验”。日志文件的 逻辑文件名为“TPCH_Log.ldf”、存放路径为“D:\数据库实验”。
操作步骤如下: ①在“对象资源管理器”中选中“数据库”文件夹,然后右击,在弹出的快捷 菜单中选择“新建数据库”命令,弹出“新建数据库”对话框,如图所示。 ②在“新建数据库”对话框的“数据库名称”文本框中输入“TPCH”,并修改 数据库中数据文件的文件名、初始大小,保存位置等信息。 ③单击“确定”按钮,就可以创建 TPCH 数据库。如果在 SQL Server Management Studio 窗口中出现了 TPCH 数据库标志,则表明建库工作已经完成。
实验 1.2 使用 T-SQL 语句创建 TPCH1 数据库,其数据库名为“TPCH1”,其 他同 TPCH 数据库设置。
单击“常用”工具栏中的“新建查询”按钮,就可以新建一个数据库引擎查询 文档。
然后在查询文档中输入创建数据库语句。
2、查看和修改数据库属性
对于已经建好的数据库,有时还需要对它的属性参数进行查看和修改。
实验 1.3 使用 SQL Server Management Studio 查看和修改数据库属性。 查看和修改 TPCH 数据库属性的步骤如下:
① 在“对象资源管理器”中展开“数据库”文件夹,右击“TPCH”,在弹出的 快捷菜单中选择“属性”命令,弹出“数据库属性—TPCH”对话框。 ②在该对话框中选择“文件”,就可以对数据库文件进行修改。用户可以增加 数据库文件,也可以删除数据库文件,还可以修改数据库文件的逻辑名、大小、增 长率。 ③选择“文件组”,可以查看当前数据库的文件组情况,并且可以增加、删除 文件组,修改文件信息。 ④在该对话框中还可以对选项、权限等进行设置。
3、修改数据库名称
①使用 SQL Server Management Studio 修改数据库名称。 在“对象资源管理器”窗口中右击需要改名的数据库,从弹出的快捷菜单中选 择“重命名”命令。当数据库名称处于可编辑状态时,输入新名即可。
②利用 T-SQL 语句修改数据库名称。 语法格式如下: ALTER DATABASE 原数据库名称 MODIFY NAME = 新数据库名称 例如,将 TPCH1 数据库名称“TPCH1”改为“TPCHSJK”: ALTER DATABASE TPCH1 MODIFY NAME = TPCHSJK ③利用系统存储过程 sp_renamedb 进行修改,语句格式如下: sp_renamedb [@old_name=] ‘old_name’,[@new_name=]‘new_name’ 例如,将 TPCHSJK 数据库名称“TPCHSJK”改为“TPCHDB”: exec sp_renamedb ‘TPCHSJK’,'TPCHDB’
4、删除数据库
删除数据库的方法有两种:
①利用 SQL Server Management Studio 删除数据库 进入 SQL Server Management Studio 界面,然后选择要删除的数据库,右击, 在弹出的快捷菜单中选择“删除”命令,弹出“删除对象”对话框,在该对话框中 单击“确定”按钮即可。
②利用 T-SQL 语句删除数据库 在查询窗口输入以下代码:
DROP DATABASE 数据库名
正确输入后,按键盘上的 F5 键或单击“执行”按钮执行该 SQL 语句,这样就删除了指定的数据库。
5、表的创建
在 SQL Server 2008 中创建表的方法有两种,一是利用 SQL Server Management Studio 创建表,二是使用 T-SQL 语句创建表。
实验 1.4 在 TPCH 数据库中,使用 SQL Server Management Studio 创建 8个表,其结构如图所示:
联合主键(orderkey,linenumber)
具体步骤如下:
①在 SQL Server Management Studio 的对象管理器中单击数据库前面的“+” 号,选择“表”并右击,在弹出的快捷菜单中选择“新建表”命令,打开设计表字 段对话框。
②设计表的字段。在设计表字段对话框中有 3 个参数,即列名、数据类型和允 许 NULL 值。 “列属性”显示在设计表字段对话框的底部窗格中,包含“常规”和“表设计 器”两部分。 展开“常规”可显示“名称”、“长度”、“默认值或绑定”、“数据类型”、 “允许 NULL 值”选项。 展开“表设计器”,可 看到“标识规范”、“标识种子”、“标识增量”、“计 算列规范”、“公式”、“简洁数据类型”、“排序规则”。
③设计好表的字段后,单击“关闭”按钮(或直接单击“保存”按钮),弹出是否要保存的提示对话框。
④单击“是”,弹出选择名称的提示对话框,在这里输入表的名字,单击 “确 定”按钮,表就建好了。
说明:外码约束,可以通过创建数据库关系图来实现。 ①在SQL Server Management Studio 的对象管理器中单击“数据库”前面的“+” 号,选择“数据库关系图”并右击,在弹出的快捷菜单中选择“新建数据库关系图” 命令,添加需要外码约束的表,此例中 8 个表全部选择添加。 ②选择主表的主码字段,按住鼠标左键不放,拖动到外码表的外码字段,松开 鼠标,弹出“表和列”对话框,在对话框中,进一步确认主表主码字段和外码表外 码字段,没有问题点击“确认”按钮,
实验 1.5 在 TPCH1 中,利用 T-SQL 语句创建数据表。 因为表之间有外码约束存在,所以要注意创建表的顺序。
① 创建地区表 Region 的代码:
CREATE TABLE dbo.Region
(
regionkey int NOT NULL PRIMARY KEY,
name char(25) NULL,
comment varchar(152) NULL
)
② 创建国家表 Nation 的代码:
CREATE TABLE dbo.Nation
(
nationkey int NOT NULL PRIMARY KEY,
name char(25) NULL,
regionkey int NULL REFERENCES Region(regionkey),
comment varchar(152) NULL
)
③ 创建供应商表 Supplier 的代码:
CREATE TABLE dbo.Supplier(
supperkey int NOT NULL PRIMARY KEY,
name char(25) NULL,
nationkey int NULL REFERENCES Nation (nationkey),
phone char(15) NULL,
acctbal real NULL,
comment varchar(101) NULL
)
④ 创建零件表 Part 的代码:
CREATE TABLE dbo.Part(
partkey int NOT NULL PRIMARY KEY,
name varchar(55) NULL,
mfgr char(25) NULL,
brand char(10) NULL,
type varchar(25) NULL,
size int NULL,
container char(10) NULL,
retailprice real NULL,
comment varchar(23) NULL
)
⑤ 创建零件供应联系表 PartSupp 的代码:
CREATE TABLE dbo.PartSupp(
partkey int NOT NULL REFERENCES Part (partkey),
suppkey int NOT NULL REFERENCES Supplier (supperkey),
availqty int NULL,
supplycost real NULL,
comment varchar(199) NULL,
PRIMARY KEY (partkey,suppkey)
)
⑥ 创建顾客表 Customer 的代码:
CREATE TABLE dbo.Customer(
custkey int NOT NULL PRIMARY KEY,
name varchar(25) NULL,
address varchar(40) NULL,
nationkey int NULL REFERENCES dbo.Nation (nationkey),
phone char(15) NULL,
acctbal real NULL, mktsegment char(10) NULL,
comment varchar(117) NULL
)
⑦ 创建订单表 Orders 的代码:
CREATE TABLE dbo.Orders(
orderkey int NOT NULL PRIMARY KEY,
custkey int NULL REFERENCES Customer (custkey),
orderstatus char(1) NULL,
totalprice real NULL,
orderdate date NULL,
orderpriority char(15) NULL,
clerk char(15) NULL,
shippriority int NULL,
comment varchar(79) NULL
)
⑧ 创建订单明细表 Lineiterm 的代码:
CREATE TABLE dbo.Lineitem(
orderkey int NOT NULL REFERENCES Orders (orderkey),
partkey int NULL REFERENCES Part (partkey),
suppkey int NULL REFERENCES Supplier (supperkey),
linenumber int NOT NULL,
quantity real NULL,
extendedprice real NULL,
discount real NULL,
tax real NULL,
returnflag char(1) NULL,
linestatus char(1) NULL,
shipdate date NULL,
commitdate date NULL,
receiptdate date NULL,
shipinstruct char(25) NULL,
shipmode char(10) NULL,
comment varchar(44) NULL,
PRIMARY KEY (orderkey,linenumber)
)
三、实验心得
这次实验让我受益匪浅,我深刻意识到理论知识还是要拿出来操练,才会有不一样的感悟。在创建表的时候,出现了“此数据库缺少一个或多个使用数据库关系图所需的支持对象”,这时候你要考虑是否创建它们。当有两个主键的时候,如何同时选择让前面都有小钥匙,这就让我联想起来了Excel表格如何同时选择两列或者多个元组,就是先选择一个属性的主键,然后同时摁住Ctrl再右击设置另一个主键。但是如果你在输入表的数据类型输入错误,第一次使用数据库软件,很多知识盲区,所以就删除了错误的表,对数据进行重新输入,但是你原有的表虽然删除了,数据和表名还是保存在数据库系统中的,重新建立的表的表名就和之前的重名了,需要加入一些数字或者字符,区别于第一个表。但是这样肯定是繁琐麻烦的,一定有别的方法解决,我就右击了我需要修改数据的表,点击修改,把错误的“varbinary(199)”更换成“varchar(199)”,但是最后会出现“不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了‘阻止保存要求重新创建表的更改’选项”,其实大概就是说我无法保存我的更改,让我删除表之后重新建立,这不就又回到了问题的初始,所以我又查了资料,点击工具里面的选项打开了选项对话框,展开Designers,里面的“阻止保存要求重新创建表的更改(s)”选项被选中了,取消前面的选中即可。最后再次去修改错误的数据并保存,弹出警告窗口点击“是”就行了。但是在左面表框里显示的还是错误的数据,所以又检查了一下表的属性,属性中是正确的,所以就是修改完成了。这次创建和查询数据让我有了新的感悟,去发现问题解决问题的过程很奇妙。