前期回顾
列约束关键词
表约束关键词
语句赏析
create table `group`(
id int primary key auto_increment,
name varchar(10) not null,
max_size int default '10',
type varchar(10) not null check(type in ('研发组','实习组','学习组')),
description varchar(100) null
);
create table user(
user_id char(4) primary key,
user_name varchar(10) not null,
password varchar(16) not null,
group_id int not null,
constraint group_fk foreign key(group_id)
references `group`(id)
on update cascade
on delete cascade
);
如果对上述语句存在疑问,可查看上一博客
数据库表结构修改
修改数据库名称
- 稳妥做法:先建立一个新的数据库,然后将旧的数据库进行导出,然后在导入新的数据库
/* 导入abc.sql到simfg数据库 */
mysql -uroot -p simfg < abc.sql
/* 导出simfg数据库到abc.sql */
mysqldump -uroot -p simfg > abc.sql
修改数据库表名称
alter table user rename member;
修改数据库列
修改某一列的名称
alter table member change password user_password varchar(18);
修改前:
修改后:
仔细对比发现不仅数据库表格名称改变了,结构也发生了改变,如果你没有添加额外约束,那么便会使用默认的约束值
修改列约束
/* 方法一 */
alter table member change user_password user_password varchar(16);
/* 方法二 */
alter table member modify user_password varchar(16);
删除外键
alter table member drop foreign key 'group_fk';
查看当前数据库表中所有外键
select * from information_schema.table_constraints t where t.table_name='member' and constraint_type='foreign key';
删除主键
alter table member drop primary key;
一个数据库表中只能存在唯一的主键
查看当前数据库中所有主键
添加主键
有时候一个数据库表格中可能需要多个属性来组成一个主键
alter table member add primary key (user_id,user_name);
你还记得如何查看主键名称吗?赶快试一试那么长的命令吧!鸡冻吧
select * from information_schema.table_constraints t where t.table_name = 'member' and constraint_type = 'primary key';
添加外键
alter table member add constraint group_pk foreign key (group_id) references `group`(id) on update cascade on delete cascade;
然后在进行查看外键
添加列
/* 方法一 */
alter table member add column `desc` varchar(100) ;
/* 方法二 */
alter table member add `desc` varchar(100) ;
desc 是一个关键字
删除列
/* 方法一 */
alter table member drop column `desc` ;
/* 方法二 */
alter table member drop `desc`;
下一篇博客将会介绍数据库表中基本的数据操作
欢迎大家留言转载
关注微信公众号:SimFG,随时随地看博客要点