SHOW COLUMNS

功能描述

查看指定表的列元信息。

注意事项

  • 临时表需要指定临时表对应的schema查询。
  • 复合主键索引所有参与列都会在Key字段中显示为PRI。
  • 复合唯一索引所有参与列都会在Key字段中显示为UNI。
  • 如果一个列参与了多个索引的创建,以该列第一个创建的索引为准显示Key字段。
  • 生成列会在Default中显示生成式。
  • 表名中含schemaname/dbname并且同时指定dbname时,仅匹配指定的dbname。
  • 结果仅显示当前查询用户具有SELECT权限的列信息。

语法格式

  1. SHOW [FULL] {COLUMNS | FIELDS}
  2. {FROM | IN} tbl_name
  3. [{FROM | IN} db_name]
  4. [LIKE 'pattern' | WHERE expr]

参数说明

  • {COLUMNS | FIELDS}

    使用COLUMNS和FIELDS效果是等价的。

  • tbl_name

    表名,可指定表名。也可以指定schema_name.table_name。

  • db_name

    库名(或schema),当tbl_name中也指定库名(或schema名)时,优先选择本选项。

  • LIKE ‘pattern’

    pattern匹配显示结果的Field列。

示例

  1. --创建简单表
  2. openGauss=# CREATE SCHEMA tst_schema1;
  3. openGauss=# SET SEARCH_PATH TO tst_schema1;
  4. openGauss=# CREATE TABLE tst_t1
  5. openGauss-# (
  6. openGauss(# id int primary key,
  7. openGauss(# name varchar(20) NOT NULL,
  8. openGauss(# addr text COLLATE "de_DE",
  9. openGauss(# phone text COLLATE "es_ES",
  10. openGauss(# addr_code text
  11. openGauss(# );
  12. openGauss=# COMMENT ON COLUMN tst_t1.id IS 'identity';
  13. --查看表的列元信息
  14. openGauss=# SHOW COLUMNS FROM tst_t1;
  15. Field | Type | Null | Key | Default | Extra
  16. -----------+-----------------------+------+-----+---------+-------
  17. id | integer | NO | PRI | NULL |
  18. name | character varying(20) | NO | | NULL |
  19. addr | text | YES | | NULL |
  20. phone | text | YES | | NULL |
  21. addr_code | text | YES | | NULL |
  22. openGauss=# show FULL COLUMNS FROM tst_t1;
  23. Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment
  24. -----------+-----------------------+-----------+------+-----+---------+-------+-----------------------------------------+----------
  25. id | integer | NULL | NO | PRI | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT | identity
  26. name | character varying(20) | NULL | NO | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  27. addr | text | de_DE | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  28. phone | text | es_ES | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  29. addr_code | text | NULL | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  30. openGauss=# show FULL COLUMNS FROM tst_schema1.tst_t1;
  31. Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment
  32. -----------+-----------------------+-----------+------+-----+---------+-------+-----------------------------------------+----------
  33. id | integer | NULL | NO | PRI | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT | identity
  34. name | character varying(20) | NULL | NO | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  35. addr | text | de_DE | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  36. phone | text | es_ES | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  37. addr_code | text | NULL | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  38. --模糊匹配、过滤
  39. openGauss=# show full columns from tst_t1 like '%addr%';
  40. Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment
  41. -----------+------+-----------+------+-----+---------+-------+-----------------------------------------+---------
  42. addr | text | de_DE | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  43. addr_code | text | NULL | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  44. openGauss=# show full columns from tst_t1 where Type='text';
  45. Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment
  46. -----------+------+-----------+------+-----+---------+-------+-----------------------------------------+---------
  47. addr | text | de_DE | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  48. phone | text | es_ES | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  49. addr_code | text | NULL | YES | | NULL | | UPDATE,SELECT,REFERENCES,INSERT,COMMENT |
  50. --显示权限过滤
  51. openGauss=# CREATE USER tst_u1 PASSWORD 'tst_u1@123';
  52. openGauss=# SET ROLE tst_u1 PASSWORD 'tst_u1@123';
  53. opengauss=> SET SEARCH_PATH TO tst_schema1;
  54. openGauss=> show full columns from tst_t1;
  55. Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment
  56. -------+------+-----------+------+-----+---------+-------+------------+---------
  57. (0 rows)
  58. openGauss=# RESET ROLE;
  59. opengauss=# GRANT SELECT (addr, phone) on tst_t1 to tst_u1;
  60. openGauss=# SET ROLE tst_u1 PASSWORD 'tst_u1@123';
  61. opengauss=> SET SEARCH_PATH TO tst_schema1;
  62. openGauss=> show full columns from tst_t1;
  63. Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment
  64. -----------+------+-----------+------+-----+---------+-------+------------------+---------
  65. addr | text | de_DE | YES | | NULL | | SELECT |
  66. phone | text | es_ES | YES | | NULL | | SELECT |