更新记录
2022年6月16日 发布。
2022年6月11日 将笔记迁移到博客中。
显示当前所在数据库的表
SHOW TABLES;
显示指定数据库的表
SHOW TABLES FROM <数据库名称>;
SHOW COLUMNS FROM 表名;
CREATE TABLE [IF NOT EXISTS] 表名 ( 字段1 数据类型 [约束] [默认值], 字段2 数据类型 [约束] [默认值], ... 【表级别约束条件】 )[ENGINE=<存储引擎>] [CHARSET=<字符编码>] [COLLATE <排序方式>];
从其他表复制结构(全部字段)
CREATE TABLE 新表名 LIKE 旧表名;
从其他表复制结构和数据(指定字段)
CREATE TABLE 新表名 SELECT 旧表的列... FROM 旧表名;
从其他表复制结构(指定字段)
CREATE TABLE 新表名 SELECT 旧表的列... FROM 旧表名 WHERE 1=0;
从其他表复制结构(指定字段)(指定条件的数据)
CREATE TABLE 新表名 SELECT 旧表的列... FROM 旧表名 WHERE <条件>;
创建表后增加注释
CREATE TABLE user ( -- ... ) COMMENT='用户表';
注意:MySQL 中数据列不区分大小写,但数据库和数据表区分大小写
注意:该操作会使用默认的表字符类型和表默认引擎,而不是旧表的值
DESCRIBE 表名;
或者
DESC 表名;
SHOW CREATE TABLE 表名;
字段 数据类型 PRIMARY KEY;
或者
[CONSTRAINT <约束名>] PRIMARY KEY ([字段名,字段名...])
保证唯一性 | 是否允许为空 | 一个表中可以有多少个 | 是否允许组合 | |
---|---|---|---|---|
主键 | 是 | 否 | 至多有1个 | 可以 |
唯一 | 是 | 是 | 可以有多个 | 可以 |
[CONSTRAINT <外键约束名>] FOREIGN KEY (字段1,....) REFERENCES <主表>(字段1,....);
或者
ALTER TABLE <表名> ADD [CONSTRAINT <外键约束名>] FOREIGN KEY (字段1,....) REFERENCES <主表>(字段1,....);
字段 数据类型 NOT NULL;
字段 数据类型 UNIQUE;
或者
[CONSTRAINT <约束名>] UNIQUE(字段名);
或者
ALTER TABLE <表名> ADD [CONSTRAINT <约束名>] UNIQUE(字段名);
字段 数据类型 DEFAULT 默认值;
字段 数据类型 AUTO_INCREMENT; 字段 数据类型 AUTO_INCREMENT = 666;
注意:必须时键才可以使用自增,比如(主键、唯一)
字段 数据类型 UNSIGNED;
注意:只能用于整数
字段 数据类型 ZEROFILL
注意:只能用于整数
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
ALTER TABLE <表名> ENGINE = <改后的存储引擎>;
ALTER TABLE <表名> CHARSET = '字符类型';
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;
DROP TABLE [IF EXISTS] 表名,...;
OPTIMIZE TABLE 表名;
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST | AFTER 已存在字段名];
ALTER TABLE <表名> DROP <字段名>;
ALTER TABLE <表名> MODIFY <字段名> <数据类型> [约束条件] [FIRST | AFTER 已存在字段名];
ALTER TABLE <表名> MODIFY <字段名> <数据类型> FIRST | AFTER <字段2>;
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
ALTER TABLE 表名 ADD [CONSTRAINT 约束名] 约束类型(字段名)