title: “DESCRIBE 语句” weight: 8 type: docs aliases:
DESCRIBE 语句用于描述表或视图的 schema。
{{< tabs “describe” >}} {{< tab “Java” >}} 可以使用 TableEnvironment
的 executeSql()
方法执行 DESCRIBE 语句。如果 DESCRIBE 操作执行成功,executeSql()
方法会返回给定表的 schema,否则会抛出异常。
以下示例展示了如何在 TableEnvironment
中执行一条 DESCRIBE 语句。 {{< /tab >}} {{< tab “Scala” >}} 可以使用 TableEnvironment
的 executeSql()
方法执行 DESCRIBE 语句。如果 DESCRIBE 操作执行成功,executeSql()
方法会返回给定表的 schema,否则会抛出异常。
以下示例展示了如何在 TableEnvironment
中执行一条 DESCRIBE 语句。 {{< /tab >}} {{< tab “Python” >}} 可以使用 TableEnvironment
的 execute_sql()
方法执行 DESCRIBE 语句。如果 DESCRIBE 操作执行成功,execute_sql()
方法会返回给定表的 schema,否则会抛出异常。
以下示例展示了如何在 TableEnvironment
中执行一条 DESCRIBE 语句。 {{< /tab >}} {{< tab “SQL CLI” >}}
DESCRIBE 语句可以在 [SQL CLI]({{< ref “docs/dev/table/sqlClient” >}}) 中执行。
以下示例展示了如何在 SQL CLI 中执行一条 DESCRIBE 语句。
{{< /tab >}} {{< /tabs >}}
{{< tabs “a5de1760-e363-4b8d-9d6f-0bacb35b9dcf” >}} {{< tab “Java” >}}
TableEnvironment tableEnv = TableEnvironment.create(...); // 注册名为 “Orders” 的表 tableEnv.executeSql( "CREATE TABLE Orders (" + " `user` BIGINT NOT NULl," + " product VARCHAR(32)," + " amount INT," + " ts TIMESTAMP(3)," + " ptime AS PROCTIME()," + " PRIMARY KEY(`user`) NOT ENFORCED," + " WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS" + ") with (...)"); // 打印 schema tableEnv.executeSql("DESCRIBE Orders").print(); // 打印 schema tableEnv.executeSql("DESC Orders").print();
{{< /tab >}} {{< tab “Scala” >}}
val tableEnv = TableEnvironment.create(...) // 注册名为 “Orders” 的表 tableEnv.executeSql( "CREATE TABLE Orders (" + " `user` BIGINT NOT NULl," + " product VARCHAR(32)," + " amount INT," + " ts TIMESTAMP(3)," + " ptime AS PROCTIME()," + " PRIMARY KEY(`user`) NOT ENFORCED," + " WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS" + ") with (...)") // 打印 schema tableEnv.executeSql("DESCRIBE Orders").print() // 打印 schema tableEnv.executeSql("DESC Orders").print()
{{< /tab >}} {{< tab “Python” >}}
table_env = TableEnvironment.create(...) # 注册名为 “Orders” 的表 table_env.execute_sql( \ "CREATE TABLE Orders (" " `user` BIGINT NOT NULl," " product VARCHAR(32)," " amount INT," " ts TIMESTAMP(3)," " ptime AS PROCTIME()," " PRIMARY KEY(`user`) NOT ENFORCED," " WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS" ") with (...)"); # 打印 schema table_env.execute_sql("DESCRIBE Orders").print() # 打印 schema table_env.execute_sql("DESC Orders").print()
{{< /tab >}} {{< tab “SQL CLI” >}}
Flink SQL> CREATE TABLE Orders ( > `user` BIGINT NOT NULl, > product VARCHAR(32), > amount INT, > ts TIMESTAMP(3), > ptime AS PROCTIME(), > PRIMARY KEY(`user`) NOT ENFORCED, > WATERMARK FOR ts AS ts - INTERVAL '1' SECONDS > ) with ( > ... > ); [INFO] Table has been created. Flink SQL> DESCRIBE Orders; Flink SQL> DESC Orders;
{{< /tab >}} {{< /tabs >}}
上述示例的结果是: {{< tabs “c20da697-b9fc-434b-b7e5-3b51510eee5b” >}} {{< tab “Java” >}}
+---------+----------------------------------+-------+-----------+-----------------+----------------------------+ | name | type | null | key | computed column | watermark | +---------+----------------------------------+-------+-----------+-----------------+----------------------------+ | user | BIGINT | false | PRI(user) | | | | product | VARCHAR(32) | true | | | | | amount | INT | true | | | | | ts | TIMESTAMP(3) *ROWTIME* | true | | | `ts` - INTERVAL '1' SECOND | | ptime | TIMESTAMP(3) NOT NULL *PROCTIME* | false | | PROCTIME() | | +---------+----------------------------------+-------+-----------+-----------------+----------------------------+ 5 rows in set
{{< /tab >}} {{< tab “Scala” >}}
+---------+----------------------------------+-------+-----------+-----------------+----------------------------+ | name | type | null | key | computed column | watermark | +---------+----------------------------------+-------+-----------+-----------------+----------------------------+ | user | BIGINT | false | PRI(user) | | | | product | VARCHAR(32) | true | | | | | amount | INT | true | | | | | ts | TIMESTAMP(3) *ROWTIME* | true | | | `ts` - INTERVAL '1' SECOND | | ptime | TIMESTAMP(3) NOT NULL *PROCTIME* | false | | PROCTIME() | | +---------+----------------------------------+-------+-----------+-----------------+----------------------------+ 5 rows in set
{{< /tab >}} {{< tab “Python” >}}
+---------+----------------------------------+-------+-----------+-----------------+----------------------------+ | name | type | null | key | computed column | watermark | +---------+----------------------------------+-------+-----------+-----------------+----------------------------+ | user | BIGINT | false | PRI(user) | | | | product | VARCHAR(32) | true | | | | | amount | INT | true | | | | | ts | TIMESTAMP(3) *ROWTIME* | true | | | `ts` - INTERVAL '1' SECOND | | ptime | TIMESTAMP(3) NOT NULL *PROCTIME* | false | | PROCTIME() | | +---------+----------------------------------+-------+-----------+-----------------+----------------------------+ 5 rows in set
{{< /tab >}} {{< tab “SQL CLI” >}}
root |-- user: BIGINT NOT NULL |-- product: VARCHAR(32) |-- amount: INT |-- ts: TIMESTAMP(3) *ROWTIME* |-- ptime: TIMESTAMP(3) NOT NULL *PROCTIME* AS PROCTIME() |-- WATERMARK FOR ts AS `ts` - INTERVAL '1' SECOND |-- CONSTRAINT PK_3599338 PRIMARY KEY (user)
{{< /tab >}} {{< /tabs >}}
{{< top >}}
{ DESCRIBE | DESC } [catalog_name.][db_name.]table_name