SQL - Auto Increment

Hai there, para pendidik pangkalan data masa depan! Hari ini, kita akan melihat dunia magical Auto Increment dalam SQL. Jangan bimbang jika anda baru dalam hal ini; menjelang akhir panduan ini, anda akan melakukan auto-increment seperti seorang pro!

SQL - Auto Increment

Apa Itu Auto Increment?

Sebelum kita masuk ke dalam khususannya, mari kita memahami apa sebenarnya Auto Increment. Bayangkan anda seorang pustakawan (saya pernah menjadi seorang di zaman kolej saya!), dan anda perlu assign nombor unik kepada setiap buku baru yang masuk. Adakah ia akan mendatangkan kesulitan untuk ingat nombor terakhir yang anda gunakan dan secara manual meningkatkannya setiap kali? Itulah di mana Auto Increment datang untuk menyelamatkan!

Dalam SQL, Auto Increment adalah medan yang secara automatik menghasilkan nombor unik untuk setiap rekod baru yang dimasukkan ke dalam jadual. Ia seperti memiliki seorang asisten robot yang membantu, "Jangan bimbang, saya akan uruskan penomboran untuk anda!"

Auto Increment dalam MySQL

Mari kita mulakan dengan MySQL, salah satu sistem pengurusan pangkalan data yang paling popular. Dalam MySQL, kita menggunakan kata kunci AUTO_INCREMENT untuk membuat column auto-increment.

Membuat Jadual dengan Auto Increment

Berikut adalah cara anda boleh membuat jadual dengan kunci utama auto-increment:

CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT
);

Dalam contoh ini:

  • id adalah column auto-increment kami
  • INT menentukan bahawa ia adalah integer
  • AUTO_INCREMENT memberitahu MySQL untuk secara automatik meningkatkan nilai ini bagi setiap rekod baru
  • PRIMARY KEY menjadikan column ini kunci utama jadual

Memasukkan Rekod

Sekarang, mari kita tambahkan beberapa pelajar ke jadual kami:

INSERT INTO students (name, age) VALUES ('Alice', 20);
INSERT INTO students (name, age) VALUES ('Bob', 22);
INSERT INTO students (name, age) VALUES ('Charlie', 21);

Perhatikan bagaimana kita tidak menentukan id semasa memasukkan rekod. MySQL secara automatik mengassign dan meningkatkan nilai ini bagi kita. Jika kita memilih semua rekod daripada jadual ini, kita akan melihat:

+----+---------+-----+
| id | name    | age |
+----+---------+-----+
|  1 | Alice   |  20 |
|  2 | Bob     |  22 |
|  3 | Charlie |  21 |
+----+---------+-----+

Memulakan daripada Nilai Tertentu

Apa jika anda mahu auto-increment anda memulakan daripada nombor tertentu? Mungkin anda menyatukan dua pangkalan data, dan anda mahu menghindari ID pendua. Tidak masalah! Anda boleh menetapkan nilai awal seperti ini:

ALTER TABLE students AUTO_INCREMENT = 1000;

Sekarang, rekod berikutnya yang dimasukkan akan mempunyai ID 1000, dan ia akan meningkat daripada situ.

Auto Increment dalam SQL Server

Sekarang, mari kita pindah ke SQL Server. Konsepnya adalah serupa, tetapi sintaksnya sedikit berbeza. Dalam SQL Server, kita menggunakan kata kunci IDENTITY untuk column auto-increment.

Membuat Jadual dengan Identity

Berikut adalah cara anda membuat jadual dengan column auto-increment dalam SQL Server:

CREATE TABLE employees (
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50)
);

Dalam contoh ini:

  • IDENTITY(1,1) bermakna mulai daripada 1 dan tingkatkan sebanyak 1
  • Parameter pertama (1) adalah nilai benih (di mana untuk mulai)
  • Parameter kedua (1) adalah nilai peningkatan (berapa banyak untuk meningkatkan)

Memasukkan Rekod

Memasukkan rekod adalah serupa dengan MySQL:

INSERT INTO employees (name, department) VALUES ('David', 'Sales');
INSERT INTO employees (name, department) VALUES ('Emma', 'Marketing');
INSERT INTO employees (name, department) VALUES ('Frank', 'IT');

sekali lagi, kita tidak menentukan id. SQL Server akan menguruskan itu bagi kita.

Memeriksa Nilai Identity Semasa

Dalam SQL Server, anda boleh memeriksa nilai identity semasa menggunakan fungsi IDENT_CURRENT:

SELECT IDENT_CURRENT('employees');

Ini akan mengembalikan nilai identity terakhir yang dihasilkan untuk jadual 'employees'.

Mengreset Identity

Jika anda perlu mengreset nilai identity (hati-hati dengan ini!), anda boleh menggunakan:

DBCC CHECKIDENT ('employees', RESEED, 1000);

Ini akan mengreset identity ke 1000, jadi rekod berikutnya yang dimasukkan akan mempunyai ID 1000.

Metode Auto Increment Umum

Berikut adalah jadual yang menggabungkan metode auto increment umum yang kita diskusi:

Pangkalan Data Kata Kunci Contoh
MySQL AUTO_INCREMENT id INT AUTO_INCREMENT PRIMARY KEY
SQL Server IDENTITY id INT IDENTITY(1,1) PRIMARY KEY

Kesimpulan

Danitu, rakan-rakan! Anda telah meningkatkan kemahiran SQL anda dengan kuasa auto-increment. Ingat, column auto-increment sangat berguna untuk membuat identifier unik, tetapi gunakan mereka bijak. Mereka seperti rempah-rempah dalam memasak – penting, tetapi anda tidak mahu menggunainya terlalu banyak!

Dalam tahun-tahun pengajaran saya, saya telah melihat pelajar dari kebingungan ke "aha!" saat mereka memahami auto-increment. Itu seperti menonton lampu pemberian bercahaya, dan tiba-tiba, desain pangkalan data menjadi lebih menarik!

Terus berlatih, tetap curioius, dan sebelum anda tahu, anda akan menjadi orang yang dapat diandalkan untuk segala halangan SQL dalam lingkungan anda. Selamat mengoding, dan may your queries always return the results you expect!

Credits: Image by storyset