¿Cómo modificar una tabla SQLite usando Python?

En este artículo, discutiremos cómo podemos modificar tablas en la base de datos SQLite desde un programa de Python utilizando el módulo sqlite3. 

Podemos hacer esto usando la instrucción ALTER. Permite:

  • Agregar una o más columnas a la tabla

Cambia el nombre de la tabla.

Agregar una columna a una tabla

La sintaxis de ALTER TABLE para agregar una nueva columna en una tabla existente en SQLite se proporciona a continuación:

ALTER TABLE table_name ADD COLUMN column_name colume_type

La columna se agrega pero tendrá todos los valores para ser NULL.

Para crear una tabla:

Python3

import sqlite3
 
# Connecting to sqlite
connection_obj = sqlite3.connect('geek.db')
 
# cursor object
cursor_obj = connection_obj.cursor()
 
# Drop the GEEK table if already exists.
cursor_obj.execute("DROP TABLE IF EXISTS GEEK")
 
# Creating table
table = """ CREATE TABLE GEEK (
            Email VARCHAR(255) NOT NULL,
            Name CHAR(25) NOT NULL,
            Score INT
        ); """
 
cursor_obj.execute(table)
 
# Inserting data into geek table
connection_obj.execute(
    """INSERT INTO GEEK (Email,Name,Score) VALUES ("geekk1@gmail.com","Geek1",25)""")
connection_obj.execute(
    """INSERT INTO GEEK (Email,Name,Score) VALUES ("geekk2@gmail.com","Geek2",15)""")
connection_obj.execute(
    """INSERT INTO GEEK (Email,Name,Score) VALUES ("geekk3@gmail.com","Geek3",36)""")
connection_obj.execute(
    """INSERT INTO GEEK (Email,Name,Score) VALUES ("geekk4@gmail.com","Geek4",27)""")
connection_obj.execute(
    """INSERT INTO GEEK (Email,Name,Score) VALUES ("geekk5@gmail.com","Geek5",40)""")
connection_obj.execute(
    """INSERT INTO GEEK (Email,Name,Score) VALUES ("geekk6@gmail.com","Geek6",14)""")
connection_obj.execute(
    """INSERT INTO GEEK (Email,Name,Score) VALUES ("geekk7@gmail.com","Geek7",10)""")
 
# Display table
data = cursor_obj.execute("""SELECT * FROM GEEK""")
print('GEEK Table:')
for row in data:
    print(row)
 
connection_obj.commit()
 
# Close the connection
connection_obj.close()

Producción:

Ahora agregamos una nueva columna “UserName”:

Python3

import sqlite3
 
# Connecting to sqlite
connection_obj = sqlite3.connect('geek.db')
 
# cursor object
cursor_obj = connection_obj.cursor()
 
# Add a new column to geek table
new_column = "ALTER TABLE GEEK ADD COLUMN UserName CHAR(25)"
 
cursor_obj.execute(new_column)
 
# Display table
data = cursor_obj.execute("SELECT * FROM GEEK")
print('GEEK Table:')
for row in data:
    print(row)
 
connection_obj.commit()
 
# Close the connection
connection_obj.close()

Producción:

Cambiar el nombre de la tabla

La sintaxis de ALTER TABLE para cambiar el nombre de la tabla en SQLite se muestra a continuación:

ALTER TABLE table_name RENOMBRAR TO newTableName;

Usaremos la misma tabla GEEK que creamos arriba:

Python3

import sqlite3
 
# Connecting to sqlite
connection_obj = sqlite3.connect('geek.db')
 
# cursor object
cursor_obj = connection_obj.cursor()
 
# select from sqlite_master
cursor_obj.execute("SELECT * FROM sqlite_master")
 
table = cursor_obj.fetchall()
print("Before changing the name of Table")
print("The name of the table:", table[0][2])
 
# Rename the SQLite Table
renameTable = "ALTER TABLE GEEK RENAME TO GFG"
cursor_obj.execute(renameTable)
 
 
# select from sqlite_master
cursor_obj.execute("SELECT * FROM sqlite_master")
 
table = cursor_obj.fetchall()
 
print("After changing the name of Table")
print("The name of the table:", table[0][2])
 
connection_obj.commit()
 
connection_obj.close()

Producción:

Publicación traducida automáticamente

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