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

Entradas relacionadas: