数据库/实验:创建和删除表(提高篇)

一、实验目的

  1. 了解表的结构特点。
  2. 了解SQL Server的基本数据类型。
  3. 了解常用的创建表的方法。
  4. 学会创建和删除表。

二.实验环境

Microsoft SQL Server Management Studio 18

三、实验内容与步骤

1.快速创建一个名为xmgl的数据库。

2.使用DDL语言定义基本表。

有一个项目管理(xmgl)数据库,现有四张表,分别是部门表(部门号,部门名,部门电话,部门地址);员工表(员工号,姓名,性别,出生年月,所在部门号);项目表(项目编号,项目名称,所在地方)以及员工参与项目(员工号,项目编号,职责)。其中一个员工属于一个部门,一个部门有多个员工;一个员工可同时参加多个项目,一个项目有多个员工一起开发。用SQL语言中的DDL语言建立这四张表,设计并定义表的主码和外码,各字段的数据类型自己设计。

3.分别使用对象资源管理器和SQL语句定义下面的约束,并进行比较。

①员工号是四位数字串,其中每一位是取0-9之间的数字。

②项目编号是以字母J开始的,其它是数字的4位字符串。

③约束性别的取值为“男”、“女”,且非空,缺省是男。

④约束部门电话的格式:由取值为0-9的8位数字串组成。

4.使用SQL语句修改表

①在部门表中增加“部门领导”字段(和员工号同域);在项目表中增加“项目主管”字段(和员工号同域)。

②在员工表中增加“技术职称”和“工资”字段,其中“工资”为数字类型。

③在项目表中增加“开工日期”和“完工日期”字段,类型为日期型。

④增加约束:工程起始日期小于计划完成日期。

⑤在部门表中增加“部门人数”字段,类型为字符型。

⑥修改“部门人数”字段类型为整型。

⑦先在项目表中增加“项目类型”字段,然后再删除该字段。

5.分别向四张表中录入如下数据。

部门表

员工表

项目表

员工参与项目表

四、实验过程与分析

1.创建数据库

通过对象资源管理器快速创建一个名为xmgl的数据库,只要修改物理路径即可。

2.创建表

(1)部门表:

1.部门号为主码,不能为空

2.部门领导与员工表中的员工号数据类型相同,形成外码约束

3.部门电话要求为由取值为0-9的8位数字串组成,设置为C_K约束

4.代码

5.两种方法设置约束

对象资源管理器:

SQL语句定义:

(2)员工表:

1.员工号为主码,不能为空

2.员工所在部门号,与部门表中的部门号数据类型完全相同,形成外码约束

3.员工的性别要求默认为“男”,并且取值只能为“男”或“女”

4.代码

5.两种方法设置约束

对象资源管理器:

SQL语句定义:

(3)项目表:

1.项目编号为主码,不能为空

2.项目编号是以字母J开始的,其它是数字的4位字符串

3.代码

4.两种方法设置约束

对象资源管理器:

SQL语句定义:

(4)员工参与项目表:

1.员工号和部门号共同形成了主码,并且两者均不能为空

2.员工参与项目表中的员工号的取值取决于员工表中的员工号型要完,形成外码约束,员工参与项目表中部门号的取值取决于部门表中的部门号,形成外码约束

3.代码

3.使用SQL语句修改表

4.分别向四张表中录入如下数据

部门表和员工参与项目表通过对象资源管理器录入数据:

员工表和项目表通过SQL命令插入数据:

五、实验总结

通过这次实验,我充分了解了表的结构,并学会了用两种方式创建表——1.用对象资源管理器创建表;2.用SQL语句创建表。

此外,在实验过程中,我还遇到不少问题,比如第一个问题——属性的数据精度设置过小导致“性别”被截断,必须重新建表;第二个问题——insert语句与foreign key约束冲突,首先要按顺序录入元组,其次可以设置空值,先录入其他已有的数据;第三个问题——insert语句与check约束冲突,首先去查看自己的check约束是否合理,不合理进行修改;其次检查是否有正在设计或者正在编辑的窗口没有关闭,保存关闭了重试。思考题中,2012和2014不可以录入,因为员工表中的员工号没有这两个数据,会发生数据的不一致。可以通过将强约束改成否或者在员工表中添加这两个员工号实现。

 本文章中有不正确的地方,还请各位大神指出。。。

  • 19
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值