Una consulta sirve para extraer información de una base de datos. Permite manipular datos: agregar, eliminar y cambiar. Así es como usaremos esta palabra.
Sin embargo, no solo hay que escribir una "solicitud" aleatoria. Debes escribir tu consulta basándote en un conjunto de códigos predefinidos, de modo que tu base de datos pueda entender la instrucción. Nos referimos a este código como el lenguaje de consulta.
El estándar para la gest ón de bases de datos es el Lenguaje de consulta estructurado (SQL, Structured Query Languaje). Recuerda que SQL no es lo mismo que MySQL: el primero es el lenguaje de consulta, el seg undo es el software que usa ese lenguaje. Si bien es cierto que SQL es la opción más popular entre s programas de bases de datos, definitivamente no es la única. Otras opciones son AQL, Datalog y D MX.
En cualquier caso, estos lenguajes facilitan la comunicación con la base de datos.
¿Cómo funciona una consulta?
Digamos que quieres pedir un Café Americano en Starbucks. Haces una solicitud diciendo «¿Un Americano por favor?». El encargado comprenderá el significado de tu solicitud y te dará el producto solicitado.
Una consulta funciona de la misma manera; le da sentido al código utilizado en cualquier lenguaje de consulta. Ya sea SQL o cualquier otro, tanto el usuario como la base de datos pueden intercambiar información en cualquier momento, siempre que «hablen» el mismo lenguaje.
Uso de los parámetros disponibles
El software, por defecto, tiene listas de parámetros en su menú. Los usuarios pueden elegir uno, y el sistema lo guiará para producir el resultado deseado. Es fácil, pero no flexible y ofrece operaciones limitadas.
Consulta mediante ejemplo
El sistema te mostrará un conjunto de códigos con algunas áreas en blanco, en las que puedes escribir y especificar los campos y valores de tus datos.
Lenguaje de consulta
Debes escribir las consultas desde cero cada vez que quieras manipular los datos.
Este método requiere comprender el lenguaje de consulta utilizado por tu software de base de datos. Aunque es complejo, te da un control total sobre tus datos.
COMMIT
Para guardar el estado de base de datos completar la transacción después de completar la transacción.
ROLLBACK
Para restaurar el estado de base de datos, en un estado antes del inicio de la operación.
FROM
Especifica la tabla de la cual se van a seleccionar los registros.
WHERE
Especifica las condiciones que deben de reunir los registros.
GROUP BY
Separa los registros seleccionados a grupos específicos.
HAVING
Expresa la condición que satisface cada grupo.
ORDER BY
Ordena los registros seleccionados de acuerdo a un orden especifico.
Guía de arquitectura de procesamiento de consultas
El Motor de base de datos de SQL Server procesa consultas en varias arquitecturas de almacenamiento de datos como tablas locales, tablas con particiones y tablas distribuidas en varios servidores. En los temas siguientes se trata el modo en que SQL Server procesa las consultas y optimiza la reutilización de consultas a través del almacenamiento en caché de los planes de ejecución.
Motor de base de datos de SQL Server puede procesar las instrucciones Transact-SQL mediante dos modos de procesamiento distintos:
Ejecución del modo de fila
Ejecución del modo por lotes
Ejecución del modo de fila
La ejecución del modo de fila es un método de procesamiento de consultas que se usa con tablas RDBMS tradicionales, donde los datos se almacenan en formato de fila. Cuando se ejecuta una consulta y accede a los datos de tablas de almacén de filas, los operadores del árbol de ejecución y los operadores secundarios leen todas las filas necesarias, en todas las columnas especificadas en el esquema de tabla. De cada fila que se lee, SQL Server recupera las columnas que son necesarias para el conjunto de resultados, como se hace referencia mediante una instrucción SELECT, un predicado JOIN o un predicado de filtro.
Ejecución del modo por lotes
La ejecución del modo por lotes es un método de procesamiento de consultas en el que las consultas procesan varias filas a la vez (de ahí el término "por lotes"). Cada columna dentro de un lote se almacena como un vector en un área de memoria independiente, por lo que el procesamiento del modo por lotes se basa en vectores. En el procesamiento del modo por lotes también se usan algoritmos que se optimizan para las CPU de varios núcleos y el rendimiento de aumento de memoria que se encuentran en el hardware moderno.
Cuando se introdujo por primera vez, la ejecución del modo por lotes estaba estrechamente integrada con el formato de almacenamiento de almacén de columnas y optimizada para este. A pesar de ello, a partir de SQL Server 2019 (15.x) y en Azure SQL Database, la ejecución del modo por lotes ya no requiere índices de almacén de columnas.
El procesamiento del modo por lotes funciona en los datos comprimidos siempre que sea posible y elimina el operador de intercambio que usa el procesamiento del modo de fila. El resultado es un mayor paralelismo y un rendimiento más rápido.
Cuando una consulta se ejecuta en el modo por lotes y tiene acceso a los datos de índices de almacén de columnas, los operadores del árbol de ejecución y los operadores secundarios leen varias filas en segmentos de columna. SQL Server solo lee las columnas necesarias para el resultado, tal y como se indica en una instrucción SELECT, un predicado JOIN o un predicado de filtro.
Procesamiento de instrucciones SQL
La forma más básica de ejecutar instrucciones Transact-SQL en SQL Server consiste en procesar una única instrucción Transact- SQL. Los pasos que se usan para procesar una única instrucción SELECT que solo hace referencia a tablas base locales (no a vistas ni a tablas remotas) ilustran el proceso básico.
Cuando en una instrucción se usa más de un operador lógico, primero se evalúa NOT, luego AND y, finalmente, OR. Los operadores aritméticos y bit a bit se tratan antes que los operadores lógicos.
En el siguiente ejemplo, la condición de color pertenece al modelo de producto 21 y no al modelo de producto 20, ya que porque AND tiene prioridad sobre OR.
Una instrucción SELECT no es de procedimiento, ya que no expone los pasos exactos que el servidor de la base de datos debe usar para recuperar los datos solicitados. Esto significa que el servidor de la base de datos debe analizar la instrucción para determinar la manera más eficaz de extraer los datos solicitados. Este proceso se denomina optimizar la instrucción SELECT. El componente que lo lleva a cabo se denomina Optimizador de consultas. La entrada al Optimizador de consultas consta de la consulta, el esquema de la base de datos (definiciones de tabla e índice) y las estadísticas de base de datos. La salida del Optimizador de consultas es un plan de ejecución de consultas, en ocasiones denominado plan de consulta o simplemente plan de ejecución.
Los métodos que se usan para extraer los datos de cada tabla.
Por lo general, hay métodos diferentes para tener acceso a los datos de cada tabla. Si solo se necesitan unas cuantas filas con valores de clave específicos, el servidor de la base de datos puede utilizar un índice. Si se necesitan todas las filas de una tabla, el servidor de la base de datos puede omitir los índices y realizar un recorrido de la tabla. Si se necesitan todas las filas de la tabla, pero hay un índice cuyas columnas de clave están ordenadas con ORDER BY, realizar un recorrido del índice en lugar de un recorrido de la tabla puede evitar otra ordenación del conjunto de resultados. Si la tabla es muy pequeña, el recorrido de la misma puede ser el método más eficaz para la mayoría de los accesos a la tabla.