Eliminar una columna en la base de datos SQLite
Al agregar nuevas columnas, se proporcionan valores predeterminados. Al eliminar columnas existentes, a veces se eliminan todos los valores e incluso se realiza una copia de seguridad según el caso de uso.
Este artículo hablará sobre cómo eliminar una columna de una tabla de base de datos SQLite con la ayuda de algunos ejemplos relevantes.
Soltar una columna de una tabla de base de datos SQLite
Podemos eliminar una columna de una tabla de base de datos SQLite de dos maneras.
Soltar una columna usando la declaración ALTER TABLE
SQL ofrece una instrucción ALTER TABLE
que se puede usar para agregar, eliminar y modificar columnas existentes en una tabla de base de datos existente. Las siguientes son las dos sintaxis a nuestra disposición que podemos usar para soltar una columna.
Sintaxis:
ALTER TABLE <table_name> DROP COLUMN <column_name>;
ALTER TABLE <table_name> DROP <column_name>;
Las declaraciones SQL anteriores eliminan la columna column_name
de la tabla existente table_name
. La palabra clave DROP
indica que la columna se eliminará al ejecutarse.
Consulte el siguiente script SQL para ver una demostración.
CREATE TABLE students (
id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
age INT NOT NULL,
gender TEXT NOT NULL
);
SELECT "Before Removal";
SELECT "--------------";
SELECT name FROM PRAGMA_TABLE_INFO("students"); -- Display all names columns
ALTER TABLE students DROP COLUMN last_name; -- Removing [last_name] column
SELECT "";
SELECT "After Removal";
SELECT "-------------";
SELECT name FROM PRAGMA_TABLE_INFO("students"); -- Display all names columns
Producción :
Before Removal
--------------
id
first_name
last_name
age
gender
After Removal
-------------
id
first_name
age
gender
El script SQL anterior crea una nueva tabla, estudiantes
, en la base de datos seleccionada. A continuación, imprime todos los nombres de columna de la tabla recién creada y luego, utilizando la instrucción ALTER TABLE
, elimina la columna last_Name
.
Por último, vuelve a imprimir todos los nombres de las columnas. Del resultado anterior, vemos que la columna last_name
ya no existe en la tabla, y la declaración ALTER TABLE
la eliminó con éxito.
Soltar una columna creando una nueva tabla
Este enfoque es extremadamente ingenuo y lleva más tiempo que el enfoque anterior. La idea es crear una nueva tabla desde cero con todas las columnas nuevas (las columnas que se eliminarán no formarán parte de esta tabla).
A continuación, copie todos los datos de la tabla anterior a esta nueva tabla según sea necesario. Por último, suelte o elimine la tabla anterior y use la tabla nueva según sea necesario.
Consulte el siguiente script SQL para ver un ejemplo.
-- creating the old table
CREATE TABLE students (
id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
age INT NOT NULL
);
-- inserting some data into the old table
INSERT INTO students VALUES (1, "Stefan", "Salvatore", 13);
INSERT INTO students VALUES (2, "Damon", "Salvatore", 14);
INSERT INTO students VALUES (3, "Elena", "Gilbert", 12);
INSERT INTO students VALUES (4, "Caroline", "Forbes", 12);
INSERT INTO students VALUES (5, "Bonnie", "Bennett", 13);
-- printing old table
SELECT "Students";
SELECT "--------";
SELECT * FROM students;
SELECT "";
-- creating new table
CREATE TABLE new_students (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INT NOT NULL
);
-- inserting data from an old table into the new table
INSERT INTO new_students SELECT id, first_name, age FROM students;
-- printing new table
SELECT "New Students";
SELECT "--------";
SELECT * FROM new_students;
SELECT "";
-- dropping or deleting the old table
DROP TABLE students;
-- renaming the new table to the old table's name
ALTER TABLE new_students RENAME TO students;
-- printing new table
SELECT "Students";
SELECT "--------";
SELECT * FROM students;
SELECT "";
Producción :
Students
--------
1|Stefan|Salvatore|13
2|Damon|Salvatore|14
3|Elena|Gilbert|12
4|Caroline|Forbes|12
5|Bonnie|Bennett|13
New Students
--------
1|Stefan|13
2|Damon|14
3|Elena|12
4|Caroline|12
5|Bonnie|13
Students
--------
1|Stefan|13
2|Damon|14
3|Elena|12
4|Caroline|12
5|Bonnie|13
El script SQL anterior primero crea una tabla, estudiantes
; trata de imitar la mesa antigua. A continuación, inserta algunas filas en la tabla recién creada utilizando la declaración INSERT INTO
y luego imprime el contenido de la tabla.
Ahora, se crea una nueva tabla, a saber, nuevos_estudiantes
; imita la nueva tabla. Tenga en cuenta que el esquema de la tabla nuevos_estudiantes
es diferente al de la tabla estudiantes
; no tiene la columna last_name
.
A continuación, utilizando la instrucción INSERT INTO
, todas las filas de la tabla students
se insertan en new_students
.
Tenga en cuenta que, excepto el apellido
, se inserta todo lo demás. Además, el orden de las columnas en la instrucción SELECT
es importante al insertar datos de una tabla a otra y, después de la inserción, se imprime la nueva tabla.
Ahora que no necesitamos la tabla anterior, la tabla “estudiantes” se elimina mediante la instrucción DROP TABLE
, y la tabla “nuevos_estudiantes” se renombra como “estudiantes” mediante la instrucción ALTER TABLE
. Por último, la nueva tabla se imprime con el nuevo nombre, estudiantes
.