En aquesta secció, posarem en pràctica els conceptes apresos sobre SQL mitjançant una sèrie d'exercicis. Aquests exercicis estan dissenyats per reforçar els teus coneixements i habilitats en l'ús del llenguatge SQL per gestionar bases de dades relacionals.
Exercici 1: Creació de Taules
Descripció
Crea una base de dades per a una biblioteca. La base de dades ha de contenir les següents taules:
-
Llibres
id
(INT, PRIMARY KEY)títol
(VARCHAR(100))autor
(VARCHAR(100))any_publicació
(YEAR)gènere
(VARCHAR(50))
-
Usuaris
id
(INT, PRIMARY KEY)nom
(VARCHAR(100))email
(VARCHAR(100))data_registre
(DATE)
-
Préstecs
id
(INT, PRIMARY KEY)id_llibre
(INT, FOREIGN KEY referenciantLlibres(id)
)id_usuari
(INT, FOREIGN KEY referenciantUsuaris(id)
)data_préstec
(DATE)data_retorn
(DATE)
Solució
CREATE TABLE Llibres ( id INT PRIMARY KEY, títol VARCHAR(100), autor VARCHAR(100), any_publicació YEAR, gènere VARCHAR(50) ); CREATE TABLE Usuaris ( id INT PRIMARY KEY, nom VARCHAR(100), email VARCHAR(100), data_registre DATE ); CREATE TABLE Préstecs ( id INT PRIMARY KEY, id_llibre INT, id_usuari INT, data_préstec DATE, data_retorn DATE, FOREIGN KEY (id_llibre) REFERENCES Llibres(id), FOREIGN KEY (id_usuari) REFERENCES Usuaris(id) );
Exercici 2: Inserció de Dades
Descripció
Insereix les següents dades a les taules creades anteriorment.
-
Llibres
- (1, 'El Quixot', 'Miguel de Cervantes', 1605, 'Novel·la')
- (2, '1984', 'George Orwell', 1949, 'Distopia')
- (3, 'Cien años de soledad', 'Gabriel García Márquez', 1967, 'Realisme màgic')
-
Usuaris
- (1, 'Joan Pérez', '[email protected]', '2023-01-15')
- (2, 'Maria Garcia', '[email protected]', '2023-02-20')
-
Préstecs
- (1, 1, 1, '2023-03-01', '2023-03-15')
- (2, 2, 2, '2023-03-05', '2023-03-20')
Solució
INSERT INTO Llibres (id, títol, autor, any_publicació, gènere) VALUES (1, 'El Quixot', 'Miguel de Cervantes', 1605, 'Novel·la'), (2, '1984', 'George Orwell', 1949, 'Distopia'), (3, 'Cien años de soledad', 'Gabriel García Márquez', 1967, 'Realisme màgic'); INSERT INTO Usuaris (id, nom, email, data_registre) VALUES (1, 'Joan Pérez', '[email protected]', '2023-01-15'), (2, 'Maria Garcia', '[email protected]', '2023-02-20'); INSERT INTO Préstecs (id, id_llibre, id_usuari, data_préstec, data_retorn) VALUES (1, 1, 1, '2023-03-01', '2023-03-15'), (2, 2, 2, '2023-03-05', '2023-03-20');
Exercici 3: Consultes Bàsiques
Descripció
Realitza les següents consultes a la base de dades:
- Obteniu tots els llibres publicats després de l'any 1950.
- Obteniu tots els usuaris que es van registrar el 2023.
- Obteniu tots els préstecs realitzats per l'usuari amb
id
1.
Solució
-- 1. Llibres publicats després de 1950 SELECT * FROM Llibres WHERE any_publicació > 1950; -- 2. Usuaris registrats el 2023 SELECT * FROM Usuaris WHERE YEAR(data_registre) = 2023; -- 3. Préstecs realitzats per l'usuari amb id 1 SELECT * FROM Préstecs WHERE id_usuari = 1;
Exercici 4: Actualització de Dades
Descripció
Actualitza les següents dades a la base de dades:
- Canvia el gènere del llibre '1984' a 'Ciència-ficció'.
- Actualitza l'email de l'usuari 'Maria Garcia' a '[email protected]'.
Solució
-- 1. Canviar el gènere del llibre '1984' UPDATE Llibres SET gènere = 'Ciència-ficció' WHERE títol = '1984'; -- 2. Actualitzar l'email de 'Maria Garcia' UPDATE Usuaris SET email = '[email protected]' WHERE nom = 'Maria Garcia';
Exercici 5: Eliminació de Dades
Descripció
Elimina les següents dades de la base de dades:
- Elimina el llibre amb
id
3. - Elimina l'usuari amb
id
1.
Solució
-- 1. Eliminar el llibre amb id 3 DELETE FROM Llibres WHERE id = 3; -- 2. Eliminar l'usuari amb id 1 DELETE FROM Usuaris WHERE id = 1;
Resum
En aquesta secció, hem practicat la creació de taules, la inserció de dades, la realització de consultes bàsiques, l'actualització de dades i l'eliminació de dades utilitzant SQL. Aquests exercicis t'ajudaran a consolidar els teus coneixements i habilitats en la gestió de bases de dades relacionals. Assegura't de practicar regularment per mantenir i millorar les teves habilitats en SQL.
Fonaments de Bases de Dades
Mòdul 1: Introducció a les Bases de Dades
- Conceptes Bàsics de Bases de Dades
- Tipus de Bases de Dades
- Història i Evolució de les Bases de Dades
Mòdul 2: Bases de Dades Relacionals
Mòdul 3: Bases de Dades No Relacionals
- Introducció a NoSQL
- Tipus de Bases de Dades NoSQL
- Comparació entre Bases de Dades Relacionals i No Relacionals
Mòdul 4: Disseny d'Esquemes
- Principis de Disseny d'Esquemes
- Diagrames Entitat-Relació (ER)
- Transformació de Diagrames ER a Esquemes Relacionals