MySQL 命令速查
SQL语句对大小写不敏感
基础语法
SELECT 列名称 FROM 表名称
DISTINCT 用语返回唯一的值
SELECT DISTINCT 列名称 FROM 表名称
WHERE 有条件从表中选取数据
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
操作符 | 描述 |
---|---|
= | 等于 |
<> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
AND 和 OR 运算符是基于一个以上条件对记录进行过滤
ORDER BY 语句用于对结果集进行升序排序,如降序进行排序,可以使用 DESC 关键字
INSERT INTO 向表格中插入新的行
INSERT INTO 表名称 VALUES (值1,值2,…)
INSERT INTO 表名称 (列1,列2,…) VALUES (值1,值2,…)
UPDATE 修改表中的数据
UPDATE 表名称 SET 列名称=新值 WHERE 列名称=新值
DELETE 删除表中的行
DELETE FROM 表名称 WHERE 列名称=值
高级语法
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式("%" 可用于定义通配符)
SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 模式
% | 替代一个或多个字符 |
---|---|
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist][!charlist] | 不在字符列中的任何单一字符 |
IN 操作符允许我们在 WHERE 子句中规定多个值
SELECT 列名称 FROM 表名称 WHERE 列名称 IN (值1,值2,…)
BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围
SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2
Alias 别名
SELECT 列名称 FROM 表名称 AS 别名
SELECT 列名称 AS 别名 FROM 表名
JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据
SELECT A.a, A.b, B.a FROM A JOIN B ON A.id=B.id
- JOIN: 如果表中有至少一个匹配,则返回行
- LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN: 只要其中一个表中存在匹配,就返回行
UNION 操作符用于合并两个或多个 SELECT 语句的结果集
UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL
SELECT 列名 FROM 表名 UNION SELECT 列名 FROM 表名
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中
SELECT 列名 INTO 新表名 FROM 旧表名
CREATE DATABASE 用于创建数据库
CREATE DATABASE 数据库名
CREATE TABLE 语句用于创建数据库中的表
CREATE TABLE 表名 (列名 类型,列名 类型);
SQL 约束用于限制加入表的数据的类型
- NOT NULL 约束强制列不接受 NULL 值
- UNIQUE 约束唯一标识数据库表中的每条记录
- PRIMARY KEY 主键必须包含唯一的值,主键列不能包含 NULL 值
- FOREIGN KEY 指向另一个表中的 PRIMARY KEY,约束用于预防破坏表之间连接的动作
- CHECK 约束用于限制列中的值的范围
- DEFAULT 约束用于向列中插入默认值
CREATE INDEX 语句用于在表中创建索引
CREATE INDEX 索引名 ON 表名(列名)
DROP 语句,可以轻松地删除索引、表和数据库
DROP INDEX 列名.索引名
DROP TABLE 表名
DROP DATABASE 库名
删除表内数据,不删除表本身
TRUNCATE TABLE 表名称
ALTER TABLE 语句用于在已有的表中添加、修改或删除列
ALTER TABLE 表名 ADD 列名 类型
ALTER TABLE 表名 ALTER COLUMN 列名 类型
ALTER TABLE 表名 DROP COLUMN 列名
AUTO INCREMENT 在新记录插入表中时生成一个唯一的数字
SQL VIEW 视图是可视化的表
CREATE VIEW 图名 AS SELECT 列名 FROM 表名 WHERE 条件
CREATE OR REPLACE VIEW 图名 AS SELECT 列名 FROM 表名 WHERE 条件
DROP VIEW 图名
SQL Date 函数
函数 | 描述 |
---|---|
NOW() | 返回当前的日期和时间 |
CURDATE() | 返回当前的日期 |
CURTIME() | 返回当前的时间 |
DATE() | 提取日期或日期/时间表达式的日期部分 |
EXTRACT() | 返回日期/时间按的单独部分 |
DATE_ADD() | 给日期添加指定的时间间隔 |
DATE_SUB() | 从日期减去指定的时间间隔 |
DATEDIFF() | 返回两个日期之间的天数 |
DATE_FORMAT() | 用不同的格式显示日期/时间 |
NULL 值是遗漏的未知数据
MySQL 数据类型(文本、数字和日期/时间类型)
SQL 函数
- Aggregate 函数
- Scalar 函数
SELECT funCtion(列) FROM 表
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组
SELECT 列名,function() FROM 表名 WHERE 列名 GROUP BY 列名
HAVING 增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用
SELECT 列名,function() FROM 表名 WHERE 列名 GROUP BY 列名 HAVING function()