¡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

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

2 Días
22 Hrs
29 Min
49 Seg

Filtrar y Ordenar Datos en SQL (LIKE)

16/36
Resources

How to filter names by the initial letter in a table?

To display only the information of names starting with the letter "C", we can use the reserved word LIKE in SQL. For example, if we want to see the names starting with "C", the query would be:

SELECT * FROM table WHERE name LIKE 'C%';

This will display all names that start with "C".

How to filter surnames ending in a specific letter?

To display information for people whose last name ends in "O", the SQL query would be:

SELECT * FROM table WHERE last name LIKE '%O';

This will select all last names ending with the letter "O".

How to search for characters anywhere in the name?

If we need to display information for people who have the letter "A" anywhere in their name, the query would be:

SELECT * FROM table WHERE name LIKE '%A%';

This will select all names that contain the letter "A" in any position.

How to filter data using the LIKE operator in SQL?

To filter last names ending in "Z", we use the following query:

SELECT * FROM table WHERE last name LIKE '%Z';

For example, last names such as Perez, Gonzalez, Lopez, and Martinez will be selected.

How to filter names starting with a specific letter?

To display names that begin with the letter "J", we modify the query as follows:

SELECT * FROM table WHERE name LIKE 'J%';

This will select names such as Jimenez.

Is it necessary to show all the columns in the query?

No, it is not necessary. In complex queries or Big Data analysis, it is better to specify only the necessary columns. For example, to show only the first and last name of people aged 20, we use:

SELECT first_first_name, last_name FROM table WHERE age = 20;

Although we do not show the age in the SELECT, we use it in the WHERE condition.

How to filter surnames containing a specific letter?

To show people whose last name contains the letter "O", the query would be:

SELECT * FROM table WHERE last name LIKE '%O%';

This will select last names such as Gonzalez, Lopez, and Rodriguez.

How to combine multiple criteria in a query?

If we want to see names starting with "M", people in their 20's, and with last names containing "O", the query would be:

SELECT first_name, last_name FROM tableWHERE first_name LIKE 'M%' AND age = 20 AND last_name LIKE '%O%';

This will filter specific data based on multiple criteria, optimizing the query and improving system performance.

Practicing these queries on different tables will improve your SQL skills and optimize your queries for more efficient data analysis.

Contributions 67

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

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
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)
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'.
```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%';
```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
![](https://static.platzi.com/media/user_upload/vlcsnap-2021-07-28-10h18m57s560-b2be4216-6ac7-43e4-b72c-e64a8f454d6e.jpg) ![](https://static.platzi.com/media/user_upload/vlcsnap-2021-07-28-10h21m46s184-a03628e6-24b8-4d09-a3d8-c505e9a19499.jpg)
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.
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)