Pembuatan tabel yang bermakna

Pada kuliah sebelumnya, kita sudah sedikit mengenal query untuk membuat tabel, sekarang saatnya untuk mempelajarinya lebih dalam.

Membuat tabel sangat mirip dengan mendeklarasikan kelas di Java dan memiliki pola sebagai berikut:

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

Misalnya, mari tulis kueri yang membuat tabel dengan pengguna:

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Terlihat sangat sederhana, karena banyak nuansa yang tidak disebutkan di sini.

Pertama, tabel mungkin memiliki pengaturan tambahan.

Dan kedua, setiap kolom dapat memiliki pengaturan tambahan.

Dan kita akan mulai dengan pengaturan untuk membuat kolom.

Kunci di meja

Selain nama dan tipe data, kolom tabel juga dapat memiliki pengaturan berikut:

KUNCI UTAMA Kolom adalah kunci tabel
KUNCI UNIK Semua nilai kolom harus unik.
nilai DEFAULT Nilai default
BUKAN NULL Larangan menerima nilai NULL
AUTO_INCREMENT SQL Server akan secara otomatis menaikkan nilai saat record baru ditambahkan ke tabel
DIHASILKAN Bidang terhitung
PENYIMPANAN Tempat menyimpan data: di disk atau di memori
KOMENTAR Kolom komentar, misalnya judul dalam bahasa lokal

Di bawah ini kita akan melihat beberapa di antaranya.

Pertama, ini PRIMARY KEY .

Paling sering, ini adalah kolom terpisah dengan nama id dan tipe INT. Inilah yang disebut "kunci master" dari tabel, dan semua barisnya memiliki nilai unik untuk kunci ini. Ini terutama digunakan agar tabel lain dapat merujuk ke catatan tabel kami dan menunjuk ke catatan spesifiknya.

Kedua adalah UNIQUE KEY .

Dalam beberapa hal, ini mirip dengan PRIMARY KEY, meskipun beban semantiknya sangat berbeda. Jika sebuah kolom memiliki atribut UNIQUE, maka semua nilai pada kolom tersebut harus unik. Contoh perbedaan antara UNIQUE KEY dan PRIMARY KEY adalah daftar orang di kantor paspor.

Nomor pajak adalah KUNCI UTAMA, digunakan untuk memudahkan merujuk ke orang yang tepat dari tabel lain.

Nomor paspor adalah KUNCI UNIK. Tidak boleh ada dua orang yang memiliki nomor paspor yang sama. Namun, nomor paspor dapat diubah. Misalnya saat mengganti nama belakang. Dan nomor pajak akan tetap bersama Anda selamanya. Ini adalah tugas utama PRIMARY KEY. Contoh kueri yang menentukan PRIMARY KEY:

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Pengaturan tipe data

Ada atribut yang kurang penting tetapi berguna.

nilai DEFAUL

Saat memasukkan data (menambahkan baris baru) ke dalam tabel, Anda dapat mengabaikan nilai beberapa kolom jika memiliki nilai default. Dalam hal ini, server SQL hanya akan mengatur nilai kolom itu sendiri.

Dimulai dengan MySQL versi 8, Anda dapat menentukan ekspresi sebagai nilai.

BUKAN NULL

Jika Anda menentukan atribut NOT NULL untuk kolom saat membuat tabel, maka SQL Server akan memastikan bahwa tidak mungkin menyimpan nilai NULL di kolom ini. Secara default, setiap kolom dapat memiliki nilai NULL, bahkan kolom INT. Yang agak tidak jelas untuk programmer Java.

AUTO_INCREMENT

Biasanya digunakan untuk id kolom. Saat Anda menambahkan baris baru ke tabel, Anda benar-benar ingin server SQL menetapkan id untuk entri ini. Siapa yang lebih baik dari server yang tahu berapa banyak baris yang dia miliki di tabel. Terutama jika permintaan dari klien yang berbeda masuk ke server SQL yang sama.

Inilah tepatnya yang dilakukan oleh atribut AUTO_INCREMENT. Saat menambahkan baris baru, kami tidak memberikan apa pun sebagai id, dan SQL server akan menentukan ID yang benar untuk catatan ini: itu hanya akan mengambil ID dari catatan terakhir yang ada dan menambahnya dengan 1. Atribut ini hanya dapat digunakan dengan tipe integer dan bilangan real. Dan, tentu saja, mari kita buat contoh pembuatan tabel seperti itu:

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);