SQL SELECT
从一个或多个表中查询数据。
SELECT [DISTINCT] column_list FROM table_name [WHERE condition] [GROUP BY columns] [HAVING condition] [ORDER BY columns] [LIMIT count];查看用法 常见 SQL 语句和写法,并说明六种数据库方言差异。
从一个或多个表中查询数据。
SELECT [DISTINCT] column_list FROM table_name [WHERE condition] [GROUP BY columns] [HAVING condition] [ORDER BY columns] [LIMIT count];查看用法 向表中插入数据。
INSERT INTO table_name (column_a, column_b) VALUES (value_a, value_b);查看用法 更新现有行的数据。
UPDATE table_name SET column = value [, column = value] WHERE condition;查看用法 删除表中符合条件的行。
DELETE FROM table_name WHERE condition;查看用法 根据匹配条件插入或更新数据;不同数据库语法存在差异。
MERGE INTO target USING source ON match_condition WHEN MATCHED THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT ...;查看用法 创建包含列和约束的表。
CREATE TABLE table_name (column_name data_type [constraint], ...);查看用法 修改表结构;支持的操作因数据库方言而异。
ALTER TABLE table_name ADD COLUMN column_name data_type;查看用法 删除表结构及其数据。
DROP TABLE [IF EXISTS] table_name;查看用法 在支持时快速清空表数据;事务和自增序列行为因方言而异。
TRUNCATE TABLE table_name;查看用法 创建索引以支持特定查询模式。
CREATE [UNIQUE] INDEX index_name ON table_name (column_list);查看用法 创建可像表一样引用的命名查询。
CREATE VIEW view_name AS SELECT ...;查看用法 在数据库引擎和当前连接上下文支持时创建数据库。
CREATE DATABASE database_name;查看用法 按关联条件组合多个表的行。
SELECT columns FROM left_table [INNER|LEFT|RIGHT|FULL] JOIN right_table ON condition;查看用法 合并列结构兼容的结果集;UNION 去重,UNION ALL 保留重复行。
query_1 UNION [ALL] query_2;查看用法 为单条语句定义公用表表达式。
WITH cte_name AS (SELECT ...) SELECT ... FROM cte_name;查看用法 在不折叠结果行的情况下计算相关行窗口值。
function(...) OVER (PARTITION BY ... ORDER BY ...);查看用法 根据条件分支返回不同结果。
CASE WHEN condition THEN value [ELSE value] END查看用法 向数据库主体授予权限;权限名称和作用范围因引擎而异。
GRANT privilege ON object TO principal;查看用法 撤销此前授予的权限(若数据库支持)。
REVOKE privilege ON object FROM principal;查看用法 开始显式事务;具体关键字因数据库而异。
BEGIN [TRANSACTION];查看用法 提交当前事务,使更改生效。
COMMIT [TRANSACTION];查看用法 撤销当前事务尚未提交的更改(若数据库支持)。
ROLLBACK [TRANSACTION];查看用法 在事务中标记一个可回滚到的位置。
SAVEPOINT savepoint_name;查看用法 查看查询执行计划;输出和选项因数据库而异。
EXPLAIN [options] query;查看用法 创建数据库用户主体;认证语法由厂商定义。
CREATE USER user_name ...;查看用法 使用数据库方言语法将角色授予用户主体。
GRANT role_name TO principal;查看用法 查看结构元数据;这些命令由客户端提供,并非可移植 SQL。
Use the database client's schema inspection command or query its information schema/catalog.查看用法 从结果集中去除重复行。
SELECT DISTINCT column FROM table;查看用法 使用条件筛选行。
SELECT ... FROM table WHERE condition;查看用法 对行分组以进行聚合计算。
SELECT expression, aggregate(...) FROM table GROUP BY expression;查看用法 在聚合后筛选分组结果。
SELECT ... GROUP BY ... HAVING condition;查看用法 按一个或多个表达式排序查询结果。
SELECT ... ORDER BY expression [ASC|DESC];查看用法 限制或跳过结果行;不同数据库语法存在差异。
SELECT ... ORDER BY ... LIMIT count OFFSET offset;查看用法 在另一条语句中将查询用作表达式、数据源或条件。
SELECT ... WHERE value IN (SELECT ...);查看用法 使用 NOT NULL、UNIQUE、CHECK、PRIMARY KEY 和 FOREIGN KEY 约束数据规则。
CREATE TABLE ... (column type NOT NULL, UNIQUE (...), CHECK (...), FOREIGN KEY (...) REFERENCES ...);查看用法 唯一标识行并强制非空唯一性。
PRIMARY KEY (column_list)查看用法 在启用且受支持时约束相关表之间的引用关系。
FOREIGN KEY (column) REFERENCES parent_table (column)查看用法 在支持时创建命名空间;schema 含义因数据库而异。
CREATE SCHEMA schema_name;查看用法 使用数据库特定语法修改或删除索引。
DROP INDEX index_name; -- ALTER syntax varies by engine查看用法 删除视图定义。
DROP VIEW [IF EXISTS] view_name;查看用法 在支持时删除数据库;此操作具破坏性且通常不可逆。
DROP DATABASE database_name;查看用法 在支持时将事务回滚到指定保存点。
ROLLBACK TO SAVEPOINT savepoint_name;查看用法 管理数据库权限;对象范围、角色和语法因引擎而异。
GRANT privilege ON object TO principal;
REVOKE privilege ON object FROM principal;查看用法 返回第一个非 NULL 值;判断空值需使用 IS NULL / IS NOT NULL。
COALESCE(expression, fallback)查看用法 处理日期时间值;函数名称和间隔语法因方言而异。
CURRENT_DATE · CURRENT_TIMESTAMP · vendor date functions查看用法 转换或检查字符串;函数名称因方言而异。
CONCAT(...) · SUBSTRING(...) · LENGTH(...)查看用法 使用 COUNT、SUM、AVG、MIN 和 MAX 汇总分组数据。
COUNT(*) · SUM(expression) · AVG(expression) · MIN(...) · MAX(...) 查看用法 创建临时数据;生命周期取决于数据库会话或事务规则。
CREATE TEMPORARY TABLE name (...);查看用法 在表事件发生时运行数据库逻辑;触发器语法差异较大。
CREATE TRIGGER trigger_name ... ON table_name ...查看用法 使用厂商特定过程语言定义可复用的数据库端逻辑。
CREATE PROCEDURE / CREATE FUNCTION ...查看用法 在支持的引擎上执行查询并报告实际计划统计。
EXPLAIN ANALYZE query;查看用法 查询元数据视图以检查表、列和约束。
SELECT ... FROM information_schema.tables / columns;查看用法 在支持的事务上下文中配置隔离级别或读写行为。
SET TRANSACTION ISOLATION LEVEL ...;查看用法 使用行锁或表锁协调并发访问;语法与隔离机制因数据库而异。
SELECT ... FOR UPDATE; -- support and clauses vary查看用法 在查询和数据变更语句中使用条件逻辑。
CASE WHEN condition THEN result ELSE fallback END查看用法 检查子查询是否至少返回一行。
WHERE EXISTS (SELECT 1 FROM ... WHERE correlated_condition)查看用法 没有匹配条目,请尝试其他关键词。