Membuat Database dan Table Postgres
Tags: indonesia, tutorial, postgres
Published: 2023-06-15 09:13:05

Buka SQL shell (psql). Akan ditanyakan apa server, database, port, username dan password-nya.  Jika default, bisa langsung enter-enter saja sampai ditanyakan password, baru masukkan password. Buat database baru. Caranya ketik 

> CREATE DATABASE 'nama_database'

Perlu diingat, postgre case sensitive tidak seperti mysql. Jika berhasil terminal akan membalas dengan 

> CREATE DATABASE

Contoh, saya akan membuat sebuah database baru dengan nama "tutorial":

```js
postgres=# CREATE DATABASE tutorial;
CREATE DATABASE
```

Untuk mengecek dan benar-benar memastikan bahwa database baru sudah ada ketik:

> \l

Contoh:

```js
postgres=# \l
                                                List of databases
   Name    |  Owner   | Encoding |          Collate          |           Ctype           |   Access privileges
-----------+----------+----------+---------------------------+---------------------------+-----------------------
 pegawai   | postgres | UTF8     | Indonesian_Indonesia.1252 | Indonesian_Indonesia.1252 |
 postgres  | postgres | UTF8     | Indonesian_Indonesia.1252 | Indonesian_Indonesia.1252 |
 template0 | postgres | UTF8     | Indonesian_Indonesia.1252 | Indonesian_Indonesia.1252 | =c/postgres          +
           |          |          |                           |                           | postgres=CTc/postgres
 template1 | postgres | UTF8     | Indonesian_Indonesia.1252 | Indonesian_Indonesia.1252 | =c/postgres          +
           |          |          |                           |                           | postgres=CTc/postgres
 tutorial  | postgres | UTF8     | Indonesian_Indonesia.1252 | Indonesian_Indonesia.1252 |
(5 rows)
```

Untuk membuat table, bisa langsung ketik query saja di terminal atau menggunakan aplikasi ["TablePlus"](https://tableplus.com/). Saya memakai TablePlus agar kedepannya lebih mudah. Install dan buka TablePlus dan klik simbol "+" untuk membuat koneksi baru. Pilih PostgreSQL.

![Membuat koneksi baru di TablePlus](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c6caqftu4hqdtcfgacox.png)

Masukkan Name (nama koneksi, terserah apa saja), Host, Port, User, Password, dan Database (sesuai yang sudah dibuat) sisanya biarkan default. Kemudian klik Connect

Di bar samping, klik tab Queries dan buat query baru. Masukkan name query dan klik save.

![Membuat query baru](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jnoyqny2edn99ukvu3og.png)

Di tab query yang baru dibuat, masukkan query CREATE TABLE. Sebagai contoh, saya akan membuat table dengan nama "Employee":


```js
CREATE TABLE Employee (
    ID_Pegawai serial primary key,
    NIK varchar(512),
    Nama varchar(512),
    Username varchar(512) unique,
    Password varchar(512),
    Alamat varchar(512),
    Tempat_Lahir varchar(512),
    Tanggal_Lahir date,
    No_HP bigint,
    Pekerjaan varchar(512),
    Gender varchar(512),
    Email varchar(512),
    Nama_Ibu varchar(512),
    updated_at timestamp default current_timestamp,
    created_at timestamp default current_timestamp
);
```


Select semuanya (Ctrl + A) dan klik "Run Current". Refresh, maka di menu samping di tab Items, dibawah Tables akan muncul table yang baru saja kita buat


![Melihat table1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tsu1z8basjkp1letvfgi.png)

Kita bisa melihat deskripsi table dengan menklik tombol "Structure" di bagian bawah

![Lihat deskripsi table](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtpdkcpg20coqmpwd69x.png)

Untuk menghapus table, cukup klik kanan di Table employee, klik delete, refresh, dan commit.

Kita buat table baru, tapi kali ini ditambah file varchar(512) setelah Nama_Ibu

```js
CREATE TABLE Employee (
    ID_Pegawai serial primary key,
    NIK varchar(512),
    Nama varchar(512),
    Username varchar(512) unique,
    Password varchar(512),
    Alamat varchar(512),
    Tempat_Lahir varchar(512),
    Tanggal_Lahir date,
    No_HP bigint,
    Pekerjaan varchar(512),
    Gender varchar(512),
    Email varchar(512),
    Nama_Ibu varchar(512),
    File varchar(512),
    updated_at timestamp default current_timestamp,
    created_at timestamp default current_timestamp
);


```