Database
 sql >> Base de Dados >  >> RDS >> Database

Como adicionar coluna na tabela no SQL?


Como adicionar coluna na tabela no SQL

Introdução
  • Para adicionar uma coluna na tabela já criada, é preciso usar o comando ALTER junto com a cláusula ADD.
  • Se na consulta não for especificado onde a nova coluna deve ser adicionada, por padrão ela será adicionada como última coluna.
  • Pode-se também adicionar uma nova coluna na primeira ou mesmo depois de uma coluna específica de uma tabela já criada.
  • Você pode adicionar uma coluna ou mais de uma coluna por vez usando uma única consulta SQL.

(A). Adicionando uma nova coluna na última de uma tabela existente

Sintaxe:
ALTER TABLE tablename ADD (ColumnName datatype);

onde ,
  1. Tablename é o nome de uma tabela já existente à qual você precisa adicionar uma nova coluna.
  2. Column_name é o nome da coluna que deve ser adicionada a uma tabela já existente.

Exemplo:

Primeiro, vamos criar um banco de dados com o nome “studentdb ”. Então nesse banco de dados vamos criar uma tabela “aluno” e inserir registros na tabela. Consideraremos o mesmo banco de dados e também a mesma tabela para exemplos subsequentes.

Agora, adicionaremos uma nova coluna ‘Cidade’ a uma tabela existente.
 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) 

A nova coluna 'Cidade' é adicionada a uma tabela de alunos existente. Como na consulta não especificamos onde deve ser adicionado, por padrão, ele é adicionado como a última coluna.

(B)Adicionar mais de uma coluna a uma tabela existente

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

Exemplo:

Agora, adicionaremos duas novas colunas 'Cidade' e 'Marcas' a uma tabela existente usando uma única consulta.

mysql> USE studentdb;

Saída:
 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; 

Saída:
 +---------+-----------+-----------+-------------+------+-------+
 | 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) 

Novas colunas 'Cidade' e 'Marcas' são adicionadas a uma tabela de alunos existente. Como na consulta não especificamos onde ela deve ser adicionada, por padrão, ambas as colunas são adicionadas por último usando uma única consulta.

(C) Adicionando uma coluna na primeira posição de uma tabela existente

Sintaxe :
ALTER TABLE tablename ADD ColumnName datatype FIRST;

Exemplo: Agora, adicionaremos uma nova coluna ‘Sr_No’ a uma tabela existente como primeira coluna.
mysql> USE studentdb;

Saída:
 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; 

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

Saída:
 +-------+---------+-----------+-----------+-------------+
 | 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) 

A nova coluna 'Sr_No' é adicionada a uma tabela de alunos existente. Como, na consulta, especificamos a palavra-chave 'FIRST', então 'Sr_No' é adicionado como uma primeira coluna.

(D) Adicionar uma nova coluna após uma coluna específica de uma tabela existente

Sintaxe:
ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;

Exemplo:

Agora, adicionaremos uma nova coluna 'Marks' a uma tabela existente após o 'Course_Name' .
mysql> USE studentdb;

Saída:
 Database changed
 mysql> SELECT *FROM student; 

Saída:
 +---------+-----------+-----------+-------------+------+
 | 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; 

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

Saída:
 +---------+-----------+-----------+-------------+-------+------+
 | 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) 

A nova coluna 'Marcas' é adicionada a uma tabela de alunos existente. Uma vez que, na consulta, especificamos a palavra-chave 'AFTER' com o nome da coluna após a qual a nova coluna deve ser adicionada. Portanto, 'Marks' é adicionado após 'Course_Name'.