

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CREATE DATABASE
<a name="r_CREATE_DATABASE"></a>

建立新的資料庫。

若要建立資料庫，您必須是超級使用者或具有 CREATEDB 權限。若要建立與零 ETL 整合相關聯的資料庫，您必須是超級使用者或是同時具有 CREATEDB 和 CREATEUSER 權限。

您無法在交易區塊 (BEGIN ... END) 中執行 CREATE DATABASE。如需交易的相關資訊，請參閱 [Amazon Redshift 中的隔離層級](c_serial_isolation.md)。

## 語法
<a name="r_CREATE_DATABASE-synopsis"></a>

```
CREATE DATABASE database_name 
[ { [ 
      FROM INTEGRATION '<integration_id>'[ DATABASE '<source_database>' ]
      [ SET ]
      [ ACCEPTINVCHARS [=] { TRUE | FALSE }]
      [ QUERY_ALL_STATES [=] { TRUE | FALSE }] 
      [ REFRESH_INTERVAL <interval> ] 
      [ TRUNCATECOLUMNS [=] { TRUE | FALSE } ]
      [ HISTORY_MODE [=] {TRUE | FALSE} ]
    ]
    [ WITH ]
    [ OWNER [=] db_owner ]
    [ CONNECTION LIMIT { limit | UNLIMITED } ]
    [ COLLATE { CASE_SENSITIVE | CS | CASE_INSENSITIVE | CI } ]
    [ ISOLATION LEVEL { SNAPSHOT | SERIALIZABLE } ]
  }
  | { FROM { { ARN '<arn>' } { WITH DATA CATALOG SCHEMA '<schema>' | WITH NO DATA CATALOG SCHEMA } } }
  | { IAM_ROLE  {default | 'SESSION' | 'arn:aws:iam::<account-id>:role/<role-name>' } }
  | { [ WITH PERMISSIONS ] FROM DATASHARE datashare_name OF [ ACCOUNT account_id ] NAMESPACE namespace_guid }
]
```

## Parameters
<a name="r_CREATE_DATABASE-parameters"></a>

 *database\_name*   
新資料庫的名稱。如需有效名稱的相關資訊，請參閱 [名稱與識別碼](r_names.md)。

FROM INTEGRATION '<integration\_id>' [ DATABASE '<source\_database>' ]   
指定是否使用零 ETL 整合識別碼建立資料庫。您可以從 SVV\_INTEGRATION 系統檢視擷取 `integration_id`。對於 Aurora PostgreSQL 零 ETL 整合，您還需要指定 `source_database` 名稱，此名稱也可以從 SVV\_INTEGRATION 擷取。  
如需範例，請參閱 [建立資料庫以接收零 ETL 整合的結果](#r_CREATE_DATABASE-integration)。如需使用零 ETL 整合建立資料庫的詳細資訊，請參閱《Amazon Redshift 管理指南》**中的[在 Amazon Redshift 中建立目的地資料庫](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html)。

SET  
選用的關鍵字。

ACCEPTINVCHARS [=] { TRUE \| FALSE }  
ACCEPTINVCHARS 子句會設定零 ETL 整合資料表是否在偵測到 VARCHAR 資料類型的無效字元時，仍繼續擷取。遇到無效字元時，無效字元會取代為預設的 `?` 字元。

QUERY\_ALL\_STATES [=] { TRUE \| FALSE }  
QUERY\_ALL\_STATES 子句會設定零 ETL 整合資料表是否在所有狀態 (`Synced`、`Failed`、`ResyncRequired` 和 `ResyncInitiated`) 下均可供查詢。根據預設，零 ETL 整合資料表只有在 `Synced` 狀態下可供查詢。

REFRESH\_INTERVAL <interval>  
REFRESH\_INTERVAL 子句會設定將資料從零 ETL 來源重新整理至目標資料庫的大約時間間隔 (以秒為單位)。針對來源類型為 Aurora MySQL、Aurora PostgreSQL 或 RDS for MySQL 的零 ETL 整合，值可以設定為 0-432,000 秒 (5 天)。針對 Amazon DynamoDB 零 ETL 整合，值可以設定為 900-432,000 秒 (15 分鐘至 5 天)。針對來源類型為 Aurora MySQL、Aurora PostgreSQL 或 RDS for MySQL 的零 ETL 整合，預設 `interval` 為零 (0) 秒。對於 Amazon DynamoDB 零 ETL 整合，預設 `interval` 為 900 秒 (15 分鐘)。

TRUNCATECOLUMNS [=] { TRUE \| FALSE }  
TRUNCATECOLUMNS 子句會設定，當 VARCHAR 欄或 SUPER 欄屬性的值超出限制時，零 ETL 整合資料表是否繼續擷取。當 `TRUE` 時，值會截斷至符合欄長度，而溢出 JSON 屬性的值則會截斷至符合 SUPER 欄長度。

HISTORY\_MODE [=] {TRUE \| FALSE}  
此子句指定 Amazon Redshift 是否會為指定資料庫中的所有新資料表設定歷史記錄模式。此選項僅適用於針對零 ETL 整合建立的資料庫。  
HISTORY\_MODE 子句可以設定為 `TRUE` 或 `FALSE`。預設值為 `FALSE`。如需有關 HISTORY\_MODE 的資訊，請參閱《Amazon Redshift 管理指南》**中的[歷史記錄模式](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-history-mode.html)。

WITH  
選用的關鍵字。

OWNER [=] db\_owner  
指定資料庫擁有者的使用者名稱。

CONNECTION LIMIT { *limit* \| UNLIMITED }   
允許使用者同時開啟的資料庫連線數目上限。超級使用者不受此限制規範。使用 UNLIMITED 關鍵字可允許同時連線的最大數目。另外也可能限制每位使用者的連線數目。如需詳細資訊，請參閱[CREATE USER](r_CREATE_USER.md)。預設值為 UNLIMITED。若要檢視目前連線數目，請查詢 [STV\_SESSIONS](r_STV_SESSIONS.md) 系統畫面。  
如果同時套用使用者和資料庫連線數目限制，則必須在使用者嘗試連線時，在不超過這兩項限制的情況下提供一個未使用的連線位置。

COLLATE { CASE\_SENSITIVE \| CS \| CASE\_INSENSITIVE \| CI }  
指定字串搜尋或比較區分大小寫或不區分大小寫的子句。預設為區分大小寫。  
若您從資料共用建立資料庫，則不支援 COLLATE。  
CASE\_SENSITIVE 和 CS 可互換，並產生相同的結果。同樣地，CASE\_INSENSITIVE 和 CI 可互換，並產生相同的結果。

ISOLATION LEVEL { SNAPSHOT \| SERIALIZABLE }  
指定對資料庫執行查詢時所用隔離層級的子句。如需隔離層級的詳細資訊，請參閱 [Amazon Redshift 中的隔離層級](c_serial_isolation.md)。  
+ SNAPSHOT 隔離 - 提供隔離層級，防止更新和刪除衝突。這是佈建叢集或無伺服器命名空間中所建立資料庫的預設值。
+ SERIALIZABLE 隔離 - 為並行交易提供完整的序列化。

FROM ARN '<ARN>'  
用來建立 AWS Glue 資料庫的資料庫 ARN。

{ WITH DATA CATALOG SCHEMA '<schema>' \| WITH NO DATA CATALOG SCHEMA }  
只有當您的 CREATE DATABASE 命令也使用 FROM ARN 參數時，此參數才適用。
指定是否使用結構描述建立資料庫，以協助存取 AWS Glue Data Catalog中的物件。

IAM\_ROLE { default \| 'SESSION' \| 'arn:aws:iam::{{<AWS 帳戶-id>}}:role/{{<role-name>}}' }  
只有當您的 CREATE DATABASE 命令也使用 FROM ARN 參數時，此參數才適用。
如果您在執行 CREATE DATABASE 命令時指定與叢集關聯的 IAM 角色，當您在資料庫上執行查詢時，Amazon Redshift 將會使用該角色的登入資料。  
指定 `default` 關鍵字表示使用設定為預設值且與叢集相關聯的 IAM 角色。  
如果您使用聯合身分連線到 Amazon Redshift 叢集，並從使用此命令建立的外部結構描述存取資料表，請使用 `'SESSION'`。如需使用聯合身分的範例，請參閱[使用聯合身分管理 Amazon Redshift 對本機資源和 Amazon Redshift Spectrum 外部資料表的存取](https://docs.aws.amazon.com/redshift/latest/mgmt/authorization-fas-spectrum.html)，其中會說明如何設定聯合身分。  
對叢集進行身分驗證和授權時所使用的 IAM 角色使用 Amazon Resource Name (ARN)。IAM 角色最少須具有在所要存取的 Amazon S3 儲存貯體上執行 LIST 操作，以及在儲存貯體包含的 Amazon S3 物件上執行 GET 操作的許可。若要進一步了解如何在使用 建立資料庫 AWS Glue Data Catalog 進行資料共用時使用 IAM\_ROLE，請參閱以[取用者身分使用 Lake Formation 管理的資料共用](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-consumer.html)。  
以下顯示單一 ARN 的 IAM\_ROLE 參數字串語法。  

```
IAM_ROLE 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-name>}}'
```
您可以鏈結角色，以便您的叢集可以擔任其他 IAM 角色 (可能屬於其他帳戶)。您最多可以鏈結 10 個角色。如需詳細資訊，請參閱[在 Amazon Redshift Spectrum 中鏈結 IAM 角色](c-spectrum-iam-policies.md#c-spectrum-chaining-roles)。  
 對於此 IAM 角色，請附加與以下內容相似的 IAM 許可政策。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessSecret",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": "arn:aws:secretsmanager:{{us-west-2}}:{{123456789012}}:secret:my-rds-secret-VNenFy"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetRandomPassword",
                "secretsmanager:ListSecrets"
            ],
            "Resource": "*"
        }
    ]
}
```
如需建立 IAM 角色以搭配聯合查詢使用的步驟，請參閱[建立秘密和 IAM 角色來使用聯合查詢](federated-create-secret-iam-role.md)。  
不要在鏈結的角色清單中包含空格。
以下顯示鏈結三個角色的語法。  

```
IAM_ROLE 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-1-name>}},arn:aws:iam::{{<aws-account-id>}}:role/{{<role-2-name>}},arn:aws:iam::{{<aws-account-id>}}:role/{{<role-3-name>}}'
```

## 搭配資料共用使用 CREATE DATABASE 的語法
<a name="r_CREATE_DATABASE-datashare-synopsis"></a>

下列語法說明 CREATE DATABASE 命令，用於從資料共用建立資料庫，以在相同 AWS 帳戶中共用資料。

```
CREATE DATABASE database_name
[ [ WITH PERMISSIONS ] FROM DATASHARE datashare_name OF [ ACCOUNT account_id ] NAMESPACE namespace_guid
```

下列語法說明用於從資料共用建立資料庫的 CREATE DATABASE 命令，以跨 AWS 帳戶共用資料。

```
CREATE DATABASE database_name
[ [ WITH PERMISSIONS ] FROM DATASHARE datashare_name OF ACCOUNT account_id NAMESPACE namespace_guid
```

### 搭配資料共用使用 CREATE DATABASE 的參數
<a name="r_CREATE_DATABASE-parameters-datashare"></a>

FROM DATASHARE   
指出資料共用所在位置的關鍵字。

 *datashare\_name*   
建立取用者資料庫所用的資料共用名稱。

WITH PERMISSIONS  
指定從資料共用建立的資料庫需要物件層級權限，才能存取個別資料庫物件。如果沒有這個子句，被授予資料庫 USAGE 權限的使用者或角色，就會自動擁有資料庫中所有資料庫物件的存取權。

 NAMESPACE *namespace\_guid*   
指定資料共用所屬之生產者命名空間的值。

ACCOUNT *account\_id*  
指定資料共用所屬之生產者帳戶的值。

## 用於資料共用的 CREATE DATABASE 使用說明
<a name="r_CREATE_DATABASE-usage"></a>

身為資料庫超級使用者，當您使用 CREATE DATABASE 從 AWS 帳戶中的資料共用建立資料庫時，請指定 NAMESPACE 選項。ACCOUNT 是選用選項。當您使用 CREATE DATABASE 從跨 AWS 帳戶的資料共用建立資料庫時，請指定來自生產者的 ACCOUNT 和 NAMESPACE。

您只能為取用者叢集上的一個資料共用建立一個取用者資料庫。您無法建立參照相同資料共用的多個取用者資料庫。

## 從 建立資料庫 AWS Glue Data Catalog
<a name="r_CREATE_DATABASE_data-catalog"></a>

若要使用資料庫 ARN 建立 AWS Glue 資料庫，請在 CREATE DATABASE 命令中指定 ARN。

```
CREATE DATABASE sampledb FROM ARN <glue-database-arn> WITH NO DATA CATALOG SCHEMA;
```

或者，您也可以為 IAM\_ROLE 參數提供值。如需參數和接受值的相關資訊，請參閱[參數](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_DATABASE.html#r_CREATE_DATABASE-parameters)。

以下是示範如何使用 IAM 角色從 ARN 建立資料庫的範例。

```
CREATE DATABASE sampledb FROM ARN <glue-database-arn> WITH NO DATA CATALOG SCHEMA IAM_ROLE <iam-role-arn>
```

```
CREATE DATABASE sampledb FROM ARN <glue-database-arn> WITH NO DATA CATALOG SCHEMA IAM_ROLE default;
```

您也可以使用 DATA CATALOG SCHEMA 建立資料庫。

```
CREATE DATABASE sampledb FROM ARN <glue-database-arn> WITH DATA CATALOG SCHEMA <sample_schema> IAM_ROLE default;
```

## 建立資料庫以接收零 ETL 整合的結果
<a name="r_CREATE_DATABASE-integration"></a>

若要使用零 ETL 整合身分建立資料庫，請在 CREATE DATABASE 命令中指定 `integration_id`。

```
CREATE DATABASE {{destination_db_name}} FROM INTEGRATION '{{integration_id}}';
```

例如，首先從 SVV\_INTEGRATION 擷取整合 ID；

```
SELECT integration_id FROM SVV_INTEGRATION;
```

然後使用擷取的其中一個整合 ID 來建立接收零 ETL 整合的資料庫。

```
CREATE DATABASE sampledb FROM INTEGRATION 'a1b2c3d4-5678-90ab-cdef-EXAMPLE11111';
```

例如，需要零 ETL 整合來源資料庫時則指定。

```
CREATE DATABASE sampledb FROM INTEGRATION 'a1b2c3d4-5678-90ab-cdef-EXAMPLE11111' DATABASE sourcedb;
```

您也可以設定資料庫的重新整理間隔。例如，若要針對零 ETL 整合來源的資料將重新整理間隔設定為 7,200 秒：

```
CREATE DATABASE myacct_mysql FROM INTEGRATION 'a1b2c3d4-5678-90ab-cdef-EXAMPLE11111' SET REFRESH_INTERVAL 7200;
```

查詢 SVV\_INTEGRATION 目錄檢視以取得零 ETL 整合的相關資訊，例如 integration\_id、target\_database、source、fresh\_interval 等。

```
SELECT * FROM svv_integration;
```

下列範例會從開啟歷史記錄模式的整合建立資料庫。

```
CREATE DATABASE sample_integration_db FROM INTEGRATION 'a1b2c3d4-5678-90ab-cdef-EXAMPLE11111' SET HISTORY_MODE = true;
```

## CREATE DATABASE 限制
<a name="r_CREATE_DATABASE-create-database-limits"></a>

Amazon Redshift 會針對資料庫強制執行以下限制：
+ 每個叢集最多 60 個使用者定義的資料庫。
+ 資料庫名稱最多 127 個位元組。
+ 資料庫名稱不能是保留字。

## 資料庫定序
<a name="r_CREATE_DATABASE-collation"></a>

定序是一組規則，用於定義資料庫引擎如何比較和排序 SQL 中的字元類型資料。不區分大小寫的定序是最常用的定序。Amazon Redshift 使用不區分大小寫的定序來協助從其他資料倉儲進行移轉。透過不區分大小寫定序的原生支援，Amazon Redshift 會繼續使用重要的調整或最佳化方法，例如分佈索引鍵、排序索引鍵或範圍限制掃描。

COLLATE 子句會指定資料庫中所有 CHAR 和 VARCHAR 資料欄的預設定序。如果指定 CASE\_INSENSITIVE，則所有 CHAR 或 VARCHAR 資料欄都會使用不區分大小寫的定序。如需有關定序的資訊，請參閱 [定序序列](c_collation_sequences.md)。

在不區分大小寫的資料欄中插入或擷取的資料將會保留其原始大小寫。但是所有基於比較的字串操作 (包括排序和分組) 也都不區分大小寫。模式比對操作 (如 LIKE 述詞、類似和規則表達式函數) 也不區分大小寫。

下列 SQL 操作支援適用的定序語意：
+ 比較運算子：=、<>、<、<=、>、>=。
+ LIKE 運算子
+ ORDER BY 子句
+ GROUP BY 子句
+ 使用字串比較的彙總函數，例如 MIN、MAX 和 LISTAGG
+ 視窗函數，例如 PARTITION BY 子句與 ORDER BY 子句
+ 純量函數 greatest() 和 least()、STRPOS()、REGEXP\_COUNT()、REGEXP\_REPLACE()、REGEXP\_INSTR()、REGEXP\_SUBSTR()
+ 相異子句
+ UNION、INTERSECT 和 EXCEPT
+ IN LIST

對於外部查詢 (包括 Amazon Redshift Spectrum 和 Aurora PostgreSQL 聯合查詢)，VARCHAR 或 CHAR 資料欄的定序會與目前的資料庫層級定序相同。

下列範例會查詢 Amazon Redshift Spectrum 資料表：

```
SELECT ci_varchar FROM spectrum.test_collation
WHERE ci_varchar = 'AMAZON';

ci_varchar
----------
amazon
Amazon
AMAZON
AmaZon
(4 rows)
```

如需如何使用資料庫定序建立資料表的資訊，請參閱 [CREATE TABLE](r_CREATE_TABLE_NEW.md)。

如需 COLLATE 函數的詳細資訊，請參閱 [COLLATE 函數](r_COLLATE.md)。

### 資料庫定序限制
<a name="r_CREATE_DATABASE-collation-limitations"></a>

以下是在 Amazon Redshift 中使用資料庫定序時的限制：
+ 所有系統資料表或檢視 (包括 PG 目錄資料表和 Amazon Redshift 系統資料表) 都會區分大小寫。
+ 當取用者資料庫和生產者資料庫具有不同的資料庫層級定序時，Amazon Redshift 不支援跨資料庫和跨叢集查詢。
+ Amazon Redshift 在僅限領導節點查詢中不支援不區分大小寫的定序。

  下列範例顯示不支援的不區分大小寫查詢，以及 Amazon Redshift 傳送的錯誤：

  ```
  SELECT collate(usename, 'case_insensitive') FROM pg_user;
  ERROR:  Case insensitive collation is not supported in leader node only query.
  ```
+ Amazon Redshift 不支援區分大小寫和不區分大小寫的資料欄之間進行互動，例如比較、函數、聯結或設定操作。

  下列範例顯示區分大小寫和不區分大小寫的資料行互動時的錯誤：

  ```
  CREATE TABLE test
    (ci_col varchar(10) COLLATE case_insensitive,
     cs_col varchar(10) COLLATE case_sensitive,
     cint int,
     cbigint bigint);
  ```

  ```
  SELECT ci_col = cs_col FROM test;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  SELECT concat(ci_col, cs_col) FROM test;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  SELECT ci_col FROM test UNION SELECT cs_col FROM test;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  SELECT * FROM test a, test b WHERE a.ci_col = b.cs_col;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  Select Coalesce(ci_col, cs_col) from test;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  Select case when cint > 0 then ci_col else cs_col end from test;
  ERROR:  Query with different collations is not supported yet.
  ```

若要讓這些查詢運作，請使用 COLLATE 函數來轉換一個資料行的定序，以比對另一個資料行。如需詳細資訊，請參閱[COLLATE 函數](r_COLLATE.md)。

## 範例
<a name="r_CREATE_DATABASE-examples"></a>

**建立資料庫**  
下列範例會建立名為 TICKIT 的資料庫，並將所有權提供給使用者 DWUSER。

```
create database tickit
with owner dwuser;
```

若要檢視有關資料庫的詳細資訊，請查詢 PG\_DATABASE\_INFO 目錄資料表。

```
select datname, datdba, datconnlimit
from pg_database_info
where datdba > 1;

 datname     | datdba | datconnlimit
-------------+--------+-------------
 admin       |    100 | UNLIMITED
 reports     |    100 | 100
 tickit      |    100 | 100
```

下列範例會建立名稱為 **sampledb** 且具有 SNAPSHOT 隔離層級的資料庫。

```
CREATE DATABASE sampledb ISOLATION LEVEL SNAPSHOT;
```

下列範例會從資料共用 salesshare 中建立資料庫 sales\_db。

```
CREATE DATABASE sales_db FROM DATASHARE salesshare OF NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
```

### 資料庫定序範例
<a name="r_CREATE_DATABASE-collation-examples"></a>

**建立不區分大小寫的資料庫**  
下列範例會建立 `sampledb` 資料庫、建立 `T1` 資料表，以及將資料插入 `T1` 資料表。

```
create database sampledb collate case_insensitive;
```

連線到您剛才使用 SQL 用戶端建立的新資料庫。使用 Amazon Redshift 查詢編輯器 v2 時，請在**編輯器**中選擇 `sampledb`。使用 RSQL 時，請使用如下所示的命令。

```
\connect sampledb;
```

```
CREATE TABLE T1 (
  col1 Varchar(20) distkey sortkey
);
```

```
INSERT INTO T1 VALUES ('bob'), ('john'), ('Mary'), ('JOHN'), ('Bob');
```

然後查詢會尋找包含 `John` 結果。

```
SELECT * FROM T1 WHERE col1 = 'John';

 col1
 ------
 john
 JOHN
(2 row)
```

**以不區分大小寫的順序排序**  
下列範例顯示資料表 T1 的不區分大小寫排序。*Bob* 和 *bob* 或 *John* 和 *john* 的排序為非確定性，因為這些在不區分大小寫的欄中是相等的。

```
SELECT * FROM T1 ORDER BY 1;

 col1
 ------
 bob
 Bob
 JOHN
 john
 Mary
(5 rows)
```

同樣地，下面範例顯示使用 GROUP BY 子句的不區分大小寫排序。*Bob* 和 *bob* 是同等的，屬於同一組。結果中會顯示哪一個是不確定的。

```
SELECT col1, count(*) FROM T1 GROUP BY 1;

 col1 | count
 -----+------
 Mary |  1
 bob  |  2
 JOHN |  2
(3 rows)
```

**在不區分大小寫的資料欄上使用視窗函數進行查詢**  
下列範例會在不區分大小寫的資料欄上查詢視窗函數。

```
SELECT col1, rank() over (ORDER BY col1) FROM T1;

 col1 | rank
 -----+------
 bob  |   1
 Bob  |   1
 john |   3
 JOHN |   3
 Mary |   5
(5 rows)
```

**使用 DISTINCT 關鍵字進行查詢**  
下列範例會使用 DISTINCT 關鍵字查詢 `T1` 資料表。

```
SELECT DISTINCT col1 FROM T1;

 col1
 ------
 bob
 Mary
 john
(3 rows)
```

**使用 UNION 子句查詢**  
下列範例顯示資料表 `T1` 和 `T2` UNION 的結果。

```
CREATE TABLE T2 AS SELECT * FROM T1;
```

```
SELECT col1 FROM T1 UNION SELECT col1 FROM T2;

 col1
 ------
 john
 bob
 Mary
(3 rows)
```