Skip to content

Instantly share code, notes, and snippets.

@jnrdrgz
Created November 5, 2020 14:34
Show Gist options
  • Save jnrdrgz/21b4cab7738466ed05d71f168d7fa93c to your computer and use it in GitHub Desktop.
Save jnrdrgz/21b4cab7738466ed05d71f168d7fa93c to your computer and use it in GitHub Desktop.
padmdb3
--1
CREATE TABLE "Libros" (
"CodigoLibro" INTEGER NOT NULL UNIQUE,
"Titulo" VARCHAR NOT NULL,
"CantidadPaginas" INT NOT NULL,
"FechaEdicion" DATE NOT NULL,
"Genero" VARCHAR NOT NULL,
"CodigoEditorial" INT NOT NULL,
FOREIGN KEY("CodigoEditorial") REFERENCES "Editoriales"("CodigoEditorial"),
PRIMARY KEY("CodigoLibro" AUTOINCREMENT)
);
CREATE TABLE "Ejemplares" (
"CodigoEjemplar" INTEGER NOT NULL UNIQUE,
"DisponiblePrestamo" BOOLEAN NOT NULL,
"CantidadDias" INT,
"CodigoLibro" INT NOT NULL,
PRIMARY KEY("CodigoEjemplar" AUTOINCREMENT),
FOREIGN KEY("CodigoLibro") REFERENCES "Libros"("CodigoLibro")
);
--2
INSERT INTO Libros
(CodigoLibro, Titulo, CantidadPaginas, FechaEdicion, CodigoEditorial, Genero)
VALUES (34, "Derecho Informático", 341, 11, "Derecho" );
INSERT INTO Autores
(CodigoAutor, Nombres, Apellido, Nacionalidad)
VALUES (17,"Carlos A.", "Correa", "Argentino") ;
INSERT INTO LibroAutor
(CodigoLibro, CodigoAutor)
VALUES (34,17) ;
INSERT INTO Socios
(CodigoSocio, Apellido, Nombes, DNI, Domicilio, Localidad, CodigoPostal, Provincia)
VALUES (6, "Seisdedos", "Juan", "23444544", "25 de Mayo 998", "Monteros", "4165", "Tucumán");
INSERT INTO Ejemplares
(CodigoEjemplar, CodigoLibro, Disponible, CantidadDias)
VALUES (36,34,0,3);
INSERT INTO Prestamos
(CodigoEjemplar, CodigoSocio, FechaPrestamo, FechaDevolucion)
VALUES (36,6,_,_);
--3
DELETE FROM Autores WHERE Apellido="Borges" AND CodigoAutor=1;
--4
UPDATE Autores
SET Apellido = "Allende"
WHERE CodigoAutor = 13;
--5.1
--corregir
SELECT DISTINCT Apellido, Nombres FROM Autores;
--5.2
SELECT CodigoEjemplar, CodigoLibro, Titulo, Apellido, Nombres
FROM Socios
WHERE FechaPrestamo < "2017-01-01 00:00:00"
ORDER BY CodigoEjemplar DESC;
--5.3
SELECT Nacionalidad, COUNT(DISTINCT Nacionalidad)
as Cantidad
FROM Autores ORDER BY Nacionalidad DESC;
--5.4
SELECT * FROM Genero, CantidadPaginas WHERE CantidadPaginas
> (SELECT AVG(CantidadPaginas) FROM Libros)
--5.5
SELECT Libros.Titulo, Libros.CantidadPaginas, Editoriales.NombreEditorial FROM ((
Ejemplares INNER JOIN Libros ON Ejemplares.CodigoLibro = Libros.CodigoLibro
INNER JOIN Editoriales ON Libros.CodigoEditorial = Editoriales.CodigoEditorial
))
GROUP BY Ejemplares.CodigoLibro HAVING COUNT(Ejemplares.CodigoLibro) > 1
--5.6
SELECT * FROM Libros WHERE Titulo LIKE '%fundacion%'
--5.7
SELECT CodigoEjemplar, Libros.Titulo
FROM (Ejemplares INNER JOIN Libros
ON Ejemplares.CodigoLibro = Libros.CodigoLibro)
WHERE Ejemplares.DisponiblePrestamo=0 AND
(SELECT COUNT(CodigoLibro) FROM Libro_Autor WHERE CodigoLibro=Ejemplares.CodigoLibro) > 1
--5.8
SELECT Titulo
FROM (Libros INNER JOIN Editoriales
ON Libros.CodigoEditorial = Editoriales.CodigoEditorial)
WHERE NOT Editoriales.Pais = "Argentina"
--5.9
SELECT Apellido, Nombres
FROM Socios
WHERE FechaPrestamo > "2017-04-31 00:00:00"
AND FechaPrestamo < "2017-03-31 00:00:00"
--5.10
SELECT DISTINCT Libros.Titulo,
Libros.CodigoLibro as LibCod,
Autores.CodigoAutor as AutCod,
Autores.Nombres,
Autores.Apellido
FROM
((Libro_Autor
INNER JOIN Libros ON Libro_Autor.CodigoLibro = Libros.CodigoLibro
INNER JOIN Autores ON Libro_Autor.CodigoAutor = Autores.CodigoAutor))
WHERE (SELECT COUNT(CodigoLibro) FROM Libro_Autor WHERE CodigoLibro=LibCod) > 1
--5.11
SELECT * FROM Autores WHERE Apellido LIKE "A%"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment