创建表
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;