SQLite Crear, modificar y eliminar tabla con ejemplos
⚡ Resumen inteligente
SQLite La gestión de tablas se basa en tres comandos de definición de datos: CREATE TABLE para definir una tabla, ALTER TABLE para cambiarle el nombre o añadir y modificar columnas, y DROP TABLE para eliminarla por completo de la base de datos.
Las secciones siguientes muestran cómo crear tablas, modificar su estructura y eliminar tablas en SQLite3 con ejemplos, que cubren los comandos CREATE TABLE, ALTER TABLE y DROP TABLE.
SQLite Crear una tabla
Sintaxis
A continuación se muestra la sintaxis de la declaración CREATE TABLE.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Para crear una tabla, debe utilizar la consulta “CREATE TABLE” de la siguiente manera:
CREATE TABLE guru99 ( Id Int, Name Varchar );
Dentro de los dos corchetes después del nombre de la tabla, se definen las columnas de la tabla, cada columna debe tener las siguientes propiedades:
- Un nombre, el nombre de la columna debe ser único entre las columnas de la tabla.
- Un tipo de dato: el tipo de dato de columna.
- Restricciones de columna opcionales, como explicaremos en las secciones posteriores de este tutorial.
SQLite CREAR TABLA SI NO EXISTE
Cuando un script se ejecuta más de una vez, una simple instrucción CREATE TABLE falla si la tabla ya existe y se detiene con un error. SQLite Esto se soluciona con la cláusula opcional IF NOT EXISTS, que crea la tabla solo cuando no existe y no hace nada cuando ya está presente.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
La instrucción anterior nunca genera el error "la tabla ya existe", lo que permite mantenerla sin problemas al principio de un script de configuración o migración.
La misma idea funciona a la inversa cuando se elimina una tabla. Agregar IF EXISTS a DROP TABLE evita un error cuando la tabla ya no existe:
DROP TABLE IF EXISTS guru99;
Ambas cláusulas son comunes en los scripts automatizados, ya que permiten que el mismo archivo se ejecute repetidamente sin necesidad de limpieza manual entre ejecuciones.
Tabla de caída
Para eliminar una tabla, utilice el comando “DROP TABLE” seguido del nombre de la tabla, como se muestra a continuación:
DROP TABLE guru99;
Alterar la mesa
Puede utilizar el comando “ALTER TABLE” para renombrar una tabla de la siguiente manera:
ALTER TABLE guru99 RENAME TO guru100;
Para verificar que el nombre de la tabla ha cambiado, puede usar el comando “.tables” para mostrar la lista de tablas, y el nombre de la tabla debería cambiarse ahora como sigue:
Como puede observar, el nombre de la tabla "guru99" cambia a "guru100" después del comando "alter table".
SQLite agregar columnas: usando el comando ALTER TABLE
También puede utilizar el comando “ALTER TABLE” para agregar columnas:
ALTER TABLE guru100 ADD COLUMN Age INT;
Esto modificará la tabla “guru100” y le agregará una nueva columna llamada Edad.
Si no vio ninguna salida, significa que la instrucción se ejecutó correctamente y se agregó la columna. La ausencia de salida significa que el cursor se posicionará después de “sqlite>” sin texto posterior, como se muestra a continuación:
Sin embargo, para verificar que la columna se haya agregado, podemos usar el comando “.schema guru100”. Esto nos dará la definición de la tabla y debería ver la nueva columna que acabamos de agregar:
SQLite ALTER TABLE: Cambiar el nombre y eliminar una columna
Más allá de agregar una columna, las versiones modernas de SQLite También se puede cambiar el nombre de una sola columna y eliminar una. Cambiar el nombre de una columna ha estado disponible desde SQLite 3.25, y actualiza el nombre dentro de la definición de la tabla, así como en cada índice, disparador y vista que haga referencia a la columna.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Para eliminar una columna, SQLite 3.35 y versiones posteriores admiten una cláusula DROP COLUMN directa:
ALTER TABLE guru100 DROP COLUMN Age;
No se puede eliminar una columna cuando forma parte de una clave primaria, una restricción única o un índice. En versiones anteriores SQLite En las versiones que carecen de DROP COLUMN, la solución clásica consiste en crear una nueva tabla con las columnas deseadas, copiar las filas, eliminar la tabla antigua y, finalmente, cambiar el nombre de la nueva.
Cómo copiar una tabla en SQLite Usando CREATE TABLE AS SELECT
En ocasiones, es necesario tener una copia de una tabla, ya sea como copia de seguridad antes de realizar un cambio arriesgado o como punto de partida para una tabla nueva. SQLite Esto se construye en un solo paso con CREATE TABLE AS SELECT, que crea una nueva tabla cuyas columnas provienen de una consulta y la llena con las filas que devuelve dicha consulta.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
La nueva tabla “guru100_backup” recibe las mismas columnas y todas las filas de “guru100”. Para copiar solo algunas filas, agregue una cláusula WHERE a la consulta SELECT:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Es importante recordar que la instrucción CREATE TABLE AS SELECT copia los nombres, tipos y datos de las columnas, pero no las claves primarias, otras restricciones ni los índices. Deberá agregarlos manualmente a la nueva tabla si la copia debe aplicar las mismas reglas que la original.
SQLite Insertar valor en una tabla
Para insertar valores en una tabla, utilizamos la instrucción “INSERT INTO” de la siguiente manera:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Puede omitir los nombres de las columnas después del nombre de la tabla y escribirlo de la siguiente manera:
INSERT INTO Tablename VALUES(value1, value2, ….);
En tal caso, si omite los nombres de las columnas de las tablas, la cantidad de valores insertados debe ser exactamente la misma que la cantidad de columnas de la tabla. Luego, cada valor se insertará en la columna correspondiente. Por ejemplo, para la siguiente instrucción de inserción:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
El resultado de esta declaración será el siguiente:
- El valor 1 se insertará en la columna “id”.
- El valor 'Mike' se insertará en la columna “Nombre”, y
- El valor 25 se insertará en la columna “Edad”.
INSERTAR... declaración de VALORES POR DEFECTO
Puede completar la tabla con los valores predeterminados para las columnas a la vez de la siguiente manera:
INSERT INTO Tablename DEFAULT VALUES;
Si una columna no permite valores nulos ni valores predeterminados, recibirá un error que indica que la restricción "NOT NULL falló" para esa columna. Como se muestra a continuación:






