sql
¿Qué es SQL?
SQL significa Structured Query Language (Lenguaje de consulta estructurado). SQL se utiliza para comunicarse con una base de datos y SQL es el lenguaje estándar para los sistemas de gestión de bases de datos relacionales. Las sentencias SQL se utilizan para realizar tareas como actualizar datos o recuperar datos de una base de datos. Los sistemas comunes de gestión de bases de datos relacionales que utilizan SQL son: Oracle, Sybase, Microsoft SQL Server, Access, Ingres, etc. Leer más
Tutorial de SQL
Comandos SQL estándar fáciles de aprender como "Select", "Insert", "Update", "Delete", "Create" y "Drop" pueden utilizarse para realizar casi todo lo que necesitarás hacer con una base de datos. Este tutorial de SQL te proporcionará las instrucciones básicas de cada uno de estos comandos y te permitirá ponerlos en práctica utilizando el intérprete de SQL.
¿Qué puede hacer SQL?
- ejecutar consultas contra una base de datos
- recuperar datos de una base de datos
- insertar registros en una base de datos
- actualizar registros en una base de datos
- eliminar registros de una base de datos
- crear nuevas bases de datos
- crear nuevas tablas en una base de datos
- puede crear procedimientos almacenados en una base de datos
- puede crear vistas en una base de datos
- puede establecer permisos sobre tablas, procedimientos y vistas
Los comandos SQL más importantes
- SELECT - extrae datos de una base de datos
- UPDATE - actualiza los datos en una base de datos
- DELETE - borra datos de una base de datos
- INSERT INTO - inserta nuevos datos en una base de datos
- CREATE DATABASE - crea una nueva base de datos
- ALTER DATABASE - modifica una base de datos
- CREATE TABLE - crea una nueva tabla
- ALTER TABLE - modifica una tabla
- DROP TABLE - borra una tabla
- CREATE INDEX - crea un índice (clave de búsqueda)
- DROP INDEX - borra un índice
¿Por qué debería aprender SQL?
SQL es un requisitio increíblemente importante y valioso que los empleadores desean cada vez más. Puedes ganar mucho dinero, los programadores SQL tienen mucha demanda. A medida que las organizaciones buscan hacer más con sus datos, necesitarán más individuos con las habilidades para acceder y analizar esos datos. SQL es la habilidad que te permite hacer precisamente eso.
El aprendizaje de SQL te permitirá extraer datos con mayor eficiencia, ya que las consultas SQL se pueden guardar y reutilizar fácilmente en cualquier momento. Puedes realizar manipulaciones de datos, combinar datos de múltiples fuentes y gestionar grandes grupos de datos. Y ya no tendrás que lidiar con un Excel gigantesco.
Lista de sentencias
https://www.ibm.com/docs/es/db2woc?topic=reference-statements
11 Ejercicios Básicos de Ejercicio de SQL
En esta sección, proporcionaré 11 ejercicios de práctica de SQL con soluciones. La dificultad irá aumentando gradualmente: Empezaré con ejercicios muy fáciles y genéricos e iré introduciendo nuevos conceptos de SQL poco a poco.
¿Estás preparado para mejorar tu práctica de SQL?
Ejercicio 1: Listar todos los alumnos
Ejercicio
Seleccionar todos los datos de los alumnos de la base de datos.
Solución
SELECT * FROM student; |
Explicación
Queremos recuperar la información de los estudiantes de la base de datos. Por lo tanto, tenemos que utilizar la cláusula SELECT
y la cláusula FROM
en la tabla student
en la tabla. El símbolo del asterisco (*
) se utiliza aquí como abreviatura para representar los nombres de todas las columnas de la tabla students
. Tenga en cuenta que todas las sentencias SQL terminan con el carácter punto y coma (;
).
Ejercicio 2: Listar todos los nombres de los estudiantes
Ejercicio
Seleccione el nombre y apellido de todos los estudiantes.
Solución
SELECT first_name, last_name FROM student; |
Explicación
Esta vez queremos recuperar información parcial de la base de datos. Podemos hacerlo fácilmente indicando el nombre de las columnas que queremos recuperar - en este caso, first_name
y last_name
. Los nombres de las columnas se separan con una coma y van seguidos de la sentencia FROM con el nombre de la tabla (student
).
Ejercicio 3: Seleccionar un profesor específico por ID
Ejercicio
Seleccione de la base de datos el correo electrónico del profesor con ID 5.
Solución
SELECT email FROM lecturer WHERE id = 5; |
Explicación
Esta vez queremos recuperar la información del profesor de la base de datos. Por lo tanto, tenemos que utilizar la cláusula SELECT
y la cláusula FROM
en la tabla lecturer
en la tabla.
En una base de datos, cada tabla suele tener una columna de clave primaria (generalmente llamada ID
) que representa un identificador único para cada entrada. En este ejercicio, recuperamos sólo un conferenciante (es decir, una fila) de la tabla lecturer
de la tabla. Para ello, utilizamos la cláusula WHERE
con la condición id=5
.
En este caso, utilizamos el operador de comparación "igual" (=
). También podríamos escribir una condición con otros operadores de comparación, como >
, <
, >=
, <=
, o <>
(no igual a).
Ejercicio 4: Seleccionar alumnos por apellido
Ejercicio
Seleccionar todos los datos de cualquier alumno cuyo apellido sea Durrand.
Solución
SELECT * FROM student WHERE last_name = 'Durrand' ; |
Explicación
Volver a la student
¡tabla! En este ejercicio, queremos recuperar todos los alumnos cuyo apellido sea Durrand. La columna last_name
permite valores duplicados; por lo tanto, cuando usamos la cláusula WHERE
, se pueden devolver múltiples filas.
Tenga en cuenta que las comillas simples ('
) se utilizan en SQL para encerrar valores de texto (‘Durrand’
).
Ejercicio 5: Seleccionar Estudiantes Cuyo Apellido Empieza por D
Ejercicio
Seleccionar los nombres y apellidos de los alumnos cuyo apellido empiece por la letra D.
Solución
SELECT first_name, last_name FROM student WHERE last_name LIKE 'D%' ; |
Explicación
En este ejercicio no buscamos alumnos con un apellido exacto, sino alumnos cuyo apellido empiece por una letra concreta (D). El operador de comparación igual (=) no se puede utilizar en este ejercicio porque no buscamos una coincidencia exacta. Afortunadamente, SQL proporciona el operador LIKE
que nos permite buscar un patrón específico.
El uso de la cláusula WHERE en combinación con el operador LIKE
en la columna last_name
es suficiente. El carácter de porcentaje (%
) se utiliza para representar cero, uno o varios caracteres. Por lo tanto, ‘D%’
significa aquí "Un nombre que empieza por D seguido de cero, uno o muchos más caracteres".
¿Te han gustado los ejercicios de este artículo? Puedes encontrar más en el excelente artículo 10 Beginner Ejercicio de SQL Exercises With Solutions de mi amigo Tihomir Babic.
Ejercicio 6: Usar Múltiples Condiciones para Seleccionar un Semestre Académico
Ejercicio
Seleccione todos los datos de los semestres académicos en los que se cumplan estas dos condiciones: el año es 2020 y el trimestre es primavera.
Solución
SELECT * FROM academic_semester WHERE calendar_year = 2020 AND term = 'spring' ; |
Explicación
En esta ocasión, se nos pide recuperar la información de los semestres académicos. Vamos a realizar una cláusula SELECT
sobre la tabla academic_semester
para conseguirlo. En comparación con los ejercicios anteriores, algo es nuevo: ¡tenemos 2 condiciones!
Te preguntarás si en SQL se permiten múltiples condiciones; ¡sí, se permiten! Lo único que tienes que hacer es utilizar un operador lógico en combinación con la cláusula WHERE
. SQL proporciona tres operadores lógicos: AND
, OR
, y NOT
. En este ejercicio, queremos que se cumplan las 2 condiciones, por lo que utilizamos el operador lógico AND
.
Observe que la columna calendar_year
es de tipo entero, mientras que el término es una cadena. Por eso no usamos comillas cuando buscamos 2020 en calendar_year
y pero usamos comillas simples cuando buscamos el término 'Primavera'.
Ejercicio 7: Ordenar alumnos por apellido
Ejercicio
Seleccione el apellido y la fecha de nacimiento de los alumnos nacidos a partir de 2003 y ordénelos por apellido en orden descendente (de la Z a la A).
Solución
SELECT last_name, birth_date FROM student WHERE birth_date >= '2003-01-01' ORDER BY last_name DESC ; |
Explicación
En este ejercicio, recuperamos todos los alumnos nacidos a partir del 1 de enero de 2003. Por lo tanto, nuestro filtro se aplicará a la columna birth_date
de la tabla student
de la tabla.
Si vuelves a mirar el diagrama de la base de datos que proporcioné al principio de este artículo, te darás cuenta de que la columna birth_date
tiene un tipo de datos de fecha.
En SQL, las fechas se almacenan en el siguiente orden: año, mes y día. Lo llamamos el formato yyyy-mm-dd
. Por ejemplo, el 10 de enero de 2023 se almacenaría como 2023-01-10 en una base de datos.
SQL también utiliza comillas simples para encerrar las fechas (10 de enero de 2023 se escribe como ‘2023-01-10’
) y se permiten las comparaciones en las fechas. Por lo tanto, para construir la consulta que necesitamos, utilizamos la cláusula WHERE con el símbolo de comparación mayor o igual que (>=) en la fecha de nacimiento.
A continuación, ordenamos el resultado por apellido gracias a la palabra clave ORDER BY
. La palabra clave DESC
indica aquí que el resultado se ordenará en orden descendente (de la Z a la A). Si desea ordenar por orden ascendente, utilice la palabra clave ASC.
Ejercicio 8: Alumnos nacidos entre 2003 y 2004
Ejercicio
Seleccione de la base de datos el nombre, apellido y fecha de nacimiento de los alumnos nacidos entre 2003 y 2004.
Solución
SELECT first_name, last_name, birth_date FROM student WHERE birth_date >= '2003-01-01' AND birth_date <= '2004-12-31' ; |
Explicación
En este ejercicio, recuperamos los registros de todos los alumnos nacidos a partir del 1 de enero de 2003 y antes del 31 de diciembre de 2003. Utilizamos la cláusula SELECT
.
Hemos visto en el ejercicio anterior que se permiten comparaciones sobre fechas, por lo que nuestra condición aquí es birth_date >= '2003-01-01' AND birth_date <='2004-12-31'
Ejercicio 9: Contar alumnos para cada fecha de inicio
Ejercicio
Seleccione la fecha de inicio para todos los estudiantes y muestre cuántos estudiantes tienen la misma fecha de inicio.
Solución
SELECT start_date, COUNT (*) FROM student GROUP BY start_date; |
Explicación
En este ejercicio, queremos recuperar la fecha de inicio de todos los estudiantes y mostrar cuántos estudiantes tienen la misma fecha de inicio. Así que, básicamente, necesitamos una columna que muestre las fechas de inicio sin valores duplicados y otra columna que muestre el número de estudiantes con fechas de inicio idénticas.
La sentencia GROUP BY
permite agrupar las filas con los mismos valores (en este caso, la fecha de inicio). Además, utilizamos la función de agregado COUNT()
para mostrar el número de filas que coinciden con el valor de la fecha de inicio.
Ejercicio 10: Seleccionar, Agrupar y Filtrar los Resultados
Ejercicio
Encuentre las fechas de inicio en las que hubo más de 15 estudiantes. Mostrar la fecha de inicio y el número de estudiantes que comenzaron en esa fecha.
Solución
SELECT start_date, COUNT (*) FROM student GROUP BY start_date HAVING COUNT (*) > 15; |
Explicación
Queremos realizar la misma consulta que en el ejercicio anterior, pero con una pequeña diferencia: queremos filtrar los resultados para mostrar sólo aquellos que coincidan con una determinada cantidad.
Del mismo modo, realizamos una SELECT
sobre la tabla student
tabla. Agrupamos el resultado por fecha de inicio y utilizamos la función de agregado COUNT()
. Por último, utilizamos la cláusula HAVING
al final de la consulta para eliminar del conjunto de resultados las fechas de inicio que tengan menos de 15 alumnos.
Ejercicio 11: ¿Cuántos cursos imparte cada profesor?
Ejercicio
Para cada profesor, averigüe cuántos cursos imparte en cada semestre académico. Indique el nombre y apellidos del profesor, el año natural, el trimestre y el número de cursos impartidos por el profesor en ese semestre.
Solución
SELECT lec.first_name, lec.last_name, acs.calendar_year, acs.term, COUNT (course_id) FROM lecturer AS lec JOIN course_edition AS ce ON ce.lecturer_id = lec.id JOIN academic_semester AS acs ON ce.academic_semester_id = acs.id GROUP BY lec.id, acs.id; |
Explicación
Este ejercicio es un poco más difícil. Tenemos que unir tres tablas: lecturer
, course_edition
, y academic_semester
. Para ello utilizamos eloperador JOIN. A continuación, utilizamos la cláusula GROUP BY
para agrupar las ediciones de cursos impartidas por el mismo profesor en el mismo semestre académico. Por último, utilizamos la función COUNT()
para contar cuántos cursos tiene un profesor en este semestre.
Comentarios
Publicar un comentario