1、表结构修改-新增表字段
-- 新增表字段
ALTER TABLE tb_test ADD u_name varchar(10) not null;
ALTER TABLE tb_test ADD regTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP();
ALTER TABLE tb_test ADD type TINYINT DEFAULT 1 AFTER u_name;
ALTER TABLE tb_test ADD u_age varchar(10) not null,ADD u_sex varchar(2) not null;
2、表结构修改-删除表字段
-- 删除表字段
ALTER TABLE tb_test DROP u_age,DROP u_sex;
-- 删除表字段并新增表字段
ALTER TABLE tb_test DROP type,ADD u_age varchar(10) not null;
3、表结构修改-修改表字段
-- 修改表字段
-- type TINYINT 默认是1
-- 现将 tpye 类型改为 int ;默认改为2
-- UNSIGNED:表示无符号的
-- FIRST:将该字段放在第一列
ALTER TABLE tb_test MODIFY type INT UNSIGNED DEFAULT 2;
ALTER TABLE tb_test MODIFY type tinyint UNSIGNED DEFAULT 1 FIRST;
-- 修改默认值
ALTER TABLE tb_test MODIFY type tinyint UNSIGNED DEFAULT 1;
ALTER TABLE tb_test ALTER type SET DEFAULT 2;
-- 去掉默认值
ALTER TABLE tb_test ALTER type DROP DEFAULT;
-- 修改字段名
ALTER TABLE tb_test CHANGE COLUMN regTime createTime TIMESTAMP;
-- 修改表名
ALTER TABLE tb_test RENAME tb_test1;
RENAME TABLE tb_test1 to tb_test;
4、表结构修改-删除数据库或表
-- 删除数据库
DROP DATABASE IF EXISTS aaa;
-- 删除表
DROP TABLE IF EXISTS test3;
-- 清空表数据
TRUNCATE TABLE test1;
5、表结构修改-添加约束
-- 增加主键约束
ALTER TABLE test1 ADD CONSTRAINT zjys PRIMARY KEY(a);
-- 添加唯一约束
ALTER TABLE test1 ADD UNIQUE KEY(b);
或者
ALTER TABLE test1 ADD UNIQUE(b);
-- 添加外键约束
CREATE TABLE `test1` (
`a` varchar(255) PRIMARY KEY,
`b` varchar(255)
) ;
CREATE TABLE `test2` (
`a` varchar(255) ,
`b` varchar(255)
) ;
ALTER TABLE test2 ADD FOREIGN KEY(a) REFERENCES test1(a);
6、表结构修改-删除约束
ALTER TABLE table_name DROP PRIMARY KEY;
SHOW INDEXES FROM table_name; --查看唯一约束
ALTER TABLE table_name DROP index id;
SHOW create FROM table_name; --查看起的别名
ALTER TABLE table_name DROP FOREIGN KEY cid;
ALTER TABLE table_name ALTER type DROP DEFAULT;
附录
-- 创建tb_test表
CREATE TABLE `tb_test` (
`id` varchar(20) COLLATE utf8mb4_bin NOT NULL,
`u_name` varchar(10) COLLATE utf8mb4_bin NOT NULL,
`type` tinyint DEFAULT '1',
`regTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`u_age` varchar(10) COLLATE utf8mb4_bin NOT NULL,
`u_sex` varchar(2) COLLATE utf8mb4_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;