

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Contoh
<a name="r_CREATE_TABLE_examples"></a>

Contoh berikut menunjukkan berbagai atribut kolom dan tabel dalam pernyataan Amazon Redshift CREATE TABLE. Untuk informasi selengkapnya tentang CREATE TABLE, termasuk definisi parameter, lihat[CREATE TABLE](r_CREATE_TABLE_NEW.md).

Banyak contoh menggunakan tabel dan data dari kumpulan data sampel *TICKIT*. Untuk informasi selengkapnya, lihat [Contoh database](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html).

 Anda dapat mengawali nama tabel dengan nama database dan nama skema dalam perintah CREATE TABLE. Misalnya,`dev_database.public.sales`. Nama database harus berupa database yang terhubung dengan Anda. Setiap upaya untuk membuat objek database di database lain gagal dengan dan kesalahan operasi tidak valid.

## Buat tabel dengan kunci distribusi, kunci sortir majemuk, dan kompresi
<a name="r_CREATE_TABLE_examples-create-a-table-with-distribution-key"></a>

Contoh berikut membuat tabel PENJUALAN dalam database TICKIT dengan kompresi didefinisikan untuk beberapa kolom. LISTID dideklarasikan sebagai kunci distribusi, dan LISTID dan SELLERID dideklarasikan sebagai kunci sortir majemuk multicolumn. Kendala kunci primer dan kunci asing juga ditentukan untuk tabel. Sebelum membuat tabel dalam contoh, Anda mungkin perlu menambahkan batasan UNIK ke setiap kolom yang direferensikan oleh kunci asing, jika batasan tidak ada.

```
create table sales(
salesid integer not null,
listid integer not null,
sellerid integer not null,
buyerid integer not null,
eventid integer not null encode mostly16,
dateid smallint not null,
qtysold smallint not null encode mostly8,
pricepaid decimal(8,2) encode delta32k,
commission decimal(8,2) encode delta32k,
saletime timestamp,
primary key(salesid),
foreign key(listid) references listing(listid),
foreign key(sellerid) references users(userid),
foreign key(buyerid) references users(userid),
foreign key(dateid) references date(dateid))
distkey(listid)
compound sortkey(listid,sellerid);
```

Hasilnya mengikuti:

```
schemaname | tablename | column     | type                        | encoding | distkey | sortkey | notnull
-----------+-----------+------------+-----------------------------+----------+---------+---------+--------
public     | sales     | salesid    | integer                     | lzo      | false   |       0 | true
public     | sales     | listid     | integer                     | none     | true    |       1 | true
public     | sales     | sellerid   | integer                     | none     | false   |       2 | true
public     | sales     | buyerid    | integer                     | lzo      | false   |       0 | true
public     | sales     | eventid    | integer                     | mostly16 | false   |       0 | true
public     | sales     | dateid     | smallint                    | lzo      | false   |       0 | true
public     | sales     | qtysold    | smallint                    | mostly8  | false   |       0 | true
public     | sales     | pricepaid  | numeric(8,2)                | delta32k | false   |       0 | false
public     | sales     | commission | numeric(8,2)                | delta32k | false   |       0 | false
public     | sales     | saletime   | timestamp without time zone | lzo      | false   |       0 | false
```

Contoh berikut membuat tabel t1 dengan kolom col1 case-insensitive.

```
create table T1 (
  col1 Varchar(20) collate case_insensitive
 );
            
insert into T1 values ('bob'), ('john'), ('Tom'), ('JOHN'), ('Bob');
```

Kueri tabel:

```
select * from T1 where col1 = 'John';
   
col1
------
 john
 JOHN
(2 rows)
```

## Buat tabel menggunakan kunci sortir yang disisipkan
<a name="CREATE_TABLE_NEW-create-a-table-using-interleaved-sortkey"></a>

Contoh berikut membuat tabel CUSTOMER dengan kunci sort interleaved.

```
create table customer_interleaved (
  c_custkey     	integer        not null,
  c_name        	varchar(25)    not null,
  c_address     	varchar(25)    not null,
  c_city        	varchar(10)    not null,
  c_nation      	varchar(15)    not null,
  c_region      	varchar(12)    not null,
  c_phone       	varchar(15)    not null,
  c_mktsegment      varchar(10)    not null)
diststyle all
interleaved sortkey (c_custkey, c_city, c_mktsegment);
```

## Buat tabel menggunakan IF NOT EXISTS
<a name="CREATE_TABLE_NEW-create-a-table-using-if-not-exists"></a>

 Contoh berikut membuat tabel CITIES, atau tidak melakukan apa-apa dan mengembalikan pesan jika sudah ada:

```
create table if not exists cities(
cityid integer not null,
city varchar(100) not null,
state char(2) not null);
```

## Buat tabel dengan distribusi SEMUA
<a name="CREATE_TABLE_NEW-create-a-table-with-all-distribution"></a>

 Contoh berikut membuat tabel VENUE dengan distribusi ALL. 

```
create table venue(
venueid smallint not null,
venuename varchar(100),
venuecity varchar(30),
venuestate char(2),
venueseats integer,
primary key(venueid))
diststyle all;
```

## Buat Tabel dengan distribusi EVEN
<a name="r_CREATE_TABLE_NEW-create-a-table-with-default-even-distribution"></a>

Contoh berikut membuat tabel yang disebut MYEVENT dengan tiga kolom. 

```
create table myevent(
eventid int,
eventname varchar(200),
eventcity varchar(30))
diststyle even;
```

Tabel didistribusikan secara merata dan tidak diurutkan. Tabel tidak memiliki kolom DISTKEY atau SORTKEY yang dinyatakan. 

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'myevent';
            
  column   |          type          | encoding | distkey | sortkey
-----------+------------------------+----------+---------+---------
 eventid   | integer                | lzo      | f       |       0
 eventname | character varying(200) | lzo      | f       |       0
 eventcity | character varying(30)  | lzo      | f       |       0
(3 rows)
```

## Buat tabel sementara yang SEPERTI tabel lain
<a name="r_CREATE_TABLE_NEW-create-a-temporary-table-that-is-like-another-table"></a>

Contoh berikut membuat tabel sementara yang disebut TEMPEVENT, yang mewarisi kolomnya dari tabel EVENT. 

```
create temp table tempevent(like event); 
```

Tabel ini juga mewarisi atribut DISTKEY dan SORTKEY dari tabel induknya: 

```
select "column", type, encoding, distkey, sortkey
 from pg_table_def where tablename = 'tempevent';

  column   |            type             | encoding | distkey | sortkey
-----------+-----------------------------+----------+---------+---------
 eventid   | integer                     | none     | t       |       1
 venueid   | smallint                    | none     | f       |       0
 catid     | smallint                    | none     | f       |       0
 dateid    | smallint                    | none     | f       |       0
 eventname | character varying(200)      | lzo      | f       |       0
 starttime | timestamp without time zone | bytedict | f       |       0
(6 rows)
```

## Buat tabel dengan kolom IDENTITY
<a name="r_CREATE_TABLE_NEW-create-a-table-with-an-identity-column"></a>

Contoh berikut membuat tabel bernama VENUE\_IDENT, yang memiliki kolom IDENTITY bernama VENUEID. Kolom ini dimulai dengan 0 dan bertambah 1 untuk setiap catatan. VENUEID juga dinyatakan sebagai kunci utama tabel. 

```
create table venue_ident(venueid bigint identity(0, 1),
venuename varchar(100),
venuecity varchar(30),
venuestate char(2),
venueseats integer,
primary key(venueid));
```

## Buat tabel dengan kolom IDENTITAS default
<a name="r_CREATE_TABLE_NEW-create-a-table-with-default-identity-column"></a>

Contoh berikut membuat tabel bernama`t1`. Tabel ini memiliki kolom IDENTITY bernama `hist_id` dan kolom IDENTITY default bernama`base_id`. 

```
CREATE TABLE t1(
  hist_id BIGINT IDENTITY NOT NULL, /* Cannot be overridden */
  base_id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, /* Can be overridden */
  business_key varchar(10) ,
  some_field varchar(10)
);
```

Memasukkan baris ke dalam tabel menunjukkan bahwa keduanya `hist_id` dan `base_id` nilai dihasilkan. 

```
INSERT INTO T1 (business_key, some_field) values ('A','MM');
```

```
SELECT * FROM t1;

 hist_id | base_id | business_key | some_field
---------+---------+--------------+------------
       1 |       1 | A            | MM
```

Memasukkan baris kedua menunjukkan bahwa nilai default untuk `base_id` dihasilkan.

```
INSERT INTO T1 (base_id, business_key, some_field) values (DEFAULT, 'B','MNOP');
```

```
SELECT * FROM t1;

 hist_id | base_id | business_key | some_field
---------+---------+--------------+------------
       1 |       1 | A            | MM
       2 |       2 | B            | MNOP
```

Menyisipkan baris ketiga menunjukkan bahwa nilai untuk `base_id` tidak perlu unik.

```
INSERT INTO T1 (base_id, business_key, some_field) values (2,'B','MNNN');
```

```
SELECT * FROM t1;
            
 hist_id | base_id | business_key | some_field
---------+---------+--------------+------------
       1 |       1 | A            | MM
       2 |       2 | B            | MNOP
       3 |       2 | B            | MNNN
```

## Buat tabel dengan nilai kolom DEFAULT
<a name="r_CREATE_TABLE_NEW-create-a-table-with-default-column-values"></a>

Contoh berikut membuat tabel CATEGORYDEF yang mendeklarasikan nilai default untuk setiap kolom: 

```
create table categorydef(
catid smallint not null default 0,
catgroup varchar(10) default 'Special',
catname varchar(10) default 'Other',
catdesc varchar(50) default 'Special events',
primary key(catid));
            
insert into categorydef values(default,default,default,default);
```

```
select * from categorydef;
            
 catid | catgroup | catname |    catdesc
-------+----------+---------+----------------
     0 | Special  | Other   | Special events
(1 row)
```

## Opsi DISTYLE, DISTKEY, dan SORTKEY
<a name="r_CREATE_TABLE_NEW-diststyle-distkey-and-sortkey-options"></a>

Contoh berikut menunjukkan cara kerja opsi DISTKEY, SORTKEY, dan DISTSTYLE. Dalam contoh ini, COL1 adalah kunci distribusi; oleh karena itu, gaya distribusi harus diatur ke KEY atau tidak diatur. Secara default, tabel tidak memiliki kunci pengurutan sehingga tidak diurutkan: 

```
create table t1(col1 int distkey, col2 int) diststyle key;
```

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 't1';

column |  type   | encoding | distkey | sortkey
-------+---------+----------+---------+---------
col1   | integer | az64     | t       | 0
col2   | integer | az64     | f       | 0
```

Dalam contoh berikut, kolom yang sama didefinisikan sebagai kunci distribusi dan kunci sortir. Sekali lagi, gaya distribusi harus diatur ke KEY atau tidak diatur. 

```
create table t2(col1 int distkey sortkey, col2 int);
```

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 't2';
            
column |  type   | encoding | distkey | sortkey
-------+---------+----------+---------+---------
col1   | integer | none     | t       | 1
col2   | integer | az64     | f       | 0
```

Dalam contoh berikut, tidak ada kolom yang ditetapkan sebagai kunci distribusi, COL2 ditetapkan sebagai kunci sortir, dan gaya distribusi diatur ke SEMUA: 

```
create table t3(col1 int, col2 int sortkey) diststyle all;
```

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 't3';
            
Column |  Type   | Encoding | DistKey | SortKey
-------+---------+----------+---------+--------
col1   | integer | az64     | f       | 0
col2   | integer | none     | f       | 1
```

Dalam contoh berikut, gaya distribusi diatur ke EVEN dan tidak ada kunci pengurutan didefinisikan secara eksplisit; oleh karena itu tabel didistribusikan secara merata tetapi tidak diurutkan. 

```
create table t4(col1 int, col2 int) diststyle even;
```

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 't4';
            
             column |  type   |encoding | distkey | sortkey
--------+---------+---------+---------+--------
col1    | integer | az64    | f       | 0
col2    | integer | az64    | f       | 0
```

## Buat tabel dengan opsi ENCODE AUTO
<a name="r_CREATE_TABLE_NEW-create-a-table-with-encode-option"></a>

Contoh berikut membuat tabel `t1` dengan pengkodean kompresi otomatis. ENCODE AUTO adalah default untuk tabel ketika Anda tidak menentukan jenis pengkodean untuk kolom apa pun.

```
create table t1(c0 int, c1 varchar);
```

Contoh berikut membuat tabel `t2` dengan pengkodean kompresi otomatis dengan menentukan ENCODE AUTO.

```
create table t2(c0 int, c1 varchar) encode auto;
```

Contoh berikut membuat tabel `t3` dengan pengkodean kompresi otomatis dengan menentukan ENCODE AUTO. Kolom `c0` didefinisikan dengan jenis pengkodean awal DELTA. Amazon Redshift dapat mengubah pengkodean jika pengkodean lain memberikan kinerja kueri yang lebih baik.

```
create table t3(c0 int encode delta, c1 varchar) encode auto;
```

Contoh berikut membuat tabel `t4` dengan pengkodean kompresi otomatis dengan menentukan ENCODE AUTO. Kolom `c0` didefinisikan dengan pengkodean awal DELTA, dan kolom `c1` didefinisikan dengan pengkodean awal LZO. Amazon Redshift dapat mengubah pengkodean ini jika pengkodean lain memberikan kinerja kueri yang lebih baik.

```
create table t4(c0 int encode delta, c1 varchar encode lzo) encode auto;
```