数据表的创建与修改管理(表的完整性约束)

一、实验目的

1.掌握表的基础知识。

2.掌握使用Navicat或其他第三方管理工具和SQL语句创建表的方法。

3.掌握表的修改、查看、删除等基本操作方法。

4.掌握表中完整性约束的定义。

5.掌握完整性约束的作用

二、实验内容和要求

1.表定义与修改操作

在schoolInfo数据库中创建一个 teacherInfo 表,表结构如下:

2.创建staffinfo数据库,并在定义department表和worker表,完成两表之间的完整性约束。

Department表的结构

字段名

字段描述

数据类型

主键

外键

非空

唯一

自增

d_id

部门号

INT(4)

d_name

部门名

VARCHAR(20)

function

部门职能

VARCHAR(50)

address

部门位置

VARCHAR(20)

Worker表的结构

字段名

字段描述

数据类型

主键

外键

非空

唯一

自增

id

编号

INT(4)

num

员工号

INT(10)

d_id

部门号

INT(4)

name

姓名

VARCHAR(20)

sex

性别

VARCHAR(4)

birthday

出生日期

DATE

address

家庭住址

VARCHAR(50)

三、实验方法和步骤

1.表定义与修改操作

(1)首先创建数据库schoolInfo。

(2)创建 teacherInfo 表。

(3)将teacherInfo 表的name字段的数据类型改为VARCHAR(30)。

(4)将birthday字段的位置改到sex字段的前面。

(5)将num字段改名为t_id。

(6)将 teacherInfo 表的address字段删除。

(7)在 teacherInfo 表中增加名为wages的字段,数据类型为FLOAT。

(8)将 teacherInfo 表改名为 teacherInfo_Info。

(9)将 teacherInfo_ Info表的存储引擎更改为MyISAM类型。

2.创建staffinfo数据库,并在定义department表和worker表,完成两表之间的完整性约束。

(1) 在staffinfo数据库下创建department表和worker表。

(2) 删除department表。

(3) 删除department表

(4) 删除worker表的外键约束

(5) 重新删除department表

四、实验结果

1.表定义与修改操作

(1)首先创建数据库schoolInfo。

代码:

create database schoolInfo;

结果:

(2)创建 teacherInfo 表。

代码:

 create table teacherInfo (

id int(4) not null unique primary key auto_increment,

num int(10)not null,

name varchar(20) not null,

sex VARCHAR(4) not null,

birthday datetime,

address varchar(50)

);

结果:

(3)将teacherInfo 表的name字段的数据类型改为VARCHAR(30)。

代码:

alter table teacherInfo modify name varchar(30) not null;

结果:

(4)将birthday字段的位置改到sex字段的前面。

代码:

 alter table teacherInfo modify birthday datetime after name;

结果:

(5)将num字段改名为t_id。

代码:

 alter table teacherInfo change num t_id int(10) not null;

结果:

(6)将 teacherInfo 表的address字段删除。

代码:

 alter table teacherInfo drop address;

结果:

(7)在 teacherInfo 表中增加名为wages的字段,数据类型为FLOAT。

代码:

alter table teacherInfo add wages float;

结果:

(8)将 teacherInfo 表改名为 teacherInfo_Info。

代码:

 alter table  teacherInfo rename teacherInfo_Info;

结果:

(9)将 teacherInfo_ Info表的存储引擎更改为MyISAM类型。

代码:

 alter table teacherInfo_Info engine = MyISAM;

结果:

2.创建staffinfo数据库,并在定义department表和worker表,完成两表之间的完整性约束。

(1) 在staffinfo数据库下创建department表和worker表。

代码:

CREATE TABLE department(

d_id INT(4) NOT NULL UNIQUE PRIMARY KEY,

d_name VARCHAR(20) NOT NULL UNIQUE,

`function` VARCHAR(50),

 address VARCHAR(50)

 );

create table worker(

id int(4) not null unique primary key auto_increment,

num int(10) not null unique,

d_id int(4),

name varchar(20) not null,

sex varchar(4) not null,

birthday date,

address varchar(50)

);

结果:

(2) 删除department表。

代码:

drop table department;

结果:

(3) 删除department表

代码:

drop table department;

结果:

因为前面已经删除department表了,所以再次删除失败,显示unknown table

(4) 删除worker表的外键约束

代码:

由于无法直接在创建表时添加外键,这里需要在创建表后再添加外键:

alter table worker add constraint d_id foreign key(d_id) references department (d_id);

worker为从表表名

d_id为1外键约束名

department为主表表名

alter table worker drop foreign key d_id;

结果:

(5) 重新删除department表

代码:

drop table department;

结果:

五、知识点总结

表的完整性约束内容包括:

primary key  # 标识该字段为该表的主键,可以唯一的标识记录

foreign key  # 标识该字段为该表的外键

not null  # 标识该字段不能为空,必须赋值

unique key  # 标识该字段是唯一的

auto_increment  # 标识该字段的值自动增长(整数类型,而且为主键)

default  # 为该字段设置默认值,插入记录时不给字段赋值就使用默认值

unsigned  # 无符号(正负号等)

zerofill  # 使用0填充

猜你喜欢

转载自blog.csdn.net/m0_61607990/article/details/127160386