Python SQLAlchemy – Actualizar la estructura de la tabla

En este artículo, actualizaremos la estructura de la tabla usando el módulo sqlalchemy.

La estructura de la tabla incluye el nombre de las columnas, el tipo de datos de las columnas, las restricciones, las claves, etc., que actualizaremos en esta publicación.

Instalación de los requisitos:

Primero instalemos el módulo SQLAlchemy ejecutando el siguiente comando pip en la terminal:

pip install sqlalchemy pymysql

Nota: pymysql es una dependencia de sqlalchemy que debemos instalar para esta publicación

base de datos utilizada:

Implementación paso a paso

Paso 1: Importación y conexión

El primer paso incluye importar el módulo sqlalchemy y la conexión a la base de datos. Esto lo podemos hacer con el siguiente código:

Python3

from sqlalchemy import create_engine
  
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
    url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()

Paso 2: Definición del nombre de la tabla

Definamos ahora el nombre de la tabla que usaremos:

Python3

table_name = 'students'

Paso 3: Definición y ejecución de la consulta

Entonces ahora definiremos la consulta sql para actualizar la estructura de la tabla. Para realizar nuestra tarea, usaremos el comando alter de sql que se usa para actualizar la tabla. 

Sintaxis del comando de modificación:

ALTER TABLE table_name CLAUSE change_in_structure;

Aquí, las cláusulas pueden ser: ADD , RENAME , CHANGE , DROP , MODIFY

El uso de cada cláusula es el siguiente:

  • ADD : se usa para agregar una nueva columna
  • RENAME : se utiliza para cambiar el nombre de la tabla
  • CAMBIO : se usa para cambiar el nombre de una columna
  • DROP : se usa para soltar una columna
  • MODIFICAR : se utiliza para modificar una columna

Sintaxis de una consulta con cláusula add:

ALTER TABLE table_name ADD column_name RESTRICCIONES DE TIPO DE DATOS; 

Sintaxis de consulta con cláusula de cambio de nombre:

ALTER TABLE table_name RENAME new_name_of_table ;

Sintaxis de una consulta con cláusula de cambio:

ALTER TABLE table_name CHANGE old_column new_column RESTRICCIONES DE TIPO DE DATOS ;

Sintaxis de una consulta con cláusula drop:

ALTER TABLE table_name DROP column_name;

Sintaxis de una consulta con cláusula de modificación:

ALTER TABLE nombre_tabla MODIFY nombre_columna RESTRICCIONES DE TIPO DE DATOS ;

Veamos un ejemplo de cada uno de los anteriores:

Ejemplo 1: Agregar una nueva columna

Agreguemos una nueva columna a nuestra tabla llamada «género» que puede aceptar 2 valores, a saber, «m» para hombre y «f» para mujer.

Python3

from sqlalchemy import create_engine
  
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
    url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()
  
table_name = 'students'
  
query = f'ALTER TABLE {table_name} ADD gender ENUM("m","f") ;'
connection.execute(query)

Producción:

Ejemplo 2: Soltar la columna

Dejemos caer la columna de «género» que hemos creado anteriormente en este ejemplo.

Python3

from sqlalchemy import create_engine
  
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
    url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()
  
table_name = 'students'
  
query = f'ALTER TABLE {table_name} DROP gender ;'
connection.execute(query)

Producción:

Ejemplo 3: Cambiar el nombre de una columna

Cambiemos el nombre de la columna «sno» a «id» con la ayuda de la cláusula CHANGE en el comando ALTER de sql.

Python3

from sqlalchemy import create_engine
  
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
    url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()
  
table_name = 'students'
  
query = f'ALTER TABLE {table_name} CHANGE sno id INT;'
connection.execute(query)

Producción:

Ejemplo 4: Modificación de una columna

Modifiquemos nuestra columna «id» y convirtámosla en una clave principal. 

Python3

from sqlalchemy import create_engine
  
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
    url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()
  
table_name = 'students'
  
query = f'ALTER TABLE {table_name} MODIFY id INT PRIMARY KEY;'
connection.execute(query)

Salida :

Publicación traducida automáticamente

Artículo escrito por mycodenotein 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 *