11.MySQL常用SQL命令一览表

1.数据库

创建、更改、删除语法
创建新数据库CREATE DATABASE 数据库名;
更改数据库ALTER DATABASE 数据库名;
删除数据库DROP DATABASE 数据库名;
选择数据库USE 数据库名;

2.表

创建、更改、删除语法
创建新表CREATE TABLE 表名
(
列名1 数据类型,
列名2 数据类型,
列名3 数据类型
);
更改表ALTER TABLE 表名;
删除表DROP TABLE 表名;
删除表(只删除表内的数据,但并不删除表本身)TRUNCATE TABLE 表名;
重命名表RENAME TABLE 老表名 TO 新表名;
表别名SELECT 列名 FROM 表名  AS 表别名;
约束语法
NOT NULL(列不接受 NULL 值)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型
);
UNIQUE(列唯一性)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
UNIQUE (列名1)
);
UNIQUE(列唯一性,约束名和多个列)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CONSTRAINT 约束名 UNIQUE (列名1, 列名2)
);
UNIQUE(列唯一性,更改已存在表)ALTER TABLE 表名
ADD UNIQUE (列名1);
UNIQUE(列唯一性,更改已存在表,约束名和多个列)ALTER TABLE 表名
ADD CONSTRAINT 约束名 UNIQUE (列名1, 列名2);
删除UNIQUE约束ALTER TABLE 表名
DROP INDEX 约束名;
PRIMARY KEY(列主键)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
PRIMARY KEY (列名1)
);
PRIMARY KEY(列主键,约束名和多个列)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CONSTRAINT 约束名 PRIMARY KEY (列名1, 列名2)
);
PRIMARY KEY(列主键,更改已存在表)ALTER TABLE 表名
ADD PRIMARY KEY (列名1);
PRIMARY KEY(列主键,更改已存在表,约束名和多个列)ALTER TABLE 表名
ADD CONSTRAINT 约束名 PRIMARY KEY (列名1, 列名2);
删除PRIMARY KEY约束ALTER TABLE 表名
DROP PRIMARY KEY;
FOREIGN KEY(列外键)CREATE TABLE 表名2
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
PRIMARY KEY (列名1),
FOREIGN KEY (列名3) REFERENCES 表名1(列名1)
);
FOREIGN KEY(列外键,约束名和多个列)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CONSTRAINT 约束名 FOREIGN KEY (列名3) REFERENCES 表名1(列名1)
);
FOREIGN KEY(列主键,更改已存在表)ALTER TABLE 表名
ADD FOREIGN KEY (列名3) REFERENCES 表名1(列名1);
FOREIGN KEY(列主键,更改已存在表,约束名和多个列)ALTER TABLE 表名
ADD CONSTRAINT 约束名 FOREIGN KEY (列名3) REFERENCES 表名1(列名1);
删除FOREIGN KEY约束(注意:删除外键约束并没有删除外键这一列)ALTER TABLE 表名
DROP FOREIGN KEY 约束名;
CHECK(列范围)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CHECK (列名1>0)
);
CHECK(列范围,约束名和多个列)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CONSTRAINT 约束名 CHECK (列名1>0 AND 列名2 = ‘Sandnes’)
);
CHECK(列范围,更改已存在表)ALTER TABLE 表名
ADD CHECK (列名1>0);
CHECK(列范围,更改已存在表,约束名和多个列)ALTER TABLE 表名
ADD CONSTRAINT 约束名 CHECK (列名1>0 AND 列名2 = ‘Sandnes’);
删除CHECK约束ALTER TABLE 表名
DROP CHECK 约束名;
DEFAULT(默认值)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型 DEFAULT ‘Sandnes’
);
DEFAULT(默认值,更改已存在表)ALTER TABLE 表名
ALTER City SET DEFAULT ‘SANDNES’;
删除DEFAULT约束ALTER TABLE 表名
ALTER City DROP DEFAULT;
自动增加(AUTO INCREMENT,默认开始值是 1,每条新记录递增 1)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL AUTO_INCREMENT,
列名2 数据类型 NOT NULL,
列名3 数据类型
);

3.列

添加、更改、删除语法
添加列(已存在表)ALTER TABLE 表名
ADD 列名 数据类型;
更改列(已存在表)ALTER TABLE 表名
ALTER COLUMN 列名 数据类型;
删除列(已存在表)ALTER TABLE 表名
DROP COLUMN 列名;
重命名列ALTER TABLE 表名 RENAME COLUMN 老列名 TO 新列名;
列别名SELECT 列名 AS 列别名 FROM 表名;(注意:当AS左侧的列名不存在的时候,AS会使用右侧的列别名新增列名,使用左侧的列名赋予默认值)

4.记录

查询语法
查询(所有列)SELECT * FROM 表名;
查询(特定列)SELECT 列名1,列名2 FROM 表名;
查询(记录去重)SELECT DISTINCT 列名 FROM 表名;
查询(限定记录的数目或百分比)SELECT 列名 FROM 表名 LIMIT 数字;
查询(ASC升序,DESC降序)SELECT 列名 FROM 表名 ORDER BY 列名 [ASC|DESC];
查询(GROUP BY分组)SELECT 列名1,函数(列名2) FROM 表名 GROUP BY 列名1;
查询(HAVING条件)SELECT 列名1,函数(列名2) FROM 表名 GROUP BY 列名1
HAVING 函数(列名2)<2000;
条件查询语法
条件查询SELECT 列名 FROM 表名 WHERE 条件;
条件查询(AND|OR)SELECT 列名 FROM 表名 WHERE 条件1 AND|OR 条件2;
条件查询(LIKE)SELECT 列名 FROM 表名 WHERE 列名 LIKE pattern;
条件查询(NOT LIKE)SELECT 列名 FROM 表名 WHERE 列名 NOT LIKE pattern;
条件查询(IN)SELECT 列名 FROM 表名 WHERE 列名 IN (值1,值2,..);
条件查询(BETWEEN..AND)SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2;
条件查询(NOT BETWEEN..AND)SELECT 列名 FROM 表名 WHERE 列名 NOT BETWEEN 值1 AND 值2;
条件查询(IS NULL)SELECT 列名 FROM 表名 WHERE 列名 IS NULL;
条件查询(IS NOT NULL)SELECT 列名 FROM 表名 WHERE 列名 IS NOT NULL;
联表查询语法
联接(JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1, 表名2 WHERE 表名1.主键 = 表名2.外键;
内联接(INNER JOIN,同JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1 INNER JOIN 表名2 ON 表名1.主键= 表名2.外键;
左联接(LEFT JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1 LEFT JOIN 表名2 ON 表名1.主键= 表名2.外键;
右联接(RIGHT JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1 RIGHT JOIN 表名2 ON 表名1.主键= 表名2.外键;
全联接(FULL JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1 FULL JOIN 表名2 ON 表名1.主键= 表名2.外键;
合并查询语法
UNIONSELECT 列名 FROM 表名1 UNION SELECT 列名 FROM 表名2;
UNION ALLSELECT 列名 FROM 表名1 UNION ALL SELECT 列名 FROM 表名2;
备份语法
备份老表所有列到新表SELECT * INTO 新表名 FROM 老表名;(同一个数据库)
备份老表特定列到新表SELECT 列名 INTO 新表名 FROM 老表名;(同一个数据库)
备份老表所有列到新数据库的表SELECT * INTO 表名 IN ‘新数据库’ FROM 老表名;(非同一个数据库)
备份老表特定列到新数据库的表SELECT 列名 INTO 表名 IN ‘新数据库’ FROM 老表名;(非同一个数据库)
增加、更改、删除语法
增加记录(按列顺序)INSERT INTO 表名 VALUES (值1, 值2,….);
增加记录(特定列)INSERT INTO 表名 (列名1, 列名2,…) VALUES (值1, 值2,….);
复制已存在表1数据到已存在表2(全部列)INSERT INTO 已存在表2 SELECT * FROM 已存在表1;
复制已存在表1数据到已存在表2(特定列)INSERT INTO 已存在表2 (列名1, 列名2,…) SELECT 列名1, 列名2,… FROM 已存在表1;
更改记录UPDATE 表名 SET 列名 = 新值 WHERE 条件;
删除记录(所有列)DELETE FROM 表名;
删除记录(特定列)DELETE FROM 表名 WHERE 条件;

5.索引

名称语法
创建索引CREATE INDEX 索引名 ON 表名 (列名);
创建唯一索引CREATE UNIQUE INDEX 索引名 ON 表名 (列名);
删除索引DROP INDEX 索引名 ON 表名;
重命名索引(已存在表)ALTER TABLE 表名 RENAME INDEX 老索引名 TO 新索引名;

6.用户管理

用户管理语法
创建新角色CREATE ROLE 角色名;
删除角色DROP ROLE 角色名;
定义在用户会话中默认激活哪些用户角色。SET DEFAULT ROLE 角色名 TO 用户;
将当前会话中的活动角色设置为当前用户默认角色。SET ROLE DEFAULT;
通过指定其授予的哪些角色处于活动状态,修改当前用户在当前会话中的有效权限。SET ROLE 角色名;
创建新用户CREATE USER 用户名;
更改用户ALTER USER 用户名;
重命名用户RENAME USER 老用户名 TO 新用户名;
删除用户DROP USER 用户名;
修改密码ALTER USER 用户名 IDENTIFIED BY ‘密码’;
授予权限GRANT 权限类型 ON 权限对象 TO 用户名 或 角色名;
取消权限REVOKE 权限类型 ON 权限对象 FROM 用户名 或 角色名;

8.SHOW语句

SHOW语句语法
查看给定用户的CREATE USER语句SHOW CREATE USER 用户名;
查看属于特定用户或角色的权限SHOW GRANTS FOR 用户名或角色名;
查看所有MySQL server支持的系统权限列表SHOW PRIVILEGES;
查看(所有)字符集SHOW CHARACTER SET;
查看(所有)字符集排序规则SHOW COLLATION;
查看所有数据库SHOW DATABASES;
查看给定数据库的CREATE DATABASE语句SHOW CREATE DATABASE 数据库名;
查看所有表SHOW TABLES;
查看给定表的CREATE TABLE语句SHOW CREATE TABLE 表名;
查看给定表的所有列信息SHOW COLUMNS FROM 表名;
查看给定表的索引信息SHOW INDEX FROM 表名;

9.MySQL server管理

MySQL server管理语法
连接MySQL servermysql -u 用户名 -p;
重启MySQL serverRESTART;
关闭MySQL serverSHUTDOWN;
退出MySQL Command Line Clientquit; 或 \q

10.备注

MySQL语句对大小写不敏感,SELECT等效于select

MySQL语句末尾建议一般加上;分号。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/sql/15881.html

(0)
上一篇 2022年7月20日 22:15
下一篇 2022年8月1日 10:07

相关推荐

  • 10.SQL Server常用数据类型一览表

    1.整数类型 数据类型 存储大小(字节) 范围 bit x≤8bit列(1字节),9≤x≤16bit列(2字节) 可以取值为 1、0 或 NULL 的整数数据类型 tinyint 1字节 0 到 255 smallint 2字节 -215 (-32,768) 到 215-1 (32,767) int 4字节 -231 …

    SQL教程 2022年3月12日
    04230
  • 8.MySQL常用数据类型一览表

    1.Integer(整数精确值) INT 的同义词为 INTEGER 。 类型 存储(字节) 范围 TINYINT[UNSIGNED] 1 有符号 -128(-27) ~ 127(27-1),无符号 0 ~ 255(28-1)。 SMALLINT[UNSIGNED] 2 有符号 -32,768(-215) ~ 32,7…

    SQL教程 2021年10月17日
    02980
  • 4.安装MySQL和phpMyAdmin的步骤(Ubuntu)

    1.配置MySQL源 首先到https://dev.mysql.com/downloads/repo/apt/,下载对应的 MySQL APT 存储库并安装。 2.安装MySQL 在安装过程中,要求您为数据库根用户root用户提供密码以进行MySQL安装。 在Ubuntu下安装MySQL后,会自动注册为服务,并随操作系…

    SQL教程 2021年1月6日
    08890

发表回复

登录后才能评论