Consultas Básicas
## Objetivos de Aprendizaje
- Dominar las sentencias SELECT
- Usar alias de columnas
- Realizar operaciones aritméticas en consultas
- Entender DISTINCT y ALL
## La Sentencia SELECT
### Seleccionar Todas las Columnas
```sql
SELECT *
FROM employees;
```
### Seleccionar Columnas Específicas
```sql
SELECT first_name, last_name, salary
FROM employees;
```
### Orden de Columnas
```sql
SELECT last_name, first_name, salary
FROM employees;
```
## Alias de Columnas
### Palabra Clave AS
```sql
SELECT
first_name AS "First Name",
last_name AS "Last Name",
salary AS "Annual Salary"
FROM employees;
```
### Sin AS
```sql
SELECT
first_name "First Name",
salary * 12 "Annual Total"
FROM employees;
```
## Operaciones Aritméticas
```sql
SELECT
first_name,
salary,
salary * 12 AS annual_salary,
salary / 12 AS monthly_salary,
salary + 1000 AS raise
FROM employees;
```
### Operadores
| Operador | Descripción |
|----------|-------------|
| + | Suma |
| - | Resta |
| * | Multiplicación |
| / | División |
| % | Módulo (resto) |
### Consideraciones de División
```sql
-- División entera en algunas bases de datos
SELECT 10 / 3; -- Devuelve 3 en SQL Server, 3.333 en MySQL
-- Usar decimal para precisión
SELECT CAST(10 AS FLOAT) / 3;
```
## Concatenación de Cadenas
### SQL Server
```sql
SELECT first_name + ' ' + last_name AS full_name
FROM employees;
```
### MySQL
```sql
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;
```
### PostgreSQL / SQLite
```sql
SELECT first_name || ' ' || last_name AS full_name
FROM employees;
```
## Valores NULL
### ¿Qué es NULL?
NULL representa datos faltantes o desconocidos.
```sql
-- Empleados sin email
SELECT first_name, email
FROM employees
WHERE email IS NULL;
```
### NULL en Cálculos
```sql
-- Cualquier aritmética con NULL devuelve NULL
SELECT salary + bonus FROM employees; -- Si bonus es NULL, el resultado es NULL
```
### Manejo de NULL
```sql
-- COALESCE devuelve el primer valor no-NULL
SELECT
first_name,
COALESCE(bonus, 0) AS bonus
FROM employees;
```
## DISTINCT
### Eliminar Duplicados
```sql
SELECT DISTINCT department
FROM employees;
```
### Múltiples Columnas
```sql
SELECT DISTINCT department, city
FROM employees;
```
## Palabra Clave ALL
```sql
-- Comportamiento por defecto
SELECT ALL salary FROM employees;
-- Es lo mismo que
SELECT salary FROM employees;
```
## Expresiones
### Expresiones de Columna
```sql
SELECT
first_name,
last_name,
salary * 1.10 AS new_salary
FROM employees;
```
### WHERE con Expresiones
```sql
SELECT
first_name,
salary,
salary * 12 AS annual
FROM employees
WHERE salary * 12 > 50000;
```
## LIMIT / TOP
### MySQL / PostgreSQL / SQLite
```sql
SELECT *
FROM employees
LIMIT 10;
```
### Cláusula TOP (SQL Server)
```sql
SELECT TOP 10 *
FROM employees;
```
### Con OFFSET (Paginación)
```sql
-- MySQL / PostgreSQL
SELECT *
FROM employees
LIMIT 10 OFFSET 20;
-- SQL Server
SELECT *
FROM employees
ORDER BY employee_id
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
```
## Resumen
- `SELECT *` recupera todas las columnas
- Usa alias con `AS` para nombres de columnas legibles
- Los operadores aritméticos funcionan en sentencias SELECT
- La concatenación de cadenas varía según la base de datos
- NULL representa datos faltantes; usa `IS NULL` / `IS NOT NULL`
- `DISTINCT` elimina filas duplicadas
- `LIMIT` / `TOP` limita el número de filas devueltas
Comments
Comments powered by Giscus
To enable comments, add your Giscus embed code here.
Learn more about Giscus →