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

cursor.execute("INSERT INTO usuaris (nom, email) VALUES (%s, %s)", (nom, email))

Exercicis pràctics

Exercici 1: Connexió a una base de dades

  1. Crea una connexió a una base de dades MySQL utilitzant PHP.
  2. Crea una connexió a una base de dades PostgreSQL utilitzant Python.

Exercici 2: Operacions CRUD

  1. Implementa les operacions CRUD en una aplicació web utilitzant PHP.
  2. Implementa les operacions CRUD en una aplicació web utilitzant Python.

Exercici 3: Seguretat

  1. Modifica les operacions CRUD per utilitzar sentències preparades en PHP.
  2. 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

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