mysql/MariaDB学习2.2 表结构操作

环境:

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 (列);

猜你喜欢

转载自blog.csdn.net/u010904188/article/details/81535421