
# 查看指定表所有分区
#### 功能描述
查看指定表的所有分区。可通过 PARTITION 子句指定分区条件进行筛选，支持部分分区键匹配。
#### 语法格式
```
SHOW PARTITIONS [ db_name. ] table_name [ PARTITION partition_specs ]
```
其中 partition_specs 的语法为：
```
partition_specs = ( partition_col_name = partition_col_value [ , partition_col_name = partition_col_value , ... ] )
```
#### 参数说明
| **参数**                        | **是否必选** | **描述**                                                                                                                              |
|:---|:---|:---|
| **db_name**                   | 否        | 数据库名称。若未指定，则默认使用当前数据库。命名规则：由字母、数字和下划线（_）组成，不能是纯数字，且不能以下划线开头。                                                                        |
| **table_name**                | 是        | 表名称。所查看的表必须是分区表，否则会出错。命名规则：由字母、数字和下划线（_）组成，不能是纯数字，且不能以下划线开头。匹配规则为：\^(?!_)(?!\[0-9\]+$)\[A-Za-z0-9_$\]\*$。如果包含特殊字符需要使用反引号（\`\`）包围起来。 |
| **PARTITION partition_specs** | 否        | 分区筛选条件，格式为 key=value 形式。若分区字段为多个字段，可以不包含所有字段，系统会返回匹配上的所有分区信息。                                                                       |
   
#### 注意事项
- 所要查看分区的表必须存在且是分区表，否则会出错。
- partition_specs 中可以只指定部分分区键，系统将返回所有匹配的分区。例如，对于 (year, month, day) 三级分区表，只指定 year=2024 将返回该年份下的所有分区。
 
#### 示例1：查看表的所有分区
查看 student 表下的所有分区。
```
SHOW PARTITIONS student;
```
返回结果示例：
```
+-------------------+
|partition          |
+-------------------+
|year=2024/month=01 |
|year=2024/month=02 |
|year=2024/month=03 |
+-------------------+
```
#### 示例2：查看指定分区
查看 student 表中 year=2024 且 month=01 的分区。
```
SHOW PARTITIONS student PARTITION(year='2024', month='01');
```
#### 示例3：部分分区键匹配
查看 student 表中 year=2024 的所有分区（不指定 month，将返回该年份下的所有月份分区）。
```
SHOW PARTITIONS student PARTITION(year='2024');
```
返回结果示例：
```
+-------------------+
|partition          |
+-------------------+
|year=2024/month=01 |
|year=2024/month=02 |
|year=2024/month=03 |
+-------------------+
```
#### 示例4：查看指定数据库的分区表
查看 school_db 数据库下 student 表的所有分区。
```
SHOW PARTITIONS school_db.student;
```
