PostgreSQL - CREATE Table: A Panduan untuk Pemula

Hai teman-teman, para ahli basis data masa depan! Hari ini, kita akan memulai sebuah perjalanan menarik ke dunia PostgreSQL, khususnya fokus pada bagaimana membuat tabel. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya – saya akan menjadi panduan ramah Anda, dan kita akan melakukannya langkah demi langkah. Pada akhir panduan ini, Anda akan dapat membuat tabel seperti seorang ahli!

PostgreSQL - Create Table

Apa Itu Tabel di PostgreSQL?

Sebelum kita masuk ke detil membuat tabel, mari kita pahami apa sebenarnya tabel itu. Bayangkan sebuah spreadsheet – Anda tahu, itu seperti grid dengan baris dan kolom? Tabel basis data sangat mirip. Itu adalah kumpulan data yang terkait disusun dalam baris (juga disebut rekord) dan kolom (juga disebut field).

Misalnya, jika Anda menjalankan sebuah perpustakaan kecil, Anda mungkin memiliki tabel bernama "Books" dengan kolom seperti "Title", "Author", "ISBN", dan "Publication Date". Setiap baris dalam tabel ini mewakili buku tunggal di perpustakaan Anda.

Sintaks CREATE TABLE

Sekarang, mari kita lihat sintaks dasar untuk membuat tabel di PostgreSQL:

CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
column3 datatype constraints,
....
);

Jangan takut! Itu lebih mudah daripada yang Anda pikirkan. Mari kitauraikan:

  1. CREATE TABLE: Ini adalah perintah yang memberitahu PostgreSQL Anda ingin membuat tabel baru.
  2. table_name: Ini adalah tempat Anda menentukan nama tabel Anda.
  3. Dalam kurung, Anda daftar semua kolom yang Anda inginkan di tabel Anda.
  4. Untuk setiap kolom, Anda menentukan:
  • Nama kolom
  • Tipe data (seperti INTEGER untuk bilangan bulat, TEXT untuk string, dll.)
  • Segala jenis constraint (seperti NOT NULL jika kolom harus selalu memiliki nilai)

Contoh: Mari Buat Beberapa Tabel!

Contoh 1: Tabel Books Sederhana

Mari kita mulai dengan contoh sederhana. Kita akan membuat tabel untuk perpustakaan khayal kita:

CREATE TABLE books (
book_id SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(50) NOT NULL,
publication_date DATE,
isbn VARCHAR(13) UNIQUE
);

mariuraikan ini:

  • book_id: Ini adalah pengenal unik untuk setiap buku. SERIAL berarti itu akan otomatis bertambah untuk setiap buku yang ditambahkan.
  • title: Ini dapat mencapai panjang 100 karakter dan tidak boleh kosong (NOT NULL).
  • author: Sampai 50 karakter, juga tidak boleh kosong.
  • publication_date: Ini adalah opsional (kita tidak menentukan NOT NULL).
  • isbn: Ini unik untuk setiap buku.

Contoh 2: Tabel Customers Lebih Kompleks

Sekarang, mari kita buat tabel sedikit lebih kompleks untuk pelanggan:

CREATE TABLE customers (
customer_id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
phone VARCHAR(20),
registration_date DATE DEFAULT CURRENT_DATE,
loyalty_points INTEGER DEFAULT 0 CHECK (loyalty_points >= 0)
);

Tabel ini memperkenalkan beberapa konsep baru:

  • DEFAULT: Kita gunakan ini untuk registration_date untuk secara otomatis menentukan tanggal hari ini saat pelanggan baru ditambahkan.
  • CHECK: Ini memastikan loyalty_points tidak bisa negatif.

Tipe Data di PostgreSQL

PostgreSQL menawarkan berbagai jenis tipe data. Berikut adalah beberapa yang umum:

Tipe Data Deskripsi Contoh
INTEGER Bilangan bulat 42
SERIAL Integer yang otomatis bertambah Secara otomatis ditentukan
VARCHAR(n) String variabel panjang sampai n karakter 'Hello, World!'
TEXT String variabel panjang tanpa batas 'A very long text...'
DATE Tanggal (tanpa waktu) '2023-06-15'
TIMESTAMP Tanggal dan waktu '2023-06-15 14:30:00'
BOOLEAN Nilai benar/salah TRUE or FALSE
NUMERIC(p,s) Numeric eksak dengan p digit (s setelah titik desimal) 123.45

Constraints di PostgreSQL

Constraints adalah aturan yang kita tetapkan pada kolom. Berikut adalah beberapa yang umum:

Constraint Deskripsi
NOT NULL Kolom tidak dapat mengandung nilai null
UNIQUE Semua nilai dalam kolom harus berbeda
PRIMARY KEY Mengidentifikasi setiap baris di tabel
FOREIGN KEY Memastikan integritas referensi antara dua tabel
CHECK Memastikan semua nilai dalam kolom memenuhi kondisi tertentu
DEFAULT Mengatur nilai default untuk kolom

Beberapa Contoh Lain

Contoh 3: Tabel dengan Foreign Key

Mari kita buat tabel 'orders' yang mengacu ke tabel 'customers' kita:

CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INTEGER REFERENCES customers(customer_id),
order_date DATE DEFAULT CURRENT_DATE,
total_amount NUMERIC(10,2) CHECK (total_amount > 0)
);

Tabel ini memiliki foreign key (customer_id) yang mengacu ke tabel customers, memastikan bahwa setiap order terkait dengan pelanggan yang valid.

Contoh 4: Tabel dengan Primary Key Komposit

kadang-kadang, Anda mungkin memerlukan primary key yang terdiri dari beberapa kolom:

CREATE TABLE book_authors (
book_id INTEGER REFERENCES books(book_id),
author_id INTEGER REFERENCES authors(author_id),
PRIMARY KEY (book_id, author_id)
);

Tabel ini mungkin digunakan untuk menangani buku dengan beberapa penulis, atau penulis yang menulis beberapa buku.

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dunia pembuatan tabel PostgreSQL. Ingat, latihan membuat Anda sempurna. Cobalah membuat tabel untuk berbagai jenis scenario – mungkin sebuah pustaka musik, buku resep, atau bahkan basis data untuk permainan video kesukaan Anda.

Jangan takut untuk mencoba dan membuat kesalahan – itu adalah bagaimana kita belajar! Dan selalu ingat: di dunia basis data, Anda memiliki kekuatan untuk CREATE, ALTER, dan bahkan DROP dunia data secara keseluruhan. Gunakan kekuatan ini bijaksana, pemula Padawan!

Selamat coding, dan may the PostgreSQL be with you!

Credits: Image by storyset