MYSQL建表命令

create table if not exists test(
	id int(4) auto_increment not null comment  '编号',
	name varchar(20) not null comment '姓名',
	sex int(1) not null comment '性别',
	age int(2) not null comment '年龄',
	starttime datetime comment '开始时间',
	record enum('a','b','c','d') default 'a' comment '枚举多选一,例如学历:小学 中学 大学 研究生',
	job set('aa','bb','cc','dd') default 'aa' comment '多选 例如多个职称 工程师 项目经理 主管 从事多个工作',
	f1 float comment '浮点数',
	f2 float,
	f3 decimal(10,2) comment '指定小数位2,平均数',
	tel int(11) comment '手机电话',
	address varchar(100) comment '地址',
	primary key(id) comment '主键,没有重复',
	unique key(name) comment '唯一键,此字段中没有重复' ,
	key(f3)
)
comment = '这是一个简单表',
engine = InnoDB,
auto_increment = 1000,
charset = utf8;
修改表


修改表字段
增表字段:alter table 表名 add [column] 字段名 字段类型 字段属性;
删: alter  table  表名  drop  字段名
改:alter  table  表名  change  原字段名  新字段名  新字段类型  新字段属性;


修改索引




修改约束




修改表选项




alter table 表名 修改语句1,.....;




修改表是指修改表的结构或特性。理论上创建一个表能做到的事情,修改表也能做到。修改表有二三十项修改项,包括增删改字段,增删索引,增删约束,修改表选项等等。举例如下:


添加字段:alter table 表名 add [column] 新字段名 字段类型 [字段属性列表];


修改字段(并可改名):alter table 表名 change [column] 旧字段名 新字段名 新字段类型 [新字段属性列表];


修改字段(只改属性):alter table 表名 modify [column]       字段名 新字段类型 [新字段属性列表];


修改字段名:灰常灰常抱歉,没有单纯修改字段名这个功能!可用change变通。


删除字段:alter table 表名 drop [column] 字段名;


添加普通索引:alter table 表名 add index [索引名] (字段名1[,字段名2,...]);


添加主键索引(约束):alter table 表名 add primary key (字段名1[,字段名2,...]);


添加外键索引(约束):alter table 表名1 add foreign key (字段1,[,字段名2,...]) references 表名2(字段1,[,字段名2,...]);


添加唯一索引(约束):alter table 表名 add unique (字段名1[,字段名2,...]);


添加字段默认值(约束):alter table 表名 alter [column] 字段名 set default 默认值;


删除字段默认值(约束):alter table 表名 alter [column] 字段名 drop default;


删除主键:alter table 表名 drop primay key;#每一个表最多只能有一个主键


删除外键:alter table 表名 drop foreign key 外键名;


删除索引:alter table 表名 drop index 索引名;


修改表名:alter table 表名 rename [to] 新表名;


修改表选项:alter table 表名 选项名1=选项值1,选项名2=选项值2,...;


修改数据库字符集:
 


复制代码 代码如下:




 ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];   




把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
 
复制代码 代码如下:




 ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]  




如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 
 
只是修改表的默认字符集:
 


复制代码 代码如下:




 ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];  




如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
 
修改字段的字符集:
 


复制代码 代码如下:




 ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];  




如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci; 
 
查看数据库编码:
 


复制代码 代码如下:




 SHOW CREATE DATABASE db_name;   




查看表编码:
 
复制代码 代码如下:




 SHOW CREATE TABLE tbl_name;   




查看字段编码:
 
复制代码 代码如下:




 SHOW FULL COLUMNS FROM tbl_name;   


*********
删除表


drop table [if exists] 表名;


表的其他操作


显示所有表: show tables;




显示表结构:desc 表名;


显示表的创建语句: show create table 表名;


从已有的表复制表结构:create table[if not exists] 新表名 like 原表名;


从已有表复制表结构:create table [if not exists] 新表名 select * from 原表名 where 1<>1;(不推荐)



修改表名
-- 修改表名, TO 或AS都可以,也以省略掉
-- ALTER TABLE 表名 RENAME [TO|AS] 新表名
ALTER TABLE 旧表名 RENAME TO 新表名;


-- 修改表名
-- RENAME TABLE 旧表名 TO 新表名; 这里面的TO不可以省略


RENAME TABLE user11 TO user10;

猜你喜欢

转载自blog.csdn.net/ddv1999/article/details/79549535