logo

Cheie unică MySQL

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.

Cheie unică MySQL

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 .

Cheie unică MySQL

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:

Cheie unică MySQL

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.

Cheie unică MySQL

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:

Cheie unică MySQL