¡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

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

18 Días
8 Hrs
30 Min
51 Seg

Consultas y Selecciones en SQL (SELECT)

9/36
Recursos

El comando SELECT * FROM es una herramienta fundamental en SQL que permite consultar datos de manera fácil y rápida. Esta sentencia se utiliza para obtener toda la información de una tabla específica en la base de datos.

¿Cómo funciona el comando SELECT * FROM?

El comando SELECT es la palabra reservada que inicia la consulta. El asterisco (*) indica que se desea seleccionar todas las columnas de la tabla especificada. La palabra FROM se utiliza para referenciar la tabla origen de la consulta. Por ejemplo, si ejecutamos SELECT * FROM cursos, obtendremos todas las filas y columnas de la tabla cursos.

¿Cómo especificar columnas en lugar de seleccionar todas?

Si solo queremos consultar algunas columnas específicas, reemplazamos el asterisco por los nombres de las columnas. Por ejemplo, SELECT nombre, descripcion FROM cursos solo devolverá las columnas nombre y descripcion de la tabla cursos.

¿Cómo ordenar los resultados de la consulta?

Podemos ordenar los resultados utilizando la cláusula ORDER BY. Esta permite especificar si queremos que los datos se ordenen de manera ascendente (por defecto) o descendente. Por ejemplo, SELECT * FROM cursos ORDER BY fecha_carga DESC ordenará los resultados según la columna fecha_carga en orden descendente.

¿Cómo manejar errores comunes en las consultas?

Es normal encontrar errores de sintaxis al escribir consultas SQL. Por ejemplo, si intentamos ejecutar SELECT email, first_name FROM instructores ORDER BY fecha_carga, y fecha_carga no es el nombre correcto de la columna, obtendremos un error. Asegurarse de usar los nombres exactos de las columnas, que pueden ser sensibles a mayúsculas y minúsculas en algunos motores de bases de datos, es crucial para evitar estos errores.

¿Qué consideraciones adicionales debemos tener?

Es importante recordar que algunos sistemas de gestión de bases de datos son sensibles a mayúsculas y minúsculas (case sensitive). Esto significa que los nombres de las columnas deben coincidir exactamente con como fueron definidos en la base de datos. Practicar con diferentes tablas y ejercicios puede ayudar a familiarizarse más con estas herramientas y mejorar la habilidad de realizar consultas eficientes.

Explora las demás tablas y experimenta con diferentes consultas para obtener una comprensión más profunda del manejo de datos en SQL.

Aportes 25

Preguntas 3

Ordenar por:

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

![](https://static.platzi.com/media/user_upload/code%20%284%29%20%281%29-307542fb-af44-411f-9478-10c15cfeba59.jpg)
Definitivamente, este curso habla muy por encima de todos los temas. El curso que estaba antes me parece que hacia un desarrollo profundo de cada sentencia y se podia entender mejor.
Este curso es un 10 en producción pero didácticamente deja mucho que desear lamentablemente.
Hola, el día de ayer empecé a trabajar como desarrollador por primera vez en mi vida, despues de un largo periodo por fin lo conseguí, y este curso me ayuda bastante, ya que es uno de los lenguajes que uso!
SELECT \* FROM tu\_tabla; SELECT campo1, campo3 FROM tu\_tabla; SELECT campo1, campo3, campo5 FROM tu\_tabla ORDER BY campo1 ASC; SELECT campo1, campo3, campo5 FROM tu\_tabla ORDER BY campo3 DESC; SELECT campo1, campo3, campo5 FROM tu\_tabla GROUP BY campo1 ORDER BY campo3 DESC; SELECT columnas FROM tabla WHERE condiciones GROUP BY columnas\_agrupacion ORDER BY criterio\_ordenamiento;
¿Por qué es importante escribir el nombre de los atributos tal cual y como se registran en la base de datos? 👩‍💻
Para utilizar la sentencia `SELECT * FROM` en Visual Studio Code, primero asegúrate de tener un archivo SQL creado y conectado a tu base de datos. Luego, puedes escribir la consulta en tu archivo: ```sql SELECT * FROM nombre_de_la_tabla; ``` Reemplaza `nombre_de_la_tabla` con el nombre de la tabla que deseas consultar. Después, ejecuta la consulta usando el terminal o un plugin SQL. ¡Sigue practicando!
![](https://static.platzi.com/media/user_upload/image-1a16538c-6345-446f-b1f4-9d51ee56be79.jpg)![]()
* Uso del Comando SELECT: \- Comando fundamental para consultar datos. \- Sintaxis básica: `SELECT \* FROM tabla`. * Consultas Específicas: \- Seleccionar atributos específicos en lugar de toda la información. \- Ejemplo: `SELECT nombre\_curso, descripción FROM cursos`. * Ordenamiento de Datos: \- Ordenar registros de forma ascendente (por defecto) o descendente. \- Ejemplo: `ORDER BY fecha\_carga DESC`. * Práctica con Datos: \- Experimentar con los datos almacenados en las tablas. \- Ejercicio sugerido: agrupar información y utilizar diferentes claves en SQL. * Ejemplo con Otra Tabla: \- Uso de la tabla de instructores para práctica. \- Ejemplo: `SELECT email, first\_name FROM instructores ORDER BY fecha\_carga`. * Manejo de Errores de Sintaxis: \- Corregir errores de sintaxis comunes, como nombres incorrectos de campos. \- Importancia de escribir los nombres de atributos exactamente como se registraron. * Sensibilidad a Mayúsculas y Minúsculas: \- Algunos motores de bases de datos son case sensitive. \- Debes usar el nombre exacto de los atributos tal como fueron registrados.
```js -- Seleccionar Columnas Específicas SELECT firstname, lastname, email FROM students; -- Filtrar Resultados con WHERE SELECT firstname, lastname, age FROM students WHERE age > 20; -- Ordenar Resultados con ORDER BY SELECT firstname, lastname, age FROM students ORDER BY age DESC; -- Limitar el Número de Resultados con LIMIT SELECT firstname, lastname, age FROM students ORDER BY age DESC LIMIT 10; -- Combinar Condiciones con AND y OR SELECT firstname, lastname, age FROM students WHERE age > 20 AND lastname LIKE 'S%'; -- Joins Uniones SELECT s.firstname, s.lastname, c.coursename FROM students s INNER JOIN student_course sc ON s.studentid = sc.studentid INNER JOIN courses c ON sc.courseid = c.courseid; ```
![](https://static.platzi.com/media/user_upload/image-ec38b107-1adf-4402-8f71-92070fa60fb7.jpg)
No logro hacer que la columna de fecha de carga y actualización de datos me aparezca cuando hago la consulta de la tabla courses .
creo que el curso tiene que mejorar en conceptos y orden del material, aun así sigo intentándolo
![](https://static.platzi.com/media/user_upload/image-0bc0aaf0-309b-470e-8fcf-19ccdc3dd0f7.jpg)![](https://static.platzi.com/media/user_upload/image-48d87558-805c-497b-9374-ea11c77b2e13.jpg) POR SI ALGUIEN LA NECESITA, DEJO MI BD CON MYSQL; CREATE DATABASE PLATZI; USE PLATZI; CREATE TABLE STUDENTS( STUDENTID INT AUTO\_INCREMENT PRIMARY KEY, FIRSTNAME VARCHAR(50), LAISTNAME VARCHAR(50), AGE INT, EMAIL VARCHAR(100), LOADDATE TIMESTAMP DEFAULT CURRENT\_TIMESTAMP, UPDATEDATE TIMESTAMP DEFAULT CURRENT\_TIMESTAMP ); CREATE TABLE INSTRUCTORS( INSTRUCTORID INT AUTO\_INCREMENT PRIMARY KEY, FIRSTNAME VARCHAR(50), LAISTNAME VARCHAR(50), EMAIL VARCHAR(100), LOADDATE TIMESTAMP DEFAULT CURRENT\_TIMESTAMP, UPDATEDATE TIMESTAMP DEFAULT CURRENT\_TIMESTAMP ); CREATE TABLE COURSES( COURSEID INT AUTO\_INCREMENT PRIMARY KEY, COURSENAME VARCHAR(100), DESCRIPTION TEXT, DURATIONHOURS INT, INSTRUCTORID INT, LOAD\_DATE TIMESTAMP DEFAULT CURRENT\_TIMESTAMP, UPDATE\_DATE TIMESTAMP DEFAULT CURRENT\_TIMESTAMP, FOREIGN KEY (INSTRUCTORID) REFERENCES INSTRUCTORS(INSTRUCTORID) ); CREATE TABLE STUDENTS\_COURSES( STUDENTS\_COURSES INT AUTO\_INCREMENT PRIMARY KEY, STUDENTID INT, COURSEID INT, ENROLLMENT\_DATE TIMESTAMP DEFAULT CURRENT\_TIMESTAMP, LOAD\_DATE TIMESTAMP DEFAULT CURRENT\_TIMESTAMP, UPDATE\_DATE TIMESTAMP DEFAULT CURRENT\_TIMESTAMP, FOREIGN KEY (STUDENTID) REFERENCES STUDENTS(STUDENTID), FOREIGN KEY (COURSEID) REFERENCES COURSES(COURSEID) ); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('Alice', 'Smith', 20, '[email protected]'); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('Bob', 'Johnson', 22, '[email protected]'); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('Charlie', 'Williams', 19, '[email protected]'); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('Diana', 'Brown', 21, '[email protected]'); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('Ethan', 'Jones', 23, '[email protected]'); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('Fiona', 'Garcia', 20, '[email protected]'); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('George', 'Miller', 22, '[email protected]'); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('Hannah', 'Davis', 19, '[email protected]'); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('Ian', 'Martinez', 21, '[email protected]'); INSERT INTO STUDENTS (FIRSTNAME, LAISTNAME, AGE, EMAIL) VALUES ('Julia', 'Hernandez', 20, '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('Michael', 'Wilson', '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('Sarah', 'Moore', '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('David', 'Taylor', '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('Emily', 'Anderson', '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('James', 'Thomas', '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('Emma', 'Jackson', '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('Robert', 'White', '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('Linda', 'Harris', '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('Charles', 'Martin', '[email protected]'); INSERT INTO INSTRUCTORS (FIRSTNAME, LAISTNAME, EMAIL) VALUES ('Mary', 'Lee', '[email protected]'); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('Math 101', 'Introduction to Mathematics', 40); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('Physics 101', 'Introduction to Physics', 45); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('Chemistry 101', 'Introduction to Chemistry', 42); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('Biology 101', 'Introduction to Biology', 44); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('History 101', 'Introduction to History', 36); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('Literature 101', 'Introduction to Literature', 38); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('Computer Science 101', 'Introduction to Computer Science', 50); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('Art 101', 'Introduction to Art', 30); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('Music 101', 'Introduction to Music', 35); INSERT INTO COURSES (COURSENAME, DESCRIPTION, DURATIONHOURS) VALUES ('Philosophy 101', 'Introduction to Philosophy', 32); INSERT INTO STUDENTS\_COURSES (STUDENTID, COURSEID) VALUES (1, 2); INSERT INTO STUDENTS\_COURSES (STUDENTID, COURSEID) VALUES (3, 1); INSERT INTO STUDENTS\_COURSES (STUDENTID, COURSEID) VALUES (5, 4); INSERT INTO STUDENTS\_COURSES (STUDENTID, COURSEID) VALUES (3, 2);
Se debe mejorar el orden del curso, esta clase debería estar antes de la practica "Tu primera consulta en base de datos".
Aquí si tengo que hacer una observación, pusieron primero el quiz de select \* from y luego me explican qué es hay que ordenar mejor
Algunos tenemos la mala costumbre de ponerle **\*** a todo y traer siempre todos los datos, porque tenemos la idea de "***más vale que sobre y no que falte***". El problema de esa postura es que puede hacer nuestra tabla lenta al cargar y ejecutar. ***Siempre es preferible traer la cantidad justa de datos***.
Sintaxis basica de 'SELECT': Seguido de esta instruccion debemos colocar el nombre de las columnas que queremos consultar. `SELECT FIRSTNAME,AGE` Seguido del 'FROM' se coloca la tabla o tablas donde se encuentran las columnas que queremos mostrar. `FROM STUDENTS` Por ultimo 'WHERE' nos ayuda a filtrar mediante un condicional o sentencia logica y existen multiples formas de hacerlo `WHERE AGE >= 25` En este caso filtraria por los estudiantes con 25 o mas años. Como complemento 'ORDER BY' `ORDER BY AGE DESC` Que nos ayuda a presentar la informacion de forma ascendente o descendente ya sea numericamente o alfabeticamente.
Si les quedan dudas sobre la cuestión de las consultas y el uso del "SELECT" , yo tomé como referencia el libro "SQL para sobrevivir" de Sergio Garrido Barrientos. El cual es básico y te explica muy bien con ejemplos muy claros. Está en Kindle y muy barato. Muy recomendado. Gracias a todos por sus comentarios, ayudan a esclarecer ciertas dudas que de pronto salen a lo largo del curso.
Pero en que punto crearon esos datos de la tabla, en qué punto de todos esos códigos pongo los nombres de los alumnos, profesor y curso. NO que asco de explicación hermano.
![](https://static.platzi.com/media/user_upload/image-7820b845-aa87-4d51-b144-680a33a12a77.jpg)
![](https://static.platzi.com/media/user_upload/image-2c364d9d-ddb9-45f9-9778-6479e1e17177.jpg)
Está interesante el curso. ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-07-05%20222754-aebe4981-9a00-4145-bfe9-ab3281662961.jpg)
Pregunta: ¿Cómo puedo hacer una desde FROM cursos, pero que me extraiga los first\_name de los estudiantes apuntados y no solo “id”? Gracias :)