10° - SQL - SELECT
Introducción a SQL
Objetivo: Aprender a consultar datos de una base de datos usando SELECT, WHERE, ORDER BY y LIMIT, y practicar en https://www.sql-practice.com usando el esquema de base de datos disponible.
Parte 1: Conceptos Básicos
¿Qué es SQL?
SQL (Structured Query Language) es el lenguaje utilizado para interactuar con bases de datos relacionales. Permite realizar operaciones como consultar, insertar, actualizar y eliminar datos. SQL se compone de distintos tipos de comandos clasificados por su propósito:
-
DDL (Data Definition Language):
CREATE
,ALTER
,DROP
– Definen y modifican estructuras de datos. -
DML (Data Manipulation Language):
SELECT
,INSERT
,UPDATE
,DELETE
– Manipulan datos dentro de las tablas. -
DCL (Data Control Language):
GRANT
,REVOKE
– Controlan permisos sobre la base de datos. -
TCL (Transaction Control Language):
COMMIT
,ROLLBACK
,SAVEPOINT
– Controlan transacciones.
En esta clase nos enfocamos principalmente en los comandos de consulta (SELECT
) y filtrado de datos.
SELECT
Selecciona columnas de una tabla:
SELECT first_name, last_name FROM patients;
Resultado:
first_name | last_name |
---|---|
John | Doe |
Alice | Smith |
WHERE
Filtra filas según condiciones:
SELECT * FROM patients WHERE city = 'Toronto';
Resultado:
patient_id | first_name | last_name | city |
---|---|---|---|
2 | Maria | Lopez | Toronto |
ORDER BY
Ordena los resultados:
SELECT * FROM patients ORDER BY birth_date DESC;
Resultado:
patient_id | first_name | birth_date |
---|---|---|
5 | David | 2012-06-10 |
3 | Lucy | 2009-02-14 |
LIMIT
Muestra solo un número determinado de resultados:
SELECT * FROM doctors LIMIT 5;
Resultado:
doctor_id | first_name | last_name | specialty |
---|---|---|---|
1 | Emma | Carter | Pediatrics |
2 | Alex | Brown | Cardiology |
DISTINCT
Elimina duplicados de los resultados:
SELECT DISTINCT city FROM patients;
Resultado:
city |
---|
Toronto |
Calgary |
Vancouver |
BETWEEN
Filtra datos dentro de un rango:
SELECT * FROM admissions WHERE admission_date BETWEEN '2021-01-01' AND '2021-12-31';
IN
Filtra por múltiples valores:
SELECT * FROM patients WHERE city IN ('Toronto', 'Calgary');
LIKE
Filtra usando patrones:
SELECT * FROM patients WHERE last_name LIKE 'Sm%';
Resultado:
patient_id | first_name | last_name |
---|---|---|
4 | Lucas | Smith |
7 | Sarah | Small |
Parte 2: Actividades prácticas
Actividad 1
Mostrar los nombres y apellidos de todos los pacientes:
SELECT first_name, last_name FROM patients;
Actividad 2
Mostrar todos los datos de los pacientes de la ciudad "Calgary":
SELECT * FROM patients WHERE city = 'Calgary';
Actividad 3
Mostrar los 10 pacientes más jóvenes:
SELECT * FROM patients ORDER BY birth_date DESC LIMIT 10;
Actividad 4
Mostrar el nombre, apellido y especialidad de los doctores:
SELECT first_name, last_name, specialty FROM doctors;
Actividad 5
Mostrar todos los registros de admisión del año 2020:
SELECT * FROM admissions WHERE admission_date BETWEEN '2020-01-01' AND '2020-12-31';
Reto Final
Mostrar el nombre, apellido, ciudad y nombre de la provincia de los primeros 10 pacientes ordenados alfabéticamente por apellido:
SELECT p.first_name, p.last_name, p.city, pn.province_name
FROM patients p
JOIN province_names pn ON p.province_id = pn.province_id
ORDER BY p.last_name ASC
LIMIT 10;
Próxima clase: GROUP BY, funciones de agregación (COUNT, SUM, AVG), subconsultas y cláusulas HAVING.
Comentarios
Publicar un comentario