创建数据表
格式:
CREATE [TEMPOPRARY] TABLE [IF NOT EXISTS] 表名
[(create_definition,…))][table_options][select_statement];
参数说明:
关键字 | 说明 |
---|---|
create_definition | 表的列属性。要求创建表时,至少包含一列。 格式:col_name type[NOT NULL | NULL][DEFAULT default_value][AUTO_INCREMENT][PRIMARY_KEY][reference_definition] |
table_options | 表的属性。一般来说用于选填表将如何存储,并且存储在何处。例如ENGINE选项用于定义表的存储引擎。 |
select_statement | SELECT语句。一般用于快速建表。 |
例:
查看表结构
查看表结构分别有两种方式:
1. SHOW [FULL] COLUMNS FROM 表名;
2. DESCRIBE 表名; 或者缩写 DESC 表名;
例:
修改表结构
修改表结构均使用 ALTER TABLE 语句。修改表结构指增加字段或者删除字段、修改字段名称或者字段类型、设置或者取消主键和外键、设置或者取消索引以及修改表注释等,语法如下:
ALTER [IGNORE] TABLE 数据表名 alter_spec[,alter_spec]…| table_options;
其中 [IGNORE] 为可选项,表示如果出现重复关键的行,则只执行一行。其他重复行被删除。alter_spec为需要修改的内容,以下为alter_spec的语法格式列表:
alter_spec 内容 | 说明 |
---|---|
ADD [COLUMN] create_definition [FIRST |AFTER col_name] | 添加新字段 |
ADD INDEX [index_name] (index_col_name,…) | 添加索引名称 |
ADD PRIMARY KEY (col_name) | 添加主键名称 |
ADD UNIQUE [index_name](index_col_name) | 添加唯一索引 |
ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} | 修改字段默认值 |
CHANGE [COLUMN] old_col_name create_definition | 修改字段定义(字段名、类型) |
MODIFY [COLUMN] create_definition | 修改子句定义字段 |
DROP [COLUMN] col_name | 删除字段 |
DROP PRIMARY KEY | 删除主键 |
DROP INDEX index_name | 删除索引 |
RENAME [AS] new_tbl_name | 修改表名 |
其中 {SET DEFAULT literal | DROP DEFAULT} 指设置默认值或者删除默认值,literal为指定的默认值。
ALTER TABLE 语句允许指定多个动作,其动作间使用逗号分隔,每个动作表示对表的一个修改。
添加新字段与修改字段定义
例:
修改字段名
例:
删除字段
例:
修改表名
例:
重命名表
格式:
RENAME TABLE 旧表名 TO 新表名;
例:
复制表
在一张已经存在的表的基础上,复制一张表结构甚至表数据相同但表名不同的表,即复制表。有两种格式:
CREATE TABLE [IF NOT EXISTS] 数据表名 {LIKE 源数据表名};
其中 {LIKE 源数据表名} 是必选项,指要从哪个源数据表来创建副本。
例:
CREATE TABLE … LIKE 方式复制的新表,数据不复制。例:
使用这种方式复制表时,只会创建一个与源数据表有相同的表结构、列名、数据类型、索引的副本,但是并不会复制源数据表中的数据。若要同时复制表数据,可用AS子句来实现。
AS子句方式复制表:
CREATE TABLE 表名 AS SELECT * FROM 源数据表;
该方式可同时复制源表的结构和源表的数据,例:
删除表
格式:
DROP TABLE 表名;
例: