ID (Indonesia) Translation

SQL - Check Constraint: Panduan Teman Anda untuk Integritas Data

Halo teman-teman yang akan menjadi ahli SQL! Hari ini, kita akan meluncur ke dalam dunia magis SQL Check Constraints. Jangan khawatir jika Anda baru saja belajar pemrograman – saya akan menjadi panduan Anda dalam perjalanan ini, dan kita akan mengambil langkah-langkah secara bertahap. Jadi, ambil minuman favorit Anda, duduk nyaman, dan mari kita mulai perjalanan kita!

SQL - Check Constraint

Konstraint CHECK SQL: Teman Terbaik Data Anda

Bayangkan Anda mengatur sebuah pesta, dan Anda ingin memastikan bahwa hanya tamu berusia 18 tahun ke atas yang dapat menghadiri. Itu tepat apa yang dilakukan Konstraint CHECK bagi basis data Anda – itu seperti seorang bouncer, memastikan hanya data yang benar yang bisa masuk!

Konstraint CHECK adalah aturan yang kita tetapkan pada kolom (atau beberapa kolom) dalam tabel untuk memastikan bahwa data memenuhi syarat tertentu sebelum diizinkan masuk. Itu seperti memberikan basis data Anda kekuatan super untuk menjaga integritas data!

mari kita lihat beberapa contoh untuk membuat ini lebih jelas.

Konstraint CHECK pada Kolom Tunggal: Penampilan Solo

Ketika kita menerapkan Konstraint CHECK pada kolom tunggal, kita mengatakan kepada kolom itu, "Hai, kau punya satu tugas – pastikan data mengikuti aturan ini!"

Ini adalah contoh:

CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Age INT CHECK (Age >= 18)
);

Dalam contoh ini, kita menciptakan tabel Employees dengan Konstraint CHECK pada kolom Age. Konstraint ini memastikan bahwa usia yang dimasukkan harus 18 tahun atau lebih. Jika seseorang mencoba memasukkan karyawan berusia kurang dari 18 tahun, basis data akan dengan sopan menolak, seperti bouncer pesta kita!

mari kita mencoba memasukkan beberapa data:

-- Ini akan berhasil
INSERT INTO Employees (EmployeeID, FirstName, LastName, Age)
VALUES (1, 'John', 'Doe', 25);

-- Ini akan gagal
INSERT INTO Employees (EmployeeID, FirstName, LastName, Age)
VALUES (2, 'Jane', 'Smith', 17);

Perintah INSERT pertama akan berhasil karena 25 adalah sama dengan atau lebih dari 18. Namun, yang kedua akan gagal karena 17 tidak memenuhi Konstraint CHECK kita. Bouncer data kita melakukan tugasnya!

Konstraint CHECK pada Beberapa Kolom: Duo Dinamis

kadang-kadang, kita perlu memeriksa kondisi yang melibatkan lebih dari satu kolom. Itu di mana Konstraint CHECK multi-kolom berguna!

Ini adalah contoh:

CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATE,
ShipDate DATE,
CHECK (ShipDate >= OrderDate)
);

Dalam tabel Orders ini, kita memastikan bahwa ShipDate selalu sama dengan atau setelah OrderDate. Setelah all, kita tidak bisa mengirimkan pesanan sebelum itu dipesan, kan? Itu memerlukan perjalanan waktu, dan SQL belum bisa melakukan itu... belum!

mari kita tesnya:

-- Ini akan berhasil
INSERT INTO Orders (OrderID, OrderDate, ShipDate)
VALUES (1, '2023-06-01', '2023-06-03');

-- Ini akan gagal
INSERT INTO Orders (OrderID, OrderDate, ShipDate)
VALUES (2, '2023-06-01', '2023-05-31');

Perintah INSERT pertama akan berhasil karena ShipDate (3 Juni) adalah setelah OrderDate (1 Juni). Yang kedua akan gagal karena mencoba mengirimkan pesanan (31 Mei) sebelum itu dipesan (1 Juni). Konstraint CHECK waktunya menangkap ancaman ini!

Konstraint CHECK pada Tingkat Tabel: Mata Pintas

kadang-kadang, kita ingin menciptakan Konstraint CHECK yang melibatkan beberapa kolom tetapi tidak terikat pada kolom tertentu. Kita bisa melakukan ini dengan menciptakan konstraint tingkat tabel.

Ini adalah pandanganannya:

CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(50),
UnitPrice DECIMAL(10,2),
DiscountedPrice DECIMAL(10,2),
CONSTRAINT CHK_Price CHECK (DiscountedPrice <= UnitPrice)
);

Dalam tabel Products ini, kita memastikan bahwa DiscountedPrice selalu sama dengan atau kurang dari UnitPrice. Setelah all, kita tidak ingin menetapkan harga produk lebih tinggi setelah diskon!

mari kita lihatnya dalam aksi:

-- Ini akan berhasil
INSERT INTO Products (ProductID, ProductName, UnitPrice, DiscountedPrice)
VALUES (1, 'Super Gadget', 99.99, 79.99);

-- Ini akan gagal
INSERT INTO Products (ProductID, ProductName, UnitPrice, DiscountedPrice)
VALUES (2, 'Mega Widget', 49.99, 59.99);

Perintah INSERT pertama akan berhasil karena DiscountedPrice (79.99) adalah kurang dari UnitPrice (99.99). Yang kedua akan gagal karena mencoba menetapkan DiscountedPrice (59.99) yang lebih tinggi dari UnitPrice (49.99). Konstraint CHECK kita menyelamatkan kita dari kesalahan harga ini!

Menambahkan Konstraint CHECK ke Kolom yang Ada: Retrofit

Apa bila kita sudah memiliki tabel dan ingin menambahkan Konstraint CHECK? Tidak ada masalah! Kita juga bisa menambahkan konstraints ke kolom yang sudah ada.

Ini adalah cara:

-- Pertama, buat tabel tanpa konstraints
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
GPA DECIMAL(3,2)
);

-- Sekarang, tambahkan Konstraint CHECK
ALTER TABLE Students
ADD CONSTRAINT CHK_GPA CHECK (GPA >= 0.0 AND GPA <= 4.0);

Dalam contoh ini, kita menambahkan Konstraint CHECK untuk memastikan bahwa GPA selalu berada antara 0.0 dan 4.0.

mari kita tesnya:

-- Ini akan berhasil
INSERT INTO Students (StudentID, FirstName, LastName, GPA)
VALUES (1, 'Alice', 'Johnson', 3.75);

-- Ini akan gagal
INSERT INTO Students (StudentID, FirstName, LastName, GPA)
VALUES (2, 'Bob', 'Smith', 4.5);

Perintah INSERT pertama akan berhasil karena 3.75 berada dalam rentang GPA yang diizinkan. Yang kedua akan gagal karena mencoba menetapkan GPA (4.5) yang di luar batas maksimum kita (4.0). Konstraint CHECK yang diperbarui kita menjaga GPA tetap dalam kontrol!

Menghapus Konstraint CHECK: Pembebasan Besar

kadang-kadang, kita mungkin perlu menghapus Konstraint CHECK. Mungkin aturan bisnis kita telah berubah, atau kita sedang merancang ulang basis data kita. Apapun alasan nya, SQL memberikan kita cara untuk menghapus konstraints.

Ini adalah cara melakukannya:

-- Untuk menghapus konstraint yang dinamai
ALTER TABLE Students
DROP CONSTRAINT CHK_GPA;

-- Untuk menghapus konstraint yang belum dinamai (sinataks SQL Server)
ALTER TABLE Employees
DROP CONSTRAINT ALL;

Dan begitu saja, konstraint hilang! Tetapi ingat, dengan kekuatan besar datang tanggung jawab besar. Pastikan Anda benar-benar ingin menghapus konstraint itu sebelum Anda melakukannya!

Kesimpulan: Peralatan Integritas Data Anda

Danitu, teman-teman! Kita telah melintasi negeri SQL Check Constraints, dari pengawal tunggal kolom hingga penjaga multi-kolom, dari pengawas tingkat tabel hingga penghapus konstraints.

ingat, Konstraints CHECK adalah seperti pengawal setia kerajaan data Anda. Mereka bekerja tanpa lelah untuk memastikan bahwa hanya data yang benar yang bisa masuk ke tabel Anda, menjaga basis data Anda bersih, konsisten, dan dapat dipercaya.

Sebagai Anda terus mengembara dalam SQL, jaga konstraints CHECK ini dalam peralatan Anda. Mereka akan menjadi teman setia Anda dalam menjaga integritas data dan mencegah data gremlin yang merusak dari memasuki sistem Anda!

Sekarang, maju dan batalkan dengan kepercayaan! Selamat SQL-ing!

Credits: Image by storyset