修改表名
语法如下:
alter table 旧表名 rename 新表名; alter table 旧表名 rename to 新表名;
示例:
alter table school.student rename to school.sutdent_2022;
添加新字段
语法如下:
alter table 表名 add 新字段名 数据类型 [约束条件] [first | after 表中已存在的字段名];
first:新字段放在表中第一位;
after:新字段放在指定的表中已存在的字段后面;
不指定first|after参数:新字段放在表中最后;
示例:
在表的开头添加一个字段:
alter table school.student add teacher_id int first;
在表的最后添加一个字段:
alter table school.student add teacher_id int; alter table school.student add teacher_id int not null;
在指定字段后添加一个字段:
alter table school.student add teacher_id int after student_id;
修改字段名
语法如下:
alter table 表名 change 旧字段名 新字段名 新数据类型;
示例:
alter table school.student change id student_id int;
修改字段名时,可同时修改数据类型。如果不需要修改数据类型,将新数据类型保持跟原来一致即可。
当旧字段名与新字段名一致时,该语句也可以只修改数据类型。
修改字段的数据类型
语法如下:
alter table 表名 modify 字段名 新数据类型;
示例:
alter table school.student modify student_name varchar(100);
删除字段
语法如下:
alter table 表名 drop 字段名;
示例:
alter table school.student drop teacher_id;
修改字段的位置
语法如下:
alter table 表名 modify 字段名 数据类型 first|after 另一个字段名;
示例:
修改字段teacher_id为表中的第一个字段:
alter table school.student modify teacher_id int first;
修改字段teacher_id到字段student_name的后面:
alter table school.student modify teacher_id int after student_name;
修改表的存储引擎
语法如下:
alter table 表名 engine=新存储引擎名;
示例:
alter table school.student engine=MyISAM;
添加主键约束
语法如下:
alter table 表名 add primary key(字段1,字段2,...);
示例:
alter table school.student add primary key(student_id);
删除表的主键约束
语法如下:
alter table 表名 drop primary key;
示例:
alter table school.student drop primary key;
添加表的外键约束
语法如下:
alter table 表名 add constraint 约束名 foreign key(字段1,字段2,...) references 主表名(字段1,字段2,...);
示例:
alter table school.student drop foreign key fk1;
注意:外键字段的数据类型、字符集要与主表字段保持一致,否则可能会报不兼容的错误。
删除表的外键约束
语法如下:
alter table 表名 drop foreign key 外键约束名;
示例:
alter table school.student drop foreign key fk1;
其他约束
语法如下:
--添加非空约束 alter table 表名 modify 字段名 数据类型 not null; --删除非空约束 alter table 表名 modify 字段名 数据类型 null; --添加唯一约束 alter table 表名 add unique 约束名(字段1,字段2,...); --删除唯一约束 drop index 约束名 on 表名; alter table 表名 drop key 约束名; alter table 表名 drop index 约束名; --添加自增长约束 alter table 表名 modify 字段名 int auto_increment; --删除自增长约束 alter table 表名 modify 字段名 int; --添加默认值约束 alter table 表名 alter 字段名 set default '默认值'; --删除默认值约束 alter table 表名 alter 字段名 drop default;
示例:
--添加非空约束 alter table student_2023 modify student_id int not null; --删除非空约束 alter table student_2023 modify student_id int null; --添加唯一约束 alter table student_2023 add unique unq1(student_id); --删除唯一约束 drop index unq1 on student_2023; alter table student_2023 drop key unq1; alter table student_2023 drop index unq1; --添加自增长约束 alter table student_2023 modify student_id int auto_increment; --删除自增长约束 alter table student_2023 modify student_id int; --添加默认值约束 alter table student_2023 alter student_id set default 0; --删除默认值约束 alter table student_2023 alter student_id drop default;
当表中有外键约束时,需要先删除外键约束,再删除其他约束。否则可能会报。
本站所有内容均为原创,本站保留所有权利。仅允许非商业用途的转载,但必须注明来源网站、作者、来源链接!否则,由此造成的一切后果,由转载方承担!
干货分享、技术提升、面试笔试、学习交流,欢迎关注公众号:xuesql。QQ学习交流群:209942678。