Sunteți pe pagina 1din 4

SQL (por sus siglas en inglés Structured Query Language; en español lenguaje de consulta

estructurada) es un lenguaje específico del dominio utilizado en programación, diseñado para


administrar, y recuperar información de sistemas de gestión de bases de datos relacionales1. Una
de sus principales características es el manejo del álgebra y el cálculo relacional para efectuar
consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como
realizar cambios en ellas.

Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados


sistemáticamente para su posterior uso. En este sentido; una biblioteca puede considerarse una
base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados
para su consulta. Actualmente, y debido al desarrollo tecnológico de campos como la informática y
la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un
componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al
problema del almacenamiento de datos.

 Oracle. Base de datos que puede correr en casi cualquier sistema operativo. ...
 IBM DB2. Suele ser la segunda base de datos más utilizada en entornos Unix/Linux
después de Oracle. ...
 Microsoft SQL Server. ...
 Teradata. ...
 SAP Sybase. ...
 Informix. ...
 NoSQL Orientados a Documentos. ...
 No SQL Orientados a Clave-Valor.

La atomicidad es la propiedad que asegura que una operación se ha realizado o no, y por lo tanto
ante un fallo del sistema no puede quedar a medias. Se dice que una operación es atómica cuando
es imposible para otra parte de un sistema encontrar pasos intermedios.

ACID
Artículo principal: ACID

Es una de las cuatro propiedades que debe cumplir una base de datos para considerase
transaccional. Las otras tres son:

 Consistencia (Consistency): es la propiedad que asegura que sólo se empieza


aquello que se puede acabar. Por lo tanto, se ejecutan aquellas operaciones que no
van a romper la reglas y directrices de integridad de la base de datos.
 Aislamiento (Isolation): es la propiedad que asegura que una operación no puede
afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma
información nunca generará ningún tipo de error.
 Permanencia (Durability): es la propiedad que asegura que una vez realizada la
operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.
as transacciones en SQL son unidades o secuencias de trabajo realizadas de forma
ordenada y separada en una base de datos. Normalmente representan cualquier cambio en la
base de datos, y tienen dos objetivos principales:

 Proporcionar secuencias de trabajo fiables que permitan poder recuperarse


fácilmente ante errorres y mantener una base de datos consistente incluso frente
a fallos del sistema.
 Proporcionar aislamiento entre programas accediendo a la vez a la base de datos.

Una transacción es una propagación de uno o más cambios en la base de datos, ya sea
cuando se crea, se modifica o se elimina un registro. En la práctica suele consistir en la
agrupación de consultas SQL y su ejecución como parte de una transacción.

Una subconsulta es una consulta anidada en una instrucción SELECT, INSERT, UPDATE o
DELETE, o bien en otra subconsulta. Las subconsultas se pueden utilizar en cualquier parte
en la que se permita una expresión. En este ejemplo, se utiliza una subconsulta como una
expresión de columna llamada MaxUnitPrice en una instrucción SELECT.

USE AdventureWorks2016;
GO
SELECT Ord.SalesOrderID, Ord.OrderDate,
(SELECT MAX(OrdDet.UnitPrice)
FROM Sales.SalesOrderDetail AS OrdDet
WHERE Ord.SalesOrderID = OrdDet.SalesOrderID) AS MaxUnitPrice
FROM Sales.SalesOrderHeader AS Ord;
GO

Aspectos básicos de las subconsultas


Se llama también subconsulta a una consulta o selección interna, mientras que la
instrucción que contiene una subconsulta también es conocida como consulta o selección
externa.

Muchas de las instrucciones Transact-SQL que incluyen subconsultas se pueden formular


también como combinaciones. Otras preguntas se pueden formular solo con subconsultas.
En Transact-SQL, normalmente no hay diferencias de rendimiento entre una instrucción
que incluya una subconsulta y una versión semánticamente equivalente que no la incluya.
Sin embargo, en algunos casos en los que se debe comprobar la existencia de un elemento,
una combinación produce mejores resultados. De lo contrario, se debe procesar la consulta
anidada para cada resultado de la consulta externa con el fin de garantizar la eliminación de
los duplicados. En tales casos, la utilización de combinaciones producirá mejores
resultados. A continuación aparece un ejemplo que muestra una subconsulta SELECT y una
combinación SELECT que devuelven el mismo conjunto de resultados:

USE AdventureWorks2016;
GO

/* SELECT statement built using a subquery. */


SELECT Name
FROM Production.Product
WHERE ListPrice =
(SELECT ListPrice
FROM Production.Product
WHERE Name = 'Chainring Bolts' );
GO

/* SELECT statement built using a join that returns


the same result set. */
SELECT Prd1. Name
FROM Production.Product AS Prd1
JOIN Production.Product AS Prd2
ON (Prd1.ListPrice = Prd2.ListPrice)
WHERE Prd2. Name = 'Chainring Bolts';
GO

Una subconsulta anidada en la instrucción externa SELECT tiene los componentes


siguientes:

 Una consulta SELECT normal, que incluye los componentes normales de la lista de
selección.
 Una cláusula normal FROM que incluye uno o varios nombres de tablas o vistas.
 Una cláusula opcional WHERE.
 Una cláusula opcional GROUP BY.
 Una cláusula opcional HAVING.

La consulta SELECT de una subconsulta se presenta siempre entre paréntesis. No puede


incluir una cláusula COMPUTE o FOR BROWSE y solo puede incluir una cláusula ORDER BY
cuando se especifica también una cláusula TOP.

Una subconsulta puede anidarse en la cláusula WHERE o HAVING de una instrucción externa
SELECT, INSERT, UPDATE o DELETE, o bien en otra subconsulta. Se puede disponer de hasta
32 niveles de anidamiento, aunque el límite varía dependiendo de la memoria disponible y
de la complejidad del resto de las expresiones de la consulta. Las consultas individuales no
permiten anidamientos de más de 32 niveles. Una subconsulta puede aparecer en cualquier
parte en la que se pueda usar una expresión, si devuelve un solo valor.

Si una tabla solo aparece en una subconsulta y no en la consulta externa, las columnas de
esa tabla no se podrán incluir en la salida (la lista de selección de la consulta externa).

Las instrucciones que incluyen una subconsulta normalmente tienen uno de estos formatos:

 Expresión WHERE [NOT] IN (subconsulta)


 Expresión WHERE comparison_operator [ANY | ALL] (subconsulta)
 WHERE [NOT] EXISTS (subconsulta)

En algunas instrucciones Transact-SQL, la subconsulta se puede evaluar como si fuera una


consulta independiente. Conceptualmente, los resultados de la subconsulta se sustituyen en
la consulta externa, aunque en realidad esta no es la forma en la que SQL Server procesa las
instrucciones Transact-SQL con subconsultas.

Hay tres tipos básicos de subconsultas, que son las siguientes:

 Las que operan en listas especificadas con IN o modificadas por un operador de


comparación mediante ANY o ALL.
 Las que se especifican con un operador de comparación sin modificar y deben
devolver un solo valor.
 Las que son pruebas de existencia especificadas con EXISTS.

Reglas de las subconsultas


Las subconsultas están sujetas a las restricciones siguientes:

 La lista de selección de una subconsulta que se especifica con un operador de


comparación, solo puede incluir un nombre de expresión o columna (excepto
EXISTS e IN, que operan en SELECT * o en una lista respectivamente).
 Si la cláusula WHERE de una consulta externa incluye un nombre de columna, debe
ser compatible con una combinación con la columna indicada en la lista de
selección de la subconsulta.
 Los tipos de datos ntext, text y image no están permitidos en las listas de selección
de subconsultas.
 Puesto que deben devolver un solo valor, las subconsultas que se especifican con un
operador de comparación sin modificar (no seguido de la palabra clave ANY o
ALL) no pueden incluir las cláusulas GROUP BY y HAVING.
 La palabra clave DISTINCT no se puede usar con subconsultas que incluyan
GROUP BY.
 Las cláusulas COMPUTE y INTO no se pueden especificar.
 Solo se puede especificar ORDER BY si se especifica también TOP.
 Una vista creada con una subconsulta no se puede actualizar.
 La lista de selección de una subconsulta especificada con EXISTS, por convención,
tiene un asterisco (*) en lugar de un solo nombre de columna. Las reglas de una
subconsulta especificada con EXISTS son idénticas a las de una lista de selección
estándar, porque una subconsulta introducida por EXISTS crea una prueba de
existencia y devuelve TRUE o FALSE en lugar de datos.

S-ar putea să vă placă și