Pbd3301 Programación de Base de Datos(Unidad 1)

32
PBD3301 PROGRAMACIÓN DE BASE DE DATOS Uso de Funciones de una Fila Funciones SQL Las funciones son una característica muy poderosa del SQL y ellas pueden ser usadas para: Realizar cálculos sobre los datos. Modificar datos individuales. Manipular la salida para grupos de filas. Formatear fechas y números para ser visualizadas. Convertir tipos de datos de columnas. Funciones SQL Las funciones que operan con una fila (single-row): Operan sobre cada una de las fila y retornan un resultado por cada una de ellas. Existen diferentes funciones de: caracteres, numéricas, fechas, conversión y general. Las funciones que operan con múltiples filas (multiple-row): Se pueden manipular grupos de filas. Entregan un resultado por grupo de filas. Funciones SQL de una Fila Sintaxis: nombre_función: es el nombre de la función SQL que se va a utilizar argumentoN: pueden ser constantes proporcionadas por el usuario, valores variables, nombre de columnas y expresiones nombre_función [(argumento1, argumento2, …)]

description

sdasdsadasdasda

Transcript of Pbd3301 Programación de Base de Datos(Unidad 1)

PBD3301 PROGRAMACIN DE BASE DE DATOSUso de Funciones de una Fila Funciones SQLLas funciones son una caracterstica muy poderosa del SQL y ellas pueden ser usadas para: Realizar clculos sobre los datos. Modificar datos individuales. Manipular la salida para grupos de filas. Formatear fechas y nmeros para ser visualizadas. Convertir tipos de datos de columnas.Funciones SQLLas funciones que operan con una fila (single-row): Operan sobre cada una de las fila y retornan un resultado por cada una de ellas. Existen diferentes funciones de: caracteres, numricas, fechas, conversin y general.Las funciones que operan con mltiples filas (multiple-row): Se pueden manipular grupos de filas. Entregan un resultado por grupo de filas.Funciones SQL de una FilaSintaxis: nombre_funcin: es el nombre de la funcin SQL que se va a utilizar argumentoN: pueden ser constantes proporcionadas por el usuario, valores variables, nombre de columnas y expresionesnombre_funcin [(argumento1, argumento2, )]

Funciones SQL de una Fila Funciones de caracteres: aceptan un caracter como argumento o parmetro de entrada y retorna cualquier valor de tipo caracter y nmero. Funciones numricas: aceptan como entrada un nmero y retornan un nmero. Funciones de fechas: operan sobre valores de tipo fecha (DATE). Todas las funciones de fechas retornan una fecha excepto la funcin MONTHS_BETWEEN que retorna un nmero. Funciones de Conversin: transforman un valor desde un tipo a otro. Funciones Generales: validan una expresin para retornar un valor.Funciones de CaracteresLas Funciones de caracteres se dividen en: Funciones de Transformacin o Manipulacin. Funciones de Conversin de texto en minscula o mayscula.NOTA: Las funciones que se mencionan a continuacin son algunas de las ms utilizadas en SQL.Funciones de CaracteresFunciones de conversin del texto a maysculas y minsculas: LOWER: Convierte el texto a minsculasLOWER(columna|expresin)

UPPER: Convierte el texto a maysculasUPPER(columna|expresin)

INITCAP: Coloca la primera letra de cada palabra en maysculaINITCAP(columna|expresin)

Funciones de reemplazo o manipulacin de caracteres: CONCAT: concatena el valor del primer caracter con el valor del segundo caracter. Equivalente al operador de concatenacin ||.CONCAT(columna1|expresin1 ,columna2|expresin2)

SUBSTR: obtiene los n siguientes caracteres de la columna o texto a partir de la posicin m. Si no se indica n, se recuperan los caracteres desde la posicin m hasta el final.SUBSTR(columna|expresin,m[,n])

LENGTH: obtiene el nmero de caracteres o largo de la expresin.LENGTH(columna|expresin)

RTRIMLTRIM: Elimina los espacios en blanco a la derecha (RTRIM) a la izquierda (LTRIM) de la columna o expresin.RTRIM(columna|expresin)LTRIM(columna|expresin)

REPLACE: busca el texto especificado en la columna o expresin y lo cambia por el texto indicado como reemplazoREPLACE(columna|expresin, texto_a_buscar, texto_reemplazo)

TRIM: Elimina los espacios en blanco a la izquierda y a la derecha del texto o columna.TRIM(columna|expresin)

LPAD-RPAD: rellena el texto a la izquierda (LPAD) a la derecha (RPAD) n posiciones con el caracter indicado.LPAD(columna|expresin,n,caracter_de_relleno)RPAD(columna|expresin,n,caracter_de_relleno)

INSTR: obtiene la posicin en la se encuentra el texto buscado en la columna o expresin. Opcionalmente se puede indicar la posicin inicial (m) desde donde se desea comenzar la bsqueda y la ocurrencia o nmero de posicin (n) del texto buscado. Por defecto ambas posiciones es 1.INSTR(columna|expresin, texto_buscado, [,m] ],n])

TRIM(caracter FROM columna|expresin): Elimina el carcter especificado de la derecha e izquierda de la columna o expresinTRIM(caracter FROM columna|expresin)

Funciones de Nmeros ROUND: redondea la columna, expresin o valor a n posiciones decimales. . Si no se especifica n o su valor es cero, el valor se redondea al valor entero. Si n es negativo, los nmeros a la izquierda del punto decimal se redondean a decenas, centenas etc.ROUND(columna|expresin,n)

TRUNC: Trunca la columna, expresin o valor a n posiciones decimales. Si no se especifica n decimales el valor es 0, por lo tanto se trunca el valor slo en su parte entera. Por defecto en cero. Si n es negativo trunca hacia la izquierda del punto decimal (coloca cero).TRUNC(columna|expresin,n)

MOD: Devuelve el resto que resulta de dividir m por n.MOD(m,n)

Funciones de Fecha La Base de Datos Oracle almacena las fechas en un formato numrico interno: siglo, ao, mes, da, horas, minutos y segundos. El formato por defecto de visualizacin de las fechas es :DD-MON-RR, donde DD corresponde al da, MON al mes en 3 letras y RR al ao en 2 dgitossegn el siglo. Cuando se desea generar una condicin por una fecha en particular, sta debe ir entre comillas simples.El formato de fecha RR es similar al elemento YY, pero se puede utilizar para especificar diferentes siglos:

Funciones de Fechas SYSDATE: retorna la fecha y hora actual de la Base de DatosSYSDATE

MONTHS_BETWEEN: obtiene la diferencia en meses entre las dos fechas. El resultado puede ser positivo o negativo. Si fecha1 es posterior a fecha2, el resultado es positivo, si fecha1 es anterior a fecha2, el resultado es negativo. La parte no entera del resultado representa una porcin del mes.MONTHS_BETWEEN(fecha1,fecha2)

ADD_MONTHS: aade a la fecha el nmero de meses indicado por n. El valor de n debe ser un nmero entero y puede ser negativo.ADD_MONTHS(fecha,n)

NEXT_DAY: retorna la fecha del da de lasemanadel argumento busca y que es posterior a la fecha entregada. El da puede ser el nombre del da (ingls o espaol segn como est configurada la Base de Datos) el nmero del da de la semana 1=Lunes, 2=Martes etc.NEXT_DAY(fecha,da)

LAST_DAY: obtiene el ltimo da del mes de la fecha especificada.LAST_DAY(fecha)

ROUND: redondea la fecha al formato indicado. El formato puede ser: ROUND(fecha,['formato'])

- YEAR: redondea la fecha al ao. - MONTH: redondea la fecha al mes. TRUNC: trunca la fecha al formato indicado. El formato es el mismo al usado por ROUND.TRUNC(fecha,['formato'])

Conversin de Tipos de DatosEn algunos casos, el servidor Oracle usa tipos de datos distintos a los que se requieren. Cuando esto sucede, se debe convertir al tipo de datos que se requiere. La conversin de un tipo de dato a otro puede ser efectuada en forma implcita o automtica por el servidor Oracle o en forma explcita por el usuario usando funciones de conversin.Conversin de Tipos de Datos Implcita La asignacin de valores tiene xito si el servidor Oracle puede convertir el tipo de dato del valor usado en el tipo de dato que se encuentra almacenado. Para asignaciones, el servidor Oracle puede convertir automticamente siempre que el valor a convertir tenga un formato vlido al tipo de dato en el que se convertir DE AVARCHAR2 o CHAR NUMBERVARCHAR2 o CHAR DATENUMBER VARCHAR2DATE VARCHAR2

Conversin de Tipos de Datos ExplcitaOracle proporciona tres funciones para convertir en forma explcita un tipo de dato en otro: TO_CHAR: Obtiene un texto a partir de un nmero o fecha. Opcionalmente se puede dar un formato especfico de conversin. TO_NUMBER: Convierte textos en nmeros, indicndole, si se desea, el formato de salida. TO_DATE: Convierte textos en fechas, indicndole, si se desea, el formato de salida.

Uso de Funcin TO_CHAR de FechasSe puede usar la funcin TO_CHAR para convertir la fecha desde su formato por defecto a un formato especificado por el usuario.TO_CHAR(fecha, ' formato_conversin')

El formato de conversin: Debe ir entre comillas simples. Puede incluir cualquier elemento de formato de fecha vlido. Debe ir separado del valor fecha por una comaLos principales elementos de formatos de fechas vlidos son: YYYY: ao en formato de 4 dgitos. YEAR: ao en palabras. MM: mes en formato de 2 dgitos. MONTH: nombre completo del mes. MON: las tres primeras letras del mes. DY: da de la semana abreviado en tres letras. DAY: da completo de la semana en palabras. DD: da del mes en formato de dos dgitos.Los principales elementos de horas vlidos para los formatos de fechas son: AM o PM: indicador de meridiano. HH: hora del da HH12: hora del da 1 a 12 HH24: hora del da de 0 a 23 MI: minutos (0-59). SS: segundos (0-59). / . , : separadores que se ven reflejados en el formato final de la fecha. "caracteres_a_visualizar : cadena de caracteres a visualizar en el formato final de la fecha.Los sufijos que se pueden utilizar en los elementos de fechas y horas para modificar la forma de visualizacin: SP: muestra el nmero en palabras. Ej: para el 04 muestra la palabra cuatro. SPTH o THSP: muestra en palabras el nmero ordinal. Ej: para 04 muestra la palabra cuarto.Uso de Funcin TO_CHAR de NmerosCuando se desean trabajar los valores numricos como una cadena de caracteres se deben convertir esos nmeros a un tipo de dato caracter utilizando la funcin TO_CHAR. Esta funcin convierte un dato de tipo NUMBER a un dato de tipo VARCHAR2.TO_CHAR(nmero, ' formato_conversin')

El formato de conversin: Debe ir entre comillas simples. Puede incluir cualquier elemento de formato de nmero vlido. Debe ir separado del valor nmero por una coma:Otros elementos de formatos de nmeros vlidos: G: devuelve el separador de grupo en la posicin especificada. Ejemplo: 9G999 Resultado: 1.234 D: devuelve el carcter decimal en la posicin especificada (defecto es punto). Ejemplo: 9999D99 Resultado: 1234,00 V: multiplica por 10 n veces (n = nmero de 9s despus V). Ejemplo: 99999V9999 Resultado: 12340000

Principales elementos de formatos de nmeros vlidos:ELEMENTODESCRIPCINEJEMPLO(con el valor 1234)RESULTADO

9Representa un nmero.999999 1234

0Fuerza a que se muestre un cero099999 001234

$Coloca un signo dlar.$999999 $1234

LColoca el smbolo local de la moneda.L999999 $1234

.Coloca un punto decimal en la posicin especificada.999999.991234.00

,Coloca un separador de miles.99,999 1,234

Funciones GeneralesEstas funciones trabajan con cualquier tipo de datos y se relacionan con el uso de valores nulos en la lista de expresiones: NVL: Si el valor de expr1 es NULO , devuelve el valor de expr2. Si no es NULO retorna el valor de expr1.Uso de Funcin NVL Si expr1 es NULO , devuelve el valor de expr2. Si no es NULO retorna el valor de expr1. Los tipos de datos que pueden ser usados son: fecha, carcter y nmero. El valor que retornar la funcin (expr2) debe ser del mismo tipo de dato de expr1.NVL(expr1, expr2)

NVL2: Devuelve el valor de expr2 si el valor de expr1 no es NULO. Si expr1 es NULO devuelve el valor de expr3.Uso de Funcin NVL2 Esta funcin evala la primera expresin (expr1). Si no es Nula la funcin NVL2 retorna la segunda expresin (expr2). Si la primera expresin es Nula entonces la funcin retorna la tercera expresin (expr3). El argumento expr1 puede ser cualquier tipo de dato. Los argumentos expr2 y expr3 pueden ser de cualquier tipo de dato excepto LONG. El argumento expr3 debe ser del mismo tipo de dato de expr2 a menos que expr3 sea Nulo. El tipo de dato del valor que retorna la funcin es siempre del mismo tipo de datos de expr2.NVL2(expr1, expr2, expr3))

NULLIF: devuelve NULO si expr1 y expr2 son iguales. Si no lo son devuelve el valor de expr1Uso de Funcin NULLIF La funcin NULLIF compara dos expresiones (expr1 y expr2 ). Si son iguales, la funcin retorna NULO. Si ellas no son iguales, la funcin retorna la primera expresin (expr1). No se puede especificar NULL para la primera expresin (expr1).NULLIF(expr1, expr2)

.

COALESCE: retorna el valor de expr1 si no es NULO. Si es NULO devuelve el valor de expr2 si no es NULO. Si los valores de expr1 y expr2 son NULOS devuelve el valor de expr3 sino es NULO y as sucesivamente. Uso de Funcin COALESCE La funcin COALESCE retorna la primera expresin NO NULA de la lista. Todas las expresiones deben tener el mismo tipo de dato.COALESCE(expr1, expr2, , exprn)

Expresiones CondicionalesExiste dos mtodos que se pueden utilizar para implementar el procesamiento condicional de lgica IF-THEN-ELSE en una sentencia SQL. Una de ellas es la expresin CASE que cumple con ANSI SQL. El segundo mtodo es la funcin DECODE que es especfica de Oracle.

Uso de Expresiones CASE Facilita las consultas condicionales realizando el trabajo de una sentencia IF-THEN-ELSE en sentencias SQL. Evala una lista de condiciones y devuelve una de las expresiones de resultado. En una expresin CASE simple, el servidor Oracle busca el primer par WHEN . THEN para el cual expr sea igual a expr_comparacin y retorna la expr_resultado. Si en ningn par WHEN . THEN se encuentra la condicin y si existe una clusula ELSE, entonces el servidor Oracle retorna la expr_else. Si no existe la clusula ELSE el servidor Oracle retorna NULL (Nulo). No se puede especificar el literal NULL para las expr_resultado y para expr_else.CASE expr WHEN expr1_comparacin THEN expr1_resultado [ WHEN expr2_comparacin THEN expr2_resultado WHEN exprn_comparacin THEN exprn_resultado ELSE expr_else ] END

Uso de Funcin DECODE Facilita las consultas condicionales realizando el trabajo de una expresin CASE o una sentencia IF-THEN-ELSE. La funcin DECODE traduce o descifra una expresin columna y despus compara ste con cada valor de bsqueda. Si ambas son iguales retorna el resultado asociado a esa bsqueda. Si el valor por defecto es omitido y la expresin no coincide con ningn valor de bsqueda , la funcin retorna NULL (Nulo). Si existe el defecto entonces la funcin retorna este valor.DECODE(columna|expresin, bsqueda1, resultado1 [, bsqueda2, resultado2 , ] [resultado por defecto]

Uso de Funciones de Grupo Funciones de Grupos o AgregadasLas Funciones de caracteres se dividen en: Funciones de Transformacin o Manipulacin. Funciones de Conversin de texto en minscula o mayscula.NOTA: Las funciones que se mencionan a continuacin son algunas de las ms utilizadas en SQL. Las funciones de grupo actan sobre un grupo de filas y retornan un resultado por grupo. El grupo de filas sobre las que actan estas funciones pueden ser la tabla completa o la tabla dividida en grupos. Lo interesante de poder crear grupos es la posibilidad de efectuar clculos sobre ellos. Todos los valores se calculan para cada elemento del grupo. Las funciones de grupos aceptan un argumento como valor de entradaSintaxis: funcin_de_grupo: es el nombre de la funcin SQL que se va a utilizar columna_argumento: es el nombre de columna que sirve de argumento a la funcin de grupo.SELECT [columna], funcin_de_grupo(columna_argumento), FROM tabla[WHERE condicin][GROUP BY columna][ORDER BY columna];

Funciones de Grupo AVG: calcula el promedio del valor de n, ignorando los valores Nulos.AVG([DISTINCT|ALL] n)

COUNT: cuenta el nmero de filas, donde expr puede ser el nombre de una columna.COUNT({*| [DISTINCT|ALL] expr})

MAX: obtiene el mximo valor de expr, ignorando los valores Nulos.MAX([DISTINCT|ALL] expr)

MIN: obtiene el mnimo valor de expr, ignorando los valores Nulos.MIN([DISTINCT|ALL] expr)

SUM: suma los valores de expr, ignorando los valores Nulos.SUM([DISTINCT|ALL] expr)

STDDEV: determina la desviacin estndar de n, ignorando los valores Nulos.STDDEV([DISTINCT|ALL] x)

VARIANCE: devuelve la varianza de un conjunto de nmero.VARIANCE([DISTINCT|ALL] x)

La opcin DISTINCT hace que la funcin considere slo los valores no duplicados. La opcin ALL (valor por defecto) hace que la funcin considere todos los valores incluyendo los duplicados. El tipo de datos para expr debe ser CHAR, VARCHAR2, NUMBER, DATE. Todas las funciones de grupo ignoran los valores Nulos. Para sustituir los valores Nulos se deben utilizar las funciones NVL, NVL2 COALESCE.

Uso de Funcin COUNTLa funcin COUNT tiene tres formatos: COUNT(*): retorna el nmero de filas que satisfacen el criterio de la sentencia SELECT incluyendo filas duplicadas y filas que contengan valores Nulos en cualquiera de sus columnas. Si se incluye las clusula WHERE en la sentencia SELECT , COUNT(*) retorna el nmero de filas que satisfacen o cumplen con la condicin en la clusula WHERE.COUNT(*)

COUNT(expr): retorna el nmero de filas que poseen valores NO Nulos en la columna identificada por expr.COUNT(expr )

COUNT(DISTINCT expr): retorna el nmero de filas que contengan valores diferentes No Nulos en la columna identificada por expr.COUNT(DISTINCT expr )

Uso de Funcin de Grupo con valores NulosLas funciones de grupo ignoran los valores nulos en las columnas excepto la funcin COUNT en su formato COUNT(*). Sin embargo, la funcin NVL fuerza a las funciones de grupo a incluir los valores nulos.Creando Grupos de DatosLas funciones de grupos pueden tratar a toda la tabla como un solo gran grupo, pero existe el caso en que se hace necesario dividir la informacin existente en la tabla en grupos ms pequeos utilizando la clusula GROUP BY.

Restricciones de Resultados del Grupo Para restringir las filas que se desean seleccionar se utiliza la clusula WHERE, pero para restringir grupos de filas basado en el resultado de una funcin de grupo se debe utilizar la clusula HAVING. Cuando se usa la clusula HAVING, el servidor Oracle restringe los grupos en el siguiente orden:1.- Las filas son agrupadas2.- La funcin de grupo es aplicada al grupo.3.- Se muestran los grupos que coinciden con el criterio de la clusula HAVING. Los grupos son formados y las funciones de grupos con calculadas antes de que la clusula HAVING se aplique a los grupos. Para encontrar el mximo salario en cada departamento pero que sea mayor a 8000 se debe hacer lo siguiente: Encontrar el salario mximo por cada departamento agrupando por nmero de departamento. Restringir los grupos para los departamentos con un mximo salario mayor a 8000.Funciones de Grupo Anidadas Se pueden anidar hasta dos funciones de grupos. La clusula GROUP BY es obligatoria cuando se anidan funciones de grupo.

Mostrando Datos de Mltiples TablasObteniendo Datos de Mltiples TablasEn la versin SQL de 1999 (a contar de Oracle 9i) se ide una nueva sintaxis para consultar varias tablas. La razn fue separar las condiciones de asociacin (Unin o Join) respecto de las condiciones de seleccin de slo se muestran las filas que tienen una relacin de igualdad entre las columnas usadas como nexo, los valores Nulos NO SON CONSIDERADOS.La forma de conseguir que la sentencia SQL retorne todos las filas de una tabla aunque no estn relacionadas con las de otra es realizar una asociacin lateral o unin externa conocida como OUTER JOIN Filas (Where).Obteniendo Datos de Mltiples TablasEn la sintaxis: tablaN.columnaN : indica la tabla y la columna de la que se recuperan los datos. JOIN table2 ON tabla1.columna = tabla2.columna : realiza una combinacin de igualdad basada en la condicin de la clusula ON. LEFT/RIGHT/FULL OUTER : se utiliza para realizar las combinaciones de OUTER Join o Join Externo. CROSS JOIN : devuelve un producto cartesiano de las dos tablas.SELECT tabla1.columna1, tabla1.columna2, tabla2.columna1, tabla2.columna2,... FROM tabla1[JOIN tabla2 ON (tabla1.columa = tabla2.columna)]|[LEFT | RIGHT | FULL OUTER JOIN tabla2 ON (tabla1.columa=tabla2.columna)]|[CROSS JOIN tabla2];

Calificacin de Columnas en un JoinCuando se unen dos o ms tablas , se necesita calificar los nombres de las columnas con el nombre de la tabla para evitar la ambigedad. Sin los prefijos de tabla, por ejemplo para mostrar la identificacin del departamento y su nombre, la columna DEPARTMENT_ID en la lista SELECT podra ser de la tabla DEPARTMENTS o la tabla EMPLOYEES. Es necesario entonces aadir el prefijo de tabla para ejecutar la consulta. Si no hay nombres de columna comunes entre las dos tablas , no hay necesidad de calificar las columnas pero, utilizando el prefijo de la tabla mejora el rendimiento, ya que le dice al servidor de Oracle exactamente dnde encontrar las columnas.Sin embargo, calificar nombres de columna con los nombres de tabla puede llevar mucho tiempo, sobre todo si los nombres de tabla son largos. En su lugar, puede utilizar alias de tabla . As como un alias de columna da una columna de otro nombre, un alias de tabla da una tabla con otro nombre. Los alias de tabla ayudan a mantener el cdigo SQL ms pequeo, por lo tanto, usando menos memoria.El nombre de la tabla se especifica por completo, seguido por un espacio y luego el alias de la tabla. Creando Joins con la clusula ON Para especificar las columnas por las cuales se quiere para unir dos tablas, se utiliza la clusula ON. La condicin de JOIN o de unin se separan de otras condiciones de bsqueda (WHERE). Tambin se puede usar la clusula ON para unir columnas que tengan diferentes nombres pero contienen el mismo dato en la misma tabla o en tablas diferentes.Creando Joins en Tres Sentidos Un Join en tres sentidos es la unin de tres tablas y se ejecutan de izquierda a derecha. Esto quiere decir, que en el ejemplo el primer join que se ejecuta es EMPLOYEES JOIN DEPARTMENTS y posteriormente el JOIN de DEPARTMENTS con LOCATIONS los departamentos retornados por el primer JOINAgregando Condiciones Adicionales a un Join El ejemplo se utiliza la clusula ON en el Join, para agregar condiciones se puede utilizar la clusula AND . Opcionalmente, se puede utilizar la clusula condicional WHERE seguido de las clusulas AND que se deseen.Join sobre la misma tabla o Self-Join En ocasiones se debe realizar un join sobre la misma tabla para obtener algn dato. Por lo tanto, es necesario unir las columnas de la tabla que contienen el mismo dato simulando que pertenecen a tablas diferentes.

Nonequijoins Es una condicin de unin que contiene un operador de comparacin que no sea el operador de igualdad (=). Por simplicidad se utiliza BETWEEN. La relacin entre la tabla EMPLOYEES y la tabla JOB_GRADES es un ejemplo de un nonequijoin. La columna SALARY en la tabla EMPLOYEES oscila entre los valores de las columnas LOWEST_SAL y HIGHEST_SAL de la tabla JOB_GRADES. Por lo tanto, cada empleado puede ser clasificado en funcin de su salario. Otras condiciones (por ejemplo, =) se puede utilizar, pero BETWEEN es el ms simple.Outer Joins o Uniones Externas En la versin SQL de 1999 la combinacin de dos tablas que retornan slo filas coincidentes se llama INNER JOIN o Unin Interna. Un Join entre dos tablas que retorna el resultado del INNER JOIN (filas que coinciden) as como las filas de la tabla a la izquierda que no existen en tabla de la derecha del Join es una Unin Externa Izquierda o LEFT OUTER JOIN. Una unin entre dos tablas que retorna el resultado de un INNER JOIN as como las filas de la tabla a la derecha que no existen en tabla de la izquierda del Join es una Unin Externa Derecha o RIGTH OUTER JOIN. Una unin entre dos tablas que retorna el resultado de un INNER JOIN as como los de la Unin Externa izquierda y las filas de la Unin Externa Derecha es una Unin Externa Completa o FULL OUTER JOIN.

Uso de Subconsultas para Resolver Consultas Usando Subconsulta para Resolver un ProblemaSupongamos que se quiere escribir una consulta para saber quin gana un salario mayor que el salario de Abel. Para resolver este problema, se necesitan dos consultas: una para ver cunto gana Abel, y una segunda consulta para encontrar quin gana ms de esa cantidad. Este problema se puede resolver con la combinacin de las dos consultas, colocando una consulta dentro de otra consulta. La consulta interna (o subconsulta) devuelve un valor que es utilizado por la consulta externa (o consulta principal). El uso de una subconsulta es equivalente a realizar dos consultas secuenciales y usar el resultado de la primera consulta como el valor de bsqueda en la segunda consulta.Usando Subconsulta para Resolver un ProblemaUna subconsulta es una instruccin SELECT que est en una clusula de otra instruccin SELECT. Se pueden construir poderosas declaraciones mediante el uso de subconsultas. Pueden ser muy til cuando se necesita seleccionar filas de una tabla con una condicin que depende de los datos de la misma tabla.Se pueden colocar subconsultas en una clusula SQL como: Clusula WHERE. Clusula HAVING. Clusula FROM.En la sintaxis: operador_comparacin : corresponde a una condicin de comparacin que pueden ser: >, =, >=, = : mayor o igual que < : menor que