Rumah > pangkalan data > tutorial mysql > apakah mysql unik

apakah mysql unik

青灯夜游
Lepaskan: 2023-04-19 15:30:18
asal
6078 orang telah melayarinya

Dalam mysql, unik merujuk kepada "kekangan unik", yang bermaksud bahawa nilai medan dalam semua rekod tidak boleh muncul berulang kali. Terdapat berbilang kekangan unik dalam jadual, dan lajur tempat kekangan unik ditetapkan dibenarkan untuk mempunyai nilai nol, tetapi hanya boleh ada satu nilai nol. Sintaks untuk menambah kekangan unik semasa mengubah suai jadual ialah "UBAH JADUAL TAMBAH KEKANGAN UNIK();".

apakah mysql unik

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Dalam mysql, unik merujuk kepada "kekangan unik".

Kekangan unik MySQL (UNIQUE KEY)

Kekangan unik MySQL (Unique Key) bermakna nilai medan dalam semua rekod tidak boleh Berulang kali. Contohnya, selepas menambah kekangan unik pada medan id, nilai id setiap rekod adalah unik dan tidak boleh diulang. Jika nilai id salah satu rekod ialah '0001', maka tidak boleh ada rekod lain dengan nilai id '0001' dalam jadual.

Kekangan unik adalah serupa dengan kekangan utama utama kerana kedua-duanya memastikan keunikan lajur. Perbezaannya ialah terdapat berbilang kekangan unik dalam jadual, dan lajur tempat kekangan unik ditetapkan dibenarkan untuk mempunyai nilai nol, tetapi hanya boleh ada satu nilai nol. Hanya terdapat satu kekangan kunci utama dalam jadual, dan nilai nol tidak dibenarkan. Sebagai contoh, dalam jadual maklumat pengguna, untuk mengelakkan nama pengguna pendua dalam jadual, nama pengguna boleh ditetapkan sebagai kekangan unik.

Tetapkan kekangan unik semasa membuat jadual

Kekangan unik boleh ditetapkan terus semasa mencipta jadual, biasanya pada lajur lain kecuali kunci utama.

Gunakan kata kunci UNIK secara langsung selepas mentakrifkan lajur untuk menentukan kekangan unik Format sintaks adalah seperti berikut:

<字段名> <数据类型> UNIQUE
Salin selepas log masuk

Contoh 1:

Buat jadual data. tb_dept2 dan nyatakan jabatan Nama itu unik, dan pernyataan SQL serta hasil yang dijalankan adalah seperti berikut.

mysql> CREATE TABLE tb_dept2
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22) UNIQUE,
    -> location VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.37 sec)

mysql> DESC tb_dept2;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(40) | YES  | UNI | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.08 sec)
Salin selepas log masuk

Tambahkan kekangan unik semasa mengubah suai jadual

Format sintaks untuk menambah kekangan unik semasa mengubah suai jadual ialah:

ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);
Salin selepas log masuk

Contoh 2:

Ubah suai jadual data tb_dept1 untuk menentukan nama jabatan yang unik Penyataan SQL dan hasil yang dijalankan adalah seperti berikut.

mysql> ALTER TABLE tb_dept1
    -> ADD CONSTRAINT unique_name UNIQUE(name);
Query OK, 0 rows affected (0.63 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   | UNI | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
Salin selepas log masuk

Padamkan kekangan unik

Format sintaks untuk memadamkan kekangan unik dalam MySQL adalah seperti berikut:

ALTER TABLE <表名> DROP INDEX <唯一约束名>;
Salin selepas log masuk

Contoh 3 :

Padamkan kekangan unik unique_name dalam jadual data tb_dept1 Penyataan SQL dan hasil yang dijalankan adalah seperti berikut.

mysql> ALTER TABLE tb_dept1
    -> DROP INDEX unique_name;
Query OK, 0 rows affected (0.20 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
Salin selepas log masuk

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci apakah mysql unik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan