环境:
CentOS 7,mysql5.7
摘要说明:
本篇文章主要讲述mysql如何创建表结构,如何添加删除修改列,如何添加索引,如何添加修改注释等
步骤:
1.创建表,主键及索引
一般创建表的时候需要指定主外键、自动增长、字段默认值,指定索引等:
-- 表若存在则删除
drop table if exists test_t;
-- 创建表Table: test_t并指定id为主键且自增长
create table test_t
(
id integer not null auto_increment,
test_var varchar(50) default NULL comment 'varchar类型',
test_datet datetime default NULL comment 'datetime类型',
test_boo boolean default NULL comment 'boolean类型',
test_deci decimal(12,4) default NULL comment 'decimal类型',
primary key (id)
);
-- 添加表注释
alter table test_t comment '测试表';
-- 创建唯一索引 Index: Index_test_var
create unique index Index_test_var on test_t
(
test_var
);
-- 创建普通索引 Index: Index_test_deci
create index Index_test_deci on test_t
(
test_deci
);
-- 创建联合索引Index: Index_datat_boo
create index Index_datat_boo on test_t
(
test_datet,
test_boo
);
查询表结构:
desc test_t;
修改表名:
-- 修改表名:
rename table 老表名 to 新表名;
删除表:
-- Drop table 表名1,表名2...;
drop table test_t;
删除索引:
-- ALTER TABLE 表名 DROP INDEX 索引名
ALTER TABLE test_t DROP INDEX Index_test_deci;
修改表注释:
扫描二维码关注公众号,回复:
3046730 查看本文章
-- alter table 表名 comment '修改后的表的注释';
alter table test_t comment '修改后的表的注释';
修改一个表的默认字符集:
-- ALTER TABLE 表名 DEFAULT CHARACTER SET utf8
ALTER TABLE test_t DEFAULT CHARACTER SET utf8;
修改某一列的编码:
-- ALTER TABLE person CHANGE 列名 类型 CHARACTER SET utf8
ALTER TABLE test_t CHANGE test_var varchar(50) CHARACTER SET utf8;
复制表结构:
-- create table 新表名 like 老表名;
create table test_t2 like test_t;
2.更改表结构
增加列:
-- alter table tablename ADD 新列 数据类型 参数
alter table test_t add test_deci1 decimal(12,4) default NULL comment 'decimal类型';
增加/修改列并指定位置:
-- ALTER TABLE table_name ADD/MODIFY [COLUMN] col_name column_definition [ FIRST | AFTER col_name]
alter table test_t add test_deci1 decimal(12,4) default NULL comment 'decimal类型' AFTER test_var;
alter table test_t add test_deci1 decimal(12,4) default NULL comment 'decimal类型' FIRST;
删除主键:
-- ALTER TABLE 表名 DROP PRIMARY KEY;
ALTER TABLE test_t DROP PRIMARY KEY;
增加列并指定为自增长和主键:
-- ALTER TABLE 表名 ADD COLUMN 列名 类型 UNSIGNED NOT NULL auto_increment PRIMARY KEY FIRST
ALTER TABLE test_t ADD COLUMN id INT UNSIGNED NOT NULL auto_increment PRIMARY KEY FIRST
修改列属性(数据类型,参数):
-- alter table tablename modify 列名 新类型 新参数;
alter table test_t modify test_deci1 date default NULL comment 'date类型';
修改列名(列属性):
-- alter table tablename change 旧列名 新列名 新类型 新参数;
alter table test_t change test_deci1 test_date date default NULL comment 'date类型';
修改表字段注释:
-- alter table 表名 modify column 列名 类型 comment '修改后的字段注释';
alter table test_t modify column test_var varchar(50) comment '修改后的字段注释';
删除列:
-- alter table tablename drop 列名;
alter table test_t drop test_date;
设置外键:
alter table t1 add constraint 外键名 foreign key (列) references t2 (列);