SQL Guide #5: Cara membuat dan modifikasi database, tabel, dan atribut
Halo semuanya. Sudah lama berlalu, hari ini saya kembali dengan panduan lain tentang SQL. Kali ini saya akan membuat tabel di database.
Jika Anda pernah melihat guide-guide saya sebelumnya, jelas saya telah menggunakan tabel yang sudah ada sebelumnya. Artinya, meja dibuat oleh orang lain.
Namun dalam panduan ini, saya akan mulai membuat meja sendiri. Atau setidaknya tunjukkan cara melakukannya.
Membuat Tabel
Pertama, buka editor SQL atau sistem manajemen basis data apa pun. Jika tidak tahu, berarti Anda belum punya database ya?
Coba buat dengan:
CREATE DATABASE sekolah;
‘sekolah’ bisa diganti ke nama yang diinginkan.
Jika di Beekeeper Studio, bisa juga membuat database dengan tombol ‘+’ di pojok kiri atas
Kemudian, buat, dan/atau gunakan database. Ini adalah langkah penting. Bayangkan sebuah analogi seperti ini: database adalah sebuah rak, sedangkan tabel adalah hard drive. Seperti foto dibawah
Setelah itu, kita bisa mulai.
Untuk contoh ini, saya akan gunakan database ‘sekolah’
use sekolah;
Command untuk membuat tabel adalah:
CREATE TABLE mahasiswa (
nama VARCHAR(255),
NIM INT
);
Command di atas akan membuat tabel bernama mahasiswa dengan 2 atribut yang menyimpan karakter dan integer. VARCHAR dan INT adalah salah satu datatype di SQL, bisa diganti dengan datatype lain.
Menambah constraint
Constraint adalah kondisi untuk atribut. Untuk lebih jelas, lihat contoh berikut:
CREATE TABLE mahasiswa (
nama VARCHAR(255) NOT NULL UNIQUE,
NIM INT PRIMARY KEY,
tanggal_lahir DATE
);
Contoh constraint di atas yaitu:
- NOT NULL: Value di attribute ini tidak boleh kosong!
- UNIQUE: Tidak boleh ada value di attribute ini yang sama dengan lain. Misalnya value “1” berarti tidak boleh ada value “1” lagi.
- PRIMARY KEY: Di gunakan sebagai identifikasi; yaitu berarti ini attribute paling penting di tabelnya. Setiap tabel hanya memiliki 1 PRIMARY KEY. PRIMARY KEY itu tidak wajib. PRIMARY KEY juga sudah NOT NULL dan UNIQUE
Jadi, ini tabel adalah bernama ‘mahasiswa’ yang mempunyai 3 attribute. 1 attribute untuk menyimpan karakter (nama), dan tidak boleh kosong atau sama. 1 attribute untuk menyimpan integer, dan ini adalah PRIMARY KEY. 1 attribute untuk menyimpan tanggal (DATE) .
Mengganti atau updating table
Setelah tabel dibuat, hanya ada satu cara untuk mengganti tabel, yaitu dengan command ALTER TABLE
Contoh 1: menambah attribute atau kolom
Contoh dibawah untuk menambah attribute baru ke tabel table_name, attribute baru akan menyimpan decimal, maximum valuenya 12 digit: 999,999,999,999
ALTER TABLE mahasiswa ADD attribute4 DECIMAL(12, 0);
Contoh 2: hapus attribute
Contoh dibawah untuk menghapus attribute atau kolom. Di contoh ini, saya akan menghapus attribute 4 karena tidak berguna untuk kemauan saya.
ALTER TABLE mahasiswa DROP attribute4;
Contoh 3: hapus constraint
Contoh dibawah untuk mengapus constraint dari attribute. Untuk contoh ini, saya akan hapus UNIQUE dari ‘nama’, supaya bisa menyimpan data mahasiswa yang mempunyai nama sama dari mahasiswa lain yang sudah termasuk.
ALTER TABLE mahasiswa DROP CONSTRAINT UC_nama'
UC berarti “UNIQUE CONSTRAINT”. Ini berbeda untuk lain. Misalnya mau hapus PRIMARY KEY, maka akan menggunakan ‘PK’ atau ‘CHK’ untuk CHECK…dll
Contoh 4: ganti nama
Contoh dibawah untuk ganti nama attribute. Di contoh ini, saya akan ganti ‘NIM” menjadi ‘ID_mahasiswa’
ALTER TABLE mahasiswa
RENAME COLUMN NIM TO ID_mahasiswa;
Contoh 5: ganti nama tabel
Mengganti nama tabel itu mirip seperti contoh 4. Dibawah akan mengganti nama tabel ‘mahasiswa’ menjadi ‘data_mahasiswa’
ALTER TABLE mahasiswa
RENAME TO data_mahasiswa;
Foreign Key
Foreign Key akan membuat attribute di tabel mempunyai ‘relationship’ atau ‘hubungan’ dengan tabel lain
Contoh:
Asumsikan saya membuat tabel bernama ‘nilai_mahasiswa’ untuk menyimpan nilai-nilai mahasiswa.
Tabel nilai_mahasiswa juga mempunyai attribute ‘nama’ yaitu menyimpan nama mahasiswa.
Tanpa Foreign Key, attribute ‘nama’ di nilai_mahasiswa akan tidak ada hubungan dengan ‘nama’ di tabel data_mahasiswa. Berarti, itu akan menjadi attribute mandiri.
Untuk menyamakan supaya menjadi efisien, ada 2 cara, yaitu:
Cara 1:
Pada saat membuat tabel
CREATE TABLE nilai_mahasiswa(
nama VARCHAR(255) PRIMARY KEY,
nilai_final_2022 INT NOT NULL,
nilai_final_2023 INT NOT NULL,
FOREIGN KEY (nama) REFERENCES data_mahasiswa(nama)
);
Cara 2:
Setelah tabel sudah dibuat
ALTER TABLE nilai_mahasiswa
ADD FOREIGN KEY (nama) REFERENCES data_mahasiswa(nama);
Sekian hari ini dari saya. Terima kasih telah membaca. Saya harap guide ini membantu kamu membuat dan modifikasi tabelmu :)