Database
 sql >> Database >  >> RDS >> Database

VINCOLI SQL

Vincoli SQL specifica le regole/limitazioni/restrizioni per i dati presenti nella tabella. I vincoli SQL vengono specificati al momento della creazione della tabella o dopo la creazione della tabella utilizzando il comando ALTER. Esistono due tipi di vincoli vincolo a livello di colonna e vincolo a livello di tabella .Come specifica il livello di colonna del nome, specifica una colonna particolare. In un vincolo a livello di tabella, specifica più di una colonna o tutte le colonne della tabella.NON NULL: Garantisce che il valore della colonna specificato non possa essere NULL.UNIQUE: Garantisce che ogni valore nella colonna sia diverso.CHIAVE PRIMARIA: La chiave primaria garantisce sia NOT NULL che UNIQUE. Significa che il valore non può essere nullo e dovrebbe essere diverso l'uno dall'altro. Pertanto, la chiave primaria identifica in modo univoco ogni record nella tabella.CHIAVE STRANIERA: Identifica in modo univoco il record da un'altra tabella. La chiave esterna è un riferimento all'altra tabella ed è come la chiave primaria di un'altra tabella.DEFAULT: Imposta il valore predefinito quando il valore non viene fornito.CONTROLLA: Garantisce che tutti i valori nella colonna soddisfino una condizione.INDEX: L'indice viene creato e utilizzato per recuperare i dati dal database.

NON NULL

Il valore predefinito per ogni colonna è NULL. I vincoli Not Null assicurano che il valore della colonna non sia nullo. Questo vincolo assicura sempre che la colonna abbia un valore. Non consente l'inserimento o l'aggiornamento di record senza menzionare il valore in questo campo. L'utente può aggiungere questo vincolo a una o più o a tutte le colonne della tabella.Sintassi: CREATE  TABLE nome_tabella (tipo di dati della colonna 1 NON NULL,………);Esempio: Crea tabella STUDENT(student_id int NOT NULL,student_name varchar(10),student_dept varchar(10) NOT NULL,classyear int); Nell'esempio sopra, NON NULL il vincolo viene applicato su due colonne student_id e student_dept nella tabella STUDENT durante la creazione della tabella. La descrizione della tabella STUDENT mostra quali colonne possono essere NULL o non NULL. Vedere la schermata di output al momento dell'inserimento dei valori nella tabella, il vincolo non nullo non consente di inserire un valore NULL in quei campi su cui viene applicato il vincolo.UNICO Il vincolo univoco evita le voci duplicate nella colonna. Una tabella può avere più chiavi univoche.Sintassi: CREATE  TABLE nome_tabella (tipo di dati colonna 1 UNIQUE,………);Esempio: crea la tabella student(student_id int Unique,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ); Puoi scrivere la query sopra in un'altra forma. Crea tabella student(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ,unique (student_id));# definisce più colonne univoche in una volta Sintassi: CREATE  TABLE nome_tabella(tipo di dati colonna 1, ……… colonna n, vincolo nome_vincolo Univoco (colonna1,..));Esempio: crea la tabella student(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ,Constraint cs_studentunique (student_id, student_name)); # Aggiungi un vincolo UNIQUE utilizzando l'istruzione ALTERSintassi: Alter table table_nameAdd Unique (column_name);Esempio: Alter table StudentAdd Unique (student_id);Sintassi: Alter table nome_tabellaAdd Constraint nome_vincolo Univoco (colonna1,colonna2);Esempio: Alter table StudentAdd Constraint cs_student Unique (student_id,student_name);Chiave primaria La chiave primaria identifica in modo univoco ogni record nella colonna, una tabella ha un'unica chiave primaria. La chiave primaria può essere una singola colonna o un gruppo di colonne.Sintassi: Crea tabella nome_tabella( tipo di dati colonna Chiave primaria, tipo di dati colonna2,………);Esempio: Crea tabella STUDENT(student_id int Primary Key,student_name varchar(20),student_dept varchar(20),classyear int); Sintassi: Crea tabella nome_tabella( tipo di dati colonna1, tipo di dati colonna2,………tipo di dati colonna n, chiave primaria (nome_colonna));Esempio: Crea tabella Student(student_id int,student_name varchar(10),student_dept varchar(10),classyear int,Primary key (student_id)); # Utilizzo dell'istruzione ALTER Sintassi: altera la tabella nome_tabellaaggiungi chiave primaria (nome_colonna); Esempio: alter table studentadd primary key (student_id); Sintassi: alter table table_namedrop chiave primaria;Esempio: altera la chiave primaria della tabella studentdrop;

DEFAULT

Il vincolo DEFAULT viene utilizzato per impostare il valore predefinito sulla colonna. Questo vincolo può essere applicato su una singola colonna o su più colonne. NULL è un valore predefinito per tutte le colonne della tabella. Quando l'utente applica un vincolo non nullo o primario su una colonna, il suo valore predefinito viene modificato.Sintassi: Crea tabella nome_tabella (Tipo di dati della colonna,…….Valore predefinito del tipo di dati della colonna);Esempio: Crea tabella studente (student_id int,student_name varchar(20),student_dept varchar(20) default 'IT',classyear int); La schermata di output mostra il valore predefinito 'IT' assegnato alla colonna student_dept. 'IT' valore impostato sulla colonna dipartimento_studente quando non viene fornito alcun valore per la colonna dipartimento_studente .  # Aggiunta del vincolo DEFAULT alla colonna utilizzando l'istruzione ALTER   Sintassi : alter table table_namealter column_nameset valore predefinito;Esempio : alter table studentalter student_deptset default 'CS'; Sintassi: alter table table_namealter column_namedrop default;Esempio: alter table studentalter student_deptdrop default; Chiave straniera La chiave esterna è un collegamento tra due tabelle. La chiave primaria di una tabella può essere una chiave di riferimento/estranea di un'altra tabella. La tabella, che contiene la chiave esterna, chiamata come tabella figlio e l'altra tabella la cui chiave primaria si riferisce a quella tabella come tabella padre. L'utente deve inserire i record nella tabella padre prima della tabella figlio se non sono presenti dati nella tabella padre. Una tabella può avere un'unica chiave primaria.Tabella DEPARTMENT
DEPT_ID DEPT_NAME DEPT_HEAD DEPT_LOC
0001 IT Il sig. SK Mishra 06
0002 CS Il sig. DP Patil 04
0003 EXTC La sig. SK Bvendita 05
0004 MECC Il sig. AB Gia 07
Tabella STUDENTI
STUDENT_ID STUDENT_NAME DEPT_NAME CLASSYEAR
10001 RAM IT 02
10002 KIRAN IT 04
10003 NEHA CS 01
10004 ROOPA MECC 01
STUDENTE Chiave primaria   student_idChiave straniera   dept_nameREPARTMENT Chiave primaria   dept_nameHere, DEPARTMENT è la tabella padre e STUDENT è la tabella figlio. Chiave primaria della tabella DEPARTMENT referenziata come chiave esterna nella tabella student denominata dept_name. Potrebbe essere possibile che due tabelle possano avere colonne con lo stesso nome. Supponiamo che nella tabella degli studenti dept_name sia presente con un nome diverso come student_dept o qualsiasi cosa non crei alcun problema. La tabella può contenere una o più chiavi esterne.# Applica il vincolo durante la creazione della tabella Sintassi: // La tabella principale deve contenere una chiave primaria Crea tabella nome_tabella(tipo di dati della colonna Chiave primaria,Colonna ……..,Tipo di dati della colonna n);//la tabella figlio contiene una chiave esterna Crea tabella nome_tabella(tipo di dati colonna,…………,Chiave esterna(nome_colonna)Riferimenti nome_tabella_genitore(nome_colonna della chiave primaria));Esempio: Crea tabella reparto(dept_id int,dept_name varchar(30) Chiave primaria,dept_head varchar(50),dept_loc int);Crea tabella student(student_id int primary key,student_name varchar(30),dept_name varchar(30),classyear int,Foreign chiave (nome_reparto) Dipartimento referenze (nome_reparto)); # Applica il vincolo di chiave esterna utilizzando l'istruzione Alter Sintassi: altera table nome_tabellaaggiungi chiave esterna (nome_colonna)riferimenti nome_tabella_genitore (nome_colonna della chiave primaria);Esempio: alter table studentadd chiave esterna (dept_name)references department(dept_name);Sintassi: altera table nome_tabellaaggiungi vincolo nome_vincolo chiave esterna (nome_colonna)riferimenti nome_tabella_genitore (nome_colonna della chiave primaria);Esempio: alter table studentadd vincolo fk_studentforeign key (dept_name)references department(dept_name);# vincolo DROP Sintassi: alter table nome_tabelladrop chiave esterna nome_vincolo;Esempio: alter table studentdrop chiave esterna fk_student;Crea tabella student (student_id int, student_name varchar(50) not null, student_dept varchar(30) default 'IT',classyear int check (classyear<5 e classyear>0), chiave primaria (student_id) );