openGauss——建表语法及示例


风晓
风晓 2024-01-15 09:31:04 53477 赞同 0 反对 0
分类: 资源 标签: 国产数据库
openGauss——建表语法及示例

一、语法格式
创建表:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE [ [ GLOBAL | LOCAL ] [ TEMPORARY | TEMP ] | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name({ column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ]| table_constraint| LIKE source_table [ like_option [...] ] }[, ... ])[ WITH ( {storage_parameter = value} [, ... ] ) ][ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ][ COMPRESS | NOCOMPRESS ][ TABLESPACE tablespace_name ];


其中列约束column_constraint为:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
[ CONSTRAINT constraint_name ]{ NOT NULL |NULL |CHECK ( expression ) |DEFAULT default_expr |UNIQUE index_parameters |( = column_encryption_key, = encryption_type_value ) |PRIMARY KEY index_parameters |REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ][ ON DELETE action ] [ ON UPDATE action ] }[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]


其中列的压缩可选项compress_mode为:

  •  
{ DELTA | PREFIX | DICTIONARY | NUMSTR | NOCOMPRESS }


其中表约束table_constraint为:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
[ CONSTRAINT constraint_name ]{ CHECK ( expression ) |UNIQUE ( column_name [, ... ] ) index_parameters |PRIMARY KEY ( column_name [, ... ] ) index_parameters |FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ (refcolumn [, ... ] ) ][ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] |PARTIAL CLUSTER KEY ( column_name [, ... ] ) }[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]


其中like选项like_option为:

  •  
{ INCLUDING | EXCLUDING } { DEFAULTS | GENERATED | CONSTRAINTS | INDEXES | STORAGE | COMMENTS | PARTITION | RELOPTIONS | ALL }


其中索引参数index_parameters为:

  •  
  •  
[ WITH ( {storage_parameter = value} [, ... ] ) ][ USING INDEX TABLESPACE tablespace_name ]

 

二、示例

--创建简单的表。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t1(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t2(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60),    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));

--创建表,并指定W_STATE字段的缺省值为GA。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t3(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)           DEFAULT 'GA',    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));

--创建表,并在事务结束时检查W_WAREHOUSE_NAME字段是否有重复。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t4(    W_WAREHOUSE_SK            INTEGER                NOT NULL,    W_WAREHOUSE_ID            CHAR(16)               NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)   UNIQUE DEFERRABLE,    W_WAREHOUSE_SQ_FT         INTEGER                        ,    W_STREET_NUMBER           CHAR(10)                       ,    W_STREET_NAME             VARCHAR(60)                    ,    W_STREET_TYPE             CHAR(15)                       ,    W_SUITE_NUMBER            CHAR(10)                       ,    W_CITY                    VARCHAR(60)                    ,    W_COUNTY                  VARCHAR(30)                    ,    W_STATE                   CHAR(2)                        ,    W_ZIP                     CHAR(10)                       ,    W_COUNTRY                 VARCHAR(20)                    ,    W_GMT_OFFSET              DECIMAL(5,2) );

--创建一个带有70%填充因子的表。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t5(    W_WAREHOUSE_SK            INTEGER                NOT NULL,    W_WAREHOUSE_ID            CHAR(16)               NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                    ,    W_WAREHOUSE_SQ_FT         INTEGER                        ,    W_STREET_NUMBER           CHAR(10)                       ,    W_STREET_NAME             VARCHAR(60)                    ,    W_STREET_TYPE             CHAR(15)                       ,    W_SUITE_NUMBER            CHAR(10)                       ,    W_CITY                    VARCHAR(60)                    ,    W_COUNTY                  VARCHAR(30)                    ,    W_STATE                   CHAR(2)                        ,    W_ZIP                     CHAR(10)                       ,    W_COUNTRY                 VARCHAR(20)                    ,    W_GMT_OFFSET              DECIMAL(5,2),    UNIQUE(W_WAREHOUSE_NAME) WITH(fillfactor=70));

--或者用下面的语法。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t6(    W_WAREHOUSE_SK            INTEGER                NOT NULL,    W_WAREHOUSE_ID            CHAR(16)               NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)              UNIQUE,    W_WAREHOUSE_SQ_FT         INTEGER                        ,    W_STREET_NUMBER           CHAR(10)                       ,    W_STREET_NAME             VARCHAR(60)                    ,    W_STREET_TYPE             CHAR(15)                       ,    W_SUITE_NUMBER            CHAR(10)                       ,    W_CITY                    VARCHAR(60)                    ,    W_COUNTY                  VARCHAR(30)                    ,    W_STATE                   CHAR(2)                        ,    W_ZIP                     CHAR(10)                       ,    W_COUNTRY                 VARCHAR(20)                    ,    W_GMT_OFFSET              DECIMAL(5,2)) WITH(fillfactor=70);

--创建表,并指定该表数据不写入预写日志。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE UNLOGGED TABLE warehouse_t7(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));

--创建表临时表。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TEMPORARY TABLE warehouse_t24(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));

--创建本地临时表,并指定提交事务时删除该临时表数据。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TEMPORARY TABLE warehouse_t25(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2)) ON COMMIT DELETE ROWS;

--创建全局临时表,并指定会话结束时删除该临时表数据。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE GLOBAL TEMPORARY TABLE gtt1(    ID                        INTEGER               NOT NULL,    NAME                      CHAR(16)              NOT NULL,    ADDRESS                   VARCHAR(50)                   ,    POSTCODE                  CHAR(6)) ON COMMIT PRESERVE ROWS;

--创建表时,不希望因为表已存在而报错。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE IF NOT EXISTS warehouse_t8(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));

--创建普通表空间。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLESPACE DS_TABLESPACE1 RELATIVE LOCATION 'tablespace/tablespace_1';--创建表时,指定表空间。CREATE TABLE warehouse_t9(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2)) TABLESPACE DS_TABLESPACE1;

--创建表时,单独指定W_WAREHOUSE_NAME的索引表空间。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t10(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)           UNIQUE USING INDEX TABLESPACE DS_TABLESPACE1,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));

--创建一个有主键约束的表。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t11(    W_WAREHOUSE_SK            INTEGER            PRIMARY KEY,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));

---或是用下面的语法,效果完全一样。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t12(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2),    PRIMARY KEY(W_WAREHOUSE_SK));

--或是用下面的语法,指定约束的名称。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t13(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2),    CONSTRAINT W_CSTR_KEY1 PRIMARY KEY(W_WAREHOUSE_SK));

--创建一个有复合主键约束的表。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t14(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2),    CONSTRAINT W_CSTR_KEY2 PRIMARY KEY(W_WAREHOUSE_SK, W_WAREHOUSE_ID));

--创建列存表。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t15(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2)) WITH (ORIENTATION = COLUMN);

--创建局部聚簇存储的列存表。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t16(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2),    PARTIAL CLUSTER KEY(W_WAREHOUSE_SK, W_WAREHOUSE_ID)) WITH (ORIENTATION = COLUMN);

--定义一个带压缩的列存表。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t17(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2)) WITH (ORIENTATION = COLUMN, COMPRESSION=HIGH);

 

--定义一个检查列约束。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t19(    W_WAREHOUSE_SK            INTEGER               PRIMARY KEY CHECK (W_WAREHOUSE_SK > 0),    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)           CHECK (W_WAREHOUSE_NAME IS NOT NULL),    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE warehouse_t20(    W_WAREHOUSE_SK            INTEGER               PRIMARY KEY,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)           CHECK (W_WAREHOUSE_NAME IS NOT NULL),    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2),    CONSTRAINT W_CONSTR_KEY2 CHECK(W_WAREHOUSE_SK > 0 AND W_WAREHOUSE_NAME IS NOT NULL) );

--创建一个有外键约束的表。

  •  
  •  
  •  
  •  
  •  
CREATE TABLE tpcds.city_t23(    W_CITY            VARCHAR(60)                PRIMARY KEY,    W_ADDRESS       TEXT                     );
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE tpcds.warehouse_t23(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)           REFERENCES tpcds.city_t23(W_CITY),    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2));

--或是用下面的语法,效果完全一样。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE tpcds.warehouse_t23(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2)                  ,    FOREIGN KEY(W_CITY) REFERENCES tpcds.city_t23(W_CITY));

--或是用下面的语法,指定约束的名称。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
CREATE TABLE tpcds.warehouse_t23(    W_WAREHOUSE_SK            INTEGER               NOT NULL,    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,    W_WAREHOUSE_NAME          VARCHAR(20)                   ,    W_WAREHOUSE_SQ_FT         INTEGER                       ,    W_STREET_NUMBER           CHAR(10)                      ,    W_STREET_NAME             VARCHAR(60)                   ,    W_STREET_TYPE             CHAR(15)                      ,    W_SUITE_NUMBER            CHAR(10)                      ,    W_CITY                    VARCHAR(60)                   ,    W_COUNTY                  VARCHAR(30)                   ,    W_STATE                   CHAR(2)                       ,    W_ZIP                     CHAR(10)                      ,    W_COUNTRY                 VARCHAR(20)                   ,    W_GMT_OFFSET              DECIMAL(5,2)                  ,    CONSTRAINT W_FORE_KEY1 FOREIGN KEY(W_CITY) REFERENCES tpcds.city_t23(W_CITY));

--向warehouse_t19表中增加一个varchar列。

  •  
ALTER TABLE warehouse_t19 ADD W_GOODS_CATEGORY varchar(30);

--给warehouse_t19表增加一个检查约束。

  •  
ALTER TABLE warehouse_t19 ADD CONSTRAINT W_CONSTR_KEY4 CHECK (W_STATE IS NOT NULL);

--在一个操作中改变两个现存字段的类型。

  •  
  •  
  •  
ALTER TABLE warehouse_t19    ALTER COLUMN W_GOODS_CATEGORY TYPE varchar(80),    ALTER COLUMN W_STREET_NAME TYPE varchar(100);

--此语句与上面语句等效。

  •  
ALTER TABLE warehouse_t19 MODIFY (W_GOODS_CATEGORY varchar(30), W_STREET_NAME varchar(60));

--给一个已存在字段添加非空约束。

  •  
ALTER TABLE warehouse_t19 ALTER COLUMN W_GOODS_CATEGORY SET NOT NULL;

--移除已存在字段的非空约束。

  •  
ALTER TABLE warehouse_t19 ALTER COLUMN W_GOODS_CATEGORY DROP NOT NULL;

--如果列存表中还未指定局部聚簇,向在一个列存表中添加局部聚簇列。

  •  
ALTER TABLE warehouse_t17 ADD PARTIAL CLUSTER KEY(W_WAREHOUSE_SK);

--查看约束的名称,并删除一个列存表中的局部聚簇列。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
\d+ warehouse_t17                              Table "warehouse_t17"      Column       |         Type          | Modifiers | Storage  | Stats target | Description -------------------+-----------------------+-----------+----------+--------------+------------- w_warehouse_sk    | integer               | not null  | plain    |              |  w_warehouse_id    | character(16)         | not null  | extended |              |  w_warehouse_name  | character varying(20) |           | extended |              |  w_warehouse_sq_ft | integer               |           | plain    |              |  w_street_number   | character(10)         |           | extended |              |  w_street_name     | character varying(60) |           | extended |              |  w_street_type     | character(15)         |           | extended |              |  w_suite_number    | character(10)         |           | extended |              |  w_city            | character varying(60) |           | extended |              |  w_county          | character varying(30) |           | extended |              |  w_state           | character(2)          |           | extended |              |  w_zip             | character(10)         |           | extended |              |  w_country         | character varying(20) |           | extended |              |  w_gmt_offset      | numeric(5,2)          |           | main     |              | Partial Cluster :    "warehouse_t17_cluster" PARTIAL CLUSTER KEY (w_warehouse_sk)Has OIDs: noLocation Nodes: ALL DATANODESOptions: compression=no, version=0.12ALTER TABLE warehouse_t17 DROP CONSTRAINT warehouse_t17_cluster;

--将表移动到另一个表空间。

  •  
ALTER TABLE warehouse_t19 SET TABLESPACE PG_DEFAULT; 

--创建模式joe。

  •  
CREATE SCHEMA joe;

--将表移动到另一个模式中。

  •  
ALTER TABLE warehouse_t19 SET SCHEMA joe;

--重命名已存在的表。

  •  
ALTER TABLE joe.warehouse_t19 RENAME TO warehouse_t23;

--从warehouse_t23表中删除一个字段。

  •  
ALTER TABLE joe.warehouse_t23 DROP COLUMN W_STREET_NAME;

--删除表空间、模式joe和模式表warehouse。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
DROP TABLE warehouse_t1;DROP TABLE warehouse_t2;DROP TABLE warehouse_t3;DROP TABLE warehouse_t4;DROP TABLE warehouse_t5;DROP TABLE warehouse_t6;DROP TABLE warehouse_t7;DROP TABLE warehouse_t8;DROP TABLE warehouse_t9;DROP TABLE warehouse_t10;DROP TABLE warehouse_t11;DROP TABLE warehouse_t12;DROP TABLE warehouse_t13;DROP TABLE warehouse_t14;DROP TABLE warehouse_t15;DROP TABLE warehouse_t16;DROP TABLE warehouse_t17;DROP TABLE warehouse_t18;DROP TABLE warehouse_t20;DROP TABLE warehouse_t21;DROP TABLE warehouse_t22;DROP TABLE joe.warehouse_t23;DROP TABLE warehouse_t24;DROP TABLE warehouse_t25;DROP TABLESPACE DS_TABLESPACE1;DROP SCHEMA IF EXISTS joe CASCADE;

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
桌面通用(全架构)【在双系统环境下隐藏Windows启动菜单】操作指南  1554
银河麒麟桌面操作系统V10(SP1)2203-如何进行远程桌面互访?  1533
银河麒麟桌面操作系统【保留数据盘重装系统】  1487
麒麟系统各种原因开不了机解决(合集)  1212
统信桌面专业版【手动分区安装UOS系统】介绍  634
银河麒麟桌面操作系统 V10-SP1 双系统安装 efi 分区问题  596
统信系统安装(合集)  563
桌面通用(全架构)【rpm包转成deb包】操作方法  488
统启动异常几种类型(initramfs 模式)  466
最近下载排行榜
桌面通用(全架构)【在双系统环境下隐藏Windows启动菜单】操作指南 0
银河麒麟桌面操作系统V10(SP1)2203-如何进行远程桌面互访? 0
银河麒麟桌面操作系统【保留数据盘重装系统】 0
麒麟系统各种原因开不了机解决(合集) 0
统信桌面专业版【手动分区安装UOS系统】介绍 0
银河麒麟桌面操作系统 V10-SP1 双系统安装 efi 分区问题 0
统信系统安装(合集) 0
桌面通用(全架构)【rpm包转成deb包】操作方法 0
统启动异常几种类型(initramfs 模式) 0
作者收入月榜
1

prtyaa 收益393.72元

2

zlj141319 收益220.97元

3

1843880570 收益214.2元

4

IT-feng 收益213.03元

5

风晓 收益208.24元

6

777 收益172.82元

7

Fhawking 收益106.6元

8

信创来了 收益105.89元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!