跳到主要内容

创建表

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;