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字段允许取空值