一个 所有 SQL 语句 用法 的 速查表。

这个 仓库 被 社区 不断 添加 和 更新 , 欢迎 提交 PR ????。

  1. 查找 数据 的 查询
  2. 修改 数据 的 查询
  3. 聚合 查询
  4. 连接 查询
  5. 视图 查询
  6. 修改 表 的 查询

SELECTATI : 用于 从 数据库 中 选择 数据

  • SELECT * FROM table_name;

DISTINCT : 用于 过滤 掉 重复 的 值 并 返回 指定 列 的 行

  • SELECT DISTINCT nume_coloana;

UNDE : 用于 过滤 记录 / 行

  • SELECT coloana1, coloana2 DIN table_name WHERE conditie;
  • SELECT * FROM table_name WHERE condition1 AND condition2;
  • SELECT * FROM table_name WHERE conditie1 SAU conditie2;
  • SELECT * FROM table_name WHERE NOT condition;
  • SELECT * FROM table_name WHERE conditie1 SI (conditie2 SAU conditie3);
  • SELECT * FROM table_name WHERE EXISTS (SELECT nume coloana FROM table_name WHERE conditie);

COMANDA DE : 用于 结果 集 的 排序 , 升序 (ASC) 或者 降序 (DESC)

  • SELECT * FROM table_name ORDER BY column;
  • SELECT * FROM table_name ORDER BY column DESC;
  • SELECT * FROM table_name ORDER BY column1 ASC, column2 DESC;

SELECTIATI TOP : 用于 指定 从 表 顶部 返回 的 记录 数

  • SELECTATI numarul TOP coloane_nume DIN tabela nume WHERE conditie;
  • SELECTIE TOP procentaj nume_coloane DIN nume_tabel conditie WHERE;
  • 并非 所有 数据库 系统 都 支持 SELECT TOP。 MySQL 中 是 LIMIT 子句
  • SELECT nume_coloana FROM nume_tabel LIMITA compensare, numarare;

LIKE : 用于 搜索 列 中 的 特定 模式 , WHERE 子句 中 使用 的 运算 符

  • % (semn procentual) 是 一个 表示 零 个 , 一个 或 多个 字符 的 通配符
  • _ (subliniere) 是 一个 表示 单个 字符 通配符
  • SELECTAti nume_coloana DIN nume_tabel UNDE nume_coloana LIKE model;
  • LIKE ‘a%’ (查找 任何 以 „a” 开头 的 值)
  • LIKE ‘% a’ (查找 任何 以 „a” 结尾 的 值)
  • LIKE „% sau%” or 查找 任何 包含 „sau” 的 值)
  • LIKE ‘_r%’ (查找 任何 第二 位 是 „r” 的 值)
  • LIKE ‘a _% _%’ (查找 任何 以 „a” 开头 且 长度 至少 为 3 的 值)
  • LIKE ‘[ac]%’ (查找 任何 以 „a” 或 „b” 或 „c” 开头 的 值)

IN : 用于 在 UNDE 子句 中 指定 多个 值 的 运算 符

  • 本质 上 , IN 运算 符 是 多个 SAU 条件 的 简写
  • SELECTAti nume_coloana FROM nume_tabel UNDE nume_coloana IN (valoare1, valoare2, …);
  • SELECT nume_coloana FROM nume_tabel WHERE nume_coloana IN (DECLARATIE SELECT);

INTRE : 用于 过滤 给 定 范围 的 值 的 运算 符

  • SELECT NUME_coloana DIN nume_tabel UNDE nume_coloana INTRE valoarea1 SI valoarea2;
  • SELECT * DIN PRODUSE UNDE (nume_coloana INTRE valoarea1 SI valoare2) SI NU nume_coloana2 IN (valoare3, valoare4);
  • SELECTEAZA * DIN PRODUSE UNDE nume_coloana INTRE 01/07/1999 # SI # 03/12/1999 #;

NUL : 代表 一个 字段 没有 值

  • SELECT * FROM table_name WHERE column_name IS NULL;
  • SELECT * FROM table_name WHERE column_name IS NOT NULL;

AS : 用于 给 表 或者 列 分配 别名

  • SELECT nume_coloana AS nume_alias FROM nume_tabel;
  • SELECT nume_coloana FROM nume_tabel AS nume_alias;
  • SELECT nume_coloana AS nume_alias1, nume_coloana2 AS nume_alias2;
  • SELECT nume_coloana1, nume_coloana2 + ‘,’ + nume_coloana3 AS nume_alias;

UNION : 用于 组合 两个 或者 多个 SELECT 语句 的 结果 集 的 运算 符

  • 每个 SELECT 语句 必须 拥有 相同 的 列 数
  • 列 必须 拥有 相似 的 数据 类型
  • 每个 SELECT 语句 中 的 列 也 必须 具有 相同 的 顺序
  • SELECT nume_coloane FROM tabel1 UNION SELECT nume_coloana FROM tabel2;
  • UNION 仅 允许 选择 不同 的 值, UNION ALL 允许 重复

ORICE | TOATE : 用于 检查 UNDE 或 AVAND 子句 中 使用 的 子 查询 条件 的 运算 符

  • ORICE 如果 任何子 查询 值 满足 条件 , 则 返回 adevarat。
  • ALL 如果 所有 子 查询 值 都 满足 条件 , 则 返回 true。
  • SELECT nume_coloane FROM tabel1 WHERE operator nume_coloana (ORICARE | TOATE) (SELECT nume_coloana DIN nume_tabel conditie WHERE);

GRUPA PE : 通常 与 聚合 函数 (COUNT , MAX , MIN , SUMA , AVG) 一起 使用 , 用于 将 结果 集 分组 为 一 列 或多 列

  • SELECT nume_coloana1, COUNT (nume_coloana2) DE la nume_tabel WHERE conditie GROUP BY nume_coloana1 COMANDA CU COUNT (nume_coloana2) DESC;

AVAND : AVAND 子句 指定 SELECT 语句 应 仅 返回 聚合 值 满足 指定 条件 的 行。 它 被 添加 到 SQL 语言 中 , 因为 UNDE 关键字 不能 与 聚合 函数 一起 使用。

  • SELECTATI COUNT (nume_coloana1), nume_coloana2 DIN tabel GRUPUL CU nume_colona2 AVAND COUNT (nume_coloana1)> 5;

INSERATI IN : 用于 在 表 中 插入 新 记录 / 行

  • INSERT INTO table_name (coloana1, coloana2) VALORI (valoare1, valoare2);
  • INSERT INTO table_name VALORI (valoare1, valoare2 …);

ACTUALIZARE : 用于 修改 表 中 的 现有 记录 / 行

  • ACTUALIZARE nume_tabel SET coloana1 = valoare1, coloana2 = valoare2 conditie WHERE;
  • ACTUALIZARE nume_tabel SET nume_coloana = valoare;

STERGE : 用于 删除 表 中 的 现有 记录 / 行

  • STERGETI DIN table_name WHERE conditie;
  • STERGE * DIN table_name;

COUNT :返回出现次数

  • SELECT COUNT (DISTINCT nume_coloana);

MIN () si MAX () : 返回 所选 列 的 最小 / 最大值

  • SELECTATI MIN (nume_coloana) DIN nume_tabel WHERE conditie;
  • SELEGETI MAX (nume_coloana) DIN nume_tabel WHERE conditie;

AVG () : 返回 数字 列 的 平均值

  • SELECT AVG (nume_coloana) FROM nume_tabel conditie WHERE;

SUM () : 返回 数值 列 的 总和

  • SELECT SUM (column_name) FROM table_name WHERE conditie;

INNER JOIN : 内 连接 , 返回 在 两张 表 中 具有 匹配 值 的 记录

STANGA (EXTERIOR) INREGISTRARE : 左 外 连接 , 返回 左 表 (table1) 中 的 所有 记录 , 以及 右 表 中 的 匹配 记录 (table2)

  • SELECT nume_coloana DIN tabel1 INREGISTRARE STANGA tabel2 ON tabel1.nume_coloana = tabel2.nume_coloana;

DREAPTA (EXTERIOR) JOIN : 右 外 连接 , 返回 右 表 (table2) 中 的 所有 记录 , 以及 左 表 (table1) 中 匹配 的 记录

  • SELECTAti nume_coloana DIN tabel1 INREGISTRARE DREPT tabel2 ACTIVAT tabel1.numele_coloanei = tabelul2.numele_coloanei;

FULL (OUTER) JOIN : 全 ER 连接 , 全 连接 是 左右 外 连接 的 并 集. 连接 表 包含 被 连接 的 表 的 所有 记录, 如果 缺少 匹配 的 记录, 以 NULL 填充。

  • SELECT nume_coloana DIN tabel1 FULL OUTER JOIN tabel2 ON tabel1.column_name = table2.column_name;

Self JOIN : 自 连接 , 表 自身 连接

  • SELECT nume_coloane DIN tabelul1 T1, tabelul1 T2 WHERE conditie;

CREATI : 创建 视图

  • CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE conditie;

SELECTATI : 检索 视图

  • SELECT * FROM view_name;

DROP : 删除 视图

  • DROP VIEW view_name;

ADAUGATI : 添加 字段

  • ALTER TABLE nume_tabel ADAUGA nume_coloana coloana_definitie;

MODIFICA : 修改 字段 数据 类型

  • ALTER TABLE table_name MODIFY column_name column_type;

DROP : 删除 字段

  • ALTER TABLE table_name DROP COLUMN nume_coloana;