Unique in SQL

Nel linguaggio SQL il vincolo Unique impone che un attributo o un gruppo di attributi siano unici nella tabella.

Questo vincolo è usato per definire una superchiave.

Gli attributi unici non possono ripetersi in più righe della tabella, salvo nel caso in cui siano nulli.

Nota. Gli attributi unici possono essere ripetuti in più righe soltanto se ospitano valori nulli (NULL). Per evitare che ci siano anche i valori nulli devo aggiungere a Unique il vincolo Not Null.

Si tratta di un vincolo intrarelazionale perché può essere applicato dentro una relazione (tabella).

    Un esempio pratico

    L'attributo matricola della seguente tabella è un attributo unico.

    Quindi, non può essere ripetuto nella tabella.

    CREATE TABLE anagrafica
    (
    Matricola number(5) UNIQUE,
    Cognome varchar(20) ,
    Nome varchar(20),
    DataNascita date,
    Ufficio varchar (12)
    )

    L'attributo matricola non può contenere valori ripetuti.

    un esempio di superchiave minimale

    Può comunque ospitare dei valori nulli (NULL).

    Per evitare che ci siano valori nulli ripetuti devo aggiungere al campo matricola anche il vincolo NOT NULL

    CREATE TABLE anagrafica
    (
    Matricola number(5) UNIQUE NOT NULL,
    Cognome varchar(20),
    Nome varchar(20),
    DataNascita date,
    Ufficio varchar (12)
    )

    Questo è un caso di vincolo di dominio perché coinvolge un solo attributo.

    Per coinvolgere più attributi simultaneamente devo ricorrere ai vincoli di tabella.

    Esempio 2

    Per definire l'attributo unique su un gruppo di attributi della tabella uso una sintassi differente.

    Definisco la superchiave dopo la definizione degli attributi elencando i campi della superchiave tra parentesi.

    CREATE TABLE anagrafica
    (
    Matricola number(5),
    Cognome varchar(20) ,
    Nome varchar(20),
    DataNascita date,
    Ufficio varchar (12),
    UNIQUE (Cognome, Nome)
    )

    Nel precedente esempio la combinazione dei valori degli attributi Cognome e Nome compone una superchiave e non può ripetersi nella tabella.

    Pertanto, non possono esserci omonimie nelle righe della tabella.

    un esempio di superchiave minimale

    Quest'ultimo è un esempio di vincolo di tabella perché coinvolge due o più attributi simultaneamente.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Menu principale

    1. Il linguaggio Sql
    2. Come installare MySQL sul PC
    3. Come installare PostgreSQL
    4. Come creare una tabella
    5. Come fare una selezione
    6. Come modificare i dati in una tabella