Resumen para Prueba de SQL
Palabras Reservadas Comunes (con ejemplos)
CREATE TABLE - Crea una tabla nueva. Ej: CREATE TABLE alumnos (...)
INSERT INTO - Inserta datos. Ej: INSERT INTO alumnos (nombre) VALUES ('Ana')
SELECT - Consulta datos. Ej: SELECT * FROM alumnos
FROM - Indica la tabla a consultar.
WHERE - Filtro. Ej: SELECT * FROM alumnos WHERE edad > 18
JOIN - Une tablas. Ej: JOIN tipo_de_documento ON alumnos.id_documento =
tipo_de_documento.id_documento
ON - Condición del JOIN.
ALTER TABLE - Modifica estructura. Ej: ALTER TABLE alumnos ADD COLUMN email TEXT
DROP TABLE - Borra tabla. Ej: DROP TABLE IF EXISTS alumnos
UPDATE - Modifica registros. Ej: UPDATE alumnos SET nombre = 'Pedro' WHERE
id_alumno = 1
DELETE - Borra registros. Ej: DELETE FROM alumnos WHERE edad < 18
PRIMARY KEY - Clave primaria.
AUTOINCREMENT - Incrementa automáticamente.
NOT NULL - No permite valores vacíos.
INTEGER, TEXT - Tipos de datos (SQLite).
Funciones de Agregación y Ordenamiento:
AVG - Calcula el promedio de una columna numérica.
Ej: SELECT AVG(edad) FROM alumnos;
COUNT - Cuenta la cantidad de filas.
Ej: SELECT COUNT(*) FROM alumnos;
SUM - Suma todos los valores de una columna numérica.
Ej: SELECT SUM(edad) FROM alumnos;
ORDER BY - Ordena los resultados según una o más columnas.
ASC - Orden ascendente (por defecto).
DESC - Orden descendente.
Ej:
SELECT * FROM alumnos ORDER BY edad ASC;
SELECT * FROM alumnos ORDER BY edad DESC;
Crear una Tabla
CREATE TABLE IF NOT EXISTS alumnos (
id_alumno INTEGER PRIMARY KEY AUTOINCREMENT,
nombre TEXT NOT NULL,
edad INTEGER,
user TEXT
);
Insertar Datos
INSERT INTO alumnos (nombre, edad, user)
VALUES ('Ana', 20, 'anita123');
JOIN (Unir Tablas)
SELECT alumnos.nombre, tipo_de_documento.descripcion
FROM alumnos
JOIN tipo_de_documento ON alumnos.id_documento = tipo_de_documento.id_documento;
ALTER TABLE
-- Agregar columna
ALTER TABLE alumnos ADD COLUMN email TEXT;
-- Renombrar columna (SQLite)
ALTER TABLE alumnos RENAME COLUMN user TO usuario;
-- Renombrar tabla
ALTER TABLE alumnos RENAME TO estudiantes;
--------------------------------------------------
Ejercicios Propuestos
Tabla usada: alumnos
CREATE TABLE alumnos (
id_alumno INTEGER PRIMARY KEY AUTOINCREMENT,
nombre TEXT NOT NULL,
edad INTEGER,
curso TEXT,
promedio REAL
);
INSERT INTO alumnos (nombre, edad, curso, promedio) VALUES
('Ana', 18, '5A', 8.5),
('Bruno', 19, '5B', 7.0),
('Carla', 17, '5A', 9.2),
('Diego', 18, '5C', 6.4),
('Elena', 20, '5B', 7.8);
Consignas:
1. Seleccionar todos los datos de los alumnos.
2. Mostrar solo los nombres y promedios de los alumnos.
3. Listar los alumnos que tienen más de 18 años.
4. Ordenar los alumnos por promedio de forma descendente.
5. Calcular el promedio general de todos los alumnos.
6. Contar cuántos alumnos hay en total.
7. Sacar la suma total de las edades de todos los alumnos.
8. Mostrar solo los alumnos del curso '5A'.
9. Actualizar el promedio de Diego a 7.5.
10. Eliminar al alumno con menor promedio (supongamos que es Diego).
--------------------------------------------------
Resoluciones:
1.
SELECT * FROM alumnos;
2.
SELECT nombre, promedio FROM alumnos;
3.
SELECT * FROM alumnos WHERE edad > 18;
4.
SELECT * FROM alumnos ORDER BY promedio DESC;
5.
SELECT AVG(promedio) FROM alumnos;
6.
SELECT COUNT(*) FROM alumnos;
7.
SELECT SUM(edad) FROM alumnos;
8.
SELECT * FROM alumnos WHERE curso = '5A';
9.
UPDATE alumnos SET promedio = 7.5 WHERE nombre = 'Diego';
10.
DELETE FROM alumnos WHERE nombre = 'Diego';