表
创建表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名 [ (create_definition,...)] [table_options] [select_statement];
TEMPORARY | 可选 | 表示该表为临时表.此表在当前会话结束后将自动消失。临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字一般不用 若该临时表 表名与已有表重名且为指定if not exists 则在临时表存在期间,对该客户机隐藏原有表 |
IF NOT EXISTS | 可选 | 若表不存在 则创建 存在则不创建 |
(create_definition,...) | 必选 至少有一列 | col_name type 完整性约束 |
table_options | 可选 | [ENGINE =存储引擎类型] [DEFAULT CHARSET=字符集] |
select_statement | 可选 | [UNIQUE | FULLTEXT|SPATIAL] SELECT语句描述部分,用它可以快速地创建表 |
col_name | 必选 | id | 列名.必须符合标识符规则,且在表中要唯一 | ||
type | 必选 | 整型 UNSIGNED 无符号 | 类型,有的需要指明长度n,用括号括起 | ||
整型 SIGNED 有符号 | |||||
其他 | |||||
序号 | 完整性约束 | 可选 | |||
1 | NOT NULL| NULL | 可选 | id INT(11) NOT NULL | 是否可为空,不指定时 默认 NULL | |
2 | DEFAULT default_value | 可选 | 为该列设定默认值,默认值必须是常量 | ||
3 | AUTO_INCREMENT | 可选 | 自增类型,一个表中仅允许一列为该属性, 且必须被索引,且不能有DEFAUL值,从1开始,只存储正数, | ||
UNIQUE | 可选 | 指定该列为 UNIQUE索引 | |||
key|INDEX | 可以包含重复值的索引 | ||||
PRIMARY KEY | 可选 至少有一列 | PRIMARY KEY(col_1[,col_2,....]) | 设为主键,主键具有UNIQUE 属性且NOT NULL 若无显示声明,则MySQL将会帮你隐式声明 | ||
CHECK (expr) | 可选 | 是否检查 | |||
| comment '注释' | 可选 | 注释会在SHOW CREATE TABLE 和 SHOW FULL COLUMNS 中显示 |
类型 | 缺省时 | |
数字类型 | 有AUTO_INCREMENT | 顺序中的下一个值 |
无AUTO_INCREMENT | 0 | |
日期和时间类型 | TIMESTAMP | 第一个TIMESTAMP列,缺省值是当前的日期和时间。 |
其他 | 该类型适当的“零”值 | |
字符串类型 | ENUM | 第一个枚举值 |
其他 | 空字符串 |
在创建表的时候,首先声明PRIMARY KEY,然后是UNIQUE KEY, 最后是NO UNIQUE INDEX,这将帮助MySQL优化器去排序哪个索引被使用以及更快的检测重复值
自增类型字段
字段名 数据类型 AUTO_INCREMENT
赋值表的结构
CREATE TABLE [ IF NOT EXISTS ] 表名 like { 原数据表名 | (like 原数据表名) }
仅复制数据表的列名 空指定 索引,但表的内容是不会复制的
DESC 表名 ; 显示表的结构