En aquest tema, explorarem com SQL s'integra en el desenvolupament web. Aprendrem com les aplicacions web utilitzen bases de dades per emmagatzemar i recuperar dades, i com podem utilitzar SQL per interactuar amb aquestes bases de dades des de les nostres aplicacions web.
Continguts
Introducció a SQL en el desenvolupament web
Les aplicacions web modernes sovint necessiten emmagatzemar i recuperar dades de bases de dades. SQL és el llenguatge estàndard per interactuar amb aquestes bases de dades. A continuació, veurem com SQL s'utilitza en el context del desenvolupament web.
Conceptes clau
- Backend: La part de l'aplicació que gestiona la lògica de negoci, les operacions de bases de dades i la comunicació amb el frontend.
- Frontend: La part de l'aplicació que interactua amb l'usuari final, normalment a través d'un navegador web.
- API: Interfície de Programació d'Aplicacions, que permet la comunicació entre diferents parts d'una aplicació o entre diferents aplicacions.
Connexió a una base de dades des d'una aplicació web
Per interactuar amb una base de dades des d'una aplicació web, primer hem d'establir una connexió. A continuació, veurem com fer-ho utilitzant diferents llenguatges de programació.
Exemple en PHP
<?php $servername = "localhost"; $username = "usuari"; $password = "contrasenya"; $dbname = "base_de_dades"; // Crear connexió $conn = new mysqli($servername, $username, $password, $dbname); // Comprovar connexió if ($conn->connect_error) { die("Connexió fallida: " . $conn->connect_error); } echo "Connexió exitosa"; ?>
Exemple en Python (utilitzant psycopg2 per PostgreSQL)
import psycopg2 try: connection = psycopg2.connect( user="usuari", password="contrasenya", host="127.0.0.1", port="5432", database="base_de_dades" ) cursor = connection.cursor() print("Connexió exitosa") except (Exception, psycopg2.Error) as error: print("Error en connectar-se a PostgreSQL", error) finally: if connection: cursor.close() connection.close() print("Connexió tancada")
Operacions CRUD en aplicacions web
CRUD és un acrònim per a les quatre operacions bàsiques que es poden realitzar en una base de dades: Crear (Create), Llegir (Read), Actualitzar (Update) i Esborrar (Delete).
Crear (INSERT)
$sql = "INSERT INTO usuaris (nom, email) VALUES ('John Doe', '[email protected]')"; if ($conn->query($sql) === TRUE) { echo "Nou registre creat amb èxit"; } else { echo "Error: " . $sql . "<br>" . $conn->error; }
Llegir (SELECT)
$sql = "SELECT id, nom, email FROM usuaris"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Nom: " . $row["nom"]. " - Email: " . $row["email"]. "<br>"; } } else { echo "0 resultats"; }
Actualitzar (UPDATE)
$sql = "UPDATE usuaris SET email='[email protected]' WHERE nom='John Doe'"; if ($conn->query($sql) === TRUE) { echo "Registre actualitzat amb èxit"; } else { echo "Error actualitzant registre: " . $conn->error; }
Esborrar (DELETE)
$sql = "DELETE FROM usuaris WHERE nom='John Doe'"; if ($conn->query($sql) === TRUE) { echo "Registre esborrat amb èxit"; } else { echo "Error esborrant registre: " . $conn->error; }
Seguretat en SQL per a aplicacions web
Quan treballem amb SQL en aplicacions web, és crucial tenir en compte la seguretat per evitar atacs com la injecció SQL.
Prevenció de la injecció SQL
Utilitzar sentències preparades és una de les millors maneres de prevenir la injecció SQL.
Exemple en PHP
$stmt = $conn->prepare("INSERT INTO usuaris (nom, email) VALUES (?, ?)"); $stmt->bind_param("ss", $nom, $email); $nom = "John Doe"; $email = "[email protected]"; $stmt->execute();
Exemple en Python
Exercicis pràctics
Exercici 1: Connexió a una base de dades
- Crea una connexió a una base de dades MySQL utilitzant PHP.
- Crea una connexió a una base de dades PostgreSQL utilitzant Python.
Exercici 2: Operacions CRUD
- Implementa les operacions CRUD en una aplicació web utilitzant PHP.
- Implementa les operacions CRUD en una aplicació web utilitzant Python.
Exercici 3: Seguretat
- Modifica les operacions CRUD per utilitzar sentències preparades en PHP.
- Modifica les operacions CRUD per utilitzar sentències preparades en Python.
Conclusió
En aquest tema, hem après com SQL s'integra en el desenvolupament web, com establir connexions a bases de dades, realitzar operacions CRUD i assegurar les nostres aplicacions contra la injecció SQL. Aquests coneixements són fonamentals per desenvolupar aplicacions web robustes i segures.
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