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

Come aggiungere una colonna nella tabella in SQL?

Come aggiungere una colonna nella tabella in SQL

Introduzione

  • Per aggiungere una colonna in una tabella già creata, è necessario utilizzare il comando ALTER insieme alla clausola ADD.
  • Se nella query non è specificato dove aggiungere la nuova colonna, per impostazione predefinita verrà aggiunta come ultima colonna.
  • Si può anche aggiungere una nuova colonna alla prima o anche dopo una colonna specifica di una tabella già creata.
  • Puoi aggiungere una o più colonne alla volta utilizzando una singola query SQL.

(A). Aggiunta di una nuova colonna all'ultima di una tabella esistente

Sintassi:

ALTER TABLE tablename ADD (ColumnName datatype);

dove ,

  1. Tablename è il nome di una tabella già esistente a cui devi aggiungere una nuova colonna.
  2. Column_name è il nome della colonna da aggiungere a una tabella già esistente.

Esempio:

Per prima cosa creeremo un database con il nome “studentdb ”. Quindi in quel database creeremo una tabella "studente" e inseriremo i record nella tabella. Considereremo lo stesso database e anche la stessa tabella per gli esempi successivi.

Ora aggiungeremo una nuova colonna "Città" a una tabella esistente.

 mysql> USE studentdb;
 Database changed
 mysql> SELECT *FROM student;
 +---------+-----------+-----------+-------------+
 | Stud_ID | Stud_Name | Course_ID | Course_Name |
 +---------+-----------+-----------+-------------+
 |       1 | Prajakta  |       101 | DBMS        |
 |       2 | Shweta    |       102 | CN          |
 |       3 | Nikita    |       103 | OS          |
 |       4 | Ankita    |       104 | C           |
 +---------+-----------+-----------+-------------+
 4 rows in set (0.00 sec)
 mysql> ALTER TABLE student ADD (City VARCHAR(20));
 Query OK, 4 rows affected (0.29 sec)
 Records: 4  Duplicates: 0  Warnings: 0
 mysql> SELECT *FROM student;
 +---------+-----------+-----------+-------------+------+
 | Stud_ID | Stud_Name | Course_ID | Course_Name | City |
 +---------+-----------+-----------+-------------+------+
 |       1 | Prajakta  |       101 | DBMS        | NULL |
 |       2 | Shweta    |       102 | CN          | NULL |
 |       3 | Nikita    |       103 | OS          | NULL |
 |       4 | Ankita    |       104 | C           | NULL |
 +---------+-----------+-----------+-------------+------+
 4 rows in set (0.00 sec) 

La nuova colonna "Città" viene aggiunta a una tabella studenti esistente. Poiché, nella query non abbiamo specificato dove deve essere aggiunto, per impostazione predefinita viene aggiunto come ultima colonna.

(B)Aggiunta di più colonne a una tabella esistente

Sintassi:

ALTER TABLE tablename ADD (ColumnName1 datatype, ColumnName2 datatype);

Esempio:

Ora aggiungeremo due nuove colonne "Città" e "Marchi" a una tabella esistente utilizzando un'unica query.

mysql> USE studentdb;

Risultato:

 Database changed
 mysql> SELECT *FROM student;
 +---------+-----------+-----------+-------------+
 | Stud_ID | Stud_Name | Course_ID | Course_Name |
 +---------+-----------+-----------+-------------+
 |       1 | Prajakta  |       101 | DBMS        |
 |       2 | Shweta    |       102 | CN          |
 |       3 | Nikita    |       103 | OS          |
 |       4 | Ankita    |       104 | C           |
 +---------+-----------+-----------+-------------+
 4 rows in set (0.00 sec)
 mysql> ALTER TABLE student ADD (City VARCHAR(20),Marks INT);
 Query OK, 4 rows affected (0.40 sec)
 mysql> SELECT *FROM student; 

Risultato:

 +---------+-----------+-----------+-------------+------+-------+
 | Stud_ID | Stud_Name | Course_ID | Course_Name | City | Marks |
 +---------+-----------+-----------+-------------+------+-------+
 |       1 | Prajakta  |       101 | DBMS        | NULL |  NULL |
 |       2 | Shweta    |       102 | CN          | NULL |  NULL |
 |       3 | Nikita    |       103 | OS          | NULL |  NULL |
 |       4 | Ankita    |       104 | C           | NULL |  NULL |
 +---------+-----------+-----------+-------------+------+-------+
 4 rows in set (0.00 sec) 

Le nuove colonne "Città" e "Punti" vengono aggiunte a una tabella studente esistente. Poiché, nella query non abbiamo specificato dove deve essere aggiunta, per impostazione predefinita entrambe le colonne vengono aggiunte per ultime utilizzando una singola query.

(C) Aggiunta di una colonna alla prima posizione di una tabella esistente

Sintassi :

ALTER TABLE tablename ADD ColumnName datatype FIRST;

Esempio: Ora aggiungeremo una nuova colonna "Sr_No" a una tabella esistente come prima colonna.

mysql> USE studentdb;

Risultato:

 Database changed
 mysql> SELECT *FROM student;
 +---------+-----------+-----------+-------------+
 | Stud_ID | Stud_Name | Course_ID | Course_Name |
 +---------+-----------+-----------+-------------+
 |       1 | Prajakta  |       101 | DBMS        |
 |       2 | Shweta    |       102 | CN          |
 |       3 | Nikita    |       103 | OS          |
 |       4 | Ankita    |       104 | C           |
 +---------+-----------+-----------+-------------+
 4 rows in set (0.00 sec)
 mysql> ALTER TABLE student ADD Sr_No INT FIRST; 

Risultato:

 Query OK, 4 rows affected (0.24 sec)
 Records: 4  Duplicates: 0  Warnings: 0
 mysql> SELECT *FROM student; 

Risultato:

 +-------+---------+-----------+-----------+-------------+
 | Sr_No | Stud_ID | Stud_Name | Course_ID | Course_Name |
 +-------+---------+-----------+-----------+-------------+
 |  NULL |       1 | Prajakta  |       101 | DBMS        |
 |  NULL |       2 | Shweta    |       102 | CN          |
 |  NULL |       3 | Nikita    |       103 | OS          |
 |  NULL |       4 | Ankita    |       104 | C           |
 +-------+---------+-----------+-----------+-------------+
 4 rows in set (0.00 sec) 

La nuova colonna "Sr_No" viene aggiunta a una tabella studenti esistente. Poiché, nella query abbiamo specificato la parola chiave "PRIMA", quindi "Sr_No" viene aggiunto come prima colonna.

(D) Aggiunta di una nuova colonna dopo una colonna specifica di una tabella esistente

Sintassi:

ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;

Esempio:

Ora aggiungeremo una nuova colonna "Marks" a una tabella esistente dopo "Course_Name".

mysql> USE studentdb;

Risultato:

 Database changed
 mysql> SELECT *FROM student; 

Risultato:

 +---------+-----------+-----------+-------------+------+
 | Stud_ID | Stud_Name | Course_ID | Course_Name | City |
 +---------+-----------+-----------+-------------+------+
 |       1 | Prajakta  |       101 | DBMS        | NULL |
 |       2 | Shweta    |       102 | CN          | NULL |
 |       3 | Nikita    |       103 | OS          | NULL |
 |       4 | Ankita    |       104 | C           | NULL |
 +---------+-----------+-----------+-------------+------+
 4 rows in set (0.00 sec)
 mysql> ALTER TABLE student ADD Marks INT AFTER Course_Name; 

Risultato :

 Query OK, 4 rows affected (0.28 sec)
 Records: 4  Duplicates: 0  Warnings: 0 
mysql> SELECT *FROM student;

Risultato:

 +---------+-----------+-----------+-------------+-------+------+
 | Stud_ID | Stud_Name | Course_ID | Course_Name | Marks | City |
 +---------+-----------+-----------+-------------+-------+------+
 |       1 | Prajakta  |       101 | DBMS        |  NULL | NULL |
 |       2 | Shweta    |       102 | CN          |  NULL | NULL |
 |       3 | Nikita    |       103 | OS          |  NULL | NULL |
 |       4 | Ankita    |       104 | C           |  NULL | NULL |
 +---------+-----------+-----------+-------------+-------+------+
 4 rows in set (0.00 sec) 

La nuova colonna "Voti" viene aggiunta a una tabella studente esistente. Poiché, nella query abbiamo specificato la parola chiave "AFTER" con il nome della colonna dopo la quale deve essere aggiunta la nuova colonna. Quindi, "Marks" viene aggiunto dopo "Course_Name".