Resumen de SQL - Curso 2024-25 (Eric Garcia)
1. **VIOD_01 - Disseny físic de bases de dades** (DDL - Data Definition Language)
- **Objetivo**: Crear, modificar y eliminar estructuras de bases de datos.
- **Comandos principales**:
- `CREATE DATABASE db_name;` - Crea una base de datos.
- `USE db_name;` - Selecciona una base de datos para trabajar.
- `CREATE TABLE tbl_name (...);` - Crea una tabla con sus columnas y
restricciones.
- `ALTER TABLE tbl_name ...;` - Modifica la estructura de una tabla.
- `DROP TABLE tbl_name;` - Elimina una tabla y sus datos.
- **Ejemplo**:
```sql
CREATE TABLE clients (
dni CHAR(9) PRIMARY KEY,
nom VARCHAR(50),
direccio VARCHAR(50)
);
```
- **Relaciones**:
- Claves foráneas (`FOREIGN KEY`) con acciones: `CASCADE`, `SET NULL`, `NO
ACTION`.
- Ejemplo:
```sql
CREATE TABLE vehicles (
matricula CHAR(7) PRIMARY KEY,
reparat_per CHAR(9) REFERENCES mecanics(dni) ON DELETE SET NULL ON
UPDATE CASCADE
);
```
2. **VIOD_02 - Edició de les dades** (DML - Data Manipulation Language)
- **Objetivo**: Manipular datos en las tablas.
- **Comandos principales**:
- `INSERT INTO tbl_name (...) VALUES (...);` - Inserta datos.
- `UPDATE tbl_name SET ... WHERE ...;` - Modifica datos existentes.
- `DELETE FROM tbl_name WHERE ...;` - Elimina registros.
- **Ejemplos**:
- Insertar:
```sql
INSERT INTO cataleg (ID, Nom, Preu) VALUES (1, 'Silent Hill 2', 69.99);
```
- Actualizar:
```sql
UPDATE cataleg SET Preu = 59.99 WHERE Nom = 'Silent Hill 2';
```
- Eliminar:
```sql
DELETE FROM cataleg WHERE YEAR(Data_sortida) = 2024;
```
- **Subconsultas**: Permiten acciones complejas como eliminar registros basados
en otras tablas.
- **Transacciones**:
- `COMMIT;` - Confirma cambios.
- `ROLLBACK;` - Deshace cambios.
3. **VIOD_03 - Realització de Consultes** (Consultas avanzadas)
- **Comando principal**: `SELECT` - Recupera datos de una o más tablas.
- **Cláusulas y funciones**:
- `WHERE` - Filtra registros.
- `ORDER BY` - Ordena resultados (`ASC`, `DESC`).
- `LIMIT` - Restringe el número de registros.
- Operadores:
- Aritméticos: `+`, `-`, `*`, `/`.
- Relacionales: `=`, `<>`, `>`, `<`.
- Lógicos: `AND`, `OR`, `NOT`.
- Funciones:
- `CONCAT()`, `SUM()`, `DATE_SUB()`.
- **Ejemplos**:
- Básico:
```sql
SELECT * FROM vehicles WHERE marca = 'Seat';
```
- Complejo:
```sql
SELECT [Link], SUM(quantitat*preu_unitat) AS total
FROM clients, comandes
WHERE [Link] = comandes.id_client
GROUP BY [Link];
```
- **Filtros avanzados**:
- `LIKE` - Busca patrones (`%`, `_`).
- `IN` - Valores en un conjunto.
- `BETWEEN` - Valores en un rango.
Resumen basado en la documentación de Eric Garcia.