En aquest tema, aprendrem els conceptes fonamentals de SQL (Structured Query Language), que és el llenguatge utilitzat per interactuar amb bases de dades relacionals com PostgreSQL. Aquest mòdul és essencial per a qualsevol persona que vulgui treballar amb bases de dades, ja que proporciona les bases necessàries per a la manipulació i consulta de dades.

  1. Què és SQL?

SQL és un llenguatge de programació estàndard utilitzat per gestionar i manipular bases de dades relacionals. Amb SQL, podem:

  • Crear i modificar estructures de bases de dades (taules, vistes, índexs, etc.).
  • Inserir, actualitzar i eliminar dades.
  • Consultar dades de les bases de dades.
  • Controlar l'accés a les dades.

  1. Components principals de SQL

SQL es compon de diverses categories de sentències, cadascuna amb una funció específica:

2.1. DDL (Data Definition Language)

El DDL s'utilitza per definir i modificar l'estructura de la base de dades. Les sentències més comunes són:

  • CREATE: Crea objectes de base de dades com taules, vistes, índexs, etc.
  • ALTER: Modifica l'estructura d'objectes existents.
  • DROP: Elimina objectes de la base de dades.

Exemple:

-- Crear una taula anomenada "usuaris"
CREATE TABLE usuaris (
    id SERIAL PRIMARY KEY,
    nom VARCHAR(100),
    email VARCHAR(100) UNIQUE
);

2.2. DML (Data Manipulation Language)

El DML s'utilitza per manipular les dades dins de les taules. Les sentències més comunes són:

  • INSERT: Insereix noves files en una taula.
  • UPDATE: Actualitza dades existents en una taula.
  • DELETE: Elimina files d'una taula.

Exemple:

-- Inserir un nou usuari
INSERT INTO usuaris (nom, email) VALUES ('Joan', '[email protected]');

-- Actualitzar l'email d'un usuari
UPDATE usuaris SET email = '[email protected]' WHERE nom = 'Joan';

-- Eliminar un usuari
DELETE FROM usuaris WHERE nom = 'Joan';

2.3. DQL (Data Query Language)

El DQL s'utilitza per consultar dades de les taules. La sentència principal és:

  • SELECT: Recupera dades de la base de dades.

Exemple:

-- Seleccionar tots els usuaris
SELECT * FROM usuaris;

-- Seleccionar usuaris amb un nom específic
SELECT * FROM usuaris WHERE nom = 'Joan';

2.4. DCL (Data Control Language)

El DCL s'utilitza per controlar l'accés a les dades. Les sentències més comunes són:

  • GRANT: Concedeix permisos a usuaris.
  • REVOKE: Revoca permisos d'usuaris.

Exemple:

-- Concedir permisos de selecció a un usuari
GRANT SELECT ON usuaris TO usuari_lectura;

-- Revocar permisos de selecció a un usuari
REVOKE SELECT ON usuaris FROM usuari_lectura;

  1. Estructura bàsica d'una consulta SQL

Una consulta SQL típica segueix aquesta estructura:

SELECT columnes
FROM taula
WHERE condicions
GROUP BY columnes
HAVING condicions
ORDER BY columnes;

3.1. SELECT

Especifica les columnes que es volen recuperar.

Exemple:

SELECT nom, email FROM usuaris;

3.2. FROM

Especifica la taula de la qual es volen recuperar les dades.

Exemple:

SELECT nom, email FROM usuaris;

3.3. WHERE

Especifica les condicions que han de complir les files seleccionades.

Exemple:

SELECT nom, email FROM usuaris WHERE nom = 'Joan';

3.4. GROUP BY

Agrupa les files que tenen els mateixos valors en columnes especificades en grups.

Exemple:

SELECT nom, COUNT(*) FROM usuaris GROUP BY nom;

3.5. HAVING

Especifica condicions per als grups creats per la sentència GROUP BY.

Exemple:

SELECT nom, COUNT(*) FROM usuaris GROUP BY nom HAVING COUNT(*) > 1;

3.6. ORDER BY

Ordena les files recuperades segons una o més columnes.

Exemple:

SELECT nom, email FROM usuaris ORDER BY nom ASC;

  1. Exercicis pràctics

Exercici 1: Crear una taula

Crea una taula anomenada productes amb les següents columnes: id (clau primària), nom (cadena de text), preu (decimal).

Solució:

CREATE TABLE productes (
    id SERIAL PRIMARY KEY,
    nom VARCHAR(100),
    preu DECIMAL(10, 2)
);

Exercici 2: Inserir dades

Insereix tres productes a la taula productes.

Solució:

INSERT INTO productes (nom, preu) VALUES ('Producte A', 10.50);
INSERT INTO productes (nom, preu) VALUES ('Producte B', 20.00);
INSERT INTO productes (nom, preu) VALUES ('Producte C', 15.75);

Exercici 3: Consultar dades

Recupera tots els productes amb un preu superior a 15.

Solució:

SELECT * FROM productes WHERE preu > 15;

Exercici 4: Actualitzar dades

Actualitza el preu del Producte A a 12.00.

Solució:

UPDATE productes SET preu = 12.00 WHERE nom = 'Producte A';

Exercici 5: Eliminar dades

Elimina el Producte B de la taula productes.

Solució:

DELETE FROM productes WHERE nom = 'Producte B';

Conclusió

En aquest tema, hem après els conceptes bàsics de SQL, incloent les categories principals de sentències SQL (DDL, DML, DQL, DCL) i l'estructura bàsica d'una consulta SQL. Aquests fonaments són essencials per treballar amb bases de dades relacionals i ens preparen per a temes més avançats en els següents mòduls.

Curs de PostgreSQL

Mòdul 1: Introducció a PostgreSQL

Mòdul 2: Operacions bàsiques de SQL

Mòdul 3: Consultes SQL avançades

Mòdul 4: Disseny de bases de dades i normalització

Mòdul 5: Funcionalitats avançades de PostgreSQL

Mòdul 6: Optimització i millora del rendiment

Mòdul 7: Seguretat i gestió d'usuaris

Mòdul 8: Treballant amb JSON i funcionalitats NoSQL

Mòdul 9: Extensions i eines avançades

Mòdul 10: Estudis de cas i aplicacions del món real

© Copyright 2024. Tots els drets reservats