基本介绍:修改表,就是指,当我们的表创建好了,根据业务逻辑的需要, 我们要对表进行修改(比如 修改表名, 增加字段,删除字段,修改字段长度,修改字段类型), 这时我们就要使用修改表技术
查看表结构:desc 表名;
案例演示:
--创建表 create table staff( id int not null default 1 comment "序列号", name varchar(5) not null default '保密' comment '姓名', sex enum('男','女','保密') not null default '保密' comment '性别', birthday date comment '生日', entry_date date comment '入职日期', station varchar(20) not null default '保密' comment '职位', salary decimal(10,2) unsigned not null default 0 comment '薪资', resume text comment '文章' )charset=utf8 engine=myisam; --插入数据 insert into `staff` value(6,'老王',1,'1976-9-8','2014-5-18','保洁',3900.00,' '); insert into `staff` value(10,'小明',1,'1992-7-16','2016-5-18','保洁',13000.00,' '); --查看表 select * from `staff`; --查看表结构 desc `staff`; --在员工表上增加一个户籍地址的列 alter table `staff` add `address` varchar(20) not null default '' comment '户籍地址'; --修改岗位(station)列其长度为60默认值为空 alter table `staff` modify `station` varchar(60) not null default '' comment '职位'; --删除文章(resume)列 alter table `staff` drop `resume`; --修改表名为worker rename table `staff` to `worker`; --修改表的字符集为utf8 alter table `worker` character set utf8; --修改字段名name为staff_name长度改为64默认值改为空; alter table `worker` change name staff_name varchar(64) not null default '' comment '姓名';
案例说明:
(1) 添加列可以在后面给列设定位置(比如说:alter table `staff` add `address` varchar(20) not null default '' comment '户籍地址' after `sex`;就是在sex后面插入列)
(2) 修改字段名的同时也可以修改字段信息
注意事项:
(1) 如果我们删除了某个字段,那么这个表的该字段内容就删除,所以要小心
(2) 如果我们把一个字段的长度减小 varchar(64) ==> varchar(32) , 如果你当前这个字段没有任何数据,是可以ok,但是如果已经有数据则看实际情况,就是如果有数据超过 32 了,则会提示错误.
(3) 对字段类型的修改, 比如 varchar ==> int 那么要看你的varchar 的内容是否可以转成int, 'hello'=>int 就不能成功。