sql >> Base de Datos >  >> RDS >> Database

¿Cómo agregar una columna en la tabla en SQL?

Cómo agregar una columna en una tabla en SQL

Introducción

  • Para agregar una columna en una tabla ya creada, se necesita usar el comando ALTER junto con la cláusula ADD.
  • Si en la consulta no se especifica dónde se agregará la nueva columna, se agregará de forma predeterminada como última columna.
  • También se puede agregar una nueva columna al principio o incluso después de una columna específica de una tabla ya creada.
  • Puede agregar una columna o más de una columna a la vez usando una sola consulta SQL.

(A). Agregar una nueva columna en la última de una tabla existente

Sintaxis:

ALTER TABLE tablename ADD (ColumnName datatype);

dónde ,

  1. Tablename es el nombre de una tabla ya existente a la que debe agregar una nueva columna.
  2. Column_name es el nombre de la columna que se agregará a una tabla ya existente.

Ejemplo:

Primero, crearemos una base de datos con el nombre “studentdb ”. Luego, en esa base de datos, crearemos una tabla "estudiante" e insertaremos registros en la tabla. Consideraremos la misma base de datos y también la misma tabla para ejemplos posteriores.

Ahora, agregaremos una nueva columna "Ciudad" a una tabla 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) 

Se agrega la nueva columna 'Ciudad' a una tabla de estudiantes existente. Dado que, en la consulta, no hemos especificado dónde se debe agregar, por lo que se agrega de manera predeterminada como la última columna.

(B) Agregar más de una columna a una tabla existente

Sintaxis:

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

Ejemplo:

Ahora, agregaremos dos nuevas columnas "Ciudad" y "Marcas" a una tabla existente usando una sola consulta.

mysql> USAR base de datos de estudiante;

Salida:

 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; 

Salida:

 +---------+-----------+-----------+-------------+------+-------+
 | 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) 

Las nuevas columnas 'Ciudad' y 'Marcas' se agregan a una tabla de estudiantes existente. Dado que, en la consulta, no hemos especificado dónde se debe agregar, por lo que, de manera predeterminada, ambas columnas se agregan al final usando una sola consulta.

(C) Agregar una columna en la primera posición de una tabla existente

Sintaxis :

ALTER TABLE tablename ADD ColumnName datatype FIRST;

Ejemplo: Ahora, agregaremos una nueva columna 'Sr_No' a una tabla existente como primera columna.

mysql> USE studentdb;

Salida:

 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; 

Salida:

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

Salida:

 +-------+---------+-----------+-----------+-------------+
 | 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) 

Se agrega la nueva columna 'Sr_No' a una tabla de estudiantes existente. Dado que, en la consulta, hemos especificado la palabra clave 'FIRST', por lo que se agrega 'Sr_No' como primera columna.

(D) Agregar una nueva columna después de una columna específica de una tabla existente

Sintaxis:

ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;

Ejemplo:

Ahora, agregaremos una nueva columna "Marcas" a una tabla existente después de "Nombre_del_curso".

mysql> USE studentdb;

Salida:

 Database changed
 mysql> SELECT *FROM student; 

Salida:

 +---------+-----------+-----------+-------------+------+
 | 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; 

Salida :

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

Salida:

 +---------+-----------+-----------+-------------+-------+------+
 | 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) 

Se agrega la nueva columna 'Marcas' a una tabla de estudiantes existente. Dado que, en la consulta, hemos especificado la palabra clave 'DESPUÉS' con el nombre de la columna después de la cual se agregará la nueva columna. Por lo tanto, se agrega 'Marcas' después de 'Nombre_del_curso'.