2.1 Introducción a SQL
Si tiene una base de datos (DB), y en ella, una tabla con algunos datos, entonces la tarea más común es encontrar ciertos datos en esta tabla. Para eso se inventó SQL hace 40 años.
SQL significa lenguaje de consulta estructurado .
La consulta SQL más simple se ve así:
SELECT column1, column2, … columnN FROM table
Digamos que tienes una tabla de empleados con una lista de los empleados de tu startup:
identificación | nombre | ocupación | salario | edad | Fecha de Ingreso |
---|---|---|---|---|---|
1 | ivanov ivan | Programador | 100,000 | 25 | 2012-06-30 |
2 | petrov petr | Programador | 80.000 | 23 | 2013-08-12 |
3 | Sergey Ivanov | Ensayador | 40.000 | treinta | 2014-01-01 |
4 | Rabinovich Moisha | Director | 200,000 | 35 | 2015-05-12 |
5 | Anastasia Kirienko | Gerente de oficina | 40.000 | 25 | 2015-10-10 |
6 | Vaska | gato | 1,000 | 3 | 2018-01-01 |
Desea escribir una consulta que employee names
también los muestre salaries
, luego debe escribir una consulta:
SELECT name, salary FROM employee
Obtendrá el resultado de la consulta:
nombre | salario |
---|---|
ivanov ivan | 100,000 |
petrov petr | 80.000 |
Sergey Ivanov | 40.000 |
Rabinovich Moisha | 200,000 |
Anastasia Kirienko | 40.000 |
Vaska | 1,000 |
Si desea mostrar todas las columnas de su tabla , en lugar de enumerar los nombres de todas las columnas, simplemente puede escribir un asterisco. Ejemplo:
SELECT * FROM employee
Obtendrá el resultado de la consulta:
identificación | nombre | ocupación | salario | edad | Fecha de Ingreso |
---|---|---|---|---|---|
1 | ivanov ivan | Programador | 100,000 | 25 | 2012-06-30 |
2 | petrov petr | Programador | 80.000 | 23 | 2013-08-12 |
3 | Sergey Ivanov | Ensayador | 40.000 | treinta | 2014-01-01 |
4 | Rabinovich Moisha | Director | 200,000 | 35 | 2015-05-12 |
5 | Anastasia Kirienko | Gerente de oficina | 40.000 | 25 | 2015-10-10 |
6 | Vaska | gato | 1,000 | 3 | 2018-01-01 |
2.2 Vista avanzada de consulta SQL
El lenguaje SQL se diseñó de la forma más fácil de usar posible.
Primero, el caso del texto de la solicitud no importa . Puede escribir SELECCIONAR, Seleccionar o seleccionar y todo funcionará. En segundo lugar, los saltos de línea no se tienen en cuenta de ninguna manera . El DBMS aún convertirá la consulta en una cadena larga, por lo que puede escribirla como desee.
Como probablemente ya haya adivinado, las palabras clave SELECT y FROM no están limitadas. De lo contrario, no se hablaría tanto sobre SQL. La vista extendida de la consulta SQL se ve así:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting
Con la ayuda de una palabra clave, WHERE
puede establecer una condición/filtro para las filas seleccionadas.
Ejemplo 1 . Escribamos una consulta que seleccionará empleados con la profesión "Programador":
SELECT * FROM employee WHERE occupation = 'Programmer'
Y obtenemos el siguiente resultado de la consulta:
identificación | nombre | ocupación | salario | edad | Fecha de Ingreso |
---|---|---|---|---|---|
1 | ivanov ivan | Programador | 100,000 | 25 | 2012-06-30 |
2 | petrov petr | Programador | 80.000 | 23 | 2013-08-12 |
Como puede ver, como resultado de la ejecución de la consulta, solo se muestran las filas donde la profesión del empleado se llama "Programador".
Las palabras clave GROUP BY
, ORDER BY
y HAVING
las cubriremos en las próximas conferencias. Y en esto analizaremos un par de ejemplos más con la palabra DONDE.
Ejemplo 2 . Ahora escribamos una consulta que nos muestre a todos los empleados con un salario superior a 100K. Así es como se verá:
SELECT * FROM employee WHERE salary > 100000
Obtenemos el siguiente resultado de la consulta:
identificación | nombre | ocupación | salario | edad | Fecha de Ingreso |
---|---|---|---|---|---|
4 | Rabinovich Moisha | Director | 200,000 | 35 | 2015-05-12 |
Ejemplo 3 . Ahora intentemos algo más difícil. ¿Cómo mostrar todos los empleados que fueron contratados en 2015? Y así:
SELECT * FROM employee WHERE YEAR(join_date) = 2015
Obtenemos el siguiente resultado de la consulta:
identificación | nombre | ocupación | salario | edad | Fecha de Ingreso |
---|---|---|---|---|---|
4 | Rabinovich Moisha | Director | 200,000 | 35 | 2015-05-12 |
5 | Anastasia Kirienko | Gerente de oficina | 40.000 | 25 | 2015-10-10 |
En esta consulta, usamos una función especial YEAR()
que nos permite obtener el año de una fecha y luego comparar el año de la fecha con el número 2015.
2.3 Comentarios en consultas SQL
Y otro punto importante son los comentarios en las consultas SQL. Los comentarios son algo muy útil. En primer lugar, puedes escribir explicaciones y/o tus ideas en ellos. En segundo lugar, con la ayuda de los comentarios, puede desactivar el código roto. O comente la versión anterior del código.
SQL, como Java, tiene comentarios de una y varias líneas. Además, un comentario de varias líneas se parece a Java. Su apariencia:
/*
comment text
comment text
comment text
*/
Por supuesto, también se puede utilizar en una línea. Ejemplo:
/*comment text*/
También hay un tipo de comentario "desde el principio hasta el final de la línea", similar al "//" de Java. Solo en SQL necesita escribir dos caracteres menos y un espacio . Vista general de tal comentario:
-- comment text
Ejemplo:
SELECT * FROM employee -- WHERE YEAR(join_date) = 2015
En el ejemplo anterior, comentamos la condición de consulta, por lo que MySQL solo ejecutará la consulta:
SELECT * FROM employee
2.4 pronunciación SQL
Si se comunica con clientes extranjeros o pasa una entrevista en línea para una empresa estadounidense, es posible que se le pregunte sobre su experiencia con el idioma de la secuela . Honestamente dirás que no trabajaste con él e inmediatamente suspenderás la entrevista.
Y es que el lenguaje SQL originalmente se llamaba SEQUEL, que se pronuncia como una secuela (ˈsēkwəl), por lo que muy a menudo en los EE. UU. y otras fuentes en inglés no escuchará "escuel", sino "sequel". Se escribe SQL y se lee la secuela. Aquí hay una paradoja tan histórica.