数据库实验一、数据表的创建与修改管理实验
- 一、实验目的
- 二、设计性实验
- 三、观察与思考
一、实验目的
(1) 掌握表的基础知识。
(2) 掌握使用SQL语句创建表的方法。
(3) 掌握表的修改、查看、删除等基本操作方法。
(4) 掌握表中完整性约束的定义。
(5) 掌握完整性约束的作用
二、设计性实验
(一)在StudentInfo数据库中创建student表和grade表,表结构要求如下:
Student表的内容
字段名 字段描述 数据类型 主键 外键 非空 唯一 自增
num 学号 INT(10) 是 否 是 是 否
name 姓名 VARCHAR(20) 否 否 是 否 否
sex 性别 VARCHAR(4) 否 否 是 否 否
birthday 出生日期 DATE 否 否 否 否 否
address 家庭住址 VARCHAR(50) 否 否 否 否 否
Grade表的内容
字段名 字段描述 数据类型 主键 外键 非空 唯一 自增
id 编号 INT(10) 是 否 是 是 否
Course 课程名 VARCHAR(10) 否 否 是 否 否
S_num 学号 INT(10) 否 是 是 否 否
grade 成绩 VARCHAR(4) 否 否 否 否 否
表创建成功后,查看两个表的结构。然后按照下列要求进行表操作,写成相关的命令行:
1.将grade表的course字段的数据类型改为VARCHAR(20)
ALTER TABLE grade MODIFY course VARCHAR(20) NOT NULL;
2.将grade字段改名为score。
ALTER TABLE grade CHANGE grade score varchar(4) NOT NULL;
3.删除grade表的外键约束。
ALTER TABLE grade DROP FOREIGN KEY grade_fk;
4.将student表的address字段删除。
ALTER TABLE student DROP address;
5.在student表中增加名为phone的字段。
ALTER TABLE student ADD phone FLOAT;
6.删除student表。
Drop table student;
三、观察与思考
1、关于NOT NULL
(1) 在定义基本表语句时,NOT NULL参数的作用是什么?
not null 为数据库约束中的非空约束。其作用为限制表中该列数据不可为空。
(2) 主码列修改成允许NULL能否操作?为什么?
不能,主键是唯一标识且不能重复,如果为空,就无法识别
2、关于外码
(1) 根据下面设计的表结构,Employee表的外键能否设置成功?思考外码设 置需要注意哪些问题?
(2) 如果主表无数据,从表的数据能输入吗?
不可以
(3) 先创建从表,再创建主表是否可以
MySQL能先创从表后创主表
3、关于主码和唯一约束
(1) 唯一约束列是否允许NULL值?
可以
(2) 一张表可以设置几个主码,可以设置几个唯一约束?
主键只有一个,但是可以设置为多个字段为主键,也即联合主键。外键就是自己设置了也即可以有多个,可以设置除主键以外的其他字段全部是外键的。