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