¡El poder de los datos!

1

¡El poder de los datos!

Introducción a las bases de datos relacionales

2

Buenas prácticas de bases de datos con SQL

3

Tipos de datos en SQL

4

¿Cómo crear una base de datos en SQL?

5

Práctica: Tu primera consulta en bases de datos

6

Historia y Evolución de SQL

7

Práctica: Creación de Tablas en SQL (CREATE TABLE)

Manipulación de Datos

8

Insertando Datos con SQL (INSERT)

9

Consultas y Selecciones en SQL (SELECT)

10

Práctica: SELECT en SQL

11

Actualización de Datos con SQL (UPDATE)

12

Eliminación de Datos con SQL (DELETE)

13

Práctica: CRUD con SQL

Manipulación Avanzada de Datos

14

Instalación de MySQL Server y MySQL Workbench

15

¿Qué es la cláusula WHERE de SQL?

16

Filtrar y Ordenar Datos en SQL (LIKE)

17

Práctica: Filtrar Datos con WHERE en SQL

18

Cláusulas de Comparación Textual en SQL (AND, NULL, IN, NOT)

19

Funciones de Aritmética Básica en SQL (COUNT, SUM, AVG)

20

Funciones de Aritmética Básica en SQL (MIN, MAX)

Agrupación de Datos

21

Agrupación de Datos en SQL: GROUP BY, HAVING y CASE para Análisis Avanzado

22

Práctica: Agrupamiento y Ordenamiento de Datos

23

Tipos de JOIN en SQL

24

¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

25

Práctica: LEFT JOIN en SQL

Transformación de Datos

26

Vistas Materializadas en SQL: Como optimizar tus consultas y reportes.

27

Práctica: Crear Vistas Materializadas en SQL

28

Optimización de Bases de Datos con SQL: CREATE INDEX y TRIGGER

29

Vistas Materializadas y Temporales en SQL

30

Expresiones de Tablas Comunes (CTE) en SQL

Procedimientos Almacenados

31

Procedimientos Almacenados en SQL

32

Procedimientos Almacenados en SQL: Gestión de Variables y Manejo de Excepciones

Administración de Base de Datos

33

Respaldos y Restauración de Bases de Datos

34

Seguridad en Bases de Datos SQL

Análisis de Datos Avanzados

35

Potenciando los Datos en la Nube: Data Science, Big Data, ML e AI

36

SQL para Análisis de Datos: Primeros pasos con Power BI

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Filtrar y Ordenar Datos en SQL (LIKE)

16/36
Recursos

¿Cómo filtrar nombres por la letra inicial en una tabla?

Para mostrar únicamente la información de los nombres que empiezan por la letra “C”, podemos usar la palabra reservada LIKE en SQL. Por ejemplo, si queremos ver los nombres que empiezan con “C”, la consulta sería:

SELECT * FROM tabla WHERE nombre LIKE 'C%';

Esto mostrará todos los nombres que comienzan con “C”.

¿Cómo filtrar apellidos que terminan en una letra específica?

Para mostrar información de personas cuyo apellido termina en “O”, la consulta SQL sería:

SELECT * FROM tabla WHERE apellido LIKE '%O';

Esto seleccionará todos los apellidos que terminan con la letra “O”.

¿Cómo buscar caracteres en cualquier parte del nombre?

Si necesitamos mostrar información de personas que tienen la letra “A” en cualquier parte de su nombre, la consulta sería:

SELECT * FROM tabla WHERE nombre LIKE '%A%';

Esto seleccionará todos los nombres que contienen la letra “A” en cualquier posición.

¿Cómo filtrar datos utilizando el operador LIKE en SQL?

Para filtrar apellidos que terminan en “Z”, utilizamos la siguiente consulta:

SELECT * FROM tabla WHERE apellido LIKE '%Z';

Por ejemplo, apellidos como Pérez, González, López, y Martínez serán seleccionados.

¿Cómo filtrar nombres que comienzan con una letra específica?

Para mostrar nombres que comienzan con la letra “J”, modificamos la consulta de la siguiente manera:

SELECT * FROM tabla WHERE nombre LIKE 'J%';

Esto seleccionará nombres como Jiménez.

¿Es necesario mostrar todas las columnas en la consulta?

No es necesario. En consultas complejas o en análisis de Big Data, es mejor especificar solo las columnas necesarias. Por ejemplo, para mostrar solo el primer nombre y apellido de personas de 20 años, usamos:

SELECT primer_nombre, apellido FROM tabla WHERE edad = 20;

Aunque no mostramos la edad en el SELECT, la utilizamos en la condición WHERE.

¿Cómo filtrar apellidos que contienen una letra específica?

Para mostrar personas cuyo apellido contiene la letra “O”, la consulta sería:

SELECT * FROM tabla WHERE apellido LIKE '%O%';

Esto seleccionará apellidos como González, López, y Rodríguez.

¿Cómo combinar múltiples criterios en una consulta?

Si queremos ver nombres que comienzan con “M”, personas de 20 años y con apellidos que contienen “O”, la consulta sería:

SELECT primer_nombre, apellido FROM tabla 
WHERE nombre LIKE 'M%' AND edad = 20 AND apellido LIKE '%O%';

Esto filtrará datos específicos basados en múltiples criterios, optimizando la consulta y mejorando el rendimiento del sistema.

Practicar estas consultas en diferentes tablas mejorará tus habilidades en SQL y optimizará tus consultas para análisis de datos más eficientes.

Aportes 66

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

SELECT FIRSTNAME, LAISTNAME, AGE FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' and AGE=20 and LAISTNAME LIKE '%o%'
alguien me puede ayudar en mi MySQL Workbench, el autocompletado de los nombres de los atributos no funciona, y quiero corregirlo o habilitarlo, ya que si es de gran utilidad para evitar error de sintaxis.
SELECT FIRSTNAME, AGE, LISTNAME FROM STUDENTS WHERE FIRSTNAME LIKE 'd%' AND AGE =21 AND LISTNAME LIKE '%O%' ESTOY MUY EMOCIONADO AL VER COMO LAS ACCIONES DE CODIGO REQUIRE TENER SUCUENCIA LOGICA , Y COMO CON DAR LA INSRUCION EL MOTOR INICIA EL PROCESO
```js select * from students where FIRSTNAME like 'M%' AND AGE = 20 AND LASTNAME LIKE '%O%'; ```select \* from students where FIRSTNAME like 'M%' AND AGE = 20 AND LASTNAME LIKE '%O%';
Para que me arrojará un dato cambio las especificaciones pero el ejercicio es el mismo, estoy usando la extensión e MySQL de VSCode![](https://static.platzi.com/media/user_upload/image-1f0db0c4-e2ac-4570-8467-446257feba61.jpg)
```js SELECT * FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND AGE = 20 AND LASTNAME LIKE '%O%'; ``` Reto 2
`SELECT firstname, lastname` `FROM STUDENTS` `WHERE firstname LIKE 'M' ` `AND age=20 ` `AND lastname LIKE '%O%';`
Pregunta, que pasaría si quiero diferenciar mayúscula o minúsculas
SELECT FIRSTNAME, LASTNAME, AGE FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND LASTNAME LIKE '%O%' AND AGE LIKE 23
SELECT \* FROM students WHERE name LIKE "M%" AND age = 20 AND last\_name LIKE "%o%";
SELECT \* FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND AGE = 20 and LASTNAME Like '%o%'
Para buscar registros que contengan dos letras específicas en SQL, puedes utilizar la cláusula `LIKE` combinada con los comodines `%`. Por ejemplo, si deseas buscar nombres que contengan las letras "a" y "b" en cualquier parte del texto, tu consulta podría ser: ```sql SELECT * FROM estudiantes WHERE nombre LIKE '%a%' AND nombre LIKE '%b%'; ``` Esto filtrará los registros de la tabla `estudiantes`, mostrando solo aquellos cuyos nombres incluyan ambas letras. Recuerda que puedes ajustar la consulta según tus necesidades específicas.
Para utilizar `LIKE` en SQL, puedes hacer lo siguiente: 1. Para encontrar nombres que comienzan con 'C': ```sql SELECT * FROM estudiantes WHERE nombre LIKE 'C%'; ``` 2. Para apellidos que terminan con 'O': ```sql SELECT * FROM estudiantes WHERE apellido LIKE '%O'; ``` 3. Para nombres que contienen 'A': ```sql SELECT * FROM estudiantes WHERE nombre LIKE '%A%'; ``` 4. Combinando condiciones: ```sql SELECT nombre, apellido FROM estudiantes WHERE nombre LIKE 'M%' AND edad = 20 AND apellido LIKE '%O%'; ``` Este último ejemplo muestra nombres que inician con 'M', tienen 20 años y su apellido contiene 'O'.
Yo lo estoy haciendo en SQL SERVER y lo apliqué pero a un dato existente: SELECT FirstName, LastName, Age FROM Instructor WHERE FirstName LIKE 'A%' AND Age = 20 AND LastName LIKE '%R%'; Resultado: Andres | Salazar | 20
Comparto mis apuntes de la clase \-- Nombres que empiezan por la letra C SELECT \* FROM students where FIRSTNAME like 'C%'; \-- Nombres que terminan por la letra O SELECT \* FROM students where LASTNAME like '%O'; \-- Nombres que en cualquier parte tienen la letra A SELECT \* FROM students where FIRSTNAME like '%A%'; \-- Nombres que terminan por la letra Z SELECT \* FROM students where LASTNAME like '%Z'; \-- apellidos que empiezan por la letra J, con columnas especificas SELECT \* FROM students where LASTNAME like '%J'; SELECT FIRSTNAME,LASTNAME from students where AGE = 20; SELECT FIRSTNAME,LASTNAME from students where LASTNAME like '%o%'; \-- RETO \-- NOMBRE DE PERSONA QUE EMPIEZA POR LA LETRA M, EDAD 20, LA LETRA O EN CUALQUIER PARTE DEL APELLIDO SELECT \* from students where FIRSTNAME like 'm%' AND AGE = 20 AND LASTNAME like '%o%';
Mi respuesta para el reto fue la siguiente: `SELECT * FROM STUDENTS` `WHERE ` ` ``FIRSTNAME LIKE 'M%' AND` ` AGE = 20 AND ` ` LASTNAME LIKE '%O%';` ` `
SELECT FIRSTNAME, LASTNAME FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND AGE=20 AND LASTNAME LIKE '%O%';
`select * from students` `where FIRSTNAME like 'M%'` `AND AGE = 20` `AND LASTNAME LIKE '%O%';`
```js select * from students where FIRSTNAME like 'C%'; select * from students where FIRSTNAME like '%A%' ```
SELECT \* FROM students WHERE firstname LIKE "M%" AND age = 20 AND lastname LIKE %O%;
![](https://static.platzi.com/media/user_upload/image-0eacf39d-7f7a-49eb-aabb-8be9f29ff678.jpg) Hice el ejercicio con 23 años para que me arrojara algún resultado
```txt SELECT firstname, lastname FROM students WHERE firstname LIKE 'M%' AND age = 20 AND lastname LIKE '%O%'; ```SELECT firstname, lastname FROM students WHERE firstname LIKE 'M%' AND age = 20 AND lastname LIKE '%O%';
SELECT \* FROM STUDENTS WHERE LASTNAME LIKE 'M%'; select \* FROM STUDENTS WHERE AGE = 20; SELECT \* FROM STUDENTS WHERE FIRSTNAME LIKE '%O%';
AGE\* :)
SELECT \* FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND edad = 20 AND LASTNAME LIKE '%O%';
select from students where left (name,1) = "C" or right(name,1) = "O" or name like "%A%" ;
```js SELECT * FROM STUDENTS WHERE FIRSTNAME LIKE 'C%' OR LASTNAME LIKE '%O' OR FIRSTNAME LIKE '%A%'; ```
SELECT FIRSTNAME, LASTNAME FROM students WHERE FIRSTNAME LIKE 'M%' AND AGE = 20 AND LASTNAME LIKE '%O%';
```txt SELECT FIRSTNAME, LASTNAME, AGE FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND AGE=20 AND LASTNAME LIKE '%O%' ```
![](https://static.platzi.com/media/user_upload/image-2723a824-b85c-4545-8637-28451be1b64a.jpg)
`SELECT * FROM table ` `WHERE firstname LIKE "M%"` `AND age == 20` `AND lastname LIKE "%o%";`
Reto 1\. SELECT INSTRUCTORID, LASTNAME FROM INSTRUCTORS WHERE FIRSTNAME LIKE 'M%' 2\. SELECT FIRSTNAME, LASTNAME FROM STUDENTS WHERE AGE=20 3\. SELECT FIRSTNAME, LASTNAME FROM STUDENTS WHERE LASTNAME LIKE '%O%'
```js SELECT FIRSTNAME, LASTNAME,AGE FROM STUDENTS WHERE LASTNAME LIKE 'M%' AND AGE LIKE 20 AND LASTNAME LIKE '%O' ```SELECT FIRSTNAME, LASTNAME,AGE FROM STUDENTS WHERE LASTNAME LIKE 'M%' AND AGE LIKE 20 AND LASTNAME LIKE '%O'
![](https://static.platzi.com/media/user_upload/image-7afeb35b-11e0-48a7-b6a2-6dfff7ff8ffe.jpg) Cambie las letras para que saliera alguno.
SELECT \* FROM STUDENTS WHERE FIRST\_NAME LIKE 'M%' AND AGE = 20 AND LAST\_NAME LIKE '%O%';
WHERE FIRSTNAME LIKE 'M%' AND AGE = 20 AND LASTNAME LIKE '%O%'; Uso Microsoft SQL en vez de MySQL,
Reto: ```js where firstname like 'M%' and age = 20 and lastname like '%o%'; ```
Para darle un poquito de dinámica al ejercicio también por que en mi base de datos no tengo algún dato que se cumplan en sus condiciones, lo que hice fue lo siguiente: ```js SELECT * FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND LASTNAME LIKE '%O%' AND AGE > 20; ```Arrojando como resultado, un solo dato que cumplía las condiciones, en este caso en jove Michael Johnson, de 24 años. ![](https://static.platzi.com/media/user_upload/image-d3b0d92f-5f5e-48be-b0f1-d3f7bb3b2928.jpg) Sin embargo, pude entender que en SQL también hacemos uso de operadores lógicos como lo es "AND" para cumplir todas sus condiciones y poder arrojar un resultado o el operador "OR" que nos permite arrojar un resultado si se cumple cómo mínimo una de sus condiciones impuestas. Muchas expectativas con este curso, tengo un reflejo de lo que algunos de los colegas han manifestado sobre como para este curso se entra en materia sin explicar algunas bases de lo que se hace, pero también me voy con el mensaje de que en este punto tenemos todas las herramientas para investigar, complementar y resolver nuestras dudas!!!!
![](https://static.platzi.com/media/user_upload/123-db1467aa-f362-494d-b5ae-ad8d1841a3e9.jpg)
```js SELECT FIRSTNAME, LASTNAME, AGE FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND AGE LIKE 20 AND LASTNAME LIKE '%O%'; ```SELECT FIRSTNAME, LASTNAME, AGE FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND AGE LIKE 20 AND LASTNAME LIKE '%O%';
A continuación mi desarrollo del caso: ```js SELECT FIRSTNAME, LASTNAME FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND AGE = 52 AND LASTNAME LIKE '%O%'; ```![](https://static.platzi.com/media/user_upload/image-16370a63-ecc1-4640-9f2b-31933788cd77.jpg) P.D. Ahora estoy usando DBeaver como cliente para interactuar con la base de datos 💻
```js select * from students where FIRSTNAME like 'm%' and AGE = 20 and LASTNAME like '%o%'; ```
```js SELECT * FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND AGE = 20 AND LASTNAME LIKE '%O%'; ```SELECT \* FROM STUDENTS WHERE FIRSTNAME LIKE 'M%' AND AGE = 20 AND LASTNAME LIKE '%O%';
SELECT \* FROM STUDENTS WHERE firstname LIKE '%O' AND edad = 20 AND lastName LIKE '%O%'
Con la "m" no me dio nada porque no tengo esas condiciones en mi tabla de estudiantes, peroooo, con la letra "A" sí :) ![](https://static.platzi.com/media/user_upload/image-4fbcba59-c066-43a9-ac5c-d917d8b49ec4.jpg)
![](https://static.platzi.com/media/user_upload/image-8ef29b40-150b-4ccf-bc5c-8372cd2a1165.jpg)
SELECT \* FROM students WHERE firstname LIKE 'M%' AND age = 20 AND lastname LIKE '%o%';
SELECT \* FROM STUDENTS WHERE 1 = 1 AND FIRSTNAME LIKE 'C%'; SELECT \* FROM STUDENTS WHERE 1 = 1 AND FIRSTNAME LIKE '%O'; SELECT \* FROM STUDENTS WHERE 1 = 1 AND FIRSTNAME LIKE '%A%'; SELECT FIRSTNAME, LASTNAME, AGE FROM STUDENTS WHERE 1 = 1 AND FIRSTNAME LIKE '%A%' AND LOAD\_DATE = '2024-07-11'; SELECT \* FROM STUDENTS WHERE 1 = 1 AND FIRSTNAME LIKE 'M%' AND AGE = 22 AND LASTNAME LIKE '%O%';
![](https://static.platzi.com/media/user_upload/image-24e25b2c-e854-479b-8c72-39492cd396b0.jpg)
SELECT \* FROM students WHERE FIRSTNAME like 'M%' and Age=20 and LASTNAME like '%o%'
```js -- Reto SELECT * FROM students WHERE firstname LIKE 'A%'; SELECT * FROM students WHERE lastname LIKE '%son'; SELECT * FROM students WHERE email LIKE '%@gmail.com'; SELECT * FROM students WHERE firstname LIKE '%an%' ORDER BY lastname ASC; ```
`SELECT first_name, last_name FROM students` `WHERE first_name LIKE 'M%' AND AGE = 20 AND last_name LIKE '%o%';`
Me dio un set empty porque no tenía ningún dato que cumpliera con ese criterio. ```js SELECT * FROM students WHERE first_name LIKE "M%" AND last_name LIKE "%O" AND age = 20; ```SELECT \* FROM students -> WHERE first\_name LIKE "M%" and last\_name LIKE "%O" and age = 20;
`select * from students` `where FIRSTNAME like 'M%'` `select * from students` `where AGE = 20` `select * from students` `where LASTNAME LIKE '%o%'`
select firstname, lastname, age from students where firstname like 'M%' and age = 20 and lastname like '%o%';```js select firstname, lastname, age from students where firstname like 'M%' and age = 20 and lastname like '%o%'; ```
```txt select firstname, lastname from students where lastname like '%o%' and age = 21; ```
SELECT FIRSTNAME, LASTNAME FROM STUDENTS WHERE AGE = 20 AND FIRSTNAME LIKE 'M%' AND LASTNAME LIKE '%O%'; funciona pero no tengo resultados para la captura debido a que en mis datos aleatorios, no tengo estudiantes de 20 años que cumplan las otras dos condiciones.
Mi solución al reto: ![](https://static.platzi.com/media/user_upload/image-a99f166a-399b-4de8-8b84-98b422d993b9.jpg)
En elCaso que la letra A este en cualquier posicion![](https://static.platzi.com/media/user_upload/image-93b1a21f-4e10-41d9-b26a-61d4a9ea2ab9.jpg)
Mi reto solo cambie que inicie con la letra J ![](https://static.platzi.com/media/user_upload/image-b7a6ccfb-3a36-4a98-8a23-c2877f9aeaf4.jpg)
`SELECT ` `FIRSTNAME,` `LASTNAME ` `FROM STUDENTS` `WHERE FISRTSNAME LIKE 'M%'` `AND AGE = 20` `AND LASTNAME LIKE '%O%'`
`SELECT ` `FIRSTNAME,` `LASTNAME ` `FROM STUDENTS` `WHERE FISRTSNAME LIKE 'M%'` `AND AGE = 20` `AND LASTNAME LIKE '%O%'`
No conocía esta estructura para LIKE en SQL: `SELECT FIRSTNAME,LASTNAME FROM STUDENTS` `WHERE LASTNAME LIKE '%0%'`
Mis resultados de los ejercicios iniciales: ```js SELECT * FROM STUDENTS WHERE first_name LIKE 'c%' SELECT * FROM STUDENTS WHERE last_name LIKE 'o%' SELECT * FROM STUDENTS WHERE first_name LIKE '%a%' ```
Mi resultado del ejercicio: ```txt SELECT first_name, last_name FROM STUDENTS WHERE first_name LIKE 'm%' AND age = 20 AND last_name LIKE '%o%' ```
Mi respuesta del ejercicio: ```txt SELECT first_name, last_name FROM STUDENTS WHERE first_name LIKE 'm%' AND age = 20 AND last_name LIKE '%o%' ```Resultado: ![]()![](https://static.platzi.com/media/user_upload/image-c9423ade-2985-443d-9900-dcbd6a5ec941.jpg)