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', 'joan.perez@example.com', '2023-01-15')
- (2, 'Maria Garcia', 'maria.garcia@example.com', '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', 'joan.perez@example.com', '2023-01-15'), (2, 'Maria Garcia', 'maria.garcia@example.com', '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
id1.
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 'maria.garcia@newdomain.com'.
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 = 'maria.garcia@newdomain.com' WHERE nom = 'Maria Garcia';
Exercici 5: Eliminació de Dades
Descripció
Elimina les següents dades de la base de dades:
- Elimina el llibre amb
id3. - Elimina l'usuari amb
id1.
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
