MySQL/Gestión/Lenguajes de consulta y extracción de datos

De Wikilibros, la colección de libros de texto de contenido libre.

Definición[editar]

Se conoce Lenguaje de consulta o interrogación a aquel lenguaje informático que utiliza el usuario para recuperación o extracción de datos. Están dentro de la capa superior de lenguajes de programación.

Tipos[editar]

Pueden clasificarse en dos grandes grupos:

  • Lenguajes no procedurales: El usuario describe la información que quiere recuperar sin determinar el tipo de órdenes que serán pertinentes para si extracción en la base de datos.
  • Lenguajes procedurales o procedimentales: El usuario da órdenes para que se realicen las tareas pertinentes con el objetivo de recuperar los datos requeridos. Es la base del lenguaje de consulta SQL.

Explicación[editar]

Los lenguajes de consulta están incluidos en los SGBD[1]. Estos lenguajes permiten interrogar la base de datos. Un SGBD tiene varios componentes entre los que encontramos los de manipulación de datos. Para la comunicación entre el SGBD1 y el lenguaje de manipulación de datos necesitamos un interface adecuado que procese las expresiones del lenguaje, como pueden ser SQL, OQL, HTSQL, entre otros...

SQL[editar]

SQL quiere decir Lenguaje Estructurado de Consulta. Es muy popular hoy en día dado que la mayoría de páginas web las usan como bases de datos. Fue desarrollado a mitades de los años 70 por IBM para el prototipo de modelo relacional conocido como DBMS en las instalaciones de San José, en Estados Unidos. Más tarde, en los años 80, pasó a ser conocido como SEQUEL[2] y finalmente acabaría llamándose SQL.

Tipos de Datos[editar]

Nombre Descripción
CHAR(n) Indica el número total de espacios o caracteres que ocupa la información.

En el caso de que el usuario introduzca menos caracteres del número total,

automáticamente serán rellenados con espacios.

VARCHAR(n) Similar al CHAR. La diferencia está en que este tipo de datos, no rellena con

espacios, de forma que se ahorra espacio.

DATE Incluye los datos de Fecha. En SQL se escribe dentro de la opción DATE-TIME.
DECIMAL(p,q) El sistema guardará un número decimal de "p" dígitos de longitud, mientras que

"q" será el número de decimales que tendrá ese valor.

INT Valores números que se usan para poder hacer cálculos. Si posee el atributo

AUTO_INCREMENT crearemos una columna que generará un nuevo número

en orden secuencial en cada nueva fila de la nueva columna.

SMALLINT Similar a INT, pero es recomendable usarlo cuando tenemos la certeza que no

necesitaremos almacenar más de 33.000 apróximadamente*.

VALORES NULO SQL genera un valor especial para aquellos casos en los que un dato va asociado

a otro desconocido en un momento determinado, o que nunca existirá.

Comandos para las tablas.[editar]

A continuación, vamos a exponer los siguientes comandos para operar con tablas:

Crear una tabla:

CREATE TABLE Tabla(ColumnaA AtributosA,
ColumnaB AtributosB,
ColumnaC AtributosC;)

//De esta forma conseguiremos crear una tabla llamada "Tabla", y sus columnas con sus atributos.

Borrar una tabla:

DROP TABLE Tabla CASCADE CONSTRAINS;

// Con el Comando "drop table" vamos a borrar la tabla llamada "Tabla" y con las palabras
"cascade constrains" definimos que primero deben borrarse las restricciones de la tabla que
deseamos antes que la propia tabla haciendo posible la eliminación de la tabla maestra.

Insertar una Tabla:

INSERT INTO Tabla (columnaA, ColumnaB, ColumnaC) VALUES ('DatoA','DatoB','DatoC');

//Con "insert into" insertaremos un dato en la tabla que especifiquemos.
 "values" introduce los valores "Datos" en las "Columnas".

Ver datos en una tabla:

SELECT * FROM Tabla;

//"select" equivale a "seleccionaremos", "*" equivale a todo el contenido dentro de la tabla.
  "from" quiere decir "desde" y por último la Tabla, que será el nombre de la tabla desde donde
  queremos ver los datos.

Corregir errores en una tabla:

UPDATE Tabla
SET ColumnaA='X'
WHERE= 'Y';

//con el comando "update" Actualizaremos el dato de la Tabla, donde antes era "y" y ahora es "X"
  Como traducción a nuestro idioma entendible sería:
  Actualizamos Tabla (update)
  Poner(SET) en columnaA='X'
  Donde existe(WHERE) = 'Y';

Eliminar una fila de una tabla:

DELETE FROM Tabla
WHERE 'ColumnaA' = 'X';

//"delete" borrará los datos que se marquen en la sintasis de la operación.
  Esto quiere decir... Se borrará(delete) la fila de la tabla (from Tabla)
  donde(where) en columnaA Esté el Valor X.

Ver columnas de una tabla:

DESCRIBE Tabla;
DESC Tabla;

// Cualquiera de las 2 son válidas, ambas mostrarán las columnas de las tablas que les indiquemos.

Para poder ver las columnas de una tabla en SQL, usaremos los siguientes comandos:

  • sp_columns: Para listar todas las columnas de una tabla.
  • Exec sp_columns "nombredetabla"·: Para listar todos los datos de la columna "nombredetabla"

Generar Informes[editar]

Podemos generar informes tanto con el documentador, como con los resultados de las consulltas. Podemos diseñar el informe de tal manera, que sea

de agradable vista para la posterior presentación. Todas las modificaciones disponibles que podemos realizar se dividen por parámetros y comandos:

Parámetros:[editar]

  • SET LINESIZE: Número máximo de caracteres por línea.
  • SET PAGESIZE: Numero de filas de la salida antes de empezar una nueva página.
  • SET HEADING [ON|OFF]: Activa o desactiva la utilización de encabezados de columnas. Por defecto estará activado.
  • SET NULL texto: Indica la cadena de caracteres que hay que colocar en sustitución de los valores NULL. Por defecto es "".
  • SET ECHO[ON|OFF] Activa o desactiva la visualización de los comandos que SQL ejecuta según van siendo tratados. Por defecto estará desactivada.
  • SET FEEDBACK [n|ON|OFF]: Muestra el número de registros recuperados en cada consulta cuando se recuperan "n" o más registros.
  • SET VERIFY [ON|OFF]: Controla la salida de confirmación para los valores de las variables de sustitución.

Comandos:[editar]

  • TTITLE: Formación del encabezado de página.
  • BTITLE: Formación del pie de página.
  • COLUMN: Formatear cada columna.
  • BREAK: Puntos de ruptura en los listados.
  • COMPUTE: Realizar cálculos con columnas.

Para sustituir una variable usaremos el comando "define".

DEFINE TABLA=TABLA2

Cláusula SELECT[editar]

Es la función más importante de un SGBD1. Su sintaxis de forma general es la siguiente:

SELECT Columna
FROM Tabla
WHERE Condición
ORDER BY ExpresiónColumna;

Si introducimos SELECT * "*" quiere decir que seleccionaremos todo.

"WHERE" dispone de los siguientes operadores :

OPERADOR DE CADENA DE CARACTERES OPERACIÓN
|| Concatenación
OPERADORES ARITMÉTICOS OPERACIÓN
+ Suma
- Resta
* Producto
/ División
OPERADORES DE COMPARACIÓN OPERACIÓN
= Igualdad
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
in Igual a cualquiera de los miembros del paréntesis
not in Distinto a cualquiera de los miembros del paréntesis
between Contenido en el rango
not between Fuera del rango
like '_abc%' Contiene la cadena indicada "abc" a partir del segundo

carácter y luego cualquier cadena de caracteres

!= Distinto a
months between (d1,d2) Devuelve la diferencia en meses entre 2 fechas
OPERADORES BOOLEANOS OPERACIÓN
AND Intersección
OR Unión
NOT No

Operador Like[editar]

Este operador ayuda a la recuperación de información compleja. Sirve para condiciones donde el resultado a recuperar no sea exacto.

Usando este operador, buscaremos coincidencias( no necesariamente exactas) por aproximación.

La forma de representarlo sería la siguiente:

SELECT Columna
FROM Tabla
WHERE Condición LIKE '%X%';

Cláusula Order by[editar]

Esta cláusula ordena los datos de forma previa a la visualización por usuarios o de su impresión.

Nuestro sistema ordenará los valores por defecto, pero si los queremos ordenar de alguna forma expresa usaremos Order by.

El modo de empleo de esta cláusula será la siguiente:

SELECT Columna,Dinero.
FROM Tabla
ORDER BY Dinero DESC;

//ASC significará de forma ascendente, mientras que DESC todo lo contrario, de forma descendente.

Funciones de Agregación[editar]

Son usadas por SQL. Se usan para hallar valores máximos, mínimos, calcular datos,etc...

Se aplican a grupos de filas llegándose a aplicar a todas las filas de una tabla si es necesario.

Las funciones serán las siguientes:

  • COUNT: Cuenta el número de filas de una tabla
  • SUM: Suma la cantidad de las filas que le concretemos.
  • AVG: Obtiene el valor medio en un rango.
  • Max: Obtiene el valor máximo de un rango.
  • Min: Obtiene el valor mínimo de un rango.

Cláusulas Group by, Order by y Where/Having[editar]

Crean un conjunto de filas que comparten una misma característica:

  1. Group by: Para agrupar un número de filas y sobre este conjunto realizar una operación.
  2. Order by: Para ordenar un número de filas, y sobre estos poder realizar operaciones.
  3. Where/Having: Si Where limita las características, Having limita los grupos.

Consulta a múltiples tablas[editar]

Para poder realizar consultas en varias tablas, SQL cuenta con los operadores algebraicos avanzados:

  • INTERSECT: Reúne varios conjuntos en uno solo.
  • MINUS: Realiza una división entre los conjuntos.
  • AND: Realiza una intersección entre los conjuntos.
  • ALL & ANY: extraen datos de una subconsulta tras unir 2 tablas y crean una sola columna numérica.

Referencias[editar]