这是 Databricks SQL 和 Databricks Runtime 的 SQL 命令参考。
有关如何理解和使用此参考中的语法表示法和符号的信息,请参阅 如何使用 SQL 参考。
有关将 SQL 与 Lakeflow Spark 声明性管道配合使用的信息,请参阅 Pipeline SQL 语言参考。
Note
Databricks SQL 无服务器在 Azure 中国区域不可用。 Databricks SQL 在 Azure 政府区域不可用。
常规参考
此常规参考介绍了数据类型、函数、标识符、文本和语义。
语言基础知识
| Reference | Description |
|---|---|
| 向 SQL 语句添加注释 | 向 SQL 代码添加注释 |
| 保留字和架构 | SQL 分析器保留的关键字 |
| Identifiers | 命名数据库对象的规则 |
| Names | 对象命名约定 |
| IDENTIFIER 子句 | 动态标识符解析 |
| SQL 表达式 (SQL expression) | SQL 表达式语法和计算 |
| NULL 语义 | 如何处理 NULL 值 |
| 参数标记 | 参数化查询占位符 |
| Variables | 会话和临时变量 |
| 名称解析 | 如何解析对象名称 |
| JSON 路径表达式 | 导航 JSON 数据结构 |
| Collation | 字符串比较和排序规则 |
| Partitions | 表分区概念 |
数据类型
| Reference | Description |
|---|---|
| 数据类型 | 所有受支持的数据类型概述 |
| SQL 数据类型规则 | 类型强制和转换规则 |
| 日期/时间模式 | 日期和时间的格式模式 |
配置参数
| Reference | Description |
|---|---|
| 配置参数 | SQL 配置概述 |
| ANSI_MODE | ANSI SQL 符合性模式 |
| LEGACY_TIME_PARSER_POLICY | 时间分析行为 |
| MAX_FILE_PARTITION_BYTES | 文件分区大小限制 |
| READ_ONLY_EXTERNAL_METASTORE | 外部元存储访问模式 |
| STATEMENT_TIMEOUT | 查询超时设置 |
| TIMEZONE | 会话时区 |
| USE_CACHED_RESULT | 查询结果缓存 |
Functions
| Reference | Description |
|---|---|
| Functions | SQL 函数概述 |
| 内置函数 | 所有内置函数 |
| 内置函数的字母顺序列表 | 完整的 A-Z 函数参考 |
| 窗口函数 | 分析和排名函数 |
| Lambda 函数 | 匿名函数表达式 |
| H3 地理空间函数 | 六边形分层空间索引 |
| ST 地理空间函数 | 标准地理空间函数 |
| 用户定义的聚合函数 (UDAF) | 自定义聚合函数 |
| 外部用户定义的标量函数 (UDF) | 自定义标量函数 |
| 与 Hive UDF、UDAF 和 UDTF 的集成 | Hive 函数兼容性 |
| 函数调用 | 如何调用函数 |
Unity 目录概念
| Reference | Description |
|---|---|
| 校长 | 用户、组和服务主体 |
| Unity Catalog 中的特权和安全对象 | Unity 目录中的访问控制 |
| Hive 元存储中的特权和安全对象 | 旧元存储访问控制 |
| 外部位置 | 云存储位置 |
| 外部表 | 外部数据支持的表 |
| Credentials | 存储访问凭据 |
| Volumes | 托管文件和外部文件存储 |
专题
| Reference | Description |
|---|---|
| Databricks Runtime 中的 ANSI 合规性 | ANSI SQL 标准兼容性 |
| Apache Hive 兼容性 | Hive SQL 兼容性 |
| SQL 脚本 | 过程 SQL 逻辑 |
| 增量共享 | 跨组织数据共享 |
| 联合查询(湖屋联合) | 查询外部数据库 |
| 信息架构 | 元数据系统表 |
DDL 语句
数据定义语句创建或修改数据库对象的结构。
ALTER 语句
| 声明 | Description |
|---|---|
| ALTER CATALOG | 修改目录属性 |
| ALTER CONNECTION | 修改连接设置 |
| ALTER CREDENTIAL | 修改凭据属性 |
| ALTER DATABASE | 修改数据库属性 |
| ALTER EXTERNAL LOCATION | 修改外部位置 |
| ALTER MATERIALIZED VIEW | 修改具体化视图 |
| ALTER PROVIDER | 修改数据提供程序 |
| ALTER RECIPIENT | 修改共享收件人 |
| ALTER SCHEMA | 修改架构属性 |
| ALTER SHARE | 修改共享配置 |
| ALTER STREAMING TABLE | 修改流式处理表 |
| ALTER TABLE | 修改表结构 |
| ALTER VIEW | 修改视图定义 |
| ALTER VOLUME | 修改卷属性 |
CREATE 语句
| 声明 | Description |
|---|---|
| CREATE BLOOM FILTER INDEX | 创建 bloom 筛选器索引 |
| CREATE CATALOG | “创建新目录” |
| CREATE CONNECTION | 创建外部连接 |
| CREATE DATABASE | 新建数据库 |
| CREATE FUNCTION (SQL 和 Python) | 创建 SQL 函数 |
| CREATE FUNCTION(外部) | 创建外部函数 |
| CREATE EXTERNAL LOCATION | 创建外部位置 |
| CREATE MATERIALIZED VIEW | 创建具体化视图 |
| CREATE PROCEDURE(创建过程) | 创建存储过程 |
| CREATE RECIPIENT | 创建共享收件人 |
| CREATE SCHEMA | 创建新架构 |
| CREATE SERVER | 创建外部服务器 |
| CREATE SHARE | 创建数据共享 |
| CREATE STREAMING TABLE | 创建流式处理表 |
| CREATE TABLE | 创建新表 |
| CREATE VIEW | 创建视图 |
| CREATE VOLUME | 创建卷 |
DROP 语句
分析语句
其他 DDL 语句
| 声明 | Description |
|---|---|
| COMMENT ON | 向对象添加注释 |
| DECLARE VARIABLE | 声明会话变量 |
| REPAIR TABLE | 恢复表分区 |
| REFRESH FOREIGN (CATALOG、 SCHEMA和 TABLE) | 刷新外部元数据 |
| REFRESH(MATERIALIZED VIEW 或 STREAMING TABLE) | 刷新具体化数据 |
| SET 标记 | 向对象添加标记 |
SYNC |
同步元数据 |
| TRUNCATE TABLE | 删除所有表数据 |
| UNDROP | 还原已删除的表 |
| UNSET 标记 | 从对象中删除标记 |
DML 语句
数据作语句在 Delta Lake 表中添加、更改或删除数据。
| 声明 | Description |
|---|---|
COPY INTO |
将数据从文件加载到表中 |
| DELETE FROM | 从表中删除行 |
| INSERT | 在表中插入行 |
| INSERT OVERWRITE DIRECTORY | 将查询结果写入目录 |
| 使用 Hive 格式 的 INSERT OVERWRITE DIRECTORY | 以 Hive 格式编写结果 |
| LOAD DATA | 从文件加载数据 |
| MERGE INTO | 将数据向上插入表 |
| UPDATE | 更新表中的行 |
数据检索语句
根据指定的子句从表中检索行。 Azure Databricks 支持标准 SELECT 语法和 SQL 管道语法。
查询语句
| 声明 | Description |
|---|---|
| Query | 完整查询语法参考 |
| SELECT(子选择) | 从表中选择数据 |
| VALUES 子句 | 构造内联表 |
| SQL 管道语法 | 基于管道的查询组合 |
| EXPLAIN | 显示查询执行计划 |
查询子句
| 子句 | Description |
|---|---|
| SELECT 子句 | 列选择 |
| * (star) 子句 | 选择所有列 |
| 表格引用 | 表和子查询源 |
| JOIN | 合并表中的行 |
| WHERE 子句 | 筛选行 |
| GROUP BY 子句 | 对行进行聚合分组 |
| HAVING 子句 | 筛选分组行 |
| QUALIFY 子句 | 筛选窗口函数结果 |
| ORDER BY 子句 | 对结果行进行排序 |
| SORT BY 子句 | 在分区内排序 |
| CLUSTER BY 子句 (SELECT) | 分发和排序数据 |
| DISTRIBUTE BY 子句 | 跨分区分布数据 |
| LIMIT 子句 | 限制结果行 |
| OFFSET 子句 | 跳过结果行 |
| PIVOT 子句 | 将行旋转到列 |
| UNPIVOT 子句 | 将列旋转到行 |
| LATERAL VIEW 子句 | 应用表生成函数 |
| TABLESAMPLE 子句 | 示例表行 |
| 表值函数 (TVF) 调用 | 返回表的函数 |
| 公用表表达式 (CTE) | 命名子查询 |
| 设置运算符 | UNION、INTERSECT、EXCEPT |
| WINDOW 子句 | 命名窗口定义 |
| 提示 | 查询优化器提示 |
Delta Lake 语句
管理以 Delta Lake 格式存储的表。 有关详细信息,请参阅 什么是 Azure Databricks 中的 Delta Lake?。
| 声明 | Description |
|---|---|
| CACHE SELECT | 缓存查询结果 |
| CONVERT TO DELTA | 将 Parquet 转换为 Delta |
| DESCRIBE HISTORY | 显示表历史记录 |
| FSCK REPAIR TABLE | 修复表元数据 |
| GENERATE | 生成表清单 |
| OPTIMIZE | 压缩表文件 |
| REORG TABLE | 重新组织表数据 |
| RESTORE | 将表还原到以前的版本 |
| VACUUM | 删除旧表文件 |
SQL 脚本语句
在 SQL 中执行过程逻辑。 有关概述,请参阅 SQL 脚本 。
| 声明 | Description |
|---|---|
| BEGIN END 复合语句 | 将语句分组到块中 |
| CASE 语句 | 条件分支 |
| FOR 语句 | 循环访问区域或游标 |
| GETDIAGNOSTICS 语句 | 检索执行信息 |
| IF THEN ELSE 语句 | 条件执行 |
| ITERATE 语句 | 继续下一循环迭代 |
| LEAVE 语句 | 退出循环或块 |
| LOOP 语句 | 无条件循环 |
| REPEAT 语句 | 循环直到条件为 true |
| RESIGNAL 语句 | 重新引发异常 |
| SIGNAL 语句 | 引发异常 |
| WHILE 语句 | 条件为 true 时循环 |
辅助语句
收集统计信息、管理缓存、浏览元数据、设置配置和管理资源。
ANALYZE 语句
| 声明 | Description |
|---|---|
| ANALYZE TABLE … 计算统计信息 | 计算表列统计信息 |
| ANALYZE TABLE … 计算存储指标 | 计算表存储指标 |
Cache 语句
适用于: Databricks Runtime
| 声明 | Description |
|---|---|
| CACHE TABLE | 内存中的缓存表 |
| CLEAR CACHE | 删除所有缓存的数据 |
| REFRESH CACHE | 刷新缓存的数据 |
| REFRESH FUNCTION | 刷新函数元数据 |
| REFRESH TABLE | 刷新表元数据 |
| UNCACHE TABLE | 从缓存中删除表 |
DESCRIBE 语句
| 声明 | Description |
|---|---|
| DESCRIBE CATALOG | 显示目录详细信息 |
| DESCRIBE CONNECTION | 显示连接详细信息 |
| DESCRIBE CREDENTIAL | 显示凭据详细信息 |
| DESCRIBE DATABASE | 显示数据库详细信息 |
| DESCRIBE FUNCTION | 显示函数详细信息 |
| DESCRIBE EXTERNAL LOCATION | 显示位置详细信息 |
| 描述程序 | 显示过程详细信息 |
| DESCRIBE PROVIDER | 显示提供程序详细信息 |
| DESCRIBE QUERY | 显示查询输出架构 |
| DESCRIBE RECIPIENT | 显示收件人详细信息 |
| DESCRIBE SCHEMA | 显示架构详细信息 |
| DESCRIBE SHARE | 显示共享详细信息 |
| DESCRIBE TABLE | 显示表详细信息 |
| DESCRIBE VOLUME | 显示卷详细信息 |
SHOW 语句
| 声明 | Description |
|---|---|
| LIST | 列出路径中的文件 |
| SHOW ALL IN SHARE | 显示共享中的所有对象 |
| SHOW CATALOGS | 列出目录 |
| SHOW COLUMNS | 列出表列 |
| SHOW CONNECTIONS | 列出连接 |
| SHOW CREATE TABLE | 显示表 DDL |
| SHOW CREDENTIALS | 列出凭据 |
| SHOW DATABASES | 列出数据库 |
| SHOW FUNCTIONS | 列表函数 |
| SHOW GROUPS | 列出组 |
| SHOW EXTERNAL LOCATIONS | 列出外部位置 |
| SHOW PARTITIONS | 列出表分区 |
| 展示过程 | 列出过程 |
| SHOW PROVIDERS | 列出提供程序 |
| SHOW RECIPIENTS | 列出收件人 |
| SHOW SCHEMAS | 列出模式 |
| SHOW SHARES | 列出共享项 |
| SHOW SHARES IN PROVIDER | 列出来自提供商的共享 |
| SHOW TABLE EXTENDED | 显示表信息 |
| SHOW TABLES | 列出表格 |
| SHOW TABLES DROPPED | 列出已删除的表 |
| SHOW TBLPROPERTIES | 显示表属性 |
| SHOW USERS | 列出用户 |
| SHOW VIEWS | 列表视图 |
| SHOW VOLUMES | 列出卷 |
配置和变量管理
| 声明 | Description |
|---|---|
| CALL | 调用存储过程 |
| EXECUTE IMMEDIATE | 执行动态 SQL |
| RESET | 将配置重置为默认值 |
| SET | 设置配置参数 |
| SET RECIPIENT | 设置共享收件人上下文 |
| SET TIME ZONE | 设置会话时区 |
| SET 变量 | 设置变量值 |
| USE CATALOG | 设置当前目录 |
| USE DATABASE | 设置当前数据库 |
| USE SCHEMA | 设置当前架构 |
资源管理
适用于: Databricks Runtime
| 声明 | Description |
|---|---|
| ADD ARCHIVE | 将存档添加到会话 |
| ADD FILE | 将文件添加到会话 |
| ADD JAR | 将 JAR 添加到会话 |
| LIST ARCHIVE | 列出会话存档 |
| LIST FILE | 列出会话文件 |
| LIST JAR | 列出会话 JAR |
适用于: Databricks SQL 连接器
| 声明 | Description |
|---|---|
| GET | 从卷下载文件 |
| PUT INTO | 将文件上传到卷 |
| REMOVE | 从卷中删除文件 |
安全语句
管理对数据的访问。 有关详细信息,请参阅 Hive 元存储特权和安全对象(旧版)。
| 声明 | Description |
|---|---|
| ALTER GROUP | 修改组成员身份 |
| CREATE GROUP | 创建新组 |
| DENY | 拒绝特权 |
| DROP GROUP | 删除组 |
| GRANT | 授予特权 |
| GRANT ON SHARE | 授予共享访问权限 |
| MSCK REPAIR PRIVILEGES | 修复特权元数据 |
| REVOKE | 撤销权限 |
| REVOKE ON SHARE | 撤销共享访问权限 |
| SHOW GRANTS | 显示授予的权限 |
| SHOW GRANTS ON SHARE | 显示共享权限 |
| SHOW GRANTS TO RECIPIENT | 显示收件人权限 |