{}const=>[]async()letfn</>var
Desarrollo

SQL para principiantes: las primeras consultas que dan resultados

De cero a la acción: 12 recetas listas para usar de consultas SELECT, filtros, ordenación, agrupación y JOIN simple. En el artículo verás el primer beneficio de SQL.

К

Kodik

Autor

4 min de lectura

¿Qué es SQL en pocas palabras?

SQL (Structured Query Language) — un lenguaje para preguntar a la base de datos sobre los hechos: «¿Cuántos pedidos?», «¿Qué productos cuestan más de 50?», «¿Quién no ha hecho ninguna compra?».

Conjunto básico de comandos para leer:

  • SELECT — qué columnas tomar;

  • FROM — de qué tabla;

  • WHERE — qué líneas dejar;

  • ORDER BY — cómo ordenar;

  • LIMIT — cuántas líneas devolver;

  • JOIN — cómo pegar tablas entre sí;

  • GROUP BY + agregados (COUNT, SUM, AVG, MIN, MAX) — agrupar y calcular.

🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

Nuestra mini base de datos de ejemplos

Tabla users

id

name

email

city

1

Anna Ivanova

anna@example.com

Moscow

2

Ivan Petrov

ivan@company.ru

Saint-P

3

Lee Kim

lee.kim@example.com

Tabla products

id

title

price

1

Keyboard

39.9

2

Mouse

19.9

3

Monitor 24"

149.0

Tabla orders

id

user_id

product_id

qty

created_at

1

1

1

1

2025-09-01

2

1

3

1

2025-09-03

3

2

2

2

2025-09-05

La primera solicitud:

SELECT * 
FROM users;

SELECT name, city 
FROM users;

Filtración: WHERE

SELECT name, email
FROM users
WHERE city = 'Moscow';

SELECT title, price
FROM products
WHERE price > 20;

SELECT title, price
FROM products
WHERE price BETWEEN 20 AND 150;

SELECT name, city
FROM users
WHERE city IN ('Moscow', 'Saint-P');

SELECT email
FROM users
WHERE email LIKE '%@example.com';

SELECT name
FROM users
WHERE city IS NULL;

Ordenar y limitar: ORDER BY + LIMIT

SELECT title, price
FROM products
ORDER BY price ASC
LIMIT 2;

SELECT id, user_id, created_at
FROM orders
ORDER BY created_at DESC
LIMIT 5;

Valores únicos: DISTINCT

SELECT DISTINCT city
FROM users
WHERE city IS NOT NULL;

Agrupaciones y agregados: GROUP BY

SELECT user_id, COUNT(*) AS orders_count
FROM orders
GROUP BY user_id;

SELECT p.title, SUM(o.qty * p.price) AS total_revenue
FROM orders o
JOIN products p ON p.id = o.product_id
GROUP BY p.title
ORDER BY total_revenue DESC;

SELECT p.title, SUM(o.qty * p.price) AS total_revenue
FROM orders o
JOIN products p ON p.id = o.product_id
GROUP BY p.title
HAVING SUM(o.qty * p.price) > 100;

JOINs simples sin dolor

SELECT u.name, p.title, o.qty, o.created_at
FROM orders o
JOIN users u    ON u.id = o.user_id
JOIN products p ON p.id = o.product_id
ORDER BY o.created_at DESC;

SELECT u.name, MAX(o.created_at) AS last_order
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.name
ORDER BY last_order DESC NULLS LAST;

12 recetas rápidas para el trabajo

-- 1. Последние 5 заказов
SELECT * FROM orders ORDER BY created_at DESC LIMIT 5;

-- 2. Пользователи с доменом example.com
SELECT name, email FROM users WHERE email LIKE '%@example.com';

-- 3. Топ-3 товара по выручке
SELECT p.title, SUM(o.qty * p.price) AS revenue
FROM orders o JOIN products p ON p.id = o.product_id
GROUP BY p.title
ORDER BY revenue DESC
LIMIT 3;

-- 4. Пользователи без города
SELECT * FROM users WHERE city IS NULL;

-- 5. Товары в ценовом коридоре
SELECT * FROM products WHERE price BETWEEN 20 AND 150;

-- 6. Количество заказов по дням
SELECT DATE(created_at) AS day, COUNT(*) AS cnt
FROM orders
GROUP BY DATE(created_at)
ORDER BY day;

-- 7. Сколько разных городов
SELECT COUNT(DISTINCT city) FROM users WHERE city IS NOT NULL;

-- 8. Сумма корзины конкретного заказа
SELECT SUM(o.qty * p.price) AS total
FROM orders o JOIN products p ON p.id = o.product_id
WHERE o.id = :id;

-- 9. Все товары, которые покупал Иван
SELECT p.title
FROM orders o
JOIN users u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id
WHERE u.name = 'Ivan Petrov';

-- 10. Заказы за последние 7 дней
SELECT * FROM orders
WHERE created_at >= CURRENT_DATE - INTERVAL '7 DAY';

-- 11. Первые N строк для быстрой проверки
SELECT * FROM users LIMIT 10;

-- 12. Уникальные домены email
SELECT DISTINCT SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM users;

Si quieres práctica y explicaciones breves, en Kodik analizamos SQL en tareas en vivo, desde muestras simples hasta análisis con agregaciones. Sin agua, con interactividad.

También tenemos un canal de telegram, donde discutimos ideas geniales, compartimos experiencias y analizamos juntos las tareas: aprender no solo es útil, sino también divertido.

La pregunta es: ¿Qué parte de SQL da más miedo: JOIN, GROUP BY o el misterioso NULL? Escribe lo que quieres que analicemos en el siguiente artículo.

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta