¿Cómo agregar una columna a una tabla MySQL en Python?

Requisito previo: Python: MySQL Create Table

Python permite la integración de una amplia gama de servidores de bases de datos con aplicaciones. Se requiere una interfaz de base de datos para acceder a una base de datos desde Python. El módulo MySQL Connector -Python es una API en Python para comunicarse con una base de datos MySQL.  

sentencia ALTER de SQL

Con la declaración ALTER, se puede agregar, eliminar o modificar una columna de una tabla existente, así como también modificar las restricciones de la tabla.

La sintaxis para agregar una columna con declaración ALTER:

ALTER TABLE table_name
ADD new_column_name column_definition
[FIRST | AFTER column_name];

Aquí, table_name es el nombre de la tabla a la que se agrega la columna, new_column_name es el nombre de la columna que se agregará y column_definition es el tipo de datos y la definición de la columna que se agregará. PRIMERO y DESPUÉS son declaraciones opcionales que le indican a MySQL la posición de la nueva columna en la tabla. Si no se especifica este parámetro, la nueva columna se agrega al final de la tabla.

Implementación:

Para agregar una columna a una tabla MySQL en Python, primero establezca una conexión con el servidor de la base de datos. A continuación, cree un objeto de cursor. Este objeto de cursor interactúa con el servidor MySQL y se puede utilizar para realizar operaciones como ejecutar sentencias SQL, obtener datos y llamar a procedimientos. Entonces, usando este objeto de cursor, ejecute la declaración ALTER para agregar una columna al final o en una posición específica. Veamos algunos ejemplos para una mejor comprensión.

Base de datos en uso:

Usaremos una base de datos con una tabla de estudiantes que describa los detalles del estudiante, como el número de registro y el nombre. Antes de que aprendamos a agregar una columna a una tabla, cree una tabla de muestra (insertar valores es opcional).

Ejemplo 1:

Este ejemplo muestra la adición de una columna al final de la tabla. Los pasos son los siguientes:

  • Utilice la función connect() para establecer una conexión con el servidor de la base de datos. Pase el host, el usuario (raíz o su nombre de usuario), la contraseña (si está presente) y los parámetros de la base de datos al método connect().
  • Luego, para crear un objeto de cursor, use la función cursor().
  • Ejecute la declaración ALTER para agregar la columna de transmisión a la tabla de estudiantes.
  • Para verificar si la columna se ha agregado, ejecute y obtenga el resultado de la declaración DESC para describir la estructura de la tabla.

Código:

Python

# Import required packages
import mysql.connector
  
# Establish connection to MySQL database
mydb = mysql.connector.connect(
    host = "localhost",
    user = "username",
    password = "geeksforgeeks",
    database = "College"
)
  
# Create a cursor object
mycursor = mydb.cursor()
  
# MySQL query for adding a column
query = "ALTER TABLE students \
        ADD stream VARCHAR(100) DEFAULT 'CS'"
# Execute the query 
mycursor.execute(query)
  
# Print description of students table
mycursor.execute("desc students")
myresult = mycursor.fetchall()
for row in myresult:
    print(row)
  
# Close database connection
mydb.close()

Producción:

Ejemplo 2:

Este ejemplo muestra la adición de una columna al principio de la tabla. Siga los mismos pasos que en el ejemplo anterior para establecer una conexión y crear un objeto de cursor. Use la palabra clave FIRST en la declaración ALTER para agregar una columna, año de inscripción, al comienzo de la tabla de estudiantes.

Código: 

Python

# Import required packages
import mysql.connector
  
# Establish connection to MySQL database
mydb = mysql.connector.connect(
    host = "localhost",
    user = "username",
    password = "geeksforgeeks",
    database = "College"
)
  
# Create a cursor object
mycursor = mydb.cursor()
  
# MySQL query for adding a column 
# at the beginning of table 
query = "ALTER TABLE students \
        ADD enrollment_year VARCHAR(100) \
        FIRST"
# Execute the query 
mycursor.execute(query)
  
# Print description of students table
mycursor.execute("desc students")
myresult = mycursor.fetchall()
for row in myresult:
    print(row)
  
# Close database connection
mydb.close()

Producción:

Ejemplo 3:

Este ejemplo muestra la adición de una columna en una posición específica de la tabla. Siga los mismos pasos que en el ejemplo 1 para establecer una conexión y crear un objeto de cursor. Use la palabra clave DESPUÉS en la instrucción ALTER para agregar una columna de correo electrónico después de la columna de nombre en la tabla de estudiantes.

Python

# Import required packages
import mysql.connector
  
# Establish connection to MySQL database
mydb = mysql.connector.connect(
    host = "localhost",
    user = "username",
    password = "geeksforgeeks",
    database = "College"
)
  
# Create a cursor object
mycursor = mydb.cursor()
  
# MySQL query for adding a column 
# after a specific column
query = "ALTER TABLE students \
        ADD email VARCHAR(100) \
        AFTER Name"
# Execute the query 
mycursor.execute(query)
  
# Print description of students table
mycursor.execute("desc students")
myresult = mycursor.fetchall()
for row in myresult:
    print(row)
  
# Close database connection
mydb.close()

Producción:

Base de datos después de agregar columnas:

Nota: Si hay valores o filas existentes en la tabla, la nueva columna es Nulo o el valor predeterminado especificado. 

Publicación traducida automáticamente

Artículo escrito por akshisaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *