bases de datos relacionales más modernos incorporan SQL para agregar y actualizar datos , la creación de estructuras y la recolección de información. SQL se basa en las teorías acerca de los datos desarrollados en la década de 1970 y perfeccionado continuamente desde entonces . Consiste en un conjunto de estados , incluyendo SELECT , INSERT, crear y eliminar , seguido de varias cláusulas que especifiquen los datos que gestiona y opciones tales como ordenar y agrupar . El uso generalizado de las bases de datos se debe a la flexibilidad y la sofisticación de SQL , sino que permite a las organizaciones para analizar grupos de datos complejos en muchos aspectos
Consultas y subconsultas
un comando SQL . para recuperar los datos se denomina una consulta , por lo general , los programadores utilizar la instrucción SELECT de las consultas , aunque muchas de las reglas para la búsqueda de datos también se aplican a INSERT , DELETE y UPDATE . Una simple consulta SELECT puede mostrar el contenido de una tabla de datos , como por ejemplo la siguiente declaración :
SELECT * FROM inventario;
Esta consulta muestra todos los registros en una tabla llamada "inventario ". haces que los resultados de una consulta más específica mediante la adición de pruebas condicionales , como en esta frase:
SELECT * FROM inventario DONDE warehouse_code = ' chicago5 ' ;
esta consulta muestra sólo los registros de inventario de un almacén código , chicago5 .
una subconsulta es una consulta dentro de otra consulta. La siguiente declaración listas de los inventarios de los artículos de los almacenes en una región determinada :
SELECT * FROM inventario DONDE warehouse_code IN ( SELECT warehouse_code DE almacenes WHERE region = ' midwest ');
Nota que las esta pregunta tiene dos instrucciones SELECT , uno que muestra los registros de inventario , y otra que ofrece la consulta principal con los códigos de almacén.
subconsulta correlacionada
una correlación subconsulta , los dos principales y subordinadas consultas extraer datos de la misma tabla . La consulta interna realiza una función de agregado , tal como una estadística , y se alimenta esta información a la consulta externa , que lo utiliza como la base de una comparación . Por ejemplo, esta subconsulta correlacionada produce una lista de registros de inventario para los artículos con los precios superior a la media de un almacén. La consulta externa pasa la información de almacén para la consulta interna y la consulta interna envía el precio medio de nuevo a la consulta externa :
SELECT PART_NUMBER , precio, warehouse_code DE inventario i1 DONDE precio > ( SELECT AVG (precio ) dE DONDE warehouse_code.i1 inventario i2 = warehouse_code.i2 ) ; " . i2 "
la tabla de destino de dos consultas alias " i1 " y pesar de que se refieren a la misma mesa, el uso de alias permite a las consultas para tratarla como dos entidades separadas .
problemas de rendimiento
para subconsultas correlacionadas , SQL evalúa la consulta interna una vez para cada registro de la consulta externa. Como tamaños de mesa se hacen más grandes , el proceso lleva más tiempo. Si usted encuentra que una subconsulta correlacionada toma una cantidad excesiva de tiempo para completar , considere el uso de una alternativa , como la carga de una tabla temporal con resultados intermedios , y luego procesar la tabla temporal directamente contra la mesa principal con un simple subconsulta. Aunque menos elegante , puede resultar mucho más rápido .