¿Qué es SQL? y Consultas

¿Qué es SQL? y Consultas

SQL significa Strucrured Query Languaje, en español algo como Lenguaje Estructurado de Consultas, con consultas hechas en este lenguaje se puede hacer todo sobre una base de datos, crearla, modificarla, añadir datos, borrarlos, etc, bien, en concreto en este artículo veremos un sublenguaje del lenguaje SQL, estos sublenguajes son algo como unos bloques donde se dividen las diferentes sentencias del código SQL para un determinado objetivo, como tal tocaremos el DML (Data Manipulation Language) que básicamente nos permite manipular los datos de una base de datos.

Seguidamente, decirte que dentro de este “bloque” SQL que es el DML, se encuentran los “comandos”:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

Por otro lado, usaremos la base de datos sakila que nos proporciona MySQL (aunque nosotros trabajaremos con MariaDB pero esto no supone ningún problema) y el entorno de trabajo esta formado por un XAMPP y HeidiSQL. Bueno, antes de comenzar es importante resaltar 2 características sobre el lenguaje SQL:

  • No es case-sensitive, WHERE es igual que where, (no distingue entre mayúsculas y minúsculas).
  • Se debe usar ; al terminar cada consulta (aunque ahora mismo si no se usa, se integra automáticamente pero es importarte usarlo).

Consultas básicas con DML:

Ahora, partiendo de la base de datos importada y con XAMPP activo, vamos a ver las consultas más básicas:

SELECT *

FROM city

;

Con esto se esta pidiendo todos los campos que contenga la tabla city:

Consulta SQL Básica

SELECT city_id, city

FROM city

;

Con esta consulta se está pidiendo la información de las columnas “city_id” y “city” en este orden, desde la tabla city:

Consulta SQL a la tabla city

SELECT DISTINCT  city

FROM city

;

Con esta consulta le estamos pasando el modificador DISTINCT que, en pocas palabras, lo que permite es que no se repitan los resultados, es decir, en este momento estoy filtrando por ciudades, si, por ejemplo, que la ciudad Acua se repita más de una vez, aquí el modificador lo filtrará y solo aparecerán las filas que sean distintas:

Consulta SQL con distinc

Ten en cuenta que, cuando se usa este modificador y le pasamos más tablas, su comportamiento será muy distinto.

SELECT title, description

FROM film

WHERE title = ‘ACADEMY DINOSAUR’

;

Con esta consulta le estamos diciendo que seleccione las columnas title y description de la tabla film y que muestre solo la información cuando (where) el titulo sea igual a “ACADEMY DINOSAUR”:

Consulta sql restrictiva

También, se puede filtrar por operandos de comparación, por ejemplo:

SELECT *

FROM film

WHERE length >=60

;

Con esta consulta le estamos diciendo que nos devuelva toda la información de la tabla film pero solo donde length sea mayor o igual a 60:

Consulta sql restrictiva

Por otro lado, también se pueden ordenar el resultado de una consulta, por ejemplo:

SELECT *

FROM film

WHERE length >=60

;

Con esta consulta, que literal es la anterior solo que añadimos una línea, le estamos diciendo que ordene los resultados de forma ascendente basándose en title, por ende, aparecerán ordenados de forma alfabética empezando por la A (aunque si no se le indica como tal el tipo de ordenamiento, por defecto será ascendente):

Consulta sql restrictiva

Si se realiza la consulta y con ORDER BY se le indica que sea de forma descendente, se ordenará alfabéticamente solo que, iniciando con la Z:

Consulta sql restrictiva

Por otro lado, tenemos las consultas con operadores lógicos:

SELECT title, replacement_cost, length

FROM film

WHERE length >=60 AND replacement_cost >= 2

ORDER BY title

;

Con esta consulta estamos solicitando las columnas title, replacement_cost y length, además le decimos que las filtre y solo muestre las que tengan en length mayor o igual a 60 Y (AND) que en replacement_cost tengan mayor o igual a 2:

Consulta sql restrictiva

Por otro lado, si se hace uso del operador lógico OR, en la misma consulta, cambiaría el hecho de como se filtran los resultados, con AND se deben cumplir ambas condiciones, con OR se debe cumplir solo una en este caso, por eso salen más resultados con la siguiente consulta quitando el AND y reemplazándolo por un OR (fíjate en la pestaña):

Consulta sql restrictiva

Ahora, si se quiere hacer una consulta un poco más compleja, se pueden usar los paréntesis:

SELECT title, replacement_cost, length, description

FROM film

WHERE (length >=60 OR replacement_cost >= 2) AND film_id=1

;

Consulta sql restrictiva

En este punto, lo que se hace es parecido a lo anterior, solo que lo que está dentro del paréntesis con el operador OR, actúa como un bloque, entonces el resultado del filtro de los operadores dentro del paréntesis debe cumplirse Y adicional a eso debe cumplirse que la id sea igual a 1.

Por otro lado, también se puede hacer uso de otro operador lógico que es NOT, es bastante evidente que hace, niega lo que le indiquemos, por ejemplo:

SELECT title, film_id

FROM film

WHERE  NOT title = ‘ACADEMY DINOSAUR’

;

Consulta sql restrictiva

En este caso, lo que ocurre es que le estamos indicando que muestre la información pero que NO muestre nada donde el title sea igual a ‘ACADEMY DINOSAUR’ que, por defecto es la primera pelicula dentro de esta BD y tiene la film_id “1”, por eso si te fijas, comienza a mostrar los resultados a partir de la id 2, ya que la 1 fue omitida por el operador NOT en el WHERE.

 

Seguiremos con las consultas en la parte 2.

Sobre el Autor

C0ldd

Founder of Coldd Security

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información adicional sobre protección de datos:
Responsable: Martin Frias.
Finalidad: Moderar los comentarios de este sitio web.
Cesión: NO se cederán a nadie, salvo obligación legal.
Derechos: Acceso, rectificación, cancelación y borrado de tus datos.
Legitimación: Tu consentido expreso.

Sponsor By

Coldd Security

REDES SOCIALES

Newsletter

Estadísticas

  • 55.938
  • 43

TheHackerSnow

0

Share This