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.

  1. 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.

  1. Creació de la base de dades i taules

2.1. Crear la base de dades

CREATE DATABASE LlibreriaOnline;
USE LlibreriaOnline;

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)
);

  1. 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

INSERT INTO Comandes (ClientID, DataComanda) VALUES
(1, '2023-03-01'),
(2, '2023-03-05');

3.5. Inserir dades a la taula DetallsComanda

INSERT INTO DetallsComanda (ComandaID, LlibreID, Quantitat) VALUES
(1, 1, 1),
(1, 3, 2),
(2, 2, 1);

  1. 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;

  1. 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

Mòdul 5: Manipulació de dades

Mòdul 6: Funcions avançades de SQL

Mòdul 7: Subconsultes i consultes niades

Mòdul 8: Índexs i optimització del rendiment

Mòdul 9: Transaccions i concurrència

Mòdul 10: Temes avançats

Mòdul 11: SQL en la pràctica

Mòdul 12: Projecte final

© Copyright 2024. Tots els drets reservats