创建表
create table main (colName // 列名
  data_type // 数据类型
  [null | not null] // 可选,是否允许值为 null
  [default ] // 可选,设置默认值
  visible , invisible // 指定列可见,一个表至少有一个列可见
  [auto_increment] // 可选,是否自增长
  column_format // 在 NDB 群集中,可以指定数据储存使用的格式
  engine_attribute //
  [primary key] // 可选,主键设置
  [comment] // 对字段的注释
)
例:
create table main
-> main_id int not null auto_increment,
-> main_name varChar(100) not null,
-> main_age int ,
-> primary key (main_id)
-> )engine=InnoDB default charset=utf8;
在字段描述最后阶段,可以添加表说明。
在创建时数据后指定使用引擎 InnoDB ,含默认值,字符编码 utf-8。
-- 下面的代码做了 if 判断,如果没有则创建
create table if not exists main ...;
引擎
engine 子句中的表指定存储引擎。可以使用任何存储引擎,如: InnoDB , MyISAM , HEAP , EXAMPLE , CSV , ARCHIVE , MERGE , FEDERATED 或 NDBCLUSTER 。如果不明确声明存储引擎, MySQL 将默认使用 InnoDB 。
| ARCHIVE | 档案储存引擎 | 
| BDB | 带页面锁定的事物安全表 | 
| CSV | 值之间用逗号隔开的表 | 
| EXAMPLE | 例引擎 | 
| FEDERATED | 可以访问原车会给你表的储存引擎 | 
| HEAP | |
| (OBSOLETE)SAM | |
| InnoDB | 带行锁定和外键的事物安全表 | 
| MEMORY | |
| MERGE | |
| MyISAM | 二进制轻便储存引擎 | 
| NDBCLUSTER | 成簇表、容错表 | 
字符集
查看表结构:
describe main;
show columns from main; //与上面那句一样
查索引:
show index from main;
查看表中所有信息:
show table status from test;
show table status from test like 'main%';// 表名以 main 开头
show table status from test like ‘ main ’\g;//
删除数据表
drop table main
列结构
{列名称} {列数据类型}[长度] [not null | null] [default value] [auto_increment];
最后的 auto_increment 是列值自增,每一表有且仅有一个自增。
主键
将表的特定列设置为主键:
primary key (...);
复制表
create table newMain link main; -- 只复制表结构
create table newMain select * from main; -- 只复制数据
重命名表
rename table main to newMain;