You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by yx...@apache.org on 2022/10/26 04:03:52 UTC

[shardingsphere] branch master updated: Rename `sharding binding table` to `sharding table reference` in DistSQL (#21760)

This is an automated email from the ASF dual-hosted git repository.

yx9o pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 0e8c172eed4 Rename `sharding binding table` to `sharding table reference` in DistSQL (#21760)
0e8c172eed4 is described below

commit 0e8c172eed4fb1be291f9af445f030e2a5c5f1c3
Author: Raigor <ra...@gmail.com>
AuthorDate: Wed Oct 26 12:03:45 2022 +0800

    Rename `sharding binding table` to `sharding table reference` in DistSQL (#21760)
    
    * Optimize broadcast table rule updater.
    
    * Optimize usage of Collectors.toMap.
    
    * Update documents.
    
    * For #21717, rename `sharding binding table` to `sharding table reference`
---
 .../syntax/rdl/rule-definition/sharding.cn.md      | 24 +++++------
 .../syntax/rdl/rule-definition/sharding.en.md      | 22 +++++-----
 .../distsql/syntax/rql/rule-query/sharding.cn.md   | 36 ++++++++--------
 .../distsql/syntax/rql/rule-query/sharding.en.md   | 46 ++++++++++----------
 .../DefaultShadowAlgorithmQueryResultSet.java      |  2 +-
 .../query/BroadcastTableRuleQueryResultSet.java    |  2 +-
 .../query/CountShardingRuleQueryResultSet.java     |  4 +-
 ... ShardingTableReferenceRuleQueryResultSet.java} | 10 ++---
 ...hardingTableReferenceRuleStatementUpdater.java} | 31 +++++++-------
 .../CreateBroadcastTableRuleStatementUpdater.java  | 18 ++++----
 ...hardingTableReferenceRuleStatementUpdater.java} | 32 +++++++-------
 .../DropBroadcastTableRuleStatementUpdater.java    |  6 ---
 ...hardingTableReferenceRuleStatementUpdater.java} | 41 +++++++++---------
 ...dingsphere.infra.distsql.query.DistSQLResultSet |  2 +-
 ...here.infra.distsql.update.RuleDefinitionUpdater |  6 +--
 .../query/CountShardingRuleQueryResultSetTest.java |  4 +-
 ...rdingTableReferenceRuleQueryResultSetTest.java} | 10 ++---
 ...ingTableReferenceRuleStatementUpdaterTest.java} | 24 +++++------
 ...ingTableReferenceRuleStatementUpdaterTest.java} | 22 +++++-----
 ...ingTableReferenceRuleStatementUpdaterTest.java} | 32 +++++++-------
 .../src/main/antlr4/imports/sharding/BaseRule.g4   |  4 +-
 .../src/main/antlr4/imports/sharding/Keyword.g4    | 12 +++++-
 .../main/antlr4/imports/sharding/RDLStatement.g4   | 16 +++----
 .../main/antlr4/imports/sharding/RQLStatement.g4   |  4 +-
 .../parser/autogen/ShardingDistSQLStatement.g4     |  8 ++--
 .../core/ShardingDistSQLStatementVisitor.java      | 50 +++++++++++-----------
 ...Segment.java => TableReferenceRuleSegment.java} | 14 +++---
 ... AlterShardingTableReferenceRuleStatement.java} | 18 ++++----
 ...CreateShardingTableReferenceRuleStatement.java} | 18 ++++----
 ...> DropShardingTableReferenceRuleStatement.java} | 20 ++++-----
 ... ShowShardingTableReferenceRulesStatement.java} |  6 +--
 .../distsql/update/RuleDefinitionDropUpdater.java  |  2 +-
 ...ShowReadwriteSplittingReadResourcesHandler.java |  4 +-
 .../rdl_empty_rules/alter_binding_rules.xml        |  2 +-
 .../rdl_empty_rules/create_binding_rules.xml       |  2 +-
 .../rdl_empty_rules/create_broadcast_rules.xml     |  2 +-
 .../dataset/rdl_empty_rules/drop_binding_rules.xml |  2 +-
 .../rdl_empty_rules/drop_broadcast_rules.xml       |  2 +-
 .../cases/rdl/rdl-integration-test-cases.xml       | 20 ++++-----
 .../cases/rql/dataset/db/show_broadcast_rules.xml  |  2 +-
 .../db/show_sharding_binging_table_rules.xml       |  2 +-
 .../show_broadcast_rules.xml                       |  2 +-
 .../show_sharding_binging_table_rules.xml          |  2 +-
 .../show_broadcast_rules.xml                       |  2 +-
 .../show_sharding_binging_table_rules.xml          |  2 +-
 .../rql/dataset/encrypt/show_broadcast_rules.xml   |  2 +-
 .../encrypt/show_sharding_binging_table_rules.xml  |  2 +-
 .../readwrite_splitting/show_broadcast_rules.xml   |  2 +-
 .../show_sharding_binging_table_rules.xml          |  2 +-
 .../sharding_and_encrypt/show_broadcast_rules.xml  |  2 +-
 .../show_sharding_binging_table_rules.xml          |  2 +-
 .../mysql/show_broadcast_rules.xml                 |  2 +-
 .../mysql/show_sharding_binging_table_rules.xml    |  2 +-
 .../cases/rql/dataset/tbl/show_broadcast_rules.xml |  2 +-
 .../tbl/show_sharding_binging_table_rules.xml      |  2 +-
 .../cases/rql/rql-integration-test-cases.xml       |  2 +-
 ....java => ShardingTableReferenceRuleAssert.java} | 24 +++++------
 .../statement/distsql/rdl/RDLStatementAssert.java  | 10 ++---
 .../rdl/alter/AlterRuleStatementAssert.java        | 10 ++---
 ...hardingTableReferenceRulesStatementAssert.java} | 38 ++++++++--------
 .../rdl/create/CreateRuleStatementAssert.java      | 10 ++---
 ...ShardingTableReferenceRuleStatementAssert.java} | 38 ++++++++--------
 .../distsql/rdl/drop/DropRuleStatementAssert.java  | 10 ++---
 ...hardingTableReferenceRulesStatementAssert.java} | 20 ++++-----
 .../jaxb/cases/domain/SQLParserTestCases.java      | 24 +++++------
 ...ava => ExpectedShardingTableReferenceRule.java} |  4 +-
 ...rdingTableReferenceRulesStatementTestCase.java} |  8 ++--
 ...ardingTableReferenceRuleStatementTestCase.java} |  8 ++--
 ...ardingTableReferenceRuleStatementTestCase.java} |  4 +-
 ...rdingTableReferenceRulesStatementTestCase.java} |  4 +-
 test/parser/src/main/resources/case/rdl/alter.xml  |  4 +-
 test/parser/src/main/resources/case/rdl/create.xml |  8 ++--
 test/parser/src/main/resources/case/rdl/drop.xml   | 10 ++---
 test/parser/src/main/resources/case/rql/show.xml   |  6 +--
 .../src/main/resources/sql/supported/rdl/alter.xml |  2 +-
 .../main/resources/sql/supported/rdl/create.xml    |  4 +-
 .../src/main/resources/sql/supported/rdl/drop.xml  |  5 +--
 .../src/main/resources/sql/supported/rql/show.xml  |  2 +-
 78 files changed, 433 insertions(+), 434 deletions(-)

diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.cn.md
index 6e80f757018..2d163b9de7d 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.cn.md
@@ -139,19 +139,19 @@ auditorAlgorithmDefinition:
 - `Sharding Table Rule` 同时支持 `Auto Table` 和 `Table` 两种类型,两者在语法上有所差异,对应配置文件请参考 [数据分片](/cn/user-manual/shardingsphere-jdbc/yaml-config/rules/sharding/) ;
 - 使用 `autoCreativeAlgorithm` 方式指定 `shardingStrategy` 时,将会自动创建新的分片算法,算法命名规则为 `tableName_strategyType_shardingAlgorithmType`,如 `t_order_database_inline`。
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
 ```sql
-CREATE SHARDING BINDING TABLE RULES bindTableRulesDefinition [, bindTableRulesDefinition] ...
+CREATE SHARDING TABLE REFERENCE RULE tableReferenceRuleDefinition [, tableReferenceRuleDefinition] ...
 
-ALTER SHARDING BINDING TABLE RULES bindTableRulesDefinition [, bindTableRulesDefinition] ...
+ALTER SHARDING TABLE REFERENCE RULE tableReferenceRuleDefinition [, tableReferenceRuleDefinition] ...
 
-DROP SHARDING BINDING TABLE RULES bindTableRulesDefinition [, bindTableRulesDefinition] ...
+DROP SHARDING TABLE REFERENCE RULE tableReferenceRuleDefinition [, tableReferenceRuleDefinition] ...
 
-bindTableRulesDefinition:
+tableReferenceRuleDefinition:
     (tableName [, tableName] ... )
 ```
-- `ALTER` 会使用新的配置直接覆盖数据库内的绑定表配置
+- `ALTER` 会使用新的配置覆盖数据库内的绑定表配置
 
 ### Broadcast Table Rule
 
@@ -258,22 +258,22 @@ TYPE="standard",SHARDING_COLUMN=another_id,SHARDING_ALGORITHM=database_inline
 DROP DEFAULT SHARDING DATABASE STRATEGY;
 ```
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
 ```sql
-CREATE SHARDING BINDING TABLE RULES (t_order,t_order_item),(t_1,t_2);
+CREATE SHARDING TABLE REFERENCE RULE (t_order,t_order_item),(t_1,t_2);
 
-ALTER SHARDING BINDING TABLE RULES (t_order,t_order_item);
+ALTER SHARDING TABLE REFERENCE RULE (t_order,t_order_item);
 
-DROP SHARDING BINDING TABLE RULES;
+DROP SHARDING TABLE REFERENCE RULE;
 
-DROP SHARDING BINDING TABLE RULES (t_order,t_order_item);
+DROP SHARDING TABLE REFERENCE RULE (t_order,t_order_item);
 ```
 
 ### Broadcast Table Rule
 
 ```sql
-CREATE BROADCAST TABLE RULES t_a,t_b;
+CREATE BROADCAST TABLE RULE t_a,t_b;
 
 DROP BROADCAST TABLE RULE t_a;
 ```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.en.md
index 6ee562a3a29..0ae383f3ba7 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.en.md
@@ -139,16 +139,16 @@ auditorAlgorithmDefinition:
 - `Sharding Table Rule` supports both `Auto Table` and `Table` at the same time. The two types are different in syntax. For the corresponding configuration file, please refer to [Sharding](/en/user-manual/shardingsphere-jdbc/yaml-config/rules/sharding/)
 - When using the `autoCreativeAlgorithm` way to specify `shardingStrategy`, a new sharding algorithm will be created automatically. The algorithm naming rule is `tableName_strategyType_shardingAlgorithmType`, such as `t_order_database_inline`
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
 ```sql
-CREATE SHARDING BINDING TABLE RULES bindTableRulesDefinition [, bindTableRulesDefinition] ...
+CREATE SHARDING TABLE REFERENCE RULE tableReferenceRuleDefinition [, tableReferenceRuleDefinition] ...
 
-ALTER SHARDING BINDING TABLE RULES bindTableRulesDefinition [, bindTableRulesDefinition] ...
+ALTER SHARDING TABLE REFERENCE RULE tableReferenceRuleDefinition [, tableReferenceRuleDefinition] ...
 
-DROP SHARDING BINDING TABLE RULES bindTableRulesDefinition [, bindTableRulesDefinition] ...
+DROP SHARDING TABLE REFERENCE RULE tableReferenceRuleDefinition [, tableReferenceRuleDefinition] ...
 
-bindTableRulesDefinition:
+tableReferenceRuleDefinition:
     (tableName [, tableName] ... )
 ```
 - `ALTER` will overwrite the binding table configuration in the database with the new configuration
@@ -258,22 +258,22 @@ TYPE="standard",SHARDING_COLUMN=another_id,SHARDING_ALGORITHM=database_inline
 DROP DEFAULT SHARDING DATABASE STRATEGY;
 ```
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
 ```sql
-CREATE SHARDING BINDING TABLE RULES (t_order,t_order_item),(t_1,t_2);
+CREATE SHARDING TABLE REFERENCE RULE (t_order,t_order_item),(t_1,t_2);
 
-ALTER SHARDING BINDING TABLE RULES (t_order,t_order_item);
+ALTER SHARDING TABLE REFERENCE RULE (t_order,t_order_item);
 
-DROP SHARDING BINDING TABLE RULES;
+DROP SHARDING TABLE REFERENCE RULE;
 
-DROP SHARDING BINDING TABLE RULES (t_order,t_order_item);
+DROP SHARDING TABLE REFERENCE RULE (t_order,t_order_item);
 ```
 
 ### Broadcast Table Rule
 
 ```sql
-CREATE BROADCAST TABLE RULES t_a,t_b;
+CREATE BROADCAST TABLE RULE t_a,t_b;
 
 DROP BROADCAST TABLE RULE t_a;
 ```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding.cn.md
index d76593bc971..29aa41db4bf 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding.cn.md
@@ -39,10 +39,10 @@ tableRule:
 -  支持查询所有分片算法;
 -  支持查询所有分片审计算法。
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
 ```sql
-SHOW SHARDING BINDING TABLE RULES [FROM databaseName]
+SHOW SHARDING TABLE REFERENCE RULES [FROM databaseName]
 ```
 
 ### Broadcast Table Rule
@@ -138,17 +138,17 @@ SHOW BROADCAST TABLE RULES [FROM databaseName]
 | name  | 分片规则名称    |
 | nodes | 分片节点       |
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
-| 列                      | 说明      |
-| ----------------------- | -------- |
-| sharding_binding_tables | 绑定表名称 |
+| 列                       | 说明      |
+|--------------------------|---------- |
+| sharding_table_reference | 表关联关系 |
 
 ### Broadcast Table Rule
 
-| 列                | 说明      |
-| ---------------- | -------- |
-| broadcast_tables | 广播表名称 |
+| 列              | 说明      |
+| --------------- | -------- |
+| broadcast_table | 广播表名称 |
 
 ### Sharding Table Rule
 
@@ -303,16 +303,16 @@ mysql> SHOW SHARDING TABLE NODES;
 1 row in set (0.02 sec)
 ```
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
 ```sql
-mysql> SHOW SHARDING BINDING TABLE RULES;
-+----------------------+
-| sharding_binding_tables |
-+----------------------+
-| t_order,t_order_item |
-| t1,t2                |
-+----------------------+
+mysql> SHOW SHARDING TABLE REFERENCE RULES;
++--------------------------+
+| sharding_table_reference |
++--------------------------+
+| t_order,t_order_item     |
+| t1,t2                    |
++--------------------------+
 2 rows in set (0.00 sec)
 ```
 
@@ -321,7 +321,7 @@ mysql> SHOW SHARDING BINDING TABLE RULES;
 ```sql
 mysql> SHOW BROADCAST TABLE RULES;
 +------------------------+
-| broadcast_tables |
+| broadcast_table        |
 +------------------------+
 | t_1                    |
 | t_2                    |
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding.en.md
index fe343f14fb4..e1dba88bb8f 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding.en.md
@@ -39,10 +39,10 @@ tableRule:
 -  Support query all sharding algorithms
 -  Support query all sharding audit algorithms
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
 ```sql
-SHOW SHARDING BINDING TABLE RULES [FROM databaseName]
+SHOW SHARDING TABLE REFERENCE RULES [FROM databaseName]
 ```
 
 ### Broadcast Table Rule
@@ -138,17 +138,17 @@ SHOW BROADCAST TABLE RULES [FROM databaseName]
 | name   | Sharding rule name   |
 | nodes  | Sharding nodes        |
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
-| Column                  | Description                 | 
-| ----------------------- | --------------------------- |
-| sharding_binding_tables | sharding Binding Table list |
+| Column                   | Description              | 
+| ------------------------ |--------------------------|
+| sharding_table_reference | Sharding table reference |
 
 ### Broadcast Table Rule
 
-| Column             | Description               |
-|--------------------|---------------------------|
-| broadcast_tables   | Broadcast Table list      |
+| Column           | Description         |
+|------------------|---------------------|
+| broadcast_table  | Broadcast table     |
 
 ### Sharding Table Rule
 
@@ -303,16 +303,16 @@ mysql> SHOW SHARDING TABLE NODES;
 1 row in set (0.02 sec)
 ```
 
-### Sharding Binding Table Rule
+### Sharding Table Reference Rule
 
 ```sql
-mysql> SHOW SHARDING BINDING TABLE RULES;
-+----------------------+
-| sharding_binding_tables |
-+----------------------+
-| t_order,t_order_item |
-| t1,t2                |
-+----------------------+
+mysql> SHOW SHARDING TABLE REFERENCE RULES;
++--------------------------+
+| sharding_table_reference |
++--------------------------+
+| t_order,t_order_item     |
+| t1,t2                    |
++--------------------------+
 2 rows in set (0.00 sec)
 ```
 
@@ -320,11 +320,11 @@ mysql> SHOW SHARDING BINDING TABLE RULES;
 
 ```sql
 mysql> SHOW BROADCAST TABLE RULES;
-+------------------------+
-| broadcast_tables       |
-+------------------------+
-| t_1                    |
-| t_2                    |
-+------------------------+
++-----------------------+
+| broadcast_table       |
++-----------------------+
+| t_1                   |
+| t_2                   |
++-----------------------+
 2 rows in set (0.00 sec)
 ```
diff --git a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/DefaultShadowAlgorithmQueryResultSet.java b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/DefaultShadowAlgorithmQueryResultSet.java
index 20721c4cbd2..4c9cc6cbd78 100644
--- a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/DefaultShadowAlgorithmQueryResultSet.java
+++ b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/DefaultShadowAlgorithmQueryResultSet.java
@@ -50,7 +50,7 @@ public final class DefaultShadowAlgorithmQueryResultSet implements DatabaseDistS
             ShadowRuleConfiguration config = (ShadowRuleConfiguration) rule.get().getConfiguration();
             String defaultAlgorithm = config.getDefaultShadowAlgorithmName();
             data = config.getShadowAlgorithms().entrySet().stream().filter(each -> each.getKey().equals(defaultAlgorithm))
-                    .collect(Collectors.toMap(Entry::getKey, Entry::getValue, (v1, v2) -> v2)).entrySet().iterator();
+                    .collect(Collectors.toMap(Entry::getKey, Entry::getValue, (oldValue, currentValue) -> currentValue)).entrySet().iterator();
         }
     }
     
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/BroadcastTableRuleQueryResultSet.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/BroadcastTableRuleQueryResultSet.java
index b4788a800ef..aaa3df38c5b 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/BroadcastTableRuleQueryResultSet.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/BroadcastTableRuleQueryResultSet.java
@@ -43,7 +43,7 @@ public final class BroadcastTableRuleQueryResultSet implements DatabaseDistSQLRe
     
     @Override
     public Collection<String> getColumnNames() {
-        return Collections.singleton("broadcast_tables");
+        return Collections.singleton("broadcast_table");
     }
     
     @Override
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/CountShardingRuleQueryResultSet.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/CountShardingRuleQueryResultSet.java
index 3587dd6ae04..ed6f89cd98e 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/CountShardingRuleQueryResultSet.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/CountShardingRuleQueryResultSet.java
@@ -41,9 +41,9 @@ public final class CountShardingRuleQueryResultSet implements DatabaseDistSQLRes
     
     private static final String SHARDING_TABLE = "sharding_table";
     
-    private static final String SHARDING_BINDING_TABLE = "sharding_binding_table";
+    private static final String SHARDING_BINDING_TABLE = "sharding_table_reference";
     
-    private static final String SHARDING_BROADCAST_TABLE = "sharding_broadcast_table";
+    private static final String SHARDING_BROADCAST_TABLE = "broadcast_table";
     
     private Iterator<Entry<String, LinkedList<Object>>> data = Collections.emptyIterator();
     
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingBindingTableRuleQueryResultSet.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingTableReferenceRuleQueryResultSet.java
similarity index 86%
rename from features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingBindingTableRuleQueryResultSet.java
rename to features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingTableReferenceRuleQueryResultSet.java
index e14b398ecba..1ab3ae0c528 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingBindingTableRuleQueryResultSet.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingTableReferenceRuleQueryResultSet.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.handler.query;
 import org.apache.shardingsphere.infra.distsql.query.DatabaseDistSQLResultSet;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableReferenceRulesStatement;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
@@ -30,9 +30,9 @@ import java.util.Iterator;
 import java.util.Optional;
 
 /**
- * Query result set for show sharding binding table rules.
+ * Query result set for show sharding table reference rules.
  */
-public final class ShardingBindingTableRuleQueryResultSet implements DatabaseDistSQLResultSet {
+public final class ShardingTableReferenceRuleQueryResultSet implements DatabaseDistSQLResultSet {
     
     private Iterator<String> data;
     
@@ -44,7 +44,7 @@ public final class ShardingBindingTableRuleQueryResultSet implements DatabaseDis
     
     @Override
     public Collection<String> getColumnNames() {
-        return Collections.singleton("sharding_binding_tables");
+        return Collections.singleton("sharding_table_reference");
     }
     
     @Override
@@ -59,6 +59,6 @@ public final class ShardingBindingTableRuleQueryResultSet implements DatabaseDis
     
     @Override
     public String getType() {
-        return ShowShardingBindingTableRulesStatement.class.getName();
+        return ShowShardingTableReferenceRulesStatement.class.getName();
     }
 }
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingBindingTableRulesStatementUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableReferenceRuleStatementUpdater.java
similarity index 79%
rename from features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingBindingTableRulesStatementUpdater.java
rename to features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableReferenceRuleStatementUpdater.java
index 8b99f4c9602..82af8808907 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingBindingTableRulesStatementUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableReferenceRuleStatementUpdater.java
@@ -28,21 +28,21 @@ import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
 import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
 import org.apache.shardingsphere.sharding.distsql.handler.checker.ShardingTableRuleStatementChecker;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableReferenceRuleStatement;
 
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.stream.Collectors;
 
 /**
- * Alter sharding binding table rules statement updater.
+ * Alter sharding table reference rule statement updater.
  */
-public final class AlterShardingBindingTableRulesStatementUpdater implements RuleDefinitionAlterUpdater<AlterShardingBindingTableRulesStatement, ShardingRuleConfiguration> {
+public final class AlterShardingTableReferenceRuleStatementUpdater implements RuleDefinitionAlterUpdater<AlterShardingTableReferenceRuleStatement, ShardingRuleConfiguration> {
     
     @Override
     public void checkSQLStatement(final ShardingSphereDatabase database,
-                                  final AlterShardingBindingTableRulesStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) throws RuleDefinitionViolationException {
+                                  final AlterShardingTableReferenceRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) throws RuleDefinitionViolationException {
         String databaseName = database.getName();
         checkCurrentRuleConfiguration(databaseName, currentRuleConfig);
         checkToBeAlertedBindingTables(databaseName, sqlStatement, currentRuleConfig);
@@ -54,10 +54,10 @@ public final class AlterShardingBindingTableRulesStatementUpdater implements Rul
         ShardingSpherePreconditions.checkNotNull(currentRuleConfig, () -> new MissingRequiredRuleException("Sharding", databaseName));
     }
     
-    private void checkToBeAlertedBindingTables(final String databaseName, final AlterShardingBindingTableRulesStatement sqlStatement,
+    private void checkToBeAlertedBindingTables(final String databaseName, final AlterShardingTableReferenceRuleStatement sqlStatement,
                                                final ShardingRuleConfiguration currentRuleConfig) throws MissingRequiredRuleException {
         Collection<String> currentLogicTables = getCurrentLogicTables(currentRuleConfig);
-        Collection<String> notExistedBindingTables = sqlStatement.getBindingTables().stream().filter(each -> !containsIgnoreCase(currentLogicTables, each)).collect(Collectors.toSet());
+        Collection<String> notExistedBindingTables = sqlStatement.getTableReferences().stream().filter(each -> !containsIgnoreCase(currentLogicTables, each)).collect(Collectors.toSet());
         ShardingSpherePreconditions.checkState(notExistedBindingTables.isEmpty(), () -> new MissingRequiredRuleException("Sharding", databaseName, notExistedBindingTables));
     }
     
@@ -68,11 +68,12 @@ public final class AlterShardingBindingTableRulesStatementUpdater implements Rul
         return result;
     }
     
-    private void checkToBeAlteredDuplicateBindingTables(final String databaseName, final AlterShardingBindingTableRulesStatement sqlStatement) throws DuplicateRuleException {
+    private void checkToBeAlteredDuplicateBindingTables(final String databaseName, final AlterShardingTableReferenceRuleStatement sqlStatement) throws DuplicateRuleException {
         Collection<String> toBeAlteredBindingTables = new HashSet<>();
-        Collection<String> duplicateBindingTables = sqlStatement.getBindingTables().stream().filter(each -> !toBeAlteredBindingTables.add(each.toLowerCase())).collect(Collectors.toSet());
-        Collection<String> duplicateBindingTablesForDisplay = sqlStatement.getBindingTables().stream().filter(each -> containsIgnoreCase(duplicateBindingTables, each)).collect(Collectors.toSet());
-        ShardingSpherePreconditions.checkState(duplicateBindingTablesForDisplay.isEmpty(), () -> new DuplicateRuleException("binding", databaseName, duplicateBindingTablesForDisplay));
+        Collection<String> duplicateBindingTables = sqlStatement.getTableReferences().stream().filter(each -> !toBeAlteredBindingTables.add(each.toLowerCase())).collect(Collectors.toSet());
+        Collection<String> duplicateBindingTablesForDisplay = sqlStatement.getTableReferences().stream().filter(each -> containsIgnoreCase(duplicateBindingTables, each)).collect(Collectors.toSet());
+        ShardingSpherePreconditions.checkState(duplicateBindingTablesForDisplay.isEmpty(),
+                () -> new DuplicateRuleException("sharding table reference", databaseName, duplicateBindingTablesForDisplay));
     }
     
     private boolean containsIgnoreCase(final Collection<String> collection, final String str) {
@@ -80,10 +81,10 @@ public final class AlterShardingBindingTableRulesStatementUpdater implements Rul
     }
     
     @Override
-    public RuleConfiguration buildToBeAlteredRuleConfiguration(final AlterShardingBindingTableRulesStatement sqlStatement) {
+    public RuleConfiguration buildToBeAlteredRuleConfiguration(final AlterShardingTableReferenceRuleStatement sqlStatement) {
         ShardingRuleConfiguration result = new ShardingRuleConfiguration();
-        for (BindingTableRuleSegment each : sqlStatement.getRules()) {
-            result.getBindingTableGroups().add(each.getTableGroups());
+        for (TableReferenceRuleSegment each : sqlStatement.getRules()) {
+            result.getBindingTableGroups().add(each.getTableGroup());
         }
         return result;
     }
@@ -109,6 +110,6 @@ public final class AlterShardingBindingTableRulesStatementUpdater implements Rul
     
     @Override
     public String getType() {
-        return AlterShardingBindingTableRulesStatement.class.getName();
+        return AlterShardingTableReferenceRuleStatement.class.getName();
     }
 }
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateBroadcastTableRuleStatementUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateBroadcastTableRuleStatementUpdater.java
index 76788b2e257..a7ccafc279c 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateBroadcastTableRuleStatementUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateBroadcastTableRuleStatementUpdater.java
@@ -26,6 +26,9 @@ import org.apache.shardingsphere.infra.util.exception.ShardingSpherePrecondition
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateBroadcastTableRuleStatement;
 
+import java.util.Collection;
+import java.util.LinkedList;
+
 /**
  * Create broadcast table rule statement updater.
  */
@@ -34,19 +37,16 @@ public final class CreateBroadcastTableRuleStatementUpdater implements RuleDefin
     @Override
     public void checkSQLStatement(final ShardingSphereDatabase database, final CreateBroadcastTableRuleStatement sqlStatement,
                                   final ShardingRuleConfiguration currentRuleConfig) throws RuleDefinitionViolationException {
-        checkCurrentRuleConfiguration(database.getName(), sqlStatement, currentRuleConfig);
+        checkDuplicate(sqlStatement, currentRuleConfig);
     }
     
-    private void checkCurrentRuleConfiguration(final String databaseName, final CreateBroadcastTableRuleStatement sqlStatement,
-                                               final ShardingRuleConfiguration currentRuleConfig) throws RuleInUsedException {
-        if (null == currentRuleConfig) {
-            return;
-        }
-        if (currentRuleConfig.getBroadcastTables().isEmpty()) {
+    private void checkDuplicate(final CreateBroadcastTableRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) throws RuleInUsedException {
+        if (null == currentRuleConfig || currentRuleConfig.getBroadcastTables().isEmpty()) {
             return;
         }
-        sqlStatement.getTables().retainAll(currentRuleConfig.getBroadcastTables());
-        ShardingSpherePreconditions.checkState(sqlStatement.getTables().isEmpty(), () -> new DuplicateRuleException("Broadcast", sqlStatement.getTables()));
+        Collection<String> duplicateBroadcastTables = new LinkedList<>(currentRuleConfig.getBroadcastTables());
+        duplicateBroadcastTables.retainAll(sqlStatement.getTables());
+        ShardingSpherePreconditions.checkState(duplicateBroadcastTables.isEmpty(), () -> new DuplicateRuleException("Broadcast", sqlStatement.getTables()));
     }
     
     @Override
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingBindingTableRuleStatementUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleStatementUpdater.java
similarity index 79%
rename from features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingBindingTableRuleStatementUpdater.java
rename to features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleStatementUpdater.java
index fa85227ef81..94b871fc8ff 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingBindingTableRuleStatementUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingTableReferenceRuleStatementUpdater.java
@@ -25,8 +25,8 @@ import org.apache.shardingsphere.infra.util.exception.ShardingSpherePrecondition
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
 import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableReferenceRuleStatement;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -34,13 +34,13 @@ import java.util.HashSet;
 import java.util.stream.Collectors;
 
 /**
- * Create sharding binding table rule statement updater.
+ * Create sharding table reference rule statement updater.
  */
-public final class CreateShardingBindingTableRuleStatementUpdater implements RuleDefinitionCreateUpdater<CreateShardingBindingTableRulesStatement, ShardingRuleConfiguration> {
+public final class CreateShardingTableReferenceRuleStatementUpdater implements RuleDefinitionCreateUpdater<CreateShardingTableReferenceRuleStatement, ShardingRuleConfiguration> {
     
     @Override
     public void checkSQLStatement(final ShardingSphereDatabase database,
-                                  final CreateShardingBindingTableRulesStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
+                                  final CreateShardingTableReferenceRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
         String databaseName = database.getName();
         checkCurrentRuleConfiguration(databaseName, currentRuleConfig);
         checkToBeCreatedBindingTables(databaseName, sqlStatement, currentRuleConfig);
@@ -52,9 +52,9 @@ public final class CreateShardingBindingTableRuleStatementUpdater implements Rul
     }
     
     private void checkToBeCreatedBindingTables(final String databaseName,
-                                               final CreateShardingBindingTableRulesStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
+                                               final CreateShardingTableReferenceRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
         Collection<String> currentLogicTables = getCurrentLogicTables(currentRuleConfig);
-        Collection<String> notExistedBindingTables = sqlStatement.getBindingTables().stream()
+        Collection<String> notExistedBindingTables = sqlStatement.getTableReferences().stream()
                 .filter(each -> !containsIgnoreCase(currentLogicTables, each)).collect(Collectors.toSet());
         ShardingSpherePreconditions.checkState(notExistedBindingTables.isEmpty(), () -> new MissingRequiredRuleException("Sharding", databaseName, notExistedBindingTables));
     }
@@ -71,14 +71,12 @@ public final class CreateShardingBindingTableRuleStatementUpdater implements Rul
     }
     
     private void checkToBeCreatedDuplicateBindingTables(final String databaseName,
-                                                        final CreateShardingBindingTableRulesStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) throws DuplicateRuleException {
+                                                        final CreateShardingTableReferenceRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) throws DuplicateRuleException {
         Collection<String> toBeCreatedBindingTables = new HashSet<>();
-        Collection<String> duplicateBindingTables = sqlStatement.getBindingTables().stream().filter(each -> !toBeCreatedBindingTables.add(each.toLowerCase())).collect(Collectors.toSet());
+        Collection<String> duplicateBindingTables = sqlStatement.getTableReferences().stream().filter(each -> !toBeCreatedBindingTables.add(each.toLowerCase())).collect(Collectors.toSet());
         duplicateBindingTables.addAll(getCurrentBindingTables(currentRuleConfig).stream().filter(each -> !toBeCreatedBindingTables.add(each.toLowerCase())).collect(Collectors.toSet()));
-        Collection<String> duplicatedBindingTablesForDisplay = sqlStatement.getBindingTables().stream().filter(each -> containsIgnoreCase(duplicateBindingTables, each)).collect(Collectors.toSet());
-        if (!duplicatedBindingTablesForDisplay.isEmpty()) {
-            throw new DuplicateRuleException("binding", databaseName, duplicateBindingTables);
-        }
+        Collection<String> duplicatedBindingTablesForDisplay = sqlStatement.getTableReferences().stream().filter(each -> containsIgnoreCase(duplicateBindingTables, each)).collect(Collectors.toSet());
+        ShardingSpherePreconditions.checkState(duplicatedBindingTablesForDisplay.isEmpty(), () -> new DuplicateRuleException("sharding table reference", databaseName, duplicateBindingTables));
     }
     
     private Collection<String> getCurrentBindingTables(final ShardingRuleConfiguration currentRuleConfig) {
@@ -86,10 +84,10 @@ public final class CreateShardingBindingTableRuleStatementUpdater implements Rul
     }
     
     @Override
-    public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final CreateShardingBindingTableRulesStatement sqlStatement) {
+    public ShardingRuleConfiguration buildToBeCreatedRuleConfiguration(final CreateShardingTableReferenceRuleStatement sqlStatement) {
         ShardingRuleConfiguration result = new ShardingRuleConfiguration();
-        for (BindingTableRuleSegment each : sqlStatement.getRules()) {
-            result.getBindingTableGroups().add(each.getTableGroups());
+        for (TableReferenceRuleSegment each : sqlStatement.getRules()) {
+            result.getBindingTableGroups().add(each.getTableGroup());
         }
         return result;
     }
@@ -108,6 +106,6 @@ public final class CreateShardingBindingTableRuleStatementUpdater implements Rul
     
     @Override
     public String getType() {
-        return CreateShardingBindingTableRulesStatement.class.getName();
+        return CreateShardingTableReferenceRuleStatement.class.getName();
     }
 }
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java
index d5cb34c7679..9ebb67b9fcf 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java
@@ -47,9 +47,6 @@ public final class DropBroadcastTableRuleStatementUpdater implements RuleDefinit
         if (sqlStatement.isIfExists()) {
             return;
         }
-        if (sqlStatement.getRules().isEmpty()) {
-            return;
-        }
         Collection<String> currentRules = currentRuleConfig.getBroadcastTables();
         Collection<String> notExistRules = sqlStatement.getRules().stream().filter(each -> !containsIgnoreCase(currentRules, each)).collect(Collectors.toList());
         ShardingSpherePreconditions.checkState(notExistRules.isEmpty(), () -> new MissingRequiredRuleException("Broadcast", databaseName, notExistRules));
@@ -65,9 +62,6 @@ public final class DropBroadcastTableRuleStatementUpdater implements RuleDefinit
     
     @Override
     public boolean hasAnyOneToBeDropped(final DropBroadcastTableRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
-        if (sqlStatement.getRules().isEmpty()) {
-            return true;
-        }
         return isExistRuleConfig(currentRuleConfig) && !getIdenticalData(currentRuleConfig.getBroadcastTables(), sqlStatement.getRules()).isEmpty();
     }
     
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingBindingTableRuleStatementUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableReferenceRuleStatementUpdater.java
similarity index 77%
rename from features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingBindingTableRuleStatementUpdater.java
rename to features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableReferenceRuleStatementUpdater.java
index 880b9a81a17..480c18df332 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingBindingTableRuleStatementUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableReferenceRuleStatementUpdater.java
@@ -24,8 +24,8 @@ import org.apache.shardingsphere.infra.distsql.update.RuleDefinitionDropUpdater;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableReferenceRuleStatement;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -39,14 +39,14 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
- * Drop sharding binding table rule statement updater.
+ * Drop sharding table reference rule statement updater.
  */
-public final class DropShardingBindingTableRuleStatementUpdater implements RuleDefinitionDropUpdater<DropShardingBindingTableRulesStatement, ShardingRuleConfiguration> {
+public final class DropShardingTableReferenceRuleStatementUpdater implements RuleDefinitionDropUpdater<DropShardingTableReferenceRuleStatement, ShardingRuleConfiguration> {
     
     private Map<String, String> bindingTableRules = Collections.emptyMap();
     
     @Override
-    public void checkSQLStatement(final ShardingSphereDatabase database, final DropShardingBindingTableRulesStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
+    public void checkSQLStatement(final ShardingSphereDatabase database, final DropShardingTableReferenceRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
         if (!isExistRuleConfig(currentRuleConfig) && sqlStatement.isIfExists()) {
             return;
         }
@@ -57,7 +57,8 @@ public final class DropShardingBindingTableRuleStatementUpdater implements RuleD
     }
     
     private void checkCurrentRuleConfiguration(final String databaseName, final ShardingRuleConfiguration currentRuleConfig) {
-        ShardingSpherePreconditions.checkState(null != currentRuleConfig && !currentRuleConfig.getBindingTableGroups().isEmpty(), () -> new MissingRequiredRuleException("Binding", databaseName));
+        ShardingSpherePreconditions.checkState(null != currentRuleConfig && !currentRuleConfig.getBindingTableGroups().isEmpty(),
+                () -> new MissingRequiredRuleException("Sharding table reference", databaseName));
     }
     
     private Map<String, String> buildBindingTableRule(final ShardingRuleConfiguration config) {
@@ -66,28 +67,28 @@ public final class DropShardingBindingTableRuleStatementUpdater implements RuleD
         return result;
     }
     
-    private void checkBindingTableRuleExist(final String databaseName, final DropShardingBindingTableRulesStatement sqlStatement,
+    private void checkBindingTableRuleExist(final String databaseName, final DropShardingTableReferenceRuleStatement sqlStatement,
                                             final Map<String, String> bindingRelationship) {
         if (sqlStatement.isIfExists()) {
             return;
         }
         Collection<String> notExistBindingGroups = new LinkedList<>();
-        for (BindingTableRuleSegment each : sqlStatement.getRules()) {
+        for (TableReferenceRuleSegment each : sqlStatement.getRules()) {
             if (!isToBeDroppedRuleExists(each, bindingRelationship)) {
-                notExistBindingGroups.add(each.getTableGroups());
+                notExistBindingGroups.add(each.getTableGroup());
             }
         }
         ShardingSpherePreconditions.checkState(notExistBindingGroups.isEmpty(), () -> new MissingRequiredRuleException("Binding", databaseName, notExistBindingGroups));
     }
     
-    private boolean isToBeDroppedRuleExists(final BindingTableRuleSegment bindingRule, final Map<String, String> bindingRelationship) {
-        Optional<String> anyTableInToBeAlteredRule = bindingRule.getBindingTables().stream().findAny();
+    private boolean isToBeDroppedRuleExists(final TableReferenceRuleSegment bindingRule, final Map<String, String> bindingRelationship) {
+        Optional<String> anyTableInToBeAlteredRule = bindingRule.getTableReference().stream().findAny();
         if (anyTableInToBeAlteredRule.isPresent()) {
             Optional<String> currentBindingRule = bindingRelationship.entrySet().stream()
                     .filter(each -> each.getKey().equalsIgnoreCase(anyTableInToBeAlteredRule.get())).map(Entry::getValue).findFirst();
             if (currentBindingRule.isPresent() && !Strings.isNullOrEmpty(currentBindingRule.get())) {
                 Collection<String> currentBindingTables = Splitter.on(",").trimResults().splitToList(currentBindingRule.get());
-                return bindingRule.getBindingTables().stream().allMatch(each -> containsIgnoreCase(currentBindingTables, each));
+                return bindingRule.getTableReference().stream().allMatch(each -> containsIgnoreCase(currentBindingTables, each));
             }
         }
         return false;
@@ -98,7 +99,7 @@ public final class DropShardingBindingTableRuleStatementUpdater implements RuleD
     }
     
     @Override
-    public boolean hasAnyOneToBeDropped(final DropShardingBindingTableRulesStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
+    public boolean hasAnyOneToBeDropped(final DropShardingTableReferenceRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
         if (!isExistRuleConfig(currentRuleConfig)) {
             return false;
         }
@@ -108,21 +109,21 @@ public final class DropShardingBindingTableRuleStatementUpdater implements RuleD
         return !getExistedBindingGroups(sqlStatement, bindingTableRules).isEmpty();
     }
     
-    private Collection<String> getExistedBindingGroups(final DropShardingBindingTableRulesStatement sqlStatement, final Map<String, String> bindingTableRules) {
+    private Collection<String> getExistedBindingGroups(final DropShardingTableReferenceRuleStatement sqlStatement, final Map<String, String> bindingTableRules) {
         Collection<String> result = new LinkedList<>();
         if (sqlStatement.getRules().isEmpty()) {
             return new LinkedHashSet<>(bindingTableRules.values());
         }
-        for (BindingTableRuleSegment each : sqlStatement.getRules()) {
+        for (TableReferenceRuleSegment each : sqlStatement.getRules()) {
             if (isToBeDroppedRuleExists(each, bindingTableRules)) {
-                result.add(each.getTableGroups());
+                result.add(each.getTableGroup());
             }
         }
         return result;
     }
     
     @Override
-    public boolean updateCurrentRuleConfiguration(final DropShardingBindingTableRulesStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
+    public boolean updateCurrentRuleConfiguration(final DropShardingTableReferenceRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
         currentRuleConfig.getBindingTableGroups().clear();
         if (!sqlStatement.getRules().isEmpty()) {
             getToBeRemoveShardingTable(sqlStatement).forEach(each -> bindingTableRules.remove(each));
@@ -131,8 +132,8 @@ public final class DropShardingBindingTableRuleStatementUpdater implements RuleD
         return false;
     }
     
-    private Collection<String> getToBeRemoveShardingTable(final DropShardingBindingTableRulesStatement sqlStatement) {
-        Collection<String> toBeRemoveBindingTables = sqlStatement.getRules().stream().map(BindingTableRuleSegment::getBindingTables).flatMap(Collection::stream).collect(Collectors.toSet());
+    private Collection<String> getToBeRemoveShardingTable(final DropShardingTableReferenceRuleStatement sqlStatement) {
+        Collection<String> toBeRemoveBindingTables = sqlStatement.getRules().stream().map(TableReferenceRuleSegment::getTableReference).flatMap(Collection::stream).collect(Collectors.toSet());
         return bindingTableRules.keySet().stream().filter(each -> containsIgnoreCase(toBeRemoveBindingTables, each)).collect(Collectors.toSet());
     }
     
@@ -143,6 +144,6 @@ public final class DropShardingBindingTableRuleStatementUpdater implements RuleD
     
     @Override
     public String getType() {
-        return DropShardingBindingTableRulesStatement.class.getName();
+        return DropShardingTableReferenceRuleStatement.class.getName();
     }
 }
diff --git a/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet b/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
index 83811a73210..0380113a8e3 100644
--- a/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
+++ b/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
@@ -16,7 +16,7 @@
 #
 
 org.apache.shardingsphere.sharding.distsql.handler.query.ShardingTableRuleQueryResultSet
-org.apache.shardingsphere.sharding.distsql.handler.query.ShardingBindingTableRuleQueryResultSet
+org.apache.shardingsphere.sharding.distsql.handler.query.ShardingTableReferenceRuleQueryResultSet
 org.apache.shardingsphere.sharding.distsql.handler.query.BroadcastTableRuleQueryResultSet
 org.apache.shardingsphere.sharding.distsql.handler.query.ShardingAlgorithmsQueryResultSet
 org.apache.shardingsphere.sharding.distsql.handler.query.ShardingAuditorsQueryResultSet
diff --git a/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RuleDefinitionUpdater b/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RuleDefinitionUpdater
index 8f38d19b474..161a00d46e5 100644
--- a/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RuleDefinitionUpdater
+++ b/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RuleDefinitionUpdater
@@ -20,9 +20,9 @@ org.apache.shardingsphere.sharding.distsql.handler.update.CreateShardingAlgorith
 org.apache.shardingsphere.sharding.distsql.handler.update.AlterShardingTableRuleStatementUpdater
 org.apache.shardingsphere.sharding.distsql.handler.update.DropShardingTableRuleStatementUpdater
 org.apache.shardingsphere.sharding.distsql.handler.update.DropShardingAlgorithmStatementUpdater
-org.apache.shardingsphere.sharding.distsql.handler.update.CreateShardingBindingTableRuleStatementUpdater
-org.apache.shardingsphere.sharding.distsql.handler.update.AlterShardingBindingTableRulesStatementUpdater
-org.apache.shardingsphere.sharding.distsql.handler.update.DropShardingBindingTableRuleStatementUpdater
+org.apache.shardingsphere.sharding.distsql.handler.update.CreateShardingTableReferenceRuleStatementUpdater
+org.apache.shardingsphere.sharding.distsql.handler.update.AlterShardingTableReferenceRuleStatementUpdater
+org.apache.shardingsphere.sharding.distsql.handler.update.DropShardingTableReferenceRuleStatementUpdater
 org.apache.shardingsphere.sharding.distsql.handler.update.CreateBroadcastTableRuleStatementUpdater
 org.apache.shardingsphere.sharding.distsql.handler.update.DropBroadcastTableRuleStatementUpdater
 org.apache.shardingsphere.sharding.distsql.handler.update.CreateDefaultShardingStrategyStatementUpdater
diff --git a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/CountShardingRuleQueryResultSetTest.java b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/CountShardingRuleQueryResultSetTest.java
index c7c023cfcb4..20786f6e90b 100644
--- a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/CountShardingRuleQueryResultSetTest.java
+++ b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/CountShardingRuleQueryResultSetTest.java
@@ -54,13 +54,13 @@ public final class CountShardingRuleQueryResultSetTest {
         assertTrue(resultSet.next());
         actual = new ArrayList<>(resultSet.getRowData());
         assertThat(actual.size(), is(3));
-        assertThat(actual.get(0), is("sharding_binding_table"));
+        assertThat(actual.get(0), is("sharding_table_reference"));
         assertThat(actual.get(1), is("db_1"));
         assertThat(actual.get(2), is(1));
         assertTrue(resultSet.next());
         actual = new ArrayList<>(resultSet.getRowData());
         assertThat(actual.size(), is(3));
-        assertThat(actual.get(0), is("sharding_broadcast_table"));
+        assertThat(actual.get(0), is("broadcast_table"));
         assertThat(actual.get(1), is("db_1"));
         assertThat(actual.get(2), is(2));
         assertFalse(resultSet.next());
diff --git a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingBindingTableRuleQueryResultSetTest.java b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingTableReferenceRuleQueryResultSetTest.java
similarity index 89%
rename from features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingBindingTableRuleQueryResultSetTest.java
rename to features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingTableReferenceRuleQueryResultSetTest.java
index b9a8bc70b23..c44f7d9a3d7 100644
--- a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingBindingTableRuleQueryResultSetTest.java
+++ b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingTableReferenceRuleQueryResultSetTest.java
@@ -21,8 +21,8 @@ import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
-import org.apache.shardingsphere.sharding.distsql.handler.query.ShardingBindingTableRuleQueryResultSet;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.handler.query.ShardingTableReferenceRuleQueryResultSet;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableReferenceRulesStatement;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.junit.Test;
 
@@ -37,12 +37,12 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-public final class ShardingBindingTableRuleQueryResultSetTest {
+public final class ShardingTableReferenceRuleQueryResultSetTest {
     
     @Test
     public void assertGetRowData() {
-        ShardingBindingTableRuleQueryResultSet resultSet = new ShardingBindingTableRuleQueryResultSet();
-        resultSet.init(mockDatabase(), mock(ShowShardingBindingTableRulesStatement.class));
+        ShardingTableReferenceRuleQueryResultSet resultSet = new ShardingTableReferenceRuleQueryResultSet();
+        resultSet.init(mockDatabase(), mock(ShowShardingTableReferenceRulesStatement.class));
         Collection<Object> actual = resultSet.getRowData();
         assertThat(actual.size(), is(1));
         assertTrue(actual.contains("t_order,t_order_item"));
diff --git a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/AlterShardingBindingTableRulesStatementUpdaterTest.java b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/AlterShardingTableReferenceRuleStatementUpdaterTest.java
similarity index 77%
rename from features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/AlterShardingBindingTableRulesStatementUpdaterTest.java
rename to features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/AlterShardingTableReferenceRuleStatementUpdaterTest.java
index 07a2f74d054..c73247a0232 100644
--- a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/AlterShardingBindingTableRulesStatementUpdaterTest.java
+++ b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/AlterShardingTableReferenceRuleStatementUpdaterTest.java
@@ -24,9 +24,9 @@ import org.apache.shardingsphere.infra.distsql.exception.rule.RuleDefinitionViol
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
-import org.apache.shardingsphere.sharding.distsql.handler.update.AlterShardingBindingTableRulesStatementUpdater;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.handler.update.AlterShardingTableReferenceRuleStatementUpdater;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableReferenceRuleStatement;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -38,42 +38,42 @@ import java.util.Collections;
 import java.util.List;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class AlterShardingBindingTableRulesStatementUpdaterTest {
+public final class AlterShardingTableReferenceRuleStatementUpdaterTest {
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private ShardingSphereDatabase database;
     
-    private final AlterShardingBindingTableRulesStatementUpdater updater = new AlterShardingBindingTableRulesStatementUpdater();
+    private final AlterShardingTableReferenceRuleStatementUpdater updater = new AlterShardingTableReferenceRuleStatementUpdater();
     
     @Test(expected = MissingRequiredRuleException.class)
     public void assertCheckSQLStatementWithoutCurrentRule() throws RuleDefinitionViolationException {
-        updater.checkSQLStatement(database, createSQLStatement(Collections.singletonList(new BindingTableRuleSegment("t_order,t_order_item"))), null);
+        updater.checkSQLStatement(database, createSQLStatement(Collections.singletonList(new TableReferenceRuleSegment("t_order,t_order_item"))), null);
     }
     
     @Test(expected = MissingRequiredRuleException.class)
     public void assertCheckSQLStatementWithNotExistedTables() throws RuleDefinitionViolationException {
-        updater.checkSQLStatement(database, createSQLStatement(Collections.singletonList(new BindingTableRuleSegment("t_3,t_4"))), createCurrentRuleConfiguration());
+        updater.checkSQLStatement(database, createSQLStatement(Collections.singletonList(new TableReferenceRuleSegment("t_3,t_4"))), createCurrentRuleConfiguration());
     }
     
     @Test(expected = InvalidRuleConfigurationException.class)
     public void assertCheckSQLStatementWithOneTable() throws RuleDefinitionViolationException {
-        updater.checkSQLStatement(database, createSQLStatement(Collections.singletonList(new BindingTableRuleSegment("t_order"))), createCurrentRuleConfiguration());
+        updater.checkSQLStatement(database, createSQLStatement(Collections.singletonList(new TableReferenceRuleSegment("t_order"))), createCurrentRuleConfiguration());
     }
     
     @Test(expected = DuplicateRuleException.class)
     public void assertCheckSQLStatementWithDuplicateTables() throws RuleDefinitionViolationException {
-        List<BindingTableRuleSegment> segments = Arrays.asList(new BindingTableRuleSegment("t_order,t_order_item"), new BindingTableRuleSegment("t_order,t_order_item"));
+        List<TableReferenceRuleSegment> segments = Arrays.asList(new TableReferenceRuleSegment("t_order,t_order_item"), new TableReferenceRuleSegment("t_order,t_order_item"));
         updater.checkSQLStatement(database, createSQLStatement(segments), createCurrentRuleConfiguration());
     }
     
     @Test(expected = DuplicateRuleException.class)
     public void assertCheckSQLStatementWithDifferentCaseDuplicateTables() throws RuleDefinitionViolationException {
-        List<BindingTableRuleSegment> segments = Arrays.asList(new BindingTableRuleSegment("T_ORDER,T_ORDER_ITEM"), new BindingTableRuleSegment("t_order,t_order_item"));
+        List<TableReferenceRuleSegment> segments = Arrays.asList(new TableReferenceRuleSegment("T_ORDER,T_ORDER_ITEM"), new TableReferenceRuleSegment("t_order,t_order_item"));
         updater.checkSQLStatement(database, createSQLStatement(segments), createCurrentRuleConfiguration());
     }
     
-    private AlterShardingBindingTableRulesStatement createSQLStatement(final List<BindingTableRuleSegment> segments) {
-        return new AlterShardingBindingTableRulesStatement(segments);
+    private AlterShardingTableReferenceRuleStatement createSQLStatement(final List<TableReferenceRuleSegment> segments) {
+        return new AlterShardingTableReferenceRuleStatement(segments);
     }
     
     private ShardingRuleConfiguration createCurrentRuleConfiguration() {
diff --git a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingBindingTableRuleStatementUpdaterTest.java b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableReferenceRuleStatementUpdaterTest.java
similarity index 71%
rename from features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingBindingTableRuleStatementUpdaterTest.java
rename to features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableReferenceRuleStatementUpdaterTest.java
index dfd9ebdb16b..bd776e76e31 100644
--- a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingBindingTableRuleStatementUpdaterTest.java
+++ b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingTableReferenceRuleStatementUpdaterTest.java
@@ -22,9 +22,9 @@ import org.apache.shardingsphere.infra.distsql.exception.rule.MissingRequiredRul
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
-import org.apache.shardingsphere.sharding.distsql.handler.update.CreateShardingBindingTableRuleStatementUpdater;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.handler.update.CreateShardingTableReferenceRuleStatementUpdater;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableReferenceRuleStatement;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -35,12 +35,12 @@ import java.util.Arrays;
 import java.util.List;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class CreateShardingBindingTableRuleStatementUpdaterTest {
+public final class CreateShardingTableReferenceRuleStatementUpdaterTest {
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private ShardingSphereDatabase database;
     
-    private final CreateShardingBindingTableRuleStatementUpdater updater = new CreateShardingBindingTableRuleStatementUpdater();
+    private final CreateShardingTableReferenceRuleStatementUpdater updater = new CreateShardingTableReferenceRuleStatementUpdater();
     
     @Test(expected = MissingRequiredRuleException.class)
     public void assertCheckSQLStatementWithoutCurrentTableRule() {
@@ -49,20 +49,20 @@ public final class CreateShardingBindingTableRuleStatementUpdaterTest {
     
     @Test(expected = DuplicateRuleException.class)
     public void assertCheckSQLStatementWithDuplicateTables() {
-        List<BindingTableRuleSegment> segments = Arrays.asList(new BindingTableRuleSegment("t_order,t_order_item"), new BindingTableRuleSegment("t_order,t_order_item"));
-        CreateShardingBindingTableRulesStatement statement = new CreateShardingBindingTableRulesStatement(segments);
+        List<TableReferenceRuleSegment> segments = Arrays.asList(new TableReferenceRuleSegment("t_order,t_order_item"), new TableReferenceRuleSegment("t_order,t_order_item"));
+        CreateShardingTableReferenceRuleStatement statement = new CreateShardingTableReferenceRuleStatement(segments);
         updater.checkSQLStatement(database, statement, getCurrentRuleConfig());
     }
     
     @Test(expected = DuplicateRuleException.class)
     public void assertCheckSQLStatementWithDifferentCaseDuplicateTables() {
-        List<BindingTableRuleSegment> segments = Arrays.asList(new BindingTableRuleSegment("T_ORDER,T_ORDER_ITEM"), new BindingTableRuleSegment("t_order,t_order_item"));
-        CreateShardingBindingTableRulesStatement statement = new CreateShardingBindingTableRulesStatement(segments);
+        List<TableReferenceRuleSegment> segments = Arrays.asList(new TableReferenceRuleSegment("T_ORDER,T_ORDER_ITEM"), new TableReferenceRuleSegment("t_order,t_order_item"));
+        CreateShardingTableReferenceRuleStatement statement = new CreateShardingTableReferenceRuleStatement(segments);
         updater.checkSQLStatement(database, statement, getCurrentRuleConfig());
     }
     
-    private CreateShardingBindingTableRulesStatement createSQLStatement() {
-        return new CreateShardingBindingTableRulesStatement(Arrays.asList(new BindingTableRuleSegment("t_order,t_order_item"), new BindingTableRuleSegment("t_1,t_2")));
+    private CreateShardingTableReferenceRuleStatement createSQLStatement() {
+        return new CreateShardingTableReferenceRuleStatement(Arrays.asList(new TableReferenceRuleSegment("t_order,t_order_item"), new TableReferenceRuleSegment("t_1,t_2")));
     }
     
     private ShardingRuleConfiguration getCurrentRuleConfig() {
diff --git a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropShardingBindingTableRuleStatementUpdaterTest.java b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropShardingTableReferenceRuleStatementUpdaterTest.java
similarity index 80%
rename from features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropShardingBindingTableRuleStatementUpdaterTest.java
rename to features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropShardingTableReferenceRuleStatementUpdaterTest.java
index 3b8379f4fcb..adde8463d39 100644
--- a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropShardingBindingTableRuleStatementUpdaterTest.java
+++ b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropShardingTableReferenceRuleStatementUpdaterTest.java
@@ -22,9 +22,9 @@ import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
 import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
-import org.apache.shardingsphere.sharding.distsql.handler.update.DropShardingBindingTableRuleStatementUpdater;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.handler.update.DropShardingTableReferenceRuleStatementUpdater;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableReferenceRuleStatement;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -42,9 +42,9 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class DropShardingBindingTableRuleStatementUpdaterTest {
+public final class DropShardingTableReferenceRuleStatementUpdaterTest {
     
-    private final DropShardingBindingTableRuleStatementUpdater updater = new DropShardingBindingTableRuleStatementUpdater();
+    private final DropShardingTableReferenceRuleStatementUpdater updater = new DropShardingTableReferenceRuleStatementUpdater();
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private ShardingSphereDatabase database;
@@ -77,14 +77,14 @@ public final class DropShardingBindingTableRuleStatementUpdaterTest {
     @Test
     public void assertHasAnyOneToBeDropped() {
         ShardingRuleConfiguration currentRuleConfig = createCurrentRuleConfiguration();
-        DropShardingBindingTableRulesStatement sqlStatement = createSQLStatement(true, "t_1,t_2", "t_order,t_order_item");
+        DropShardingTableReferenceRuleStatement sqlStatement = createSQLStatement(true, "t_1,t_2", "t_order,t_order_item");
         assertTrue(updater.hasAnyOneToBeDropped(sqlStatement, currentRuleConfig));
     }
     
     @Test
     public void assertHasNotAnyOneToBeDropped() {
         ShardingRuleConfiguration currentRuleConfig = createCurrentRuleConfiguration();
-        DropShardingBindingTableRulesStatement sqlStatement = createSQLStatement(true, "t_1,t_2");
+        DropShardingTableReferenceRuleStatement sqlStatement = createSQLStatement(true, "t_1,t_2");
         assertFalse(updater.hasAnyOneToBeDropped(sqlStatement, currentRuleConfig));
     }
     
@@ -92,7 +92,7 @@ public final class DropShardingBindingTableRuleStatementUpdaterTest {
     public void assertDropSpecifiedCurrentRuleConfiguration() {
         ShardingRuleConfiguration currentRuleConfig = createCurrentRuleConfiguration();
         currentRuleConfig.getBindingTableGroups().add("t_1,t_2");
-        DropShardingBindingTableRulesStatement sqlStatement = createSQLStatement("t_1,t_2");
+        DropShardingTableReferenceRuleStatement sqlStatement = createSQLStatement("t_1,t_2");
         updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
         updater.updateCurrentRuleConfiguration(sqlStatement, currentRuleConfig);
         assertThat(currentRuleConfig.getBindingTableGroups().size(), is(1));
@@ -103,7 +103,7 @@ public final class DropShardingBindingTableRuleStatementUpdaterTest {
     public void assertDropRulesCurrentRuleConfigurationWithNoOrder() {
         ShardingRuleConfiguration currentRuleConfig = createCurrentRuleConfiguration();
         currentRuleConfig.getBindingTableGroups().add("t_1,t_2,t_3");
-        DropShardingBindingTableRulesStatement sqlStatement = createSQLStatement("t_3,t_2,t_1");
+        DropShardingTableReferenceRuleStatement sqlStatement = createSQLStatement("t_3,t_2,t_1");
         updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
         updater.updateCurrentRuleConfiguration(sqlStatement, currentRuleConfig);
         assertThat(currentRuleConfig.getBindingTableGroups().size(), is(1));
@@ -115,7 +115,7 @@ public final class DropShardingBindingTableRuleStatementUpdaterTest {
     public void assertDropRulesCurrentRuleConfigurationWithDifferentCase() {
         ShardingRuleConfiguration currentRuleConfig = createCurrentRuleConfiguration();
         currentRuleConfig.getBindingTableGroups().add("t_1,t_2,t_3");
-        DropShardingBindingTableRulesStatement sqlStatement = createSQLStatement("T_3,T_2,T_1");
+        DropShardingTableReferenceRuleStatement sqlStatement = createSQLStatement("T_3,T_2,T_1");
         updater.checkSQLStatement(database, sqlStatement, currentRuleConfig);
         updater.updateCurrentRuleConfiguration(sqlStatement, currentRuleConfig);
         assertThat(currentRuleConfig.getBindingTableGroups().size(), is(1));
@@ -123,14 +123,14 @@ public final class DropShardingBindingTableRuleStatementUpdaterTest {
         assertFalse(currentRuleConfig.getBindingTableGroups().contains("t_1,t_2,t_3"));
     }
     
-    private DropShardingBindingTableRulesStatement createSQLStatement(final String... group) {
-        Collection<BindingTableRuleSegment> segments = Arrays.stream(group).map(BindingTableRuleSegment::new).collect(Collectors.toList());
-        return new DropShardingBindingTableRulesStatement(false, segments);
+    private DropShardingTableReferenceRuleStatement createSQLStatement(final String... group) {
+        Collection<TableReferenceRuleSegment> segments = Arrays.stream(group).map(TableReferenceRuleSegment::new).collect(Collectors.toList());
+        return new DropShardingTableReferenceRuleStatement(false, segments);
     }
     
-    private DropShardingBindingTableRulesStatement createSQLStatement(final boolean ifExists, final String... group) {
-        Collection<BindingTableRuleSegment> segments = Arrays.stream(group).map(BindingTableRuleSegment::new).collect(Collectors.toList());
-        return new DropShardingBindingTableRulesStatement(ifExists, segments);
+    private DropShardingTableReferenceRuleStatement createSQLStatement(final boolean ifExists, final String... group) {
+        Collection<TableReferenceRuleSegment> segments = Arrays.stream(group).map(TableReferenceRuleSegment::new).collect(Collectors.toList());
+        return new DropShardingTableReferenceRuleStatement(ifExists, segments);
     }
     
     private ShardingRuleConfiguration createCurrentRuleConfiguration() {
diff --git a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/BaseRule.g4 b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/BaseRule.g4
index fee1dd7f45f..d7f5ca301bc 100644
--- a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/BaseRule.g4
+++ b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/BaseRule.g4
@@ -35,6 +35,6 @@ auditorName
     : IDENTIFIER
     ;
 
-ifExists
-    : IF EXISTS
+ruleName
+    : IDENTIFIER
     ;
diff --git a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/Keyword.g4 b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/Keyword.g4
index 07aaa2096ea..9eb50297c4c 100644
--- a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/Keyword.g4
+++ b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/Keyword.g4
@@ -91,8 +91,8 @@ COLUMN
     : C O L U M N
     ;
 
-BINDING
-    : B I N D I N G
+REFERENCE
+    : R E F E R E N C E
     ;
 
 BROADCAST
@@ -230,3 +230,11 @@ AUDIT_STRATEGY
 ALLOW_HINT_DISABLE
     : A L L O W UL_ H I N T UL_ D I S A B L E
     ;
+
+TRUE
+    : T R U E
+    ;
+
+FALSE
+    : F A L S E
+    ;
diff --git a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RDLStatement.g4 b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RDLStatement.g4
index 802eb9d741c..a3bc9fde84c 100644
--- a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RDLStatement.g4
+++ b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RDLStatement.g4
@@ -31,16 +31,16 @@ dropShardingTableRule
     : DROP SHARDING TABLE RULE ifExists? tableName (COMMA tableName)* withUnusedAlgorithmsClause?
     ;
 
-createShardingBindingTableRules
-    : CREATE SHARDING BINDING TABLE RULES bindTableRulesDefinition (COMMA bindTableRulesDefinition)*
+createShardingTableReferenceRule
+    : CREATE SHARDING TABLE REFERENCE RULE tableReferenceRuleDefinition (COMMA tableReferenceRuleDefinition)*
     ;
 
-alterShardingBindingTableRules
-    : ALTER SHARDING BINDING TABLE RULES bindTableRulesDefinition (COMMA bindTableRulesDefinition)*
+alterShardingTableReferenceRule
+    : ALTER SHARDING TABLE REFERENCE RULE tableReferenceRuleDefinition (COMMA tableReferenceRuleDefinition)*
     ;
 
-dropShardingBindingTableRules
-    : DROP SHARDING BINDING TABLE RULES ifExists? (bindTableRulesDefinition (COMMA bindTableRulesDefinition)*)?
+dropShardingTableReferenceRule
+    : DROP SHARDING TABLE REFERENCE RULE ifExists? (tableReferenceRuleDefinition (COMMA tableReferenceRuleDefinition)*)?
     ;
 
 createBroadcastTableRule
@@ -199,8 +199,8 @@ columnName
     : IDENTIFIER
     ;
 
-bindTableRulesDefinition
-    : LP tableName (COMMA tableName)* RP
+tableReferenceRuleDefinition
+    : ruleName? LP tableName (COMMA tableName)* RP
     ;
 
 shardingAlgorithmDefinition
diff --git a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RQLStatement.g4 b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RQLStatement.g4
index e65a9dd968d..cd599655d1b 100644
--- a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RQLStatement.g4
+++ b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RQLStatement.g4
@@ -23,8 +23,8 @@ showShardingTableRules
     : SHOW SHARDING TABLE (tableRule | RULES) (FROM databaseName)?
     ;
 
-showShardingBindingTableRules
-    : SHOW SHARDING BINDING TABLE RULES (FROM databaseName)?
+showShardingTableReferenceRules
+    : SHOW SHARDING TABLE REFERENCE RULES (FROM databaseName)?
     ;
 
 showBroadcastTableRules
diff --git a/features/sharding/distsql/parser/src/main/antlr4/sharding/org/apache/shardingsphere/distsql/parser/autogen/ShardingDistSQLStatement.g4 b/features/sharding/distsql/parser/src/main/antlr4/sharding/org/apache/shardingsphere/distsql/parser/autogen/ShardingDistSQLStatement.g4
index 24c71655fb0..2744432807e 100644
--- a/features/sharding/distsql/parser/src/main/antlr4/sharding/org/apache/shardingsphere/distsql/parser/autogen/ShardingDistSQLStatement.g4
+++ b/features/sharding/distsql/parser/src/main/antlr4/sharding/org/apache/shardingsphere/distsql/parser/autogen/ShardingDistSQLStatement.g4
@@ -22,19 +22,19 @@ import Symbol, RALStatement, RDLStatement, RQLStatement;
 execute
     : (createShardingTableRule
     | createDefaultShardingStrategy
-    | createShardingBindingTableRules
+    | createShardingTableReferenceRule
     | createBroadcastTableRule
     | alterShardingTableRule
-    | alterShardingBindingTableRules
+    | alterShardingTableReferenceRule
     | dropShardingTableRule
-    | dropShardingBindingTableRules
+    | dropShardingTableReferenceRule
     | dropBroadcastTableRule
     | dropShardingAlgorithm
     | showShardingTableRulesUsedAlgorithm
     | showShardingTableRulesUsedKeyGenerator
     | showShardingTableRulesUsedAuditor
     | showShardingTableRules
-    | showShardingBindingTableRules
+    | showShardingTableReferenceRules
     | showBroadcastTableRules
     | showShardingAlgorithms
     | setShardingHintDatabaseValue
diff --git a/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java b/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
index 4d42cfefe79..3b586aceb7c 100644
--- a/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
+++ b/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
@@ -25,20 +25,20 @@ import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatement
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AlgorithmPropertyContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AlterDefaultShardingStrategyContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AlterShardingAuditorContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AlterShardingBindingTableRulesContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AlterShardingTableReferenceRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AlterShardingTableRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AuditDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AuditStrategyContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AuditorDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AuditorNameContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AutoShardingColumnDefinitionContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.BindTableRulesDefinitionContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.TableReferenceRuleDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ClearShardingHintContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.CountShardingRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.CreateBroadcastTableRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.CreateDefaultShardingStrategyContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.CreateShardingAuditorContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.CreateShardingBindingTableRulesContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.CreateShardingTableReferenceRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.CreateShardingTableRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.DataNodesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.DatabaseNameContext;
@@ -46,8 +46,8 @@ import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatement
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.DropDefaultShardingStrategyContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.DropShardingAlgorithmContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.DropShardingAuditorContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.DropShardingBindingTableRulesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.DropShardingKeyGeneratorContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.DropShardingTableReferenceRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.DropShardingTableRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.KeyGenerateDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ResourcesContext;
@@ -60,11 +60,11 @@ import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatement
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowBroadcastTableRulesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingAlgorithmsContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingAuditorsContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingBindingTableRulesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingDefaultShardingStrategyContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingHintStatusContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingKeyGeneratorsContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingTableNodesContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingTableReferenceRulesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingTableRulesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingTableRulesUsedAlgorithmContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingTableRulesUsedAuditorContext;
@@ -79,35 +79,35 @@ import org.apache.shardingsphere.sharding.distsql.parser.segment.AbstractTableRu
 import org.apache.shardingsphere.sharding.distsql.parser.segment.AbstractTableRuleSegment.EmptyTableRuleSegment;
 import org.apache.shardingsphere.sharding.distsql.parser.segment.AuditStrategySegment;
 import org.apache.shardingsphere.sharding.distsql.parser.segment.AutoTableRuleSegment;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
 import org.apache.shardingsphere.sharding.distsql.parser.segment.KeyGenerateStrategySegment;
 import org.apache.shardingsphere.sharding.distsql.parser.segment.ShardingAuditorSegment;
 import org.apache.shardingsphere.sharding.distsql.parser.segment.ShardingStrategySegment;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
 import org.apache.shardingsphere.sharding.distsql.parser.segment.TableRuleSegment;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterDefaultShardingStrategyStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingAuditorStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CountShardingRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateBroadcastTableRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateDefaultShardingStrategyStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingAuditorStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropBroadcastTableRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropDefaultShardingStrategyStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingAlgorithmStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingAuditorStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBindingTableRulesStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingKeyGeneratorStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowBroadcastTableRulesStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowDefaultShardingStrategyStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingAlgorithmsStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingAuditorsStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingBindingTableRulesStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingKeyGeneratorsStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableNodesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableReferenceRulesStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableRulesStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableRulesUsedAlgorithmStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableRulesUsedAuditorStatement;
@@ -152,12 +152,12 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem
     }
     
     @Override
-    public ASTNode visitCreateShardingBindingTableRules(final CreateShardingBindingTableRulesContext ctx) {
-        return new CreateShardingBindingTableRulesStatement(createBindingTableRuleSegment(ctx.bindTableRulesDefinition()));
+    public ASTNode visitCreateShardingTableReferenceRule(final CreateShardingTableReferenceRuleContext ctx) {
+        return new CreateShardingTableReferenceRuleStatement(createTableReferenceRuleSegment(ctx.tableReferenceRuleDefinition()));
     }
     
-    private Collection<BindingTableRuleSegment> createBindingTableRuleSegment(final List<BindTableRulesDefinitionContext> contexts) {
-        return contexts.stream().map(each -> each.tableName().stream().map(this::getIdentifierValue).collect(Collectors.joining(","))).map(BindingTableRuleSegment::new).collect(Collectors.toList());
+    private Collection<TableReferenceRuleSegment> createTableReferenceRuleSegment(final List<TableReferenceRuleDefinitionContext> contexts) {
+        return contexts.stream().map(each -> each.tableName().stream().map(this::getIdentifierValue).collect(Collectors.joining(","))).map(TableReferenceRuleSegment::new).collect(Collectors.toList());
     }
     
     @Override
@@ -178,12 +178,12 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem
     }
     
     @Override
-    public ASTNode visitAlterShardingBindingTableRules(final AlterShardingBindingTableRulesContext ctx) {
-        Collection<BindingTableRuleSegment> rules = new LinkedList<>();
-        for (BindTableRulesDefinitionContext each : ctx.bindTableRulesDefinition()) {
-            rules.add(new BindingTableRuleSegment(each.tableName().stream().map(tableName -> new IdentifierValue(tableName.getText()).getValue()).collect(Collectors.joining(","))));
+    public ASTNode visitAlterShardingTableReferenceRule(final AlterShardingTableReferenceRuleContext ctx) {
+        Collection<TableReferenceRuleSegment> rules = new LinkedList<>();
+        for (TableReferenceRuleDefinitionContext each : ctx.tableReferenceRuleDefinition()) {
+            rules.add(new TableReferenceRuleSegment(each.tableName().stream().map(tableName -> new IdentifierValue(tableName.getText()).getValue()).collect(Collectors.joining(","))));
         }
-        return new AlterShardingBindingTableRulesStatement(rules);
+        return new AlterShardingTableReferenceRuleStatement(rules);
     }
     
     @Override
@@ -195,9 +195,9 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem
     }
     
     @Override
-    public ASTNode visitDropShardingBindingTableRules(final DropShardingBindingTableRulesContext ctx) {
-        Collection<BindingTableRuleSegment> tableNames = null == ctx.bindTableRulesDefinition() ? Collections.emptyList() : createBindingTableRuleSegment(ctx.bindTableRulesDefinition());
-        return new DropShardingBindingTableRulesStatement(null != ctx.ifExists(), tableNames);
+    public ASTNode visitDropShardingTableReferenceRule(final DropShardingTableReferenceRuleContext ctx) {
+        Collection<TableReferenceRuleSegment> tableNames = null == ctx.tableReferenceRuleDefinition() ? Collections.emptyList() : createTableReferenceRuleSegment(ctx.tableReferenceRuleDefinition());
+        return new DropShardingTableReferenceRuleStatement(null != ctx.ifExists(), tableNames);
     }
     
     @Override
@@ -258,7 +258,7 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem
     
     @Override
     public ASTNode visitDropBroadcastTableRule(final DropBroadcastTableRuleContext ctx) {
-        Collection<String> tableNames = null == ctx.tableName() ? Collections.emptyList() : ctx.tableName().stream().map(this::getIdentifierValue).collect(Collectors.toList());
+        Collection<String> tableNames = ctx.tableName().stream().map(this::getIdentifierValue).collect(Collectors.toList());
         return new DropBroadcastTableRuleStatement(null != ctx.ifExists(), tableNames);
     }
     
@@ -403,8 +403,8 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem
     }
     
     @Override
-    public ASTNode visitShowShardingBindingTableRules(final ShowShardingBindingTableRulesContext ctx) {
-        return new ShowShardingBindingTableRulesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
+    public ASTNode visitShowShardingTableReferenceRules(final ShowShardingTableReferenceRulesContext ctx) {
+        return new ShowShardingTableReferenceRulesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
     }
     
     @Override
diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/segment/BindingTableRuleSegment.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/segment/TableReferenceRuleSegment.java
similarity index 77%
rename from features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/segment/BindingTableRuleSegment.java
rename to features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/segment/TableReferenceRuleSegment.java
index 5ed41be5888..068c323bce7 100644
--- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/segment/BindingTableRuleSegment.java
+++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/segment/TableReferenceRuleSegment.java
@@ -26,20 +26,20 @@ import java.util.Collection;
 import java.util.stream.Collectors;
 
 /**
- * Binding table rule segment.
+ * Table reference rule segment.
  */
 @RequiredArgsConstructor
 @Getter
-public final class BindingTableRuleSegment implements ASTNode {
+public final class TableReferenceRuleSegment implements ASTNode {
     
-    private final String tableGroups;
+    private final String tableGroup;
     
     /**
-     * Get binding tables.
+     * Get table reference.
      * 
-     * @return binding tables
+     * @return table reference
      */
-    public Collection<String> getBindingTables() {
-        return Arrays.stream(tableGroups.split(",")).map(String::trim).collect(Collectors.toList());
+    public Collection<String> getTableReference() {
+        return Arrays.stream(tableGroup.split(",")).map(String::trim).collect(Collectors.toList());
     }
 }
diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBindingTableRulesStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingTableReferenceRuleStatement.java
similarity index 74%
rename from features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBindingTableRulesStatement.java
rename to features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingTableReferenceRuleStatement.java
index b6fbd480860..f2ab5740935 100644
--- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBindingTableRulesStatement.java
+++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingTableReferenceRuleStatement.java
@@ -20,29 +20,29 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
 
 import java.util.Collection;
 import java.util.LinkedList;
 
 /**
- * Alter sharding binding table rules statement.
+ * Alter sharding table reference rule statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class AlterShardingBindingTableRulesStatement extends AlterRuleStatement {
+public final class AlterShardingTableReferenceRuleStatement extends AlterRuleStatement {
     
-    private final Collection<BindingTableRuleSegment> rules;
+    private final Collection<TableReferenceRuleSegment> rules;
     
     /**
-     * Get binding tables.
+     * Get table references.
      * 
-     * @return binding tables
+     * @return table references
      */
-    public Collection<String> getBindingTables() {
+    public Collection<String> getTableReferences() {
         Collection<String> result = new LinkedList<>();
-        for (BindingTableRuleSegment each : rules) {
-            result.addAll(each.getBindingTables());
+        for (TableReferenceRuleSegment each : rules) {
+            result.addAll(each.getTableReference());
         }
         return result;
     }
diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBindingTableRulesStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingTableReferenceRuleStatement.java
similarity index 74%
rename from features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBindingTableRulesStatement.java
rename to features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingTableReferenceRuleStatement.java
index 3eca763f640..175cad45c00 100644
--- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBindingTableRulesStatement.java
+++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingTableReferenceRuleStatement.java
@@ -20,29 +20,29 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
 
 import java.util.Collection;
 import java.util.LinkedList;
 
 /**
- * Create sharding binding table rules statement.
+ * Create sharding table reference rule statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class CreateShardingBindingTableRulesStatement extends CreateRuleStatement {
+public final class CreateShardingTableReferenceRuleStatement extends CreateRuleStatement {
     
-    private final Collection<BindingTableRuleSegment> rules;
+    private final Collection<TableReferenceRuleSegment> rules;
     
     /**
-     * Get binding tables.
+     * Get table references.
      *
-     * @return binding tables
+     * @return table references
      */
-    public Collection<String> getBindingTables() {
+    public Collection<String> getTableReferences() {
         Collection<String> result = new LinkedList<>();
-        for (BindingTableRuleSegment each : rules) {
-            result.addAll(each.getBindingTables());
+        for (TableReferenceRuleSegment each : rules) {
+            result.addAll(each.getTableReference());
         }
         return result;
     }
diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBindingTableRulesStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingTableReferenceRuleStatement.java
similarity index 69%
rename from features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBindingTableRulesStatement.java
rename to features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingTableReferenceRuleStatement.java
index a2ec3375e1a..0b706e27d96 100644
--- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBindingTableRulesStatement.java
+++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingTableReferenceRuleStatement.java
@@ -19,33 +19,33 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
 
 import lombok.Getter;
 import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
 
 import java.util.Collection;
 import java.util.LinkedList;
 
 /**
- * Drop sharding binding table rules statement.
+ * Drop sharding table reference rules statement.
  */
 @Getter
-public final class DropShardingBindingTableRulesStatement extends DropRuleStatement {
+public final class DropShardingTableReferenceRuleStatement extends DropRuleStatement {
     
-    private final Collection<BindingTableRuleSegment> rules;
+    private final Collection<TableReferenceRuleSegment> rules;
     
-    public DropShardingBindingTableRulesStatement(final boolean ifExists, final Collection<BindingTableRuleSegment> rules) {
+    public DropShardingTableReferenceRuleStatement(final boolean ifExists, final Collection<TableReferenceRuleSegment> rules) {
         super(ifExists);
         this.rules = rules;
     }
     
     /**
-     * Get binding groups.
+     * Get table references.
      *
-     * @return binding groups
+     * @return table references
      */
-    public Collection<String> getBindingGroups() {
+    public Collection<String> getTableReferences() {
         Collection<String> result = new LinkedList<>();
-        for (BindingTableRuleSegment each : rules) {
-            result.add(each.getTableGroups());
+        for (TableReferenceRuleSegment each : rules) {
+            result.add(each.getTableGroup());
         }
         return result;
     }
diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBindingTableRulesStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableReferenceRulesStatement.java
similarity index 82%
rename from features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBindingTableRulesStatement.java
rename to features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableReferenceRulesStatement.java
index c09a59e3c1e..4628c8f9217 100644
--- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBindingTableRulesStatement.java
+++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableReferenceRulesStatement.java
@@ -21,11 +21,11 @@ import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStat
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
 
 /**
- * Show sharding binding table rules statement.
+ * Show sharding table reference rules statement.
  */
-public final class ShowShardingBindingTableRulesStatement extends ShowRulesStatement {
+public final class ShowShardingTableReferenceRulesStatement extends ShowRulesStatement {
     
-    public ShowShardingBindingTableRulesStatement(final DatabaseSegment database) {
+    public ShowShardingTableReferenceRulesStatement(final DatabaseSegment database) {
         super(database);
     }
 }
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/update/RuleDefinitionDropUpdater.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/update/RuleDefinitionDropUpdater.java
index c271018200b..581ab61c4e8 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/update/RuleDefinitionDropUpdater.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/update/RuleDefinitionDropUpdater.java
@@ -47,7 +47,7 @@ public interface RuleDefinitionDropUpdater<T extends SQLStatement, R extends Rul
      * @return configuration exists or does not exist
      */
     default boolean isExistRuleConfig(R currentRuleConfig) {
-        return currentRuleConfig != null;
+        return null != currentRuleConfig;
     }
     
     /**
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java
index bdc74baef3b..fd7a6a3cbe5 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java
@@ -91,10 +91,10 @@ public final class ShowReadwriteSplittingReadResourcesHandler extends QueryableR
         Map<String, Object> exportMap = database.getRuleMetaData().getRules().stream().filter(each -> each instanceof ExportableRule).map(each -> (ExportableRule) each)
                 .filter(each -> new RuleExportEngine(each).containExportableKey(exportKeys)).findFirst().map(each -> new RuleExportEngine(each).export(exportKeys)).orElse(Collections.emptyMap());
         Map<String, Map<String, String>> allReadwriteRuleMap = exportMap.values().stream().map(each -> ((Map<String, Map<String, String>>) each).entrySet())
-                .flatMap(Collection::stream).collect(Collectors.toMap(Entry::getKey, Entry::getValue, (v1, v2) -> v2, LinkedHashMap::new));
+                .flatMap(Collection::stream).collect(Collectors.toMap(Entry::getKey, Entry::getValue, (oldValue, currentValue) -> currentValue, LinkedHashMap::new));
         if (!Strings.isNullOrEmpty(groupName)) {
             allReadwriteRuleMap = allReadwriteRuleMap.entrySet().stream().filter(each -> groupName.equalsIgnoreCase(each.getKey()))
-                    .collect(Collectors.toMap(Entry::getKey, Entry::getValue, (v1, v2) -> v2, LinkedHashMap::new));
+                    .collect(Collectors.toMap(Entry::getKey, Entry::getValue, (oldValue, currentValue) -> currentValue, LinkedHashMap::new));
         }
         return allReadwriteRuleMap.values().stream().map(each -> each.get(ExportableItemConstants.REPLICA_DATA_SOURCE_NAMES)).filter(each -> null != each && !each.isEmpty())
                 .map(this::deconstructString).flatMap(Collection::stream).collect(Collectors.toCollection(LinkedHashSet::new));
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules.xml
index e3e3e5128ad..4b16a8db4de 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
     <row values="t_order,t_order_item" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules.xml
index e3e3e5128ad..4b16a8db4de 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
     <row values="t_order,t_order_item" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
index fe1858a6522..f85e249bbf3 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
     <row values="t_product_category" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules.xml
index 649c1700a33..46719147b83 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules.xml
@@ -17,6 +17,6 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules.xml
index 78a489270e0..2bd51c33376 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules.xml
@@ -17,6 +17,6 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml b/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
index 68bffede57a..723a017b821 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
@@ -31,29 +31,29 @@
 <!--            <assertion-sql sql="SHOW DATABASE RESOURCES" />-->
 <!--        </assertion>-->
 <!--    </test-case>-->
-    <test-case sql="CREATE SHARDING BINDING TABLE RULES (t_order,t_order_item);" db-types="MySQL, PostgreSQL">
+    <test-case sql="CREATE SHARDING TABLE REFERENCE RULE (t_order,t_order_item);" db-types="MySQL, PostgreSQL">
         <assertion expected-data-file="create_binding_rules.xml">
             <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));
             CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 2}')))));"/>
-            <assertion-sql sql="SHOW SHARDING BINDING TABLE RULES;" />
-            <destroy-sql sql="DROP SHARDING BINDING TABLE RULES;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
+            <assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
+            <destroy-sql sql="DROP SHARDING TABLE REFERENCE RULE;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
         </assertion>
     </test-case>
-    <test-case sql="ALTER SHARDING BINDING TABLE RULES (t_order,t_order_item)" db-types="MySQL, PostgreSQL">
+    <test-case sql="ALTER SHARDING TABLE REFERENCE RULE (t_order,t_order_item)" db-types="MySQL, PostgreSQL">
         <assertion expected-data-file="alter_binding_rules.xml">
             <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));
             CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 2}')))));
-            CREATE SHARDING BINDING TABLE RULES (t_order,t_order_item);"/>
-            <assertion-sql sql="SHOW SHARDING BINDING TABLE RULES;" />
-            <destroy-sql sql="DROP SHARDING BINDING TABLE RULES;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
+            CREATE SHARDING TABLE REFERENCE RULE (t_order,t_order_item);"/>
+            <assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
+            <destroy-sql sql="DROP SHARDING TABLE REFERENCE RULE;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
         </assertion>
     </test-case>
-    <test-case sql="DROP SHARDING BINDING TABLE RULES;" db-types="MySQL, PostgreSQL">
+    <test-case sql="DROP SHARDING TABLE REFERENCE RULE;" db-types="MySQL, PostgreSQL">
         <assertion expected-data-file="drop_binding_rules.xml">
             <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));
             CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 2}')))));
-            CREATE SHARDING BINDING TABLE RULES (t_order,t_order_item);"/>
-            <assertion-sql sql="SHOW SHARDING BINDING TABLE RULES;" />
+            CREATE SHARDING TABLE REFERENCE RULE (t_order,t_order_item);"/>
+            <assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
             <destroy-sql sql="DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
         </assertion>
     </test-case>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_broadcast_rules.xml
index 9f18c3fc9d7..d24b0b8dfb8 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_broadcast_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
     <row values="t_broadcast_table" />
     <row values="t_broadcast_table_for_ddl" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_sharding_binging_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_sharding_binging_table_rules.xml
index 1177a8261b0..79d65f58c42 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_sharding_binging_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_sharding_binging_table_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
     <row values="t_order,t_order_item,t_order_details" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_broadcast_rules.xml
index 9f18c3fc9d7..d24b0b8dfb8 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_broadcast_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
     <row values="t_broadcast_table" />
     <row values="t_broadcast_table_for_ddl" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_sharding_binging_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_sharding_binging_table_rules.xml
index 1177a8261b0..79d65f58c42 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_sharding_binging_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_sharding_binging_table_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
     <row values="t_order,t_order_item,t_order_details" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_broadcast_rules.xml
index 78a489270e0..2bd51c33376 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_broadcast_rules.xml
@@ -17,6 +17,6 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_sharding_binging_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_sharding_binging_table_rules.xml
index cdbeb5f8cbc..7454881f4f2 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_sharding_binging_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_sharding_binging_table_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
     <row values="t_user,t_user_item,t_user_details" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_broadcast_rules.xml
index 78a489270e0..2bd51c33376 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_broadcast_rules.xml
@@ -17,6 +17,6 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_sharding_binging_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_sharding_binging_table_rules.xml
index 649c1700a33..46719147b83 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_sharding_binging_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_sharding_binging_table_rules.xml
@@ -17,6 +17,6 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_broadcast_rules.xml
index d64d500dc3f..36861181d00 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_broadcast_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
     <row values="t_broadcast_table" />
     <row values="t_broadcast_table_for_ddl" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_sharding_binging_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_sharding_binging_table_rules.xml
index 1177a8261b0..79d65f58c42 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_sharding_binging_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_sharding_binging_table_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
     <row values="t_order,t_order_item,t_order_details" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_broadcast_rules.xml
index 78a489270e0..2bd51c33376 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_broadcast_rules.xml
@@ -17,6 +17,6 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_sharding_binging_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_sharding_binging_table_rules.xml
index cdbeb5f8cbc..7454881f4f2 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_sharding_binging_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_sharding_binging_table_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
     <row values="t_user,t_user_item,t_user_details" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_broadcast_rules.xml
index 78a489270e0..2bd51c33376 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_broadcast_rules.xml
@@ -17,6 +17,6 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_sharding_binging_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_sharding_binging_table_rules.xml
index f028aa3a4e2..806da65f224 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_sharding_binging_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_sharding_binging_table_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
     <row values="t_order,t_order_details" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_broadcast_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_broadcast_rules.xml
index d64d500dc3f..36861181d00 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_broadcast_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_broadcast_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="broadcast_tables" />
+        <column name="broadcast_table" />
     </metadata>
     <row values="t_broadcast_table" />
     <row values="t_broadcast_table_for_ddl" />
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_sharding_binging_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_sharding_binging_table_rules.xml
index 1177a8261b0..79d65f58c42 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_sharding_binging_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_sharding_binging_table_rules.xml
@@ -17,7 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="sharding_binding_tables" />
+        <column name="sharding_table_reference" />
     </metadata>
     <row values="t_order,t_order_item,t_order_details" />
 </dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml
index 10f0876ded2..b78730e92fc 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml
@@ -81,7 +81,7 @@
         <assertion expected-data-file="show_sharding_table_nodes.xml" />
     </test-case>
     
-    <test-case sql="SHOW SHARDING BINDING TABLE RULES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+    <test-case sql="SHOW SHARDING TABLE REFERENCE RULES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
         <assertion expected-data-file="show_sharding_binging_table_rules.xml" />
     </test-case>
     
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/distsql/rdl/ShardingBindingTableRuleAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/distsql/rdl/ShardingTableReferenceRuleAssert.java
similarity index 69%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/distsql/rdl/ShardingBindingTableRuleAssert.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/distsql/rdl/ShardingTableReferenceRuleAssert.java
index 45805364d53..2e033bdb743 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/distsql/rdl/ShardingBindingTableRuleAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/distsql/rdl/ShardingTableReferenceRuleAssert.java
@@ -19,9 +19,9 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingBindingTableRule;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingTableReferenceRule;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertNotNull;
@@ -29,25 +29,25 @@ import static org.junit.Assert.assertNull;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 /**
- * Sharding binding table rule assert.
+ * Sharding table reference rule assert.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ShardingBindingTableRuleAssert {
+public final class ShardingTableReferenceRuleAssert {
     
     /**
-     * Assert sharding binding table rule is correct with expected parser result.
+     * Assert sharding table reference rule is correct with expected parser result.
      *
      * @param assertContext assert context
-     * @param actual actual sharding binding table rule
-     * @param expected expected sharding binding table rule test case
+     * @param actual actual sharding table reference rule
+     * @param expected expected sharding table reference rule test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, final BindingTableRuleSegment actual, final ExpectedShardingBindingTableRule expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, final TableReferenceRuleSegment actual, final ExpectedShardingTableReferenceRule expected) {
         if (null == expected) {
-            assertNull(assertContext.getText("Actual sharding binding table rule should not exist."), actual);
+            assertNull(assertContext.getText("Actual sharding table reference rule should not exist."), actual);
         } else {
-            assertNotNull(assertContext.getText("Actual sharding binding table rule should exist."), actual);
-            assertThat(assertContext.getText(String.format("`%s`'s sharding binding table rule segment assertion error: ",
-                    actual.getClass().getSimpleName())), actual.getTableGroups(), is(expected.getTableGroups()));
+            assertNotNull(assertContext.getText("Actual sharding table reference rule should exist."), actual);
+            assertThat(assertContext.getText(String.format("`%s`'s sharding table reference rule segment assertion error: ",
+                    actual.getClass().getSimpleName())), actual.getTableGroup(), is(expected.getTableGroups()));
         }
     }
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
index 7cd9fa78003..36466d41e8f 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleState
 import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
 import org.apache.shardingsphere.encrypt.distsql.parser.statement.AlterEncryptRuleStatement;
 import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.AlterReadwriteSplittingRuleStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableRuleStatement;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.AlterResourceStatementAssert;
@@ -37,7 +37,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterDatabaseDiscoveryRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterEncryptRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterReadwriteSplittingRuleStatementAssert;
-import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingBindingTableRulesStatementAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingTableReferenceRulesStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingTableRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.AddResourceStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.CreateRuleStatementAssert;
@@ -47,7 +47,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterEncryptRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterReadwriteSplittingRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterResourceStatementTestCase;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingTableReferenceRulesStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.AddResourceStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropResourceStatementTestCase;
 
@@ -69,8 +69,8 @@ public final class RDLStatementAssert {
             AlterDatabaseDiscoveryRuleStatementAssert.assertIs(assertContext, (AlterDatabaseDiscoveryRuleStatement) actual, expected);
         } else if (actual instanceof AlterReadwriteSplittingRuleStatement) {
             AlterReadwriteSplittingRuleStatementAssert.assertIs(assertContext, (AlterReadwriteSplittingRuleStatement) actual, (AlterReadwriteSplittingRuleStatementTestCase) expected);
-        } else if (actual instanceof AlterShardingBindingTableRulesStatement) {
-            AlterShardingBindingTableRulesStatementAssert.assertIs(assertContext, (AlterShardingBindingTableRulesStatement) actual, (AlterShardingBindingTableRulesStatementTestCase) expected);
+        } else if (actual instanceof AlterShardingTableReferenceRuleStatement) {
+            AlterShardingTableReferenceRulesStatementAssert.assertIs(assertContext, (AlterShardingTableReferenceRuleStatement) actual, (AlterShardingTableReferenceRulesStatementTestCase) expected);
         } else if (actual instanceof AlterEncryptRuleStatement) {
             AlterEncryptRuleStatementAssert.assertIs(assertContext, (AlterEncryptRuleStatement) actual, (AlterEncryptRuleStatementTestCase) expected);
         } else if (actual instanceof AlterShardingTableRuleStatement) {
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterRuleStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterRuleStatementAssert.java
index a99a94bc1a7..b628b499c85 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterRuleStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterRuleStatementAssert.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.shadow.distsql.parser.statement.AlterShadowAlgo
 import org.apache.shardingsphere.shadow.distsql.parser.statement.AlterShadowRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterDefaultShardingStrategyStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingAuditorStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingKeyGeneratorStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableRuleStatement;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
@@ -44,7 +44,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShadowAlgorithmStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShadowRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingAuditorStatementAssert;
-import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingBindingTableRulesStatementAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingTableReferenceRulesStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingKeyGeneratorStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingTableRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
@@ -57,7 +57,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShadowAlgorithmStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShadowRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingAuditorStatementTestCase;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingTableReferenceRulesStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingKeyGeneratorStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.AlterDefaultShadowAlgorithmStatementTestCase;
 
@@ -86,8 +86,8 @@ public final class AlterRuleStatementAssert {
             AlterEncryptRuleStatementAssert.assertIs(assertContext, (AlterEncryptRuleStatement) actual, (AlterEncryptRuleStatementTestCase) expected);
         } else if (actual instanceof AlterReadwriteSplittingRuleStatement) {
             AlterReadwriteSplittingRuleStatementAssert.assertIs(assertContext, (AlterReadwriteSplittingRuleStatement) actual, (AlterReadwriteSplittingRuleStatementTestCase) expected);
-        } else if (actual instanceof AlterShardingBindingTableRulesStatement) {
-            AlterShardingBindingTableRulesStatementAssert.assertIs(assertContext, (AlterShardingBindingTableRulesStatement) actual, (AlterShardingBindingTableRulesStatementTestCase) expected);
+        } else if (actual instanceof AlterShardingTableReferenceRuleStatement) {
+            AlterShardingTableReferenceRulesStatementAssert.assertIs(assertContext, (AlterShardingTableReferenceRuleStatement) actual, (AlterShardingTableReferenceRulesStatementTestCase) expected);
         } else if (actual instanceof AlterShardingTableRuleStatement) {
             AlterShardingTableRuleStatementAssert.assertIs(assertContext, (AlterShardingTableRuleStatement) actual, expected);
         } else if (actual instanceof AlterShadowRuleStatement) {
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterShardingBindingTableRulesStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterShardingTableReferenceRulesStatementAssert.java
similarity index 62%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterShardingBindingTableRulesStatementAssert.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterShardingTableReferenceRulesStatementAssert.java
index c4ee6f701e8..62333629d72 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterShardingBindingTableRulesStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterShardingTableReferenceRulesStatementAssert.java
@@ -19,12 +19,12 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
-import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.rdl.ShardingBindingTableRuleAssert;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingBindingTableRule;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.rdl.ShardingTableReferenceRuleAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingTableReferenceRule;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingTableReferenceRulesStatementTestCase;
 
 import java.util.Collection;
 import java.util.List;
@@ -35,19 +35,19 @@ import static org.junit.Assert.assertNull;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 /**
- * Alter sharding binding table rule statement assert.
+ * Alter sharding table reference rule statement assert.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class AlterShardingBindingTableRulesStatementAssert {
+public final class AlterShardingTableReferenceRulesStatementAssert {
     
     /**
-     * Assert alter sharding binding table rule statement is correct with expected parser result.
+     * Assert alter sharding table reference rule statement is correct with expected parser result.
      *
      * @param assertContext assert context
-     * @param actual actual alter sharding binding table rule statement
-     * @param expected expected alter sharding binding table rule statement test case
+     * @param actual actual alter sharding table reference rule statement
+     * @param expected expected alter sharding table reference rule statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, final AlterShardingBindingTableRulesStatement actual, final AlterShardingBindingTableRulesStatementTestCase expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, final AlterShardingTableReferenceRuleStatement actual, final AlterShardingTableReferenceRulesStatementTestCase expected) {
         if (null == expected) {
             assertNull(assertContext.getText("Actual statement should not exist."), actual);
         } else {
@@ -56,18 +56,18 @@ public final class AlterShardingBindingTableRulesStatementAssert {
         }
     }
     
-    private static void assertShardingBindingTableRules(final SQLCaseAssertContext assertContext, final Collection<BindingTableRuleSegment> actual,
-                                                        final List<ExpectedShardingBindingTableRule> expected) {
+    private static void assertShardingBindingTableRules(final SQLCaseAssertContext assertContext, final Collection<TableReferenceRuleSegment> actual,
+                                                        final List<ExpectedShardingTableReferenceRule> expected) {
         if (null == expected) {
-            assertNull(assertContext.getText("Actual sharding binding table rule should not exist."), actual);
+            assertNull(assertContext.getText("Actual sharding table reference rule should not exist."), actual);
         } else {
-            assertNotNull(assertContext.getText("Actual sharding binding table rule should exist."), actual);
-            assertThat(assertContext.getText(String.format("Actual sharding binding table rule size should be %s , but it was %s", expected.size(), actual.size())),
+            assertNotNull(assertContext.getText("Actual sharding table reference rule should exist."), actual);
+            assertThat(assertContext.getText(String.format("Actual sharding table reference rule size should be %s , but it was %s", expected.size(), actual.size())),
                     actual.size(), is(expected.size()));
             int count = 0;
-            for (BindingTableRuleSegment shardingBindingTableRuleSegment : actual) {
-                ExpectedShardingBindingTableRule expectedShardingBindingTableRule = expected.get(count);
-                ShardingBindingTableRuleAssert.assertIs(assertContext, shardingBindingTableRuleSegment, expectedShardingBindingTableRule);
+            for (TableReferenceRuleSegment shardingTableReferenceRuleSegment : actual) {
+                ExpectedShardingTableReferenceRule expectedShardingTableReferenceRule = expected.get(count);
+                ShardingTableReferenceRuleAssert.assertIs(assertContext, shardingTableReferenceRuleSegment, expectedShardingTableReferenceRule);
                 count++;
             }
         }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/CreateRuleStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/CreateRuleStatementAssert.java
index 733460d834e..bc45219071e 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/CreateRuleStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/CreateRuleStatementAssert.java
@@ -32,7 +32,7 @@ import org.apache.shardingsphere.shadow.distsql.parser.statement.CreateShadowRul
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateDefaultShardingStrategyStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingAlgorithmStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingAuditorStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateBroadcastTableRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingKeyGeneratorStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
@@ -49,7 +49,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.impl.CreateShadowRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.impl.CreateShardingAlgorithmStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.impl.CreateShardingAuditorStatementAssert;
-import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.impl.CreateShardingBindingTableRulesStatementAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.impl.CreateShardingTableReferenceRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.impl.CreateBroadcastTableRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.impl.CreateShardingKeyGeneratorStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.impl.CreateShardingTableRuleStatementAssert;
@@ -65,7 +65,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShadowRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingAlgorithmStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingAuditorStatementTestCase;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingTableReferenceRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateBroadcastTableRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingKeyGeneratorStatementTestCase;
 
@@ -93,8 +93,8 @@ public final class CreateRuleStatementAssert {
             CreateEncryptRuleStatementAssert.assertIs(assertContext, (CreateEncryptRuleStatement) actual, (CreateEncryptRuleStatementTestCase) expected);
         } else if (actual instanceof CreateReadwriteSplittingRuleStatement) {
             CreateReadwriteSplittingRuleStatementAssert.assertIs(assertContext, (CreateReadwriteSplittingRuleStatement) actual, (CreateReadwriteSplittingRuleStatementTestCase) expected);
-        } else if (actual instanceof CreateShardingBindingTableRulesStatement) {
-            CreateShardingBindingTableRulesStatementAssert.assertIs(assertContext, (CreateShardingBindingTableRulesStatement) actual, (CreateShardingBindingTableRulesStatementTestCase) expected);
+        } else if (actual instanceof CreateShardingTableReferenceRuleStatement) {
+            CreateShardingTableReferenceRuleStatementAssert.assertIs(assertContext, (CreateShardingTableReferenceRuleStatement) actual, (CreateShardingTableReferenceRuleStatementTestCase) expected);
         } else if (actual instanceof CreateBroadcastTableRuleStatement) {
             CreateBroadcastTableRuleStatementAssert.assertIs(assertContext, (CreateBroadcastTableRuleStatement) actual,
                     (CreateBroadcastTableRuleStatementTestCase) expected);
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingBindingTableRulesStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingTableReferenceRuleStatementAssert.java
similarity index 63%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingBindingTableRulesStatementAssert.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingTableReferenceRuleStatementAssert.java
index f61fa44d2f6..d4008fe983e 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingBindingTableRulesStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateShardingTableReferenceRuleStatementAssert.java
@@ -19,12 +19,12 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.segment.TableReferenceRuleSegment;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
-import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.rdl.ShardingBindingTableRuleAssert;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingBindingTableRule;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.rdl.ShardingTableReferenceRuleAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingTableReferenceRule;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingTableReferenceRuleStatementTestCase;
 
 import java.util.Collection;
 import java.util.List;
@@ -35,19 +35,19 @@ import static org.junit.Assert.assertNull;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 /**
- * Create sharding binding table rule statement assert.
+ * Create sharding table reference rule statement assert.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class CreateShardingBindingTableRulesStatementAssert {
+public final class CreateShardingTableReferenceRuleStatementAssert {
     
     /**
-     * Assert create sharding binding table rule statement is correct with expected parser result.
+     * Assert create sharding table reference rule statement is correct with expected parser result.
      *
      * @param assertContext assert context
-     * @param actual actual create sharding binding table rule statement
-     * @param expected expected create sharding binding table rule statement test case
+     * @param actual actual create sharding table reference rule statement
+     * @param expected expected create sharding table reference rule statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, final CreateShardingBindingTableRulesStatement actual, final CreateShardingBindingTableRulesStatementTestCase expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, final CreateShardingTableReferenceRuleStatement actual, final CreateShardingTableReferenceRuleStatementTestCase expected) {
         if (null == expected) {
             assertNull(assertContext.getText("Actual statement should not exist."), actual);
         } else {
@@ -56,18 +56,18 @@ public final class CreateShardingBindingTableRulesStatementAssert {
         }
     }
     
-    private static void assertShardingBindingTableRules(final SQLCaseAssertContext assertContext, final Collection<BindingTableRuleSegment> actual,
-                                                        final List<ExpectedShardingBindingTableRule> expected) {
+    private static void assertShardingBindingTableRules(final SQLCaseAssertContext assertContext, final Collection<TableReferenceRuleSegment> actual,
+                                                        final List<ExpectedShardingTableReferenceRule> expected) {
         if (null == expected) {
-            assertNull(assertContext.getText("Actual sharding binding table rule should not exist."), actual);
+            assertNull(assertContext.getText("Actual sharding table reference rule should not exist."), actual);
         } else {
-            assertNotNull(assertContext.getText("Actual sharding binding table rule should exist."), actual);
-            assertThat(assertContext.getText(String.format("Actual sharding binding table rule size should be %s , but it was %s",
+            assertNotNull(assertContext.getText("Actual sharding table reference rule should exist."), actual);
+            assertThat(assertContext.getText(String.format("Actual sharding table reference rule size should be %s , but it was %s",
                     expected.size(), actual.size())), actual.size(), is(expected.size()));
             int count = 0;
-            for (BindingTableRuleSegment shardingBindingTableRuleSegment : actual) {
-                ExpectedShardingBindingTableRule expectedShardingBindingTableRule = expected.get(count);
-                ShardingBindingTableRuleAssert.assertIs(assertContext, shardingBindingTableRuleSegment, expectedShardingBindingTableRule);
+            for (TableReferenceRuleSegment shardingTableReferenceRuleSegment : actual) {
+                ExpectedShardingTableReferenceRule expectedShardingTableReferenceRule = expected.get(count);
+                ShardingTableReferenceRuleAssert.assertIs(assertContext, shardingTableReferenceRuleSegment, expectedShardingTableReferenceRule);
                 count++;
             }
         }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropRuleStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropRuleStatementAssert.java
index 7e4382d5a3c..67667db715f 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropRuleStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropRuleStatementAssert.java
@@ -30,7 +30,7 @@ import org.apache.shardingsphere.shadow.distsql.parser.statement.DropShadowRuleS
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropDefaultShardingStrategyStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingAlgorithmStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingAuditorStatement;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropBroadcastTableRuleStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingKeyGeneratorStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableRuleStatement;
@@ -45,7 +45,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.impl.DropShadowRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.impl.DropShardingAlgorithmStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.impl.DropShardingAuditorStatementAssert;
-import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.impl.DropShardingBindingTableRulesStatementAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.impl.DropShardingTableReferenceRulesStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.impl.DropBroadcastTableRuleStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.impl.DropShardingKeyGeneratorStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.impl.DropShardingTableRuleStatementAssert;
@@ -60,7 +60,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShadowRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingAlgorithmStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingAuditorStatementTestCase;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingTableReferenceRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropBroadcastTableRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingKeyGeneratorStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingTableRuleStatementTestCase;
@@ -91,8 +91,8 @@ public final class DropRuleStatementAssert {
             DropEncryptRuleStatementAssert.assertIs(assertContext, (DropEncryptRuleStatement) actual, (DropEncryptRuleStatementTestCase) expected);
         } else if (actual instanceof DropReadwriteSplittingRuleStatement) {
             DropReadwriteSplittingRuleStatementAssert.assertIs(assertContext, (DropReadwriteSplittingRuleStatement) actual, (DropReadwriteSplittingRuleStatementTestCase) expected);
-        } else if (actual instanceof DropShardingBindingTableRulesStatement) {
-            DropShardingBindingTableRulesStatementAssert.assertIs(assertContext, (DropShardingBindingTableRulesStatement) actual, (DropShardingBindingTableRulesStatementTestCase) expected);
+        } else if (actual instanceof DropShardingTableReferenceRuleStatement) {
+            DropShardingTableReferenceRulesStatementAssert.assertIs(assertContext, (DropShardingTableReferenceRuleStatement) actual, (DropShardingTableReferenceRuleStatementTestCase) expected);
         } else if (actual instanceof DropBroadcastTableRuleStatement) {
             DropBroadcastTableRuleStatementAssert.assertIs(assertContext, (DropBroadcastTableRuleStatement) actual, (DropBroadcastTableRuleStatementTestCase) expected);
         } else if (actual instanceof DropShardingTableRuleStatement) {
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/impl/DropShardingBindingTableRulesStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/impl/DropShardingTableReferenceRulesStatementAssert.java
similarity index 63%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/impl/DropShardingBindingTableRulesStatementAssert.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/impl/DropShardingTableReferenceRulesStatementAssert.java
index 2786a3accf4..83a46e5b098 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/impl/DropShardingBindingTableRulesStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/impl/DropShardingTableReferenceRulesStatementAssert.java
@@ -19,30 +19,30 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBindingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableReferenceRuleStatement;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingTableReferenceRuleStatementTestCase;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertNotNull;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 /**
- * Drop sharding binding table rule statement assert.
+ * Drop sharding table reference rule statement assert.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class DropShardingBindingTableRulesStatementAssert {
+public final class DropShardingTableReferenceRulesStatementAssert {
     
     /**
-     * Assert drop sharding binding table rule statement is correct with expected parser result.
+     * Assert drop sharding table reference rule statement is correct with expected parser result.
      *
      * @param assertContext assert context
-     * @param actual actual drop sharding binding table rule statement
-     * @param expected expected drop sharding binding table rule statement test case
+     * @param actual actual drop sharding table reference rule statement
+     * @param expected expected drop sharding table reference rule statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, final DropShardingBindingTableRulesStatement actual, final DropShardingBindingTableRulesStatementTestCase expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, final DropShardingTableReferenceRuleStatement actual, final DropShardingTableReferenceRuleStatementTestCase expected) {
         assertNotNull(assertContext.getText("Actual statement should exist."), actual);
-        assertThat(assertContext.getText("Binding table rule assertion error: "), actual.getBindingGroups(), is(expected.getRules()));
-        assertThat(assertContext.getText("Binding table rule assertion error: "), actual.isIfExists(), is(expected.isIfExists()));
+        assertThat(assertContext.getText("Sharding table reference rule assertion error: "), actual.getTableReferences(), is(expected.getRules()));
+        assertThat(assertContext.getText("Sharding able reference rule assertion error: "), actual.isIfExists(), is(expected.isIfExists()));
     }
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
index 8606fed1d96..f3189da1aa2 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
@@ -337,7 +337,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShadowRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingAuditorStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingAutoTableRuleStatementTestCase;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingTableReferenceRulesStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingTableRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.AddResourceStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.AlterDefaultShadowAlgorithmStatementTestCase;
@@ -351,7 +351,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShadowRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingAuditorStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingAutoTableRuleStatementTestCase;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingTableReferenceRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingTableRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropBroadcastTableRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropDataBaseDiscoveryHeartbeatStatementTestCase;
@@ -365,7 +365,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShadowRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingAlgorithmStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingAuditorStatementTestCase;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingTableReferenceRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingKeyGeneratorStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingTableRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.CountDatabaseDiscoveryRuleStatementTestCase;
@@ -386,7 +386,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShadowTableRulesStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingAlgorithmsStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingAuditorsStatementTestCase;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingBindingTableRulesStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableReferenceRulesStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingKeyGeneratorsStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableNodesStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableRulesStatementTestCase;
@@ -888,8 +888,8 @@ public final class SQLParserTestCases {
     @XmlElement(name = "alter-readwrite-splitting-rule")
     private final List<AlterReadwriteSplittingRuleStatementTestCase> alterReadwriteSplittingRuleTestCases = new LinkedList<>();
     
-    @XmlElement(name = "alter-sharding-binding-table-rules")
-    private final List<AlterShardingBindingTableRulesStatementTestCase> alterShardingBindingTableRulesTestCases = new LinkedList<>();
+    @XmlElement(name = "alter-sharding-table-reference-rule")
+    private final List<AlterShardingTableReferenceRulesStatementTestCase> alterShardingTableReferenceRulesStatementTestCases = new LinkedList<>();
     
     @XmlElement(name = "alter-sharding-auto-table-rule")
     private final List<AlterShardingAutoTableRuleStatementTestCase> alterShardingAutoTableRuleTestCases = new LinkedList<>();
@@ -906,8 +906,8 @@ public final class SQLParserTestCases {
     @XmlElement(name = "create-readwrite-splitting-rule")
     private final List<CreateReadwriteSplittingRuleStatementTestCase> createReadwriteSplittingRuleTestCases = new LinkedList<>();
     
-    @XmlElement(name = "create-sharding-binding-table-rule")
-    private final List<CreateShardingBindingTableRulesStatementTestCase> createShardingBindingTableRulesTestCases = new LinkedList<>();
+    @XmlElement(name = "create-sharding-table-reference-rule")
+    private final List<CreateShardingTableReferenceRuleStatementTestCase> createShardingTableReferenceRuleStatementTestCases = new LinkedList<>();
     
     @XmlElement(name = "create-broadcast-table-rule")
     private final List<CreateBroadcastTableRuleStatementTestCase> createBroadcastTableRuleStatementTestCases = new LinkedList<>();
@@ -936,8 +936,8 @@ public final class SQLParserTestCases {
     @XmlElement(name = "drop-resource")
     private final List<DropResourceStatementTestCase> dropResourceTestCases = new LinkedList<>();
     
-    @XmlElement(name = "drop-sharding-binding-table-rules")
-    private final List<DropShardingBindingTableRulesStatementTestCase> dropShardingBindingTableRulesTestCases = new LinkedList<>();
+    @XmlElement(name = "drop-sharding-table-reference-rule")
+    private final List<DropShardingTableReferenceRuleStatementTestCase> dropShardingTableReferenceRuleStatementTestCases = new LinkedList<>();
     
     @XmlElement(name = "drop-broadcast-table-rule")
     private final List<DropBroadcastTableRuleStatementTestCase> dropBroadcastTableRuleStatementTestCases = new LinkedList<>();
@@ -954,8 +954,8 @@ public final class SQLParserTestCases {
     @XmlElement(name = "show-readwrite-splitting-rules")
     private final List<ShowReadwriteSplittingRulesStatementTestCase> showReadwriteSplittingRulesTestCases = new LinkedList<>();
     
-    @XmlElement(name = "show-sharding-binding-table-rules")
-    private final List<ShowShardingBindingTableRulesStatementTestCase> showShardingBindingTableRulesTestCases = new LinkedList<>();
+    @XmlElement(name = "show-sharding-table-reference-rules")
+    private final List<ShowShardingTableReferenceRulesStatementTestCase> showShardingTableReferenceRulesStatementTestCases = new LinkedList<>();
     
     @XmlElement(name = "show-broadcast-table-rules")
     private final List<ShowBroadcastTableRulesStatementTestCase> showBroadcastTableRulesStatementTestCases = new LinkedList<>();
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/distsql/rdl/ExpectedShardingBindingTableRule.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/distsql/rdl/ExpectedShardingTableReferenceRule.java
similarity index 89%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/distsql/rdl/ExpectedShardingBindingTableRule.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/distsql/rdl/ExpectedShardingTableReferenceRule.java
index 26783b4961a..9a612d543fd 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/distsql/rdl/ExpectedShardingBindingTableRule.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/distsql/rdl/ExpectedShardingTableReferenceRule.java
@@ -24,11 +24,11 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import javax.xml.bind.annotation.XmlAttribute;
 
 /**
- * Expected sharding binding table rule.
+ * Expected sharding table reference rule.
  */
 @Getter
 @Setter
-public final class ExpectedShardingBindingTableRule extends AbstractExpectedIdentifierSQLSegment {
+public final class ExpectedShardingTableReferenceRule extends AbstractExpectedIdentifierSQLSegment {
     
     @XmlAttribute(name = "table-groups")
     private String tableGroups;
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingBindingTableRulesStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingTableReferenceRulesStatementTestCase.java
similarity index 79%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingBindingTableRulesStatementTestCase.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingTableReferenceRulesStatementTestCase.java
index b166d5e2052..d3c14554ea2 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingBindingTableRulesStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterShardingTableReferenceRulesStatementTestCase.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter;
 
 import lombok.Getter;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingBindingTableRule;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingTableReferenceRule;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -26,11 +26,11 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Alter sharding binding table rule statement test case.
+ * Alter sharding table reference rule statement test case.
  */
 @Getter
-public final class AlterShardingBindingTableRulesStatementTestCase extends SQLParserTestCase {
+public final class AlterShardingTableReferenceRulesStatementTestCase extends SQLParserTestCase {
     
     @XmlElement(name = "rule")
-    private final List<ExpectedShardingBindingTableRule> rules = new LinkedList<>();
+    private final List<ExpectedShardingTableReferenceRule> rules = new LinkedList<>();
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/CreateShardingBindingTableRulesStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/CreateShardingTableReferenceRuleStatementTestCase.java
similarity index 80%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/CreateShardingBindingTableRulesStatementTestCase.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/CreateShardingTableReferenceRuleStatementTestCase.java
index aa8d52e311b..80608f14815 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/CreateShardingBindingTableRulesStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/CreateShardingTableReferenceRuleStatementTestCase.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domai
 
 import lombok.Getter;
 import lombok.Setter;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingBindingTableRule;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedShardingTableReferenceRule;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -27,12 +27,12 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Create sharding binding table rule statement test case.
+ * Create sharding table reference rule statement test case.
  */
 @Getter
 @Setter
-public final class CreateShardingBindingTableRulesStatementTestCase extends SQLParserTestCase {
+public final class CreateShardingTableReferenceRuleStatementTestCase extends SQLParserTestCase {
     
     @XmlElement(name = "rule")
-    private final List<ExpectedShardingBindingTableRule> rules = new LinkedList<>();
+    private final List<ExpectedShardingTableReferenceRule> rules = new LinkedList<>();
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/DropShardingBindingTableRulesStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/DropShardingTableReferenceRuleStatementTestCase.java
similarity index 88%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/DropShardingBindingTableRulesStatementTestCase.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/DropShardingTableReferenceRuleStatementTestCase.java
index 55a1b00a971..0f34649abf5 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/DropShardingBindingTableRulesStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/DropShardingTableReferenceRuleStatementTestCase.java
@@ -26,11 +26,11 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Drop sharding binding table rules statement test case.
+ * Drop sharding table reference rule statement test case.
  */
 @Setter
 @Getter
-public final class DropShardingBindingTableRulesStatementTestCase extends DropRuleStatementTestCase {
+public final class DropShardingTableReferenceRuleStatementTestCase extends DropRuleStatementTestCase {
     
     @XmlElement(name = "rule")
     private final List<String> rules = new LinkedList<>();
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowShardingBindingTableRulesStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowShardingTableReferenceRulesStatementTestCase.java
similarity index 86%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowShardingBindingTableRulesStatementTestCase.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowShardingTableReferenceRulesStatementTestCase.java
index 90525ba607e..3f2afb17389 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowShardingBindingTableRulesStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowShardingTableReferenceRulesStatementTestCase.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domai
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.DatabaseContainedTestCase;
 
 /**
- * Show sharding binding table rules statement test case.
+ * Show sharding table reference rules statement test case.
  */
-public final class ShowShardingBindingTableRulesStatementTestCase extends DatabaseContainedTestCase {
+public final class ShowShardingTableReferenceRulesStatementTestCase extends DatabaseContainedTestCase {
 }
diff --git a/test/parser/src/main/resources/case/rdl/alter.xml b/test/parser/src/main/resources/case/rdl/alter.xml
index d443f84e832..c6837c3bfb2 100644
--- a/test/parser/src/main/resources/case/rdl/alter.xml
+++ b/test/parser/src/main/resources/case/rdl/alter.xml
@@ -114,10 +114,10 @@
         </rule>
     </alter-sharding-table-rule>
     
-    <alter-sharding-binding-table-rules sql-case-id="alter-sharding-binding-table-rules">
+    <alter-sharding-table-reference-rule sql-case-id="alter-sharding-table-reference-rule">
         <rule table-groups="t_order,t_order_item" />
         <rule table-groups="t_1,t_2" />
-    </alter-sharding-binding-table-rules>
+    </alter-sharding-table-reference-rule>
     
     <alter-readwrite-splitting-rule sql-case-id="alter-readwrite-splitting-rule">
         <rule name="ms_group_0" auto-aware-resource="group_0" load-balancer="random">
diff --git a/test/parser/src/main/resources/case/rdl/create.xml b/test/parser/src/main/resources/case/rdl/create.xml
index 8c1d7910903..ac9096992aa 100644
--- a/test/parser/src/main/resources/case/rdl/create.xml
+++ b/test/parser/src/main/resources/case/rdl/create.xml
@@ -192,15 +192,15 @@
         </rule>
     </create-sharding-table-rule>
     
-    <create-sharding-binding-table-rule sql-case-id="create-sharding-binding-table-rule">
+    <create-sharding-table-reference-rule sql-case-id="create-sharding-table-reference-rule">
         <rule table-groups="t_order,t_order_item" />
         <rule table-groups="t_1,t_2" />
-    </create-sharding-binding-table-rule>
+    </create-sharding-table-reference-rule>
 
-    <create-sharding-binding-table-rule sql-case-id="create-sharding-binding-table-rule-with-quota">
+    <create-sharding-table-reference-rule sql-case-id="create-sharding-table-reference-rule-with-quota">
         <rule table-groups="t_order,t_order_item" />
         <rule table-groups="t_1,t_2"/>
-    </create-sharding-binding-table-rule>
+    </create-sharding-table-reference-rule>
     
     <create-broadcast-table-rule sql-case-id="create-broadcast-table-rule">
         <table>t_1</table>
diff --git a/test/parser/src/main/resources/case/rdl/drop.xml b/test/parser/src/main/resources/case/rdl/drop.xml
index 09a366a5954..6c08c7ef0d7 100644
--- a/test/parser/src/main/resources/case/rdl/drop.xml
+++ b/test/parser/src/main/resources/case/rdl/drop.xml
@@ -45,15 +45,13 @@
         <table>t_order_item</table>
     </drop-sharding-table-rule>
     
-    <drop-sharding-binding-table-rules sql-case-id="drop-sharding-binding-table-rules" />
-
-    <drop-sharding-binding-table-rules sql-case-id="drop-sharding-binding-table-specified-rules">
+    <drop-sharding-table-reference-rule sql-case-id="drop-sharding-table-reference-rule">
         <rule>t_1,t_2</rule>
-    </drop-sharding-binding-table-rules>
+    </drop-sharding-table-reference-rule>
 
-    <drop-sharding-binding-table-rules sql-case-id="drop-sharding-binding-table-specified-rules-if-exists" if-exists="true">
+    <drop-sharding-table-reference-rule sql-case-id="drop-sharding-table-reference-rule-if-exists" if-exists="true">
         <rule>t_1,t_2</rule>
-    </drop-sharding-binding-table-rules>
+    </drop-sharding-table-reference-rule>
     
     <drop-broadcast-table-rule sql-case-id="drop-broadcast-table-rule" >
         <table>t_1</table>
diff --git a/test/parser/src/main/resources/case/rql/show.xml b/test/parser/src/main/resources/case/rql/show.xml
index 41fe1849ff8..4d610d4230b 100644
--- a/test/parser/src/main/resources/case/rql/show.xml
+++ b/test/parser/src/main/resources/case/rql/show.xml
@@ -17,9 +17,9 @@
   -->
 
 <sql-parser-test-cases>
-    <show-sharding-binding-table-rules sql-case-id="show-sharding-binding-table-rules">
-        <database name="sharding_db" start-index="39" stop-index="49" />
-    </show-sharding-binding-table-rules>
+    <show-sharding-table-reference-rules sql-case-id="show-sharding-table-reference-rules">
+        <database name="sharding_db" start-index="41" stop-index="51" />
+    </show-sharding-table-reference-rules>
     
     <show-broadcast-table-rules sql-case-id="show-broadcast-table-rules">
         <database name="sharding_db" start-index="32" stop-index="42" />
diff --git a/test/parser/src/main/resources/sql/supported/rdl/alter.xml b/test/parser/src/main/resources/sql/supported/rdl/alter.xml
index a9bf300200f..9d1ffc8e2a2 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/alter.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/alter.xml
@@ -28,7 +28,7 @@
     <distsql-case id="alter-resource-url-single-with-properties" value="ALTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))" />
     <distsql-case id="alter-sharding-auto-table-rule" value="ALTER SHARDING TABLE RULE t_order (RESOURCES(ms_group_0,ms_group_1), SHARDING_COLUMN=order_id, TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
     <distsql-case id="alter-sharding-auto-table-rule-with-inline-expression" value="ALTER SHARDING TABLE RULE t_order (RESOURCES('ms_group_${0..1}'), SHARDING_COLUMN=order_id, TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
-    <distsql-case id="alter-sharding-binding-table-rules" value="ALTER SHARDING BINDING TABLE RULES (t_order,t_order_item), (t_1,t_2)" />
+    <distsql-case id="alter-sharding-table-reference-rule" value="ALTER SHARDING TABLE REFERENCE RULE (t_order,t_order_item), (t_1,t_2)" />
     <distsql-case id="alter-readwrite-splitting-rule" value="ALTER READWRITE_SPLITTING RULE ms_group_0 (AUTO_AWARE_RESOURCE=group_0, TYPE(NAME='random',PROPERTIES('read_weight'='2:1'))), ms_group_1 (WRITE_RESOURCE=primary_ds, READ_RESOURCES(replica_ds_0,replica_ds_1),TYPE(NAME='random'))" />
     <distsql-case id="alter-database-discovery-definition-rule" value="ALTER DB_DISCOVERY RULE ha_group_0 (RESOURCES(resource0,resource1), TYPE(NAME='mgr',PROPERTIES('groupName'='92504d5b-6dec')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/5 * * * * ?'))), ha_group_1 (RESOURCES(resource2,resource3), TYPE(NAME='mgr2',PROPERTIES('groupName'='92504d5b-6dec-2')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/6 * * * * ?')))" />
     <distsql-case id="alter-encrypt-rule" value="ALTER ENCRYPT RULE t_encrypt (RESOURCE=ds_1, COLUMNS((NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc'))), (NAME=order_id, CIPHER =order_cipher,TYPE(NAME='MD5'))))" />
diff --git a/test/parser/src/main/resources/sql/supported/rdl/create.xml b/test/parser/src/main/resources/sql/supported/rdl/create.xml
index 3a3ee3f9811..2c3c8253f34 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/create.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/create.xml
@@ -28,7 +28,8 @@
     <distsql-case id="add-resource-url-single-with-properties" value="REGISTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))" />
     <distsql-case id="create-sharding-auto-table-rule" value="CREATE SHARDING TABLE RULE t_order (RESOURCES(ms_group_0,ms_group_1), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
     <distsql-case id="create-sharding-auto-table-rule-with-inline-expression" value="CREATE SHARDING TABLE RULE t_order (RESOURCES('ms_group_${0..1}'), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
-    <distsql-case id="create-sharding-binding-table-rule" value="CREATE SHARDING BINDING TABLE RULES (t_order,t_order_item), (t_1,t_2)" />
+    <distsql-case id="create-sharding-table-reference-rule" value="CREATE SHARDING TABLE REFERENCE RULE (t_order,t_order_item), (t_1,t_2)" />
+    <distsql-case id="create-sharding-table-reference-rule-with-quota" value="CREATE SHARDING TABLE REFERENCE RULE (`t_order`,`t_order_item`), (t_1,t_2)" />
     <distsql-case id="create-broadcast-table-rule" value="CREATE BROADCAST TABLE RULE t_1,t_2" />
     <distsql-case id="create-static-readwrite-splitting-rule" value="CREATE READWRITE_SPLITTING RULE ms_group_0 (WRITE_RESOURCE=primary_ds, READ_RESOURCES(replica_ds_0,replica_ds_1), TYPE(NAME='random')))" />
     <distsql-case id="create-dynamic-readwrite-splitting-rule" value="CREATE READWRITE_SPLITTING RULE ms_group_1(AUTO_AWARE_RESOURCE=group_0, TYPE(NAME='random',PROPERTIES('read_weight'='2:1')))" />
@@ -48,7 +49,6 @@
 
     <distsql-case id="add-resource-with-quota" value="REGISTER STORAGE UNIT `ds_0`(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
     <distsql-case id="create-sharding-auto-table-rule-with-quota" value="CREATE SHARDING TABLE RULE `t_order` (RESOURCES(ms_group_0,ms_group_1), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
-    <distsql-case id="create-sharding-binding-table-rule-with-quota" value="CREATE SHARDING BINDING TABLE RULES (`t_order`,`t_order_item`), (t_1,t_2)" />
     <distsql-case id="create-broadcast-table-rule-with-quota" value="CREATE BROADCAST TABLE RULE `t_1`,`t_2` " />
     <distsql-case id="create-readwrite-splitting-rule-with-quota" value="CREATE READWRITE_SPLITTING RULE `ms_group_0` (WRITE_RESOURCE=primary_ds, READ_RESOURCES(replica_ds_0,replica_ds_1), TYPE(NAME='random')))" />
     <distsql-case id="create-database-discovery-rule-with-quota" value="CREATE DB_DISCOVERY RULE ha_group_0 (RESOURCES(resource0,resource1), TYPE(NAME='mgr',PROPERTIES('groupName'='92504d5b-6dec')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/5 * * * * ?'))), ha_group_1 (RESOURCES(resource2,resource3), TYPE(NAME='mgr2',PROPERTIES('groupName'='92504d5b-6dec-2')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/6 * * * * ?')))" />
diff --git a/test/parser/src/main/resources/sql/supported/rdl/drop.xml b/test/parser/src/main/resources/sql/supported/rdl/drop.xml
index aac7924b5bf..5524cccae23 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/drop.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/drop.xml
@@ -22,9 +22,8 @@
     <distsql-case id="drop-resource-ignore-single-tables" value="UNREGISTER STORAGE UNIT ds_0,ds_1 ignore single tables;" />
     <distsql-case id="drop-sharding-table-rule" value="DROP SHARDING TABLE RULE t_order,t_order_item" />
     <distsql-case id="drop-sharding-table-rule-if-exists" value="DROP SHARDING TABLE RULE IF EXISTS t_order,t_order_item" />
-    <distsql-case id="drop-sharding-binding-table-rules" value="DROP SHARDING BINDING TABLE RULES" />
-    <distsql-case id="drop-sharding-binding-table-specified-rules" value="DROP SHARDING BINDING TABLE RULES (t_1,t_2)" />
-    <distsql-case id="drop-sharding-binding-table-specified-rules-if-exists" value="DROP SHARDING BINDING TABLE RULES IF EXISTS (t_1,t_2)" />
+    <distsql-case id="drop-sharding-table-reference-rule" value="DROP SHARDING TABLE REFERENCE RULE (t_1,t_2)" />
+    <distsql-case id="drop-sharding-table-reference-rule-if-exists" value="DROP SHARDING TABLE REFERENCE RULE IF EXISTS (t_1,t_2)" />
     <distsql-case id="drop-broadcast-table-rule" value="DROP BROADCAST TABLE RULE t_1" />
     <distsql-case id="drop-multiple-broadcast-table-rules" value="DROP BROADCAST TABLE RULE t_1,t_2" />
     <distsql-case id="drop-broadcast-table-rule-if-exists" value="DROP BROADCAST TABLE RULE IF EXISTS t_1" />
diff --git a/test/parser/src/main/resources/sql/supported/rql/show.xml b/test/parser/src/main/resources/sql/supported/rql/show.xml
index 67457a300ff..55a034c5ef7 100644
--- a/test/parser/src/main/resources/sql/supported/rql/show.xml
+++ b/test/parser/src/main/resources/sql/supported/rql/show.xml
@@ -17,7 +17,7 @@
   -->
 
 <sql-cases>
-    <distsql-case id="show-sharding-binding-table-rules" value="SHOW SHARDING BINDING TABLE RULES FROM sharding_db" />
+    <distsql-case id="show-sharding-table-reference-rules" value="SHOW SHARDING TABLE REFERENCE RULES FROM sharding_db" />
     <distsql-case id="show-broadcast-table-rules" value="SHOW BROADCAST TABLE RULES FROM sharding_db" />
     <distsql-case id="show-sharding-table-rules" value="SHOW SHARDING TABLE RULES FROM databaseName" />
     <distsql-case id="show-sharding-table-rule" value="SHOW SHARDING TABLE RULE t_order" />