MySQL数据库表结构修改总结

MySQL数据库表结构修改总结

创建表dept和stu:

mysql> create table department(
    dept_id int primary key auto_increment,
    dept_name char(20) not null default ''
    );
mysql> create table stu(
	stu_id int primary key auto_increment,
    stu_name char(20),
    age int,
    height decimal(4,1)
    dept_id int,
    foreign key(dept_id) references dept(dept_id)
	);

修改表名:

--格式: alter table tablename rename newtablename;   

mysql> alter table department rename dept;

查看表结构:

--格式: desc tablename;   

mysql> desc stu;

查看建表语句:

--格式: show create table tablename;

mysql> show create table stu;

添加字段:

--格式:alter table tablename add fieldname type;

mysql> alter table stu add phone char(11) after height;  --添加一个phone字段,位置处于字段height之后
mysql> alter table stu add addr varchar(200);  --添加一个addr字段,位置为表中的最后一个字段

删除字段:

--格式:alter table tablename drop fieldname;

mysql> alter table stu drop age;

更改字段的名称和类型:

--格式:alter table tablename change oldfieldname newfieldname type;

mysql> alter table stu change addr address varchar(200) after phone;  
--把addr字段的名称更改为address,并且放在phone之后。

更改字段的类型:

--格式:alter table tablename modify fieldname type;

mysql> alter table stu modify phone varchar(20) after stu_name;  
--把phone字段的类型更改为varchar,长度为20,并且放在stu_name之后。

添加和删除主键:

--删除主键格式:alter table tablename drop primary key;
--添加主键格式:alter table tablename add primary key(fieldname);

mysql> alter table dept drop primary key;  --删除dept表的主键
mysql> alter table dept add primary key(dept_id);  --为dept表添加主键,主键列为dept_id

添加和删除外键:

--先用show create table tablename;命令查看外键约束的名称
--删除外键格式:alter table tablename drop foreign key 外键约束名;
--添加外键格式:alter table tablename add foreign key(fieldname) references tablename(fieldname);

mysql> show create table stu;  --查看stu表中外键约束的名称
mysql> alter table dept drop foreign key stu_ibfk_1;  --删除stu表的外键
mysql> alter table dept add foreign key(dept_id) references dept(dept_id);  --为stu表添加外键

设置字段的默认值以及是否为空:

--格式:alter table tablename modify fieldname fieldtype not null|null default value;

mysql> alter table stu modify address varchar(200) not null default 'xinxiang';  
--设置address字段不能为空,默认值为'xinxiang'
mysql> alter table dept modify dept_name char(20) null;   --设置dept表中的dept_name字段允许取空值
发布了44 篇原创文章 · 获赞 48 · 访问量 5426

猜你喜欢

转载自blog.csdn.net/weixin_44377973/article/details/103035326