

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

# SQL 引擎的資料類型支援
<a name="sql-reference-supported-data-types-dialect"></a>

AWS Clean Rooms 支援多個 SQL 引擎和方言。了解這些實作的資料類型系統對於成功的資料協作和分析至關重要。下表顯示 AWS Clean Rooms SQL、Snowflake SQL 和 Spark SQL 之間的同等資料類型。

## 數值資料類型
<a name="numeric-data-types-table"></a>

數值類型代表各種類型的數字，從精確整數到近似浮點值。數值類型的選擇會影響儲存需求和運算精確度。整數類型因位元組大小而異，而小數和浮點類型提供不同的精確度和縮放選項。


| 資料類型 | AWS Clean Rooms SQL | Snowflake SQL | Spark SQL | Description | 
| --- | --- | --- | --- | --- | 
| 8 位元組整數 | BIGINT | 不支援 | BIGINT、LONG | 從 -9，223，372，036，854，775，808 到 9，223，372，036，854，775，807 的帶正負號整數。 | 
| 4 位元組整數 | INT | 不支援 | INT、INTEGER | 從 -2，147，483，648 到 2，147，483，647 的帶正負號整數 | 
| 2 位元組整數 | SMALLINT  | 不支援 | SMALLINT，簡短 | 從 -32，768 到 32，767 的帶正負號整數 | 
| 1 位元組整數 | 不支援 | 不支援 | TINYINT、BYTE | 從 -128 到 127 的帶正負號整數 | 
|  雙精確度浮點數 | 雙精度、雙精度 | FLOAT， FLOAT4, FLOAT8， DOUBLE， DOUBLE PRECISION， REAL | DOUBLE | 8 位元組雙精度浮點數 | 
| 單一精確度浮點數 | REAL、FLOAT | 不支援 | FLOAT | 4 位元組單精度浮點數 | 
| 小數 （固定精確度） | DECIMAL  | DECIMAL、NUMERIC、NUMBER Snowflake 會自動將較小寬度的確切數值類型 (INT、BIGINT、SMALLINT 等） 別名為 NUMBER。  | DECIMAL、NUMERIC、 | 任意精確度帶正負號的小數位數 | 
| 小數 （含精確度） | DECIMAL(p) | DECIMAL(p)、NUMBER(p) | DECIMAL(p) | 固定精確度小數位數 | 
| 小數 （使用擴展） | DECIMAL(p,s) | DECIMAL(p，s)、NUMBER(p，s) | DECIMAL(p,s) | 具有擴展的固定精確度小數位數 | 

## 布林值資料類型
<a name="boolean-data-types-table"></a>

布林值類型代表簡單的 true/false 邏輯值。這些類型在 SQL 引擎之間是一致的，通常用於旗標、條件和邏輯操作。


| 資料類型 | AWS Clean Rooms SQL | Snowflake SQL | Spark SQL | Description | 
| --- | --- | --- | --- | --- | 
| Boolean  | BOOLEAN  | BOOLEAN  | BOOLEAN  | 代表 true/false 值  | 

## 日期和時間資料類型
<a name="date-time-data-types-table"></a>

日期和時間類型處理時間資料，精確度和時區感知程度各不相同。這些類型支援儲存日期、時間和時間戳記的不同格式，包括或排除時區資訊的選項。


| 資料類型 | AWS Clean Rooms SQL | Snowflake SQL | Spark SQL | Description | 
| --- | --- | --- | --- | --- | 
| Date  | DATE  | DATE  | DATE  | 不含時區的日期值 （年、月、日） | 
| 時間  | TIME  | 不支援 | 不支援 | UTC 的當日時間，不含時區 | 
| 使用 TZ 的時間 | TIMETZ  | 不支援 | 不支援 | UTC 中的當日時間，含時區 | 
| 時間戳記  | TIMESTAMP  | TIMESTAMP、TIMESTAMP\$1NTZ | TIMESTAMP\$1NTZ |  不含時區的時間戳記 NTZ 表示「無時區」  | 
| 使用 TZ 的時間戳記 | TIMESTAMPTZ  | TIMESTAMP\$1LTZ | TIMESTAMP、TIMESTAMP\$1LTZ | 具有本機時區的時間戳記 LTZ 表示「當地時區」  | 

## 字元資料類型
<a name="character-data-types-table"></a>

字元類型可存放文字資料，同時提供固定長度和可變長度選項。這些類型會處理文字字串和二進位資料，並選用長度規格來控制儲存配置。


| 資料類型 | AWS Clean Rooms SQL | Snowflake SQL | Spark SQL | Description | 
| --- | --- | --- | --- | --- | 
| 固定長度字元  | CHAR  | CHAR、CHARACTER | CHAR、CHARACTER | 固定長度的字元字串 | 
| 長度為 的固定長度字元 | CHAR(n) | CHAR(n), CHARACTER(n) | CHAR(n), CHARACTER(n) | 指定長度的固定長度字元字串 | 
| 可變長度字元 | VARCHAR  | VARCHAR、STRING、TEXT | VARCHAR、STRING | 可變長度字元字串 | 
| 可變長度字元與長度 | VARCHAR(n) | VARCHAR(n)、STRING(n)、TEXT(n) | VARCHAR(n) | 具有長度限制的可變長度字元字串  | 
| 二進位  | VARBYTE  | BINARY、VARBINARY | BINARY  | 二進位位元組序列 | 
| 具有長度的二進位 | VARBYTE(n) | 不支援 | 不支援 | 具有長度限制的二進位位元組序列 | 

## 結構化資料類型
<a name="structured-data-types-table"></a>

結構化類型可將多個值合併為單一欄位，以允許複雜的資料組織。這些包括排序集合的陣列、索引鍵/值對的映射，以及使用具名欄位建立自訂資料結構的結構。


| 資料類型 | AWS Clean Rooms SQL | Snowflake SQL | Spark SQL | Description | 
| --- | --- | --- | --- | --- | 
| 陣列  | ARRAY<type> | ARRAY（類型） | ARRAY<type> | 相同類型的元素順序 陣列類型必須包含相同類型的元素  | 
| Map  | MAP<key，value> | MAP（索引鍵、值） | MAP<key，value> | 鍵值對的集合 映射類型必須包含相同類型的元素  | 
| Struct  | STRUCT< field1： type1， field2： type2> |  OBJECT( field1 type1， field2 type2 ) | STRUCT< field1： type1， field2： type2 > | 具有指定類型之具名欄位的結構 結構式類型語法在實作之間可能略有不同  | 
| 超級  | SUPER  | 不支援 | 不支援 | 彈性類型支援所有資料類型，包括複雜類型 | 