Video

miércoles, 30 de mayo de 2012

Join en SQL



SQL se une se utilizan para relacionar la información en tablas diferentes. Una condición de combinación es una parte de la consulta SQL que recupera filas de dos o más tablas. Una condición SQL JOIN se utiliza en la cláusula WHERE de SQL de selección, actualización, eliminación declaraciones.
La sintaxis para unir dos tablas es la siguiente:
SELECT col1, col2, ... col3 
DE table_name1, table_name2 
DONDE table_name1.col2 = table_name2.col1;
Si una condición SQL combinación se omite o si no es válida la operación de unión se traducirá en un producto cartesiano. El producto cartesiano devuelve un número de filas igual al producto de todas las filas de todas las tablas que se acompañan. Por ejemplo, si la primera tabla tiene 20 filas y la segunda tabla tiene 10 filas, el resultado será de 20 filas * 10, o 200. Esta consulta tarda mucho tiempo en ejecutarse.
Vamos a usar las siguientes dos tablas para explicar el sql condiciones de combinación.
base de datos de la tabla "producto";
product_idproduct_namesupplier_nameunit_price
100CámaraNikon300
101TelevisiónOnida100
102RefrigeradorVediocon150
103IpodManzana75
104MóvilNokia50
tabla de base de datos "order_items";
order_idproduct_idtotal_unitscliente
510010430Infosys
51011025Satyam
510210325Wipro
510310110TCS
SQL se une se pueden clasificar en Equi unión y no Equi unirse.
1) se une a SQL Equi
Se trata de una simple condición de combinación de SQL que utiliza el signo igual como el operador de comparación. Hay dos tipos de uniones son equi unión SQL exterior y SQL Combinación interna.
Por ejemplo: Usted puede obtener la información sobre un cliente que compró un producto y la cantidad de producto.
2) de SQL no se une a equi
Se trata de una condición de combinación de SQL que hace uso de algún operador de comparación que no sea el signo igual como>, <,> =, <=

1) join a SQL Equi:

Una combinación de igualdad se clasifica en dos categorías: 
a) Inner Join SQL 
b) externa SQL Join

a) SQL interna:

Todas las filas devueltas por la consulta sql sql satisfacer la condición de combinación especificada.
Por ejemplo: Si desea mostrar la información del producto para cada orden de la consulta será como se indica a continuación.Dado que está recuperando los datos de dos tablas, es necesario para identificar la columna común entre estas dos tablas, que se theproduct_id.
La consulta de este tipo de uniones SQL sería como,
SELECT order_id, product_name, unit_price, supplier_name, total_units 
DE producto, order_items 
DONDE order_items.product_id = product.product_id;
Las columnas deben ser referidos por el nombre de tabla en la condición de unión, porque Product es una columna de ambas tablas y necesita una manera de ser identificados. Esto evita la ambigüedad en el uso de las columnas en la instrucción SELECT de SQL.
El número de condiciones de combinación es (n-1), si hay más de dos tablas unidas en una consulta donde "n" es el número de tablas implicadas. La regla debe ser cierto para evitar producto cartesiano.
También puede utilizar alias para hacer referencia al nombre de la columna, a continuación, la consulta anterior sería como,
SELECT o.order_id, p.product_name, p.unit_price, p.supplier_name, o.total_units 
DE producto p, o order_items 
DONDE o.product_id = p.product_id; 

b) SQL combinación externa:

Esta condición SQL JOIN devuelve todas las filas de ambas tablas que satisfagan la condición de combinación, junto con las filas que no cumplen la condición de unión de una de las mesas. El operador de combinación externa SQL en Oracle es (+) y se utiliza en un lado de la condición de unión solamente.
La sintaxis es diferente para diferentes RDBMS aplicación. Pocos de ellos representan las condiciones de unión como "SQL externa izquierda", "externa derecha sql join".
Si desea visualizar todos los datos del producto, junto con artículos de pedido de datos, con valores nulos que se muestran para los elementos de orden, si un producto no tiene ninguna posición de pedido, la consulta SQL de combinación externa, como se muestra a continuación:
SELECT p.product_id, p.product_name, o.order_id, o.total_units 
DE order_items o, producto p 
DONDE o.product_id (+) = p.product_id; 
La salida sería,
product_idproduct_nameorder_idtotal_units
----------------------------------------------------
100Cámara
101Televisión510310
102Refrigerador51015
103Ipod510225
104Móvil510030
NOTA: Si el operador (+) se utiliza en el lado izquierdo de la condición de unión que es equivalente a externa izquierda. Si se usa en el lado derecho de la condición de unión que es equivalente a combinación externa derecha.

SQL autocombinación:

Un Únete a uno mismo es un tipo de unión SQL que se utiliza para unirse a una mesa a sí mismo, sobre todo cuando la tabla tiene una clave externa que hace referencia a su propia clave principal.Es necesario asegurarse de que la instrucción de combinación define un alias para ambas copias de la tabla para evitar la ambigüedad de la columna.
La consulta siguiente es un ejemplo de un auto unirse,
SELECT a.sales_person_id, a.name, a.manager_id, b.sales_person_id, b.name 
DE Sales_Person uno, Sales_Person b 
DONDE a.manager_id = b.sales_person_id; 

2) SQL no Equi Ingreso:

A no Únete a Equi es una combinación de SQL cuya condición se establece utilizando todos los operadores de comparación, excepto el igual (=) operador. Al igual que> =, <=, <,>
Por ejemplo: Si usted quiere encontrar los nombres de los estudiantes que no están estudiando, ya sea la economía, la consulta SQL sería como, (permite el uso student_details tabla definida con anterioridad.)
SELECT nombre apellido, apellido, sin perjuicio de
student_details DE 
DONDE tema! = 'Economía de los 
La salida sería algo así como:
first_nameapellidostema
---------------------------------------
AnajaliBhagwatMatemáticas
ShekarGowdaMatemáticas
RahulSharmaCiencia
StephenFlamencoCiencia

0 comentarios:

Publicar un comentario