Professional Documents
Culture Documents
3RO TELEMTICA
Las consultas a unir deben tener el mismo nmero campos, y adems los
campos deben ser del mismo tipo.
MAXIMILIANO SALAZAR
3RO TELEMTICA
EXCEPT
EXCEPT devuelve la diferencia (resta) de dos o ms conjuntos de resultados. El
conjunto obtenido como resultado de EXCEPT tiene la misma estructura que los
conjuntos originales.
El siguiente ejemplo muestra el uso de EXCEPT
MAXIMILIANO SALAZAR
3RO TELEMTICA
MAXIMILIANO SALAZAR
3RO TELEMTICA
El uso del asterisco indica que queremos que la consulta devuelva todos los
campos que existen en la tabla.
SELECT *
FROM FAMILIAS
Ahora vamos a realizar una consulta obteniendo adems de los datos de familias,
los datos de las categoras y los productos.
SELECT *
FROM FAMILIAS
INNER JOIN CATEGORIAS
ON CATEGORIAS.CO_FAMILIA = FAMILIAS.CO_FAMILIA
INNER JOIN PRODUCTOS
ON PRODUCTOS.CO_CATEGORIA = CATEGORIAS.CO_CATEGORIA
MAXIMILIANO SALAZAR
3RO TELEMTICA
SELECT *
FROM FAMILIAS
LEFT OUTER JOIN CATEGORIAS
ON CATEGORIAS.CO_FAMILIA = FAMILIAS.CO_FAMILIA
LEFT OUTER JOIN PRODUCTOS
ON PRODUCTOS.CO_CATEGORIA = CATEGORIAS.CO_CATEGORIA
LA CLUSULA WHERE
La clusula WHERE es la instruccin que nos permite filtrar el resultado de una
sentencia SELECT.
MAXIMILIANO SALAZAR
3RO TELEMTICA
SELECT *
FROM FAMILIAS
WHERE CO_FAMILIA = 1
OR CO_FAMILIA = 2
SELECT *
FROM FAMILIAS
WHERE CO_FAMILIA IN ( 1 , 2)
SELECT FAMILIAS.CO_FAMILIA,
FAMILIAS.FAMILIA
FROM FAMILIAS
INNER JOIN CATEGORIAS
ON CATEGORIAS.CO_FAMILIA = FAMILIAS.CO_FAMILIA
WHERE FAMILIAS.CO_FAMILIA > 1
MAXIMILIANO SALAZAR
3RO TELEMTICA
SELECT *
FROM FAMILIAS
WHERE FAMILIA = 'FAMILIA 1'
SELECT *
FROM FAMILIAS
WHERE FAMILIA LIKE 'FAM%'
_ , representa un carcter.
MAXIMILIANO SALAZAR
3RO TELEMTICA
MAXIMILIANO SALAZAR
3RO TELEMTICA
UPDATE <nombre_tabla>
SET <campo1> = <valor1>
{[,<campo2> = <valor2>,...,<campoN> = <valorN>]}
[ WHERE <condicion>];
El siguiente ejemplo muestra el uso de UPDATE.
UPDATE CLIENTES
SET
NOMBRE = 'Devjoker',
APELLIDO1 = 'Herrarte',
APELLIDO2 = 'Snchez'
WHERE CO_CLIENTE = 10
Un aspecto a tener en cuenta, sobre todo si has trabajado con ORACLE, es que
SQL graba los cambios inmediatamente sin necesidad de hacer COMMIT. Por
supuesto podemos gestionar nosotros las transacciones pero es algo que hay que
MAXIMILIANO SALAZAR
3RO TELEMTICA
UPDATE CLIENTES
SET
NOMBRE = FICHERO_CLIENTES.NOMBRE,
APELLIDO1 = FICHERO_CLIENTES.APELLIDO1,
APELLIDO2 = FICHERO_CLIENTES.APELLIDO2
FROM CLIENTES
INNER JOIN FICHERO_CLIENTES
ON FICHERO_CLIENTES.CO_CLIENTE = CLIENTES.CO_CLIENTE
CLAUSULA OUTPUT
MAXIMILIANO SALAZAR
3RO TELEMTICA
UPDATE CLIENTES
SET
NOMBRE = 'Devjoker',
APELLIDO1 = 'Herrarte',
APELLIDO2 = 'Snchez'
OUTPUT DELETED.* INTO @FILAS_ACTUALIZADAS
WHERE CO_CLIENTE IN (10, 11, 12)
MAXIMILIANO SALAZAR
3RO TELEMTICA
Las columnas con prefijo INSERTED reflejan el valor despus de que se complete
la instruccin UPDATE o INSERT, pero antes de que se ejecuten los
desencadenadores. Es decir, son una copia de los datos "despus" del cambio.
INSERTED no se puede utilizar con la clusula OUTPUT en la
instruccin DELETE.
UPDATE CLIENTES
SET
NOMBRE = 'Devjoker',
APELLIDO1 = 'Herrarte',
APELLIDO2 = 'Snchez'
OUTPUT INSERTED.* INTO @FILAS_ACTUALIZADAS
WHERE CO_CLIENTE IN (10, 11, 12)
MAXIMILIANO SALAZAR
3RO TELEMTICA
EJEMPLOS
UNION
MAXIMILIANO SALAZAR
INTERSECT
3RO TELEMTICA
MAXIMILIANO SALAZAR
EXCEPT
3RO TELEMTICA
MAXIMILIANO SALAZAR
SELECT FROM
3RO TELEMTICA
MAXIMILIANO SALAZAR
3RO TELEMTICA
MAXIMILIANO SALAZAR
3RO TELEMTICA
MAXIMILIANO SALAZAR
3RO TELEMTICA
MAXIMILIANO SALAZAR
3RO TELEMTICA