O cheie unică în MySQL este un singur câmp sau o combinație de câmpuri care asigură că toate valorile care vor fi stocate în coloană vor fi unice. Înseamnă că o coloană nu poate stoca valori duplicate . De exemplu, adresele de e-mail și numerele de liste ale studenților din tabelul „student_info” sau numărul de contact al angajaților din tabelul „Angajat” ar trebui să fie unice.
matrice bash
MySQL ne permite să folosim mai mult de o coloană cu constrângere UNIQUE într-un tabel. Poate accepta a nul valoare, dar MySQL a permis doar o valoare nulă pe coloană. Acesta asigură integritate a coloanei sau a grupului de coloane pentru a stoca diferite valori într-un tabel.
Nevoi de cheie unică
- Este util pentru a împiedica cele două înregistrări să stocheze valori identice în coloană.
- Stochează doar valori distincte care mențin integritatea și fiabilitatea bazei de date pentru accesarea informației într-un mod organizat.
- De asemenea, funcționează cu o cheie străină pentru a păstra unicitatea unui tabel.
- Poate conține valoare nulă în tabel.
Sintaxă
Următoarea sintaxă este utilizată pentru a crea o cheie unică MySQL .
Dacă vrem să creăm o singură coloană cheie unică într-un tabel, folosiți sintaxa ca mai jos:
CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... );
Dacă vrem să creăm mai multe coloane de cheie unică într-un tabel, folosiți sintaxa ca mai jos:
CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) );
Dacă nu am specificat numele pentru o constrângere unică, MySQL generează automat un nume pentru această coloană. Deci, este recomandat să folosiți numele constrângerii în timpul creării unui tabel.
Explicația parametrului
Următorul tabel explică parametrii în detaliu.
| Nume parametru | Descrieri |
|---|---|
| nume_tabel | Este numele tabelului pe care îl vom crea. |
| col1, col2 | Sunt numele coloanelor care conțin în tabel. |
| nume_constrângere | Este numele cheii unice. |
| nume_coloană(e) | Numele coloanei va fi o cheie unică. |
Exemplu de cheie unică
Următorul exemplu explică modul în care o cheie unică este utilizată în MySQL.
Această declarație creează un tabel ' Student2 ' cu o constrângere UNICA:
CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) );
Apoi, executați interogările de inserare enumerate mai jos pentru a înțelege cum funcționează:
mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Peter', '[email protected]', 22, 'Texas'), (2, 'Suzi', '[email protected]', 24, 'California'), (3, 'Joseph', '[email protected]', 23, 'Alaska'); mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Stephen', '[email protected]', 22, 'Texas');
Ieșire
În rezultatul de mai jos, putem vedea că primul INSERT interogare se execută corect, dar a doua instrucțiune eșuează și dă o eroare care spune: Duplicați intrarea „1” pentru cheia Stud_ID.
Dacă doriți să definiți cheia unică pe mai multe coloane , utilizați interogarea ca mai jos:
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25), CONSTRAINT uc_rollno_email Unique(Roll_No, Email) );
În rezultat, putem vedea că valoarea cheie unică conține două coloane care sunt Rola numărul și E-mail .
Pentru a verifica acest lucru, executați următoarea instrucțiune:
mysql> SHOW INDEX FROM Student3;
Aici, putem vedea că constrângerea unică a fost adăugată cu succes în tabel:
DROP cheie unică
Instrucțiunea ALTER TABLE ne permite, de asemenea, să aruncăm cheia unică din tabel. Următoarea sintaxă este utilizată pentru a elimina cheia unică:
ALTER TABLE table_name DROP INDEX constraint_name;
În sintaxa de mai sus, nume_tabel este numele tabelului pe care dorim să-l modificăm și nume_constrângere este numele cheii unice pe care o vom elimina.
Exemplu
Această declarație va elimina uc_rollno_email constrângere din tabel permanent.
mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email;
Putem executa instrucțiunea SHOW INDEX la acest lucru.
Cheie unică folosind instrucțiunea ALTER TABLE
Această declarație ne permite să facem modificarea în tabelul existent. Uneori dorim să adăugăm o cheie unică la coloana unui tabel existent; apoi, această declarație este folosită pentru a adăuga cheia unică pentru acea coloană.
Sintaxă
Următoarele sunt sintaxa instrucțiunii ALTER TABLE pentru a adăuga o cheie unică:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list);
Exemplu
Această declarație creează un tabel ' Elevii 3 ' care nu au nicio coloană cheie unică în definiția tabelului.
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) );
După crearea unui tabel, dacă dorim să adăugăm o cheie unică acestui tabel, trebuie să executăm instrucțiunea ALTER TABLE după cum urmează:
mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email);
Putem vedea rezultatul în care ambele instrucțiuni au fost executate cu succes.
Pentru a verifica acest lucru, executați următoarea instrucțiune:
mysql> SHOW INDEX FROM Student3;
Aici, putem vedea că constrângerea unică a fost adăugată cu succes în tabel: