MySQL 知识量:16 - 40 - 165
在表创建完成后,可能还需要进行结构上的修改,这称之为更新表。更新表可以使用alter table语句,在更新时以下信息是必须的:
在alter table后给出要更改的表的名称,当然,这个表必须是已经存在的。
给出更改的列的具体新的定义。
1、添加列
示例:给学生表student添加一个phone列。
alter table student add phone char(11) null;
添加成功后,查询学生表结果为:
+----+-------+-----+--------+-------+ | id | name | age | sex | phone | +----+-------+-----+--------+-------+ | 1 | Susan | 11 | female | NULL | | 2 | Jame | 12 | male | NULL | | 3 | Bob | 11 | male | NULL | | 4 | Robot | 10 | male | NULL | | 5 | Jen | 11 | female | NULL | | 6 | Toney | 10 | male | NULL | +----+-------+-----+--------+-------+
添加列的关键语法是:add+新列定义。
2、删除列
示例:删除学生表student的sex列。
alter table student drop column sex;
删除成功后,查询学生表结果为:
+----+-------+-----+-------+ | id | name | age | phone | +----+-------+-----+-------+ | 1 | Susan | 11 | NULL | | 2 | Jame | 12 | NULL | | 3 | Bob | 11 | NULL | | 4 | Robot | 10 | NULL | | 5 | Jen | 11 | NULL | | 6 | Toney | 10 | NULL | +----+-------+-----+-------+
删除列的关键语法是:drop column+要删除的列。
3、添加外键
示例:添加课程表course的id_student列和id_lesson列为外键,分别关联学生表student的id列和课程科目表lesson的id列。
alter table course add constraint fk_id_student foreign key(id_student) references student(id) on delete cascade on update cascade, add constraint fk_id_lesson foreign key(id_lesson) references lesson(id) on delete cascade on update cascade;
添加外键成功后,查询课程表的创建语句(show create table course;),结果为:
CREATE TABLE `course` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_student` int(11) NOT NULL, `id_lesson` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `fk_student` (`id_student`), KEY `fk_lesson2` (`id_lesson`), CONSTRAINT `fk_lesson2` FOREIGN KEY (`id_lesson`) REFERENCES `lesson` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fk_student` FOREIGN KEY (`id_student`) REFERENCES `student` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8
添加外键的关键语法是:add constraint+自定义外键名+foreign key(外键列)+references+被关联的表名(被外键关联的列)。
此外,on delete cascade on update cascade表示约束规则,即如果被关联的表被删除或修改,包含外键的表也会随着删除或修改。
要删除表(删除表本身,不只是其数据)是非常简单的,使用drop table语句即可,例如删除表poeple:
drop table people;
删除操作是不能撤销的,执行后,删除的表就永久的不存在了。
修改表的名字可以使用rename table语句。例如重命名表people为person:
rename table people to person;
如果要重命名多个表,只需要用逗号分隔多个表的重命名即可。例如:
rename table A to B,C to D;
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6