En aquesta secció, implementarem el projecte final del curs de SQL. Aquest projecte està dissenyat per posar en pràctica tots els conceptes i habilitats que has après al llarg del curs. Segueix les instruccions pas a pas per completar el projecte amb èxit.
- Descripció del projecte
El projecte consisteix en crear una base de dades per a una llibreria en línia. La base de dades ha de gestionar informació sobre llibres, autors, clients i comandes. A continuació, es detallen els requisits específics:
- Llibres: Cada llibre ha de tenir un títol, un autor, una data de publicació, un gènere i un preu.
- Autors: Cada autor ha de tenir un nom, una data de naixement i una nacionalitat.
- Clients: Cada client ha de tenir un nom, una adreça de correu electrònic i una data de registre.
- Comandes: Cada comanda ha de tenir un client associat, una data de comanda i una llista de llibres comprats.
- Creació de la base de dades i taules
2.1. Crear la base de dades
2.2. Crear les taules
Taula Autors
CREATE TABLE Autors ( AutorID INT AUTO_INCREMENT PRIMARY KEY, Nom VARCHAR(100) NOT NULL, DataNaixement DATE, Nacionalitat VARCHAR(50) );
Taula Llibres
CREATE TABLE Llibres ( LlibreID INT AUTO_INCREMENT PRIMARY KEY, Titol VARCHAR(200) NOT NULL, AutorID INT, DataPublicacio DATE, Genere VARCHAR(50), Preu DECIMAL(10, 2), FOREIGN KEY (AutorID) REFERENCES Autors(AutorID) );
Taula Clients
CREATE TABLE Clients ( ClientID INT AUTO_INCREMENT PRIMARY KEY, Nom VARCHAR(100) NOT NULL, CorreuElectronic VARCHAR(100) NOT NULL, DataRegistre DATE );
Taula Comandes
CREATE TABLE Comandes ( ComandaID INT AUTO_INCREMENT PRIMARY KEY, ClientID INT, DataComanda DATE, FOREIGN KEY (ClientID) REFERENCES Clients(ClientID) );
Taula DetallsComanda
CREATE TABLE DetallsComanda ( DetallID INT AUTO_INCREMENT PRIMARY KEY, ComandaID INT, LlibreID INT, Quantitat INT, FOREIGN KEY (ComandaID) REFERENCES Comandes(ComandaID), FOREIGN KEY (LlibreID) REFERENCES Llibres(LlibreID) );
- Inserir dades a les taules
3.1. Inserir dades a la taula Autors
INSERT INTO Autors (Nom, DataNaixement, Nacionalitat) VALUES ('Gabriel Garcia Marquez', '1927-03-06', 'Colombiana'), ('J.K. Rowling', '1965-07-31', 'Britànica'), ('George Orwell', '1903-06-25', 'Britànica');
3.2. Inserir dades a la taula Llibres
INSERT INTO Llibres (Titol, AutorID, DataPublicacio, Genere, Preu) VALUES ('Cien años de soledad', 1, '1967-05-30', 'Realisme màgic', 19.99), ('Harry Potter i la pedra filosofal', 2, '1997-06-26', 'Fantasia', 14.99), ('1984', 3, '1949-06-08', 'Distopia', 9.99);
3.3. Inserir dades a la taula Clients
INSERT INTO Clients (Nom, CorreuElectronic, DataRegistre) VALUES ('Anna Garcia', '[email protected]', '2023-01-15'), ('Joan Puig', '[email protected]', '2023-02-20');
3.4. Inserir dades a la taula Comandes
3.5. Inserir dades a la taula DetallsComanda
- Consultes per verificar les dades
4.1. Consultar tots els llibres i els seus autors
SELECT Llibres.Titol, Autors.Nom AS Autor FROM Llibres JOIN Autors ON Llibres.AutorID = Autors.AutorID;
4.2. Consultar totes les comandes i els clients associats
SELECT Comandes.ComandaID, Clients.Nom AS Client, Comandes.DataComanda FROM Comandes JOIN Clients ON Comandes.ClientID = Clients.ClientID;
4.3. Consultar els detalls de cada comanda
SELECT Comandes.ComandaID, Clients.Nom AS Client, Llibres.Titol, DetallsComanda.Quantitat FROM DetallsComanda JOIN Comandes ON DetallsComanda.ComandaID = Comandes.ComandaID JOIN Clients ON Comandes.ClientID = Clients.ClientID JOIN Llibres ON DetallsComanda.LlibreID = Llibres.LlibreID;
- Resum
En aquesta secció, hem creat una base de dades per a una llibreria en línia, incloent-hi les taules necessàries per gestionar llibres, autors, clients i comandes. Hem inserit dades a les taules i hem realitzat consultes per verificar que les dades s'han inserit correctament. Aquest projecte t'ha permès aplicar els coneixements adquirits al llarg del curs i veure com es poden utilitzar en un context pràctic.
Curs de SQL
Mòdul 1: Introducció a SQL
Mòdul 2: Consultes bàsiques de SQL
Mòdul 3: Treballar amb múltiples taules
Mòdul 4: Filtratge avançat de dades
- Utilitzar LIKE per a coincidències de patrons
- Operadors IN i BETWEEN
- Valors NULL i IS NULL
- Agrupar dades amb GROUP BY
- Clàusula HAVING
Mòdul 5: Manipulació de dades
Mòdul 6: Funcions avançades de SQL
Mòdul 7: Subconsultes i consultes niades
- Introducció a les subconsultes
- Subconsultes correlacionades
- EXISTS i NOT EXISTS
- Utilitzar subconsultes en les clàusules SELECT, FROM i WHERE
Mòdul 8: Índexs i optimització del rendiment
- Comprendre els índexs
- Crear i gestionar índexs
- Tècniques d'optimització de consultes
- Analitzar el rendiment de les consultes
Mòdul 9: Transaccions i concurrència
- Introducció a les transaccions
- Propietats ACID
- Instruccions de control de transaccions
- Gestionar la concurrència
Mòdul 10: Temes avançats
Mòdul 11: SQL en la pràctica
- Casos d'ús del món real
- Millors pràctiques
- SQL per a l'anàlisi de dades
- SQL en el desenvolupament web