Ejercicios Prácticos de SQL: Manipulación de Datos y Gestión de Bases de Datos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 2,91 KB
1. Manipulación de Datos (DML)
1.a) Insertar estadísticas a jugadores
Insertar registros para jugadores sin equipo o cuyos equipos nunca jugaron de visitante.
/* FORMA 1 */
INSERT INTO estadisticas
VALUES ('24/25', 1000, 12, 4, 1, 6);
/* FORMA 2 */
INSERT INTO estadisticas
(temporada, jugador, puntos_por_partido, asistencias_por_partido, tapones_por_partido, rebotes_por_partido)
SELECT '24/25', j.codigo, 15, 3, 1, 5
FROM jugadores j
WHERE j.nombre_equipo IS NULL OR j.nombre_equipo NOT IN (
SELECT equipo_visitante FROM partidos
);1.b) Borrar estadísticas de jugadores de la conferencia West
/* FORMA 1 */
DELETE FROM estadisticas
WHERE jugador IN (
SELECT codigo FROM jugadores WHERE nombre_equipo IN (
SELECT nombre FROM equipos WHERE conferencia='West'
)
);
/* FORMA 2 */
DELETE es
FROM estadisticas es
INNER JOIN jugadores j ON es.jugador=j.codigo
INNER JOIN equipos e ON j.nombre_equipo=e.nombre
WHERE e.conferencia='West';1.c) Eliminar equipos del oeste con menos de 15 jugadores
DELETE FROM equipos
WHERE conferencia='West'
AND nombre IN (
SELECT nombre_equipo FROM jugadores GROUP BY nombre_equipo HAVING COUNT(codigo) < 15
);1.d) Sumar 10 puntos a equipos locales de New Jersey en temporada 05/06
UPDATE partidos
SET puntos_local = puntos_local + 10
WHERE temporada='05/06' AND equipo_local IN (
SELECT nombre FROM equipos WHERE ciudad='New Jersey'
);1.e) Poner tapones a 0 a jugadores de división Pacific
/* FORMA 1 */
UPDATE estadisticas
SET tapones_por_partido = 0
WHERE jugador IN (
SELECT codigo FROM jugadores WHERE nombre_equipo IN (
SELECT nombre FROM equipos WHERE division='Pacific'
)
);
/* FORMA 2 */
UPDATE estadisticas es
JOIN jugadores j ON es.jugador=j.codigo
JOIN equipos e ON j.nombre_equipo=e.nombre
SET es.tapones_por_partido=0
WHERE e.division='Pacific';2. Exportación e Importación de Datos
2.a) Exportar datos a CSV
SELECT p.codigo, p.equipo_local, p.puntos_local
INTO OUTFILE '/tmp/partidos.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM partidos p, jugadores j
WHERE p.equipo_local=j.nombre_equipo
AND p.temporada='2000/01'
AND j.nombre LIKE 'A%'
AND j.peso > 150;2.b) Crear tabla e importar CSV
CREATE TABLE copia_partidos(
codigo INT,
equipo_local VARCHAR(40),
puntos_local INT
);
/*
LOAD DATA INFILE '/tmp/partidos.csv'
INTO TABLE copia_partidos
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
*/2.c) Uso de mysqldump
- Crear archivo SQL de una tabla:
mysqldump -u root -p NBA copia_partidos > copia.sql - Copia completa de la base de datos:
mysqldump -u root -p NBA > backup_nba.sql