MySql教程

MySQL-常用数据表操作SQL汇总

本文主要是介绍MySQL-常用数据表操作SQL汇总,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

更新记录
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 约束名] 约束类型(字段名)
这篇关于MySQL-常用数据表操作SQL汇总的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!