Vincoli in SQL significa che stiamo applicando determinate condizioni o restrizioni al database. Ciò significa inoltre che prima di inserire i dati nel database, stiamo verificando alcune condizioni. Se la condizione che abbiamo applicato al database è vera per i dati da inserire, allora solo i dati verranno inseriti nelle tabelle del database.
I vincoli in SQL possono essere classificati in due tipi:
Il vincolo a livello di colonna viene utilizzato per applicare un vincolo su una singola colonna.
Il vincolo a livello di tabella viene utilizzato per applicare un vincolo su più colonne.
Alcuni degli esempi reali di vincoli sono i seguenti:
- Ogni persona ha un ID e-mail univoco. Questo perché durante la creazione di un account di posta elettronica per qualsiasi utente, i servizi di fornitura di posta elettronica come Gmail, Yahoo o qualsiasi altro servizio di fornitura di posta elettronica controlleranno sempre la disponibilità dell'ID di posta elettronica che l'utente desidera per se stesso. Se qualche altro utente utilizza già l'ID e-mail desiderato dall'utente, tale ID non può essere assegnato a un altro utente. Ciò significa semplicemente che due utenti non possono avere gli stessi ID e-mail sullo stesso servizio di fornitura di posta elettronica. Quindi, qui l'ID e-mail è il vincolo sul database dei servizi di fornitura di posta elettronica.
- Ogni volta che impostiamo una password per qualsiasi sistema, ci sono alcuni vincoli da seguire. Questi vincoli possono includere quanto segue:
- La password deve contenere un carattere maiuscolo.
- La password deve contenere almeno otto caratteri.
- La password deve contenere almeno un simbolo speciale.
I vincoli disponibili in SQL sono:
- NON NULLO
- UNICO
- CHIAVE PRIMARIA
- CHIAVE ESTERA
- CONTROLLO
- PREDEFINITO
- CREA INDICE
Cerchiamo ora di comprendere più in dettaglio i diversi vincoli disponibili in SQL con l'aiuto di esempi. Utilizzeremo il database MySQL per scrivere tutte le query.
1. NON NULLO
- NULL significa vuoto, ovvero il valore non è disponibile.
- Ogni volta che la colonna di una tabella viene dichiarata come NOT NULL, il valore di quella colonna non può essere vuoto per nessuno dei record della tabella.
- Deve esistere un valore nella colonna a cui viene applicato il vincolo NOT NULL.
NOTA: NULL non significa zero. NULL significa colonna vuota, nemmeno zero.
Sintassi per applicare il vincolo NOT NULL durante la creazione della tabella:
CREATE TABLE TableName (ColumnName1 datatype NOT NULL, ColumnName2 datatype,…., ColumnNameN datatype);
Esempio:
Crea una tabella studenti e applica un vincolo NOT NULL su una delle colonne della tabella durante la creazione di una tabella.
CREATE TABLE student(StudentID INT NOT NULL, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Per verificare che il vincolo non nullo venga applicato alla colonna della tabella e che la tabella studenti venga creata correttamente, eseguiremo la seguente query:
mysql> DESC student;
Sintassi per applicare il vincolo NOT NULL sulla colonna di una tabella esistente:
ALTER TABLE TableName CHANGE Old_ColumnName New_ColumnName Datatype NOT NULL;
Esempio:
Consideriamo di avere una tabella Student esistente, senza alcun vincolo applicato ad essa. Successivamente, abbiamo deciso di applicare un vincolo NOT NULL a una delle colonne della tabella. Quindi eseguiremo la seguente query:
mysql> ALTER TABLE student CHANGE StudentID StudentID INT NOT NULL;
Per verificare che il vincolo non nullo sia applicato alla colonna della tabella student, eseguiremo la seguente query:
mysql> DESC student;
2. UNICO
- Non sono consentiti valori duplicati nelle colonne a cui è applicato il vincolo UNIQUE.
- La colonna con il vincolo univoco conterrà sempre un valore univoco.
- Questo vincolo può essere applicato a una o più colonne di una tabella, il che significa che su una singola tabella possono esistere più vincoli univoci.
- Utilizzando il vincolo UNIQUE è possibile modificare anche le tabelle già create.
Sintassi per applicare il vincolo UNIQUE su una singola colonna:
CREATE TABLE TableName (ColumnName1 datatype UNIQUE, ColumnName2 datatype,…., ColumnNameN datatype);
Esempio:
Crea una tabella studenti e applica un vincolo UNIQUE su una delle colonne della tabella durante la creazione di una tabella.
mysql> CREATE TABLE student(StudentID INT UNIQUE, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Per verificare che il vincolo univoco venga applicato alla colonna della tabella e che la tabella studenti venga creata correttamente, eseguiremo la seguente query:
mysql> DESC student;
Sintassi per applicare il vincolo UNIQUE su più colonne:
ordinare un elenco di array
CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype,…., ColumnNameN datatype, UNIQUE (ColumnName1, ColumnName 2));
Esempio:
Crea una tabella studenti e applica un vincolo UNIQUE su più colonne della tabella durante la creazione di una tabella.
mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40), UNIQUE(StudentID, Student_PhoneNumber));
Per verificare che il vincolo univoco venga applicato a più di una colonna della tabella e che la tabella studenti venga creata correttamente, eseguiremo la seguente query:
mysql> DESC student;
Sintassi per applicare il vincolo UNIQUE sulla colonna di una tabella esistente:
ALTER TABLE TableName ADD UNIQUE (ColumnName);
Esempio:
Consideriamo di avere una tabella Student esistente, senza alcun vincolo applicato ad essa. Successivamente, abbiamo deciso di applicare un vincolo UNIQUE a una delle colonne della tabella. Quindi eseguiremo la seguente query:
mysql> ALTER TABLE student ADD UNIQUE (StudentID);
Per verificare che il vincolo univoco venga applicato alla colonna della tabella e che la tabella studenti venga creata correttamente, eseguiremo la seguente query:
mysql> DESC student;
3. CHIAVE PRIMARIA
- Il vincolo PRIMARY KEY è una combinazione dei vincoli NOT NULL e Unique.
- Il vincolo NOT NULL e un vincolo UNIQUE insieme formano un vincolo PRIMARY.
- La colonna a cui abbiamo applicato il vincolo primario conterrà sempre un valore univoco e non consentirà valori nulli.
Sintassi del vincolo di chiave primaria durante la creazione della tabella:
CREATE TABLE TableName (ColumnName1 datatype PRIMARY KEY, ColumnName2 datatype,…., ColumnNameN datatype);
Esempio:
oggetto a json in Java
Crea una tabella studenti e applica il vincolo PRIMARY KEY durante la creazione di una tabella.
mysql> CREATE TABLE student(StudentID INT PRIMARY KEY, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Per verificare che il vincolo di chiave primaria sia applicato alla colonna della tabella e che la tabella studenti venga creata correttamente, eseguiremo la seguente query:
mysql> DESC student;
Sintassi per applicare il vincolo di chiave primaria sulla colonna di una tabella esistente:
ALTER TABLE TableName ADD PRIMARY KEY (ColumnName);
Esempio:
Consideriamo di avere una tabella Student esistente, senza alcun vincolo applicato ad essa. Successivamente, abbiamo deciso di applicare il vincolo PRIMARY KEY alla colonna della tabella. Quindi eseguiremo la seguente query:
mysql> ALTER TABLE student ADD PRIMARY KEY (StudentID);
Per verificare che il vincolo di chiave primaria sia applicato alla colonna della tabella student, eseguiremo la seguente query:
mysql> DESC student;
4. CHIAVE ESTERA
- Una chiave esterna viene utilizzata per l'integrità referenziale.
- Quando abbiamo due tabelle e una tabella prende riferimento da un'altra tabella, ovvero la stessa colonna è presente in entrambe le tabelle e quella colonna funge da chiave primaria in una tabella. Quella particolare colonna fungerà da chiave esterna in un'altra tabella.
Sintassi per applicare un vincolo di chiave esterna durante la creazione della tabella:
CREATE TABLE tablename(ColumnName1 Datatype(SIZE) PRIMARY KEY, ColumnNameN Datatype(SIZE), FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName));
Esempio:
Crea una tabella dei dipendenti e applica il vincolo FOREIGN KEY durante la creazione di una tabella.
Per creare una chiave esterna su qualsiasi tabella, dobbiamo innanzitutto creare una chiave primaria su una tabella.
mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40));
Per verificare che il vincolo di chiave primaria sia applicato alla colonna della tabella dei dipendenti, eseguiremo la seguente query:
programma di ereditarietà in Python
mysql> DESC employee;
Ora scriveremo una query per applicare una chiave esterna sulla tabella dipartimento facendo riferimento alla chiave primaria della tabella impiegato, ovvero Emp_ID.
mysql> CREATE TABLE department(Dept_ID INT NOT NULL PRIMARY KEY, Dept_Name VARCHAR(40), Emp_ID INT NOT NULL, FOREIGN KEY(Emp_ID) REFERENCES employee(Emp_ID));
Per verificare che il vincolo di chiave esterna sia applicato alla colonna della tabella dipartimento, eseguiremo la seguente query:
mysql> DESC department;
Sintassi per applicare il vincolo di chiave esterna con il nome del vincolo:
CREATE TABLE tablename(ColumnName1 Datatype PRIMARY KEY, ColumnNameN Datatype(SIZE), CONSTRAINT ConstraintName FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName));
Esempio:
Crea una tabella dei dipendenti e applica il vincolo FOREIGN KEY con un nome di vincolo durante la creazione di una tabella.
Per creare una chiave esterna su qualsiasi tabella, dobbiamo innanzitutto creare una chiave primaria su una tabella.
mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40));
Per verificare che il vincolo di chiave primaria sia applicato alla colonna della tabella student, eseguiremo la seguente query:
mysql> DESC employee;
Ora scriveremo una query per applicare una chiave esterna con un nome di vincolo sulla tabella dipartimento che fa riferimento alla chiave primaria della tabella impiegato, ovvero Emp_ID.
mysql> CREATE TABLE department(Dept_ID INT NOT NULL PRIMARY KEY, Dept_Name VARCHAR(40), Emp_ID INT NOT NULL, CONSTRAINT emp_id_fk FOREIGN KEY(Emp_ID) REFERENCES employee(Emp_ID));
Per verificare che il vincolo di chiave esterna sia applicato alla colonna della tabella dipartimento, eseguiremo la seguente query:
mysql> DESC department;
Sintassi per applicare il vincolo di chiave esterna sulla colonna di una tabella esistente:
ALTER TABLE Parent_TableName ADD FOREIGN KEY (ColumnName) REFERENCES Child_TableName (ColumnName);
Esempio:
Considera che abbiamo un impiegato e un dipartimento di tabella esistenti. Successivamente, abbiamo deciso di applicare un vincolo FOREIGN KEY alla colonna della tabella dipartimento. Quindi eseguiremo la seguente query:
mysql> DESC employee;
mysql> ALTER TABLE department ADD FOREIGN KEY (Emp_ID) REFERENCES employee (Emp_ID);
Per verificare che il vincolo di chiave esterna sia applicato alla colonna della tabella dipartimento, eseguiremo la seguente query:
mysql> DESC department;
5. VERIFICA
- Ogni volta che un vincolo di controllo viene applicato alla colonna della tabella e l'utente desidera inserire il valore in essa, il valore verrà innanzitutto controllato per determinate condizioni prima di inserire il valore in quella colonna.
Sintassi per applicare il vincolo check su una singola colonna:
CREATE TABLE TableName (ColumnName1 datatype CHECK (ColumnName1 Condition), ColumnName2 datatype,…., ColumnNameN datatype);
Esempio:
Crea una tabella studenti e applica il vincolo CHECK per verificare l'età inferiore o uguale a 15 durante la creazione di una tabella.
mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40), Age INT CHECK( Age <= 15)); < pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-26.webp" alt="Constraints in SQL"> <p>To verify that the check constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-27.webp" alt="Constraints in SQL"> <p> <strong>Syntax to apply check constraint on multiple columns:</strong> </p> <pre> CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype CHECK (ColumnName1 Condition AND ColumnName2 Condition),…., ColumnNameN datatype); </pre> <p> <strong>Example:</strong> </p> <p>Create a student table and apply CHECK constraint to check for the age less than or equal to 15 and a percentage greater than 85 while creating a table.</p> <pre> mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40), Age INT, Percentage INT, CHECK( Age 85)); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-28.webp" alt="Constraints in SQL"> <p>To verify that the check constraint is applied to the age and percentage column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-29.webp" alt="Constraints in SQL"> <p> <strong>Syntax to apply check constraint on an existing table's column:</strong> </p> <pre> ALTER TABLE TableName ADD CHECK (ColumnName Condition); </pre> <p> <strong>Example:</strong> </p> <p>Consider we have an existing table student. Later, we decided to apply the CHECK constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ADD CHECK ( Age <=15 ); < pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-30.webp" alt="Constraints in SQL"> <p>To verify that the check constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-31.webp" alt="Constraints in SQL"> <h3>6. DEFAULT</h3> <p>Whenever a default constraint is applied to the table's column, and the user has not specified the value to be inserted in it, then the default value which was specified while applying the default constraint will be inserted into that particular column.</p> <p> <strong>Syntax to apply default constraint during table creation:</strong> </p> <pre> CREATE TABLE TableName (ColumnName1 datatype DEFAULT Value, ColumnName2 datatype,…., ColumnNameN datatype); </pre> <p> <strong>Example:</strong> </p> <p>Create a student table and apply the default constraint while creating a table.</p> <pre> mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40) DEFAULT '[email protected]'); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-32.webp" alt="Constraints in SQL"> <p>To verify that the default constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-33.webp" alt="Constraints in SQL"> <p> <strong>Syntax to apply default constraint on an existing table's column:</strong> </p> <pre> ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value; </pre> <p> <strong>Example:</strong> </p> <p>Consider we have an existing table student. Later, we decided to apply the DEFAULT constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ALTER Student_Email_ID SET DEFAULT '[email protected]'; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-34.webp" alt="Constraints in SQL"> <p>To verify that the default constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-35.webp" alt="Constraints in SQL"> <h3>7. CREATE INDEX</h3> <p>CREATE INDEX constraint is used to create an index on the table. Indexes are not visible to the user, but they help the user to speed up the searching speed or retrieval of data from the database.</p> <p> <strong>Syntax to create an index on single column:</strong> </p> <pre> CREATE INDEX IndexName ON TableName (ColumnName 1); </pre> <p> <strong>Example:</strong> </p> <p>Create an index on the student table and apply the default constraint while creating a table.</p> <pre> mysql> CREATE INDEX idx_StudentID ON student (StudentID); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-36.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-37.webp" alt="Constraints in SQL"> <p> <strong>Syntax to create an index on multiple columns:</strong> </p> <pre> CREATE INDEX IndexName ON TableName (ColumnName 1, ColumnName 2, ColumnName N); </pre> <p> <strong>Example:</strong> </p> <pre> mysql> CREATE INDEX idx_Student ON student (StudentID, Student_PhoneNumber); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-38.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-39.webp" alt="Constraints in SQL"> <p> <strong>Syntax to create an index on an existing table:</strong> </p> <pre> ALTER TABLE TableName ADD INDEX (ColumnName); </pre> <p>Consider we have an existing table student. Later, we decided to apply the DEFAULT constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ADD INDEX (StudentID); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-40.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-41.webp" alt="Constraints in SQL"> <hr></=15></pre></=>
Sintassi per applicare il vincolo di controllo su più colonne:
CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype CHECK (ColumnName1 Condition AND ColumnName2 Condition),…., ColumnNameN datatype);
Esempio:
Crea una tabella studenti e applica il vincolo CHECK per verificare l'età inferiore o uguale a 15 e una percentuale maggiore di 85 durante la creazione di una tabella.
mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40), Age INT, Percentage INT, CHECK( Age 85));
Per verificare che il vincolo check sia applicato alla colonna età e percentuale, eseguiremo la seguente query:
mysql> DESC student;
Sintassi per applicare il vincolo di controllo sulla colonna di una tabella esistente:
ALTER TABLE TableName ADD CHECK (ColumnName Condition);
Esempio:
Considera che abbiamo uno studente di tabella esistente. Successivamente, abbiamo deciso di applicare il vincolo CHECK sulla colonna della tabella degli studenti. Quindi eseguiremo la seguente query:
mysql> ALTER TABLE student ADD CHECK ( Age <=15 ); < pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-30.webp" alt="Constraints in SQL"> <p>To verify that the check constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-31.webp" alt="Constraints in SQL"> <h3>6. DEFAULT</h3> <p>Whenever a default constraint is applied to the table's column, and the user has not specified the value to be inserted in it, then the default value which was specified while applying the default constraint will be inserted into that particular column.</p> <p> <strong>Syntax to apply default constraint during table creation:</strong> </p> <pre> CREATE TABLE TableName (ColumnName1 datatype DEFAULT Value, ColumnName2 datatype,…., ColumnNameN datatype); </pre> <p> <strong>Example:</strong> </p> <p>Create a student table and apply the default constraint while creating a table.</p> <pre> mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40) DEFAULT '[email protected]'); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-32.webp" alt="Constraints in SQL"> <p>To verify that the default constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-33.webp" alt="Constraints in SQL"> <p> <strong>Syntax to apply default constraint on an existing table's column:</strong> </p> <pre> ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value; </pre> <p> <strong>Example:</strong> </p> <p>Consider we have an existing table student. Later, we decided to apply the DEFAULT constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ALTER Student_Email_ID SET DEFAULT '[email protected]'; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-34.webp" alt="Constraints in SQL"> <p>To verify that the default constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-35.webp" alt="Constraints in SQL"> <h3>7. CREATE INDEX</h3> <p>CREATE INDEX constraint is used to create an index on the table. Indexes are not visible to the user, but they help the user to speed up the searching speed or retrieval of data from the database.</p> <p> <strong>Syntax to create an index on single column:</strong> </p> <pre> CREATE INDEX IndexName ON TableName (ColumnName 1); </pre> <p> <strong>Example:</strong> </p> <p>Create an index on the student table and apply the default constraint while creating a table.</p> <pre> mysql> CREATE INDEX idx_StudentID ON student (StudentID); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-36.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-37.webp" alt="Constraints in SQL"> <p> <strong>Syntax to create an index on multiple columns:</strong> </p> <pre> CREATE INDEX IndexName ON TableName (ColumnName 1, ColumnName 2, ColumnName N); </pre> <p> <strong>Example:</strong> </p> <pre> mysql> CREATE INDEX idx_Student ON student (StudentID, Student_PhoneNumber); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-38.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-39.webp" alt="Constraints in SQL"> <p> <strong>Syntax to create an index on an existing table:</strong> </p> <pre> ALTER TABLE TableName ADD INDEX (ColumnName); </pre> <p>Consider we have an existing table student. Later, we decided to apply the DEFAULT constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ADD INDEX (StudentID); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-40.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-41.webp" alt="Constraints in SQL"> <hr></=15>
6. PREDEFINITO
Ogni volta che un vincolo predefinito viene applicato alla colonna della tabella e l'utente non ha specificato il valore da inserire in essa, il valore predefinito specificato durante l'applicazione del vincolo predefinito verrà inserito in quella particolare colonna.
Sintassi per applicare il vincolo predefinito durante la creazione della tabella:
ribasso con immagini
CREATE TABLE TableName (ColumnName1 datatype DEFAULT Value, ColumnName2 datatype,…., ColumnNameN datatype);
Esempio:
Crea una tabella studenti e applica il vincolo predefinito durante la creazione di una tabella.
mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40) DEFAULT '[email protected]');
Per verificare che il vincolo predefinito sia applicato alla colonna della tabella studenti, eseguiremo la seguente query:
mysql> DESC student;
Sintassi per applicare il vincolo predefinito sulla colonna di una tabella esistente:
ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value;
Esempio:
Considera che abbiamo uno studente di tabella esistente. Successivamente, abbiamo deciso di applicare il vincolo DEFAULT sulla colonna della tabella studenti. Quindi eseguiremo la seguente query:
sonu nigam
mysql> ALTER TABLE student ALTER Student_Email_ID SET DEFAULT '[email protected]';
Per verificare che il vincolo predefinito sia applicato alla colonna della tabella studenti, eseguiremo la seguente query:
mysql> DESC student;
7. CREA INDICE
Il vincolo CREATE INDEX viene utilizzato per creare un indice sulla tabella. Gli indici non sono visibili all'utente, ma aiutano l'utente ad accelerare la velocità di ricerca o di recupero dei dati dal database.
Sintassi per creare un indice su una singola colonna:
CREATE INDEX IndexName ON TableName (ColumnName 1);
Esempio:
Crea un indice sulla tabella degli studenti e applica il vincolo predefinito durante la creazione di una tabella.
mysql> CREATE INDEX idx_StudentID ON student (StudentID);
Per verificare che il vincolo di creazione dell'indice sia applicato alla colonna della tabella studenti, eseguiremo la seguente query:
mysql> DESC student;
Sintassi per creare un indice su più colonne:
CREATE INDEX IndexName ON TableName (ColumnName 1, ColumnName 2, ColumnName N);
Esempio:
mysql> CREATE INDEX idx_Student ON student (StudentID, Student_PhoneNumber);
Per verificare che il vincolo di creazione dell'indice sia applicato alla colonna della tabella studenti, eseguiremo la seguente query:
mysql> DESC student;
Sintassi per creare un indice su una tabella esistente:
ALTER TABLE TableName ADD INDEX (ColumnName);
Considera che abbiamo uno studente di tabella esistente. Successivamente, abbiamo deciso di applicare il vincolo DEFAULT sulla colonna della tabella studenti. Quindi eseguiremo la seguente query:
mysql> ALTER TABLE student ADD INDEX (StudentID);
Per verificare che il vincolo di creazione dell'indice sia applicato alla colonna della tabella studenti, eseguiremo la seguente query:
mysql> DESC student;
=15>=>