一、实验目的
1.掌握表的基础知识。
2.掌握使用Navicat或其他第三方管理工具和SQL语句创建表的方法。
3.掌握表的修改、查看、删除等基本操作方法。
4.掌握表中完整性约束的定义。
5.掌握完整性约束的作用
二、实验内容和要求
1.表定义与修改操作
在schoolInfo数据库中创建一个 teacherInfo 表,表结构如下:
2.创建staffinfo数据库,并在定义department表和worker表,完成两表之间的完整性约束。
Department表的结构
Worker表的结构
|
三、实验方法和步骤
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填充