目录
(1)将主数据库文件factory.mdf放置在H:\DBF文件夹中,其文件大小自动增长为按5 MB增长。
(2)将事务日志文件 factory_Jog.ldf 放置在 H:\DBF 文件夹中,其文件大小自动增长为
(4)修改 worker 表的结构,添加“E_mail varchar(20)”字段。
(5)将上例中 worker 表中“E_mail”字段的数据类型改为 varchar(30)
(7)并用 insert 语句在 worker 表中输入如下记录:
(8)用 create 语句建立部门表 depart,其结构为:部门号,int;部门名char(10)。其中,“部门号”为主键。并用 insert 语句在 depart 表中输入如下记录:
(10)将 worker 表中姓名为“陈明”的部门号改为“101”。
(12)建立 worker、depart 和 salary 3 个表之间的关系。
(13) 实施 worker 表的“性别”列默认值为“男”的约束。
(14) 实施 salary 表的“工资”列值限定在 0~9999 的约束。
(15) 为 worker 表建立外键“部门号”,参考表 depart 的“部门号”列。
(18) 建立一个规则 sex:@性别='男' OR @性别=‘女',将其绑定到 worker 表的“性别”
一.【实验目的】
了解系统数据库的作用。
1)学会使用 Management Studio 工具创建用户数据库。
2)学会使用 Transact-SQL 语句创建用户数据库表。
3)学会使用 Transact-SQL 语句创建用户数据库表完整性设置。
二.【实验准备】
已经接入局域网的网络实验室。
机器上已安装 SQL Server 2016.
三、【实验内容及步骤】
创建一个名称为 factory 的数据库,要求:
(1)将主数据库文件 factory.mdf 放置在 H:\DBF 文件夹中,其文件大小自动增长为按 8 MB 增长。
(2)将事务日志文件 factory_Jog.ldf 放置在 H:\DBF 文件夹中,其文件大小自动增长为
按 2 MB 增长。
(3)用 create 语句建立职工表 worker,其结构为:职工号,int;姓名,char(8);性别,
char(2);出生日期,datetime;党员否 char(2);参加工作,datetime;部门号,int。其中“职
工号”为主键。
(4)修改 worker 表的结构,添加“E_mail varchar(20)”字段。
(5)将上例中 worker 表中“E_mail”字段的数据类型改为 varchar(30)
(6)删除 worker 表中的“E_mail”字段
(7)并用 insert 语句在 worker 表中输入如下记录:
职工号 | 姓名 | 性别 | 出生日期 | 党员否 | 参加工作 | 部门号 |
1 | 孙华 | 男 | 01/03/52 | 是 | 10/10/70 | 101 |
2 | 陈明 | 男 | 05/08/45 | 否 | 01/01/65 | 102 |
3 | 程西 | 女 | 06/10/80 | 否 | 07/10/02 | 101 |
4 | 孙天奇 | 女 | 03/10/65 | 是 | 07/10/87 | 102 |
5 | 刘夫文 | 男 | 01/11/42 | 否 | 08/10/60 | 102 |
6 | 刘欣 | 男 | 10/08/52 | 否 | 01/07/07 | 101 |
7 | 余慧 | 男 | 12/04/80 | 否 | 07/10/72 | 103 |
(8)用 create 语句建立部门表 depart,其结构为:部门号,int;部门名,char(10)。其
中,“部门号”为主键。并用 insert 语句在 depart 表中输入如下记录:
部门号 | 部门名 |
101 | 财务处 |
102 | 人事处 |
103 | 市场部 |
(9)用 create 建立职工工资表 salary,其结构为:职工号,int;姓名,char(8):日期,
datetime;工资,decimal(6,1)。其中,“职工号”和“日期”为主键。并用 insert 语句在 salary
表中输入如下记录:
职工号 | 姓名 | 日期 | 工资 |
1 | 孙华 | 01/04/04 | 1201.5 |
2 | 陈明 | 01/04/04 | 1350.6 |
3 | 程西 | 01/04/04 | 750.8 |
4 | 孙天奇 | 01/04/04 | 900.0 |
5 | 刘夫文 | 01/04/04 | 2006.8 |
6 | 刘欣 | 01/04/04 | 1250.0 |
7 | 余慧 | 01/04/04 | 725.0 |
(10)将 worker 表中姓名为“陈明”的部门号改为“101”。
(11)删除工资表 salary 中姓名为“陈明”的记录。
(12)建立 worker、depart 和 salary 3 个表之间的关系。
(13) 实施 worker 表的“性别”列默认值为“男”的约束。
(14) 实施 salary 表的“工资”列值限定在 0~9999 的约束。
(15) 为 worker 表建立外键“部门号”,参考表 depart 的“部门号”列。
(16) 删除(13)小题所建立的约束。
(17)删除(14)小题所建立的约束。
(18) 建立一个规则 sex:@性别='男' OR @性别=‘女',将其绑定到 worker 表的“性别”
(19)解除(18)小题所建立的绑定并删除规则 sex.
四.【实验预习】
创建表的方式有界面方式和T-SQL语句。T-SQL命令语句为:CREATE TABLE......
修改表的命令语句为:ALTER TABLE...
删除表的命令语句:DROP TABLE...
插入记录命令语句:INSERT INTO 表名 values()GO
修改记录命令语句:UPDATE 表名 SET...
删除记录命令语句: DELETE/TRUNCATE TABLE
五.【实验结果】
(1)将主数据库文件factory.mdf放置在H:\DBF文件夹中,其文件大小自动增长为按5 MB增长。
(2)将事务日志文件 factory_Jog.ldf 放置在 H:\DBF 文件夹中,其文件大小自动增长为
按 2 MB 增长。
(3)用 create 语句建立职工表 worker,其结构为:职工号,int;姓名,char(8);性别,char(2);出生日期,datetime;党员否 char(2);参加工作,datetime;部门号,int。其中“职工号”为主键。
CREATE TABLE worker
(
职工号 int NOT NULL PRIMARY KEY,
姓名 char(8) NOT NULL,
性别 char(2) NULL DEFAULT 1,
出生日期 datetime NULL,
党员否 char(2) NULL DEFAULT 1,
参加工作 datetime NULL,
部门号 int NOT NULL
)
(4)修改 worker 表的结构,添加“E_mail varchar(20)”字段。
ALTER TABLE worker
ADD E_mail varchar(20)
(5)将上例中 worker 表中“E_mail”字段的数据类型改为 varchar(30)
ALTER TABLE worker
ALTER COLUMN E_mail varchar(30)
(6)删除 worker 表中的“E_mail”字段
ALTER TABLE worker
DROP COLUMN E_mail
(7)并用 insert 语句在 worker 表中输入如下记录:
(8)用 create 语句建立部门表 depart,其结构为:部门号,int;部门名char(10)。其中,“部门号”为主键。并用 insert 语句在 depart 表中输入如下记录:
(9)用 create 建立职工工资表 salary,其结构为:职工号,int;姓名,char(8):日期,datetime;工资,decimal(6,1)。其中,“职工号”和“日期”为主键。并用 insert 语句在 salary表中输入如下记录:
CREATE TABLE salary
(
职工号 int NOT NULL PRIMARY KEY,
姓名 char(8) NOT NULL,
日期 datetime NOT NULL,
工资 decimal(6,1) NOT NULL
)
(10)将 worker 表中姓名为“陈明”的部门号改为“101”。
(11)删除工资表 salary 中姓名为“陈明”的记录。
DELETE
FROM salary
WHERE=’陈明’
(12)建立 worker、depart 和 salary 3 个表之间的关系。
使用界面方式建立外键。
(13) 实施 worker 表的“性别”列默认值为“男”的约束。
USE factory --打开数据库schoolDB
GO
ALTER TABLE worker
ADD CONSTRAINT DF_student_性别 DEFAULT '男' for 性别
(14) 实施 salary 表的“工资”列值限定在 0~9999 的约束。
右键设置
(15) 为 worker 表建立外键“部门号”,参考表 depart 的“部门号”列。
USE factory --打开数据库schoolDB
IF EXISTS(SELECT * FROM sysobjects WHERE name='worker')
DROP TABLE worker --检查student是否已经存在,如果存在,则删除
GO
CREATE TABLE worker
(
职工号 int NOT NULL PRIMARY KEY,
姓名 char(8) NOT NULL,
性别 char(2) NULL DEFAULT 1,
出生日期 datetime NULL,
党员否 char(2) NULL DEFAULT 1,
参加工作 datetime NULL,
部门号 int NULL FOREIGN KEY REFERENCES depart(部门号)
)
(16) 删除(13)小题所建立的约束。
USE factory
ALTER TABLE worker
DROP CONSTRAINT DF_student_性别
(17)删除(14)小题所建立的约束。
USE factory
ALTER TABLE salary
DROP CONSTRAINT CK_salary_工资
(18) 建立一个规则 sex:@性别='男' OR @性别=‘女',将其绑定到 worker 表的“性别”
create
rule sex as @性别 in ('男','女')
go
exec
sp_bindrule 'sex','worker.性别'
(19)解除(18)小题所建立的绑定并删除规则 sex.
解除:
exec
sp_unbindrule 'worker.性别'
go
删除:
DROP RULE sex