MySQL MariaDB

Menggunakan Kekangan Unik MySQL

Menggunakan Kekangan Unik MySQL
MySQL CONSTRAINT dikeluarkan untuk menjelaskan peraturan yang mengizinkan atau membatasi nilai dalam bidang yang mungkin menyimpan atau membatasi data yang dapat dimasukkan ke dalam baris. Tujuan mengenakan sekatan adalah untuk menjaga kredibiliti pangkalan data. Salah satu daripadanya adalah kekangan yang UNIK.

Sekatan UNIK menjamin bahawa hampir semua elemen dalam bidang berbeza antara satu sama lain. Untuk bidang atau kumpulan bidang, had KUNCI UNIK dan PRIMARY saling menjamin keperibadian. Walau bagaimanapun, kami mungkin mempunyai beberapa kekangan UNIK di setiap jadual, walaupun satu had KUNCI PRIMER untuk setiap jadual. Mari pelajari dengan mencuba beberapa contoh.

Kekangan Unik melalui Workbench:

Pertama sekali, kita harus belajar mengenai cara menambahkan kekangan Unik ke meja semasa menggunakan MySQL Workbench 8.0. Buka MySQL Workbench 8 anda yang baru dipasang.0 dan sambungkan ke pangkalan data.

Di kawasan pertanyaan, anda harus menulis arahan di bawah untuk membuat jadual 'Orang'. Jadual ini mempunyai 4 lajur dengan satu kunci utama. Kita mesti menentukan satu lajur yang unik. Seperti yang anda lihat, kami telah membersihkan lajur 'Id' sebagai lajur 'UNIK':

>> BUAT JADUAL Orang (ID int KUNCI PRIMARY NOT NULL, LastName varchar (255) NOT NULL, FirstName varchar (255), Age int, UNIQUE (ID));

Sekarang jadual "Orang" telah dibuat dengan kolom "ID" yang UNIK. Anda dapat mencari jadual di bawah "Navigator" dan "Skema" sambil disenaraikan dalam pilihan "Jadual".

Ketika memasukkan catatan, ketika Anda menekan pada tombol "Terapkan", ia akan memeriksa catatan yang dimasukkan seperti yang ditunjukkan di bawah. Anda dapat melihat kami mempunyai satu rekod pendua pada baris 3, dan 4 yang mempunyai "ID" yang sama. Ketuk butang "Terapkan" untuk menerapkan perubahan.

Pada gambar di bawah, terdapat ralat yang digandakan lajur "ID", yang merupakan nilai "13".

Setelah membetulkan rekod, apabila anda menerapkan perubahan, ia akan berfungsi dengan betul.

Kekangan Unik melalui Command-Line Shell:

Di shell baris arahan MySQL, kami akan menambahkan kunci UNIK untuk satu atau beberapa lajur. Buka baris arahan anda terlebih dahulu untuk melihat sekilas setiap contoh berikut. Ketik kata laluan anda untuk menggunakan shell arahan.

Contoh 01: Pada Lajur Tunggal

Dalam sintaks ini, seperti dalam spesifikasi lajur, kami menggunakan istilah UNIK yang ingin anda gunakan undang-undang keunikan. Setelah kami memasukkan atau mengubah nilai yang membuat pendua di lajur tertentu, pengubahsuaian akan ditolak oleh MySQL dan pengecualian akan diberikan juga. Akan ada sekatan lajur dalam had Khusus ini. Dan anda boleh menggunakannya untuk menerapkan peraturan unik satu bidang juga. Berikut adalah sintaks untuk kekunci UNIK satu lajur:

>> BUAT TABLE table_name (col datatype UNIQUE, col datatype);

Mari buat jadual "pembekal" dalam pangkalan data "data" dengan tiga lajur di dalamnya. Lajur "ID" didefinisikan sebagai "UNIK".

>> BUAT data JADUAL.pembekal (id INT AUTO_INCREMENT NOT NULL UNIQUE, Name VARCHAR (50) NOT NULL, Area VARCHAR (50));

Semasa memeriksa, anda dapat melihat jadual belum mempunyai rekod.

>> PILIH * DARI data.pembekal;

Mari masukkan rekod ke dalam jadual. Rekod pertama akan dimasukkan ke dalam jadual dengan lancar, seperti gambar di bawah.

Rekod kedua akan dimasukkan dengan lancar sekali lagi kerana ia tidak mempunyai nilai pendua pada lajur "ID". Sebaliknya, ia mengambil nilai yang sama dengan yang digunakan dalam pertanyaan pertama di lajur "Area".

Semasa memasukkan rekod ketiga, kami telah memberikan nilai pendua “1” seperti yang telah kami sediakan dalam pernyataan sisipan pertama. Ini akan menghasilkan kesalahan bahawa lajur "ID" mendapat nilai pendua, seperti yang ditunjukkan pada gambar di bawah.

Semasa memeriksa lagi, anda dapat melihat bahawa jadual hanya mempunyai catatan dua penyataan sisipan pertama. Walaupun tidak ada catatan dari pernyataan sisipan ketiga.

>> PILIH * DARI data.pembekal;

Contoh 02: Pada Pelbagai Lajur

Dengan format ini, setelah istilah UNIK, kami menerapkan kumpulan lajur yang dipisahkan koma dalam tanda kurung. Komposisi nilai dalam bidang col1 dan col2 digunakan oleh MySQL untuk menentukan keunikan.

>> BUAT TABLE table_name (jenis data col1, jenis data col2, UNIK (col1, col2));

Kami telah membuat tabel "menteri" dalam pangkalan data "data" dengan lima lajur. Lajur "ID" didefinisikan sebagai "UNIK" dan "PRIMARY". Kata kunci "CONSTRAINT" digunakan untuk menamakan kekangan kunci yang unik sebagai "uc_add_sal". Kata kunci "UNIK" digunakan untuk menentukan batasan UNIK pada lajur yang ditentukan dalam tanda kurung, e.g., Alamat dan "Gaji". Sekarang kita mempunyai tiga lajur yang mempunyai kekangan "UNIK".

>> BUAT data JADUAL.menteri (KUNCI UTAMA PROGRAM INT AUTO_INCREMENT TIDAK NILAI UNIK, Nama VARCHAR (50) BUKAN NULL, Alamat VARCHAR (50), Pekerjaan VARCHAR (50), Gaji VARCHAR (50), CONSTRAINT uc_add_sal UNIK (Alamat, Gaji));

Semasa memeriksa jadual, anda dapat melihat jadual kosong sekarang.

>> PILIH * DARI data.Menteri;

Mari masukkan beberapa rekod ke dalamnya. Rekod pertama akan berjaya ditambahkan ke jadual kerana ia adalah baris pertama dan tidak ada baris yang sesuai.

Masukkan rekod unik lain tanpa nilai pendua pada lajur mana pun, seperti yang ditunjukkan di bawah.

Itu tidak mempengaruhi ketika kita memasukkan nilai pendua untuk lajur yang tidak mempunyai batasan "UNIK". Lihat pertanyaan di bawah. Ini memiliki nilai pendua pada lajur "Nama" dan "Pekerjaan". Ia berfungsi dengan baik kerana kedua lajur ini tidak mempunyai batasan "UNIK" yang ditentukan.

Sebaliknya, apabila kita memasukkan nilai pendua, e.g., "13" dan "Rawalpindi", ini akan menghasilkan kesalahan, seperti yang ditunjukkan di bawah. Ini kerana "13" dan "Rawalpindi" telah ditentukan sebelumnya.

Semasa memeriksa, kami hanya mempunyai tiga rekod dalam jadual, disisipkan oleh tiga pertanyaan pertama.

>> PILIH * DARI data.Menteri;

Kesimpulan:

Kami telah melakukan dengan teliti semua contoh menentukan batasan UNIK pada lajur tunggal dan berbilang semasa menggunakan MySQL Workbench 8.0 dan shell pelanggan baris arahan MySQL. Mudah-mudahan, anda tidak akan menghadapi masalah semasa menyelesaikan masalah yang berkaitan dengan kunci UNIK.

Cara menukar saiz, warna & skema penunjuk dan kursor tetikus pada Windows 10
Penunjuk dan kursor tetikus di Windows 10 adalah aspek yang sangat penting dalam sistem operasi. Ini boleh dikatakan untuk sistem operasi lain juga, j...
Enjin Permainan Sumber Percuma dan Terbuka untuk Membangunkan Permainan Linux
Artikel ini akan merangkumi senarai enjin permainan sumber percuma dan terbuka yang dapat digunakan untuk mengembangkan permainan 2D dan 3D di Linux. ...
Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah penambahan kedua belas untuk siri Tomb Raider - francais permainan aksi-pengembaraan yang dibuat oleh Eidos Montreal....