Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CURSO
BASE DE
DATOS
RESUMEN SQL
Resumen SQL
Resumen - SQL
Resumen - SQL
Pgina 2
Resumen - SQL
Pgina 3
Clusulas
WHERE
Resumen - SQL
Pgina 4
Operadores de comparacin
Operador
=
Propsito
Igual que
Ejemplo
select * from emp where deptno = 20;
!= , <>
Distinto de
<
Menor que
>
Mayor que
<=
>=
in
Contenido en
not in
No contenido en
between
Entre
not between
No entre
like
Como
not like
No como
is null
Es nulo
is not null
No es nulo
Resumen - SQL
Pgina 5
VARIABLES EN SQL*PLUS
Se pueden definir variables utilizables fuera del propio programa. Una variable en SQL*PLUS
puede asimilarse a una columna de una tabla con una sola fila de datos. Las variables igual que
las columnas de las tablas, tienen asignado un tipo de dato y contienen datos.
DEFINE nombre_variable = valor
DEFINE ndep = 30
Las variables definidas previamente, pueden ser usadas como una columna ms. Se podr
incorporar dentro de las consultas, usando la siguiente sintaxis :
& nombre_variable
SELECT dname FROM dept WHERE deptno = &ndep
Resumen - SQL
Pgina 6
Se puede utilizar una variable como variable de sustitucin, para ello bastar con usar la
variable sin tenerla definida, entonces se nos pedir que introduzcamos un valor por teclado.
En ocasiones se desea evitar que Oracle pida mltiples veces el valor de una variable que se
utiliza de forma repetida. Para esta finalidad se hace referencia a las variables precedidas de
&&, en cuyo caso Oracle pide el valor de la variable una sola vez. Cuando se define una
variable con &&, es necesario eliminarla con la sentencia UNDEFINE cuando se desea dar un
nuevo valor.
Resumen - SQL
Pgina 7
Funciones SQL
LOWER:
Convierte a minsculas.
LOWER(<CADENA>)
UPPER:
Convierte a maysculas.
UPPER(<CADENA>)
INITCAP:
Resumen - SQL
Pgina 8
CONCAT:
SUBSTR:
Resumen - SQL
Pgina 9
LENGTH:
INSTR:
LPAD:
RPAD:
REPLACE:
Resumen - SQL
Pgina 10
TRIM:
Resumen - SQL
Pgina 11
Funciones Numricas
ROUND:
TRUNC:
MOD:
Resumen - SQL
Pgina 12
Ao
Mes
Da
Horas
Minutos
Segundos
<NUMERO>
<FECHA>
<FECHA>
<NUMERO>
Sumar horas a una fecha se consigue dividiendo la cantidad sumada entre 24.
<FECHA>
Resumen - SQL
<NUMERO>/24
<FECHA>
Pgina 13
Funciones de Fecha
MONTHS_BETWEEN:
ADD_MONTHS:
NEXT_DAY:
NEXT_DAY (<FECHA>,<DIA-SEMANA>)
Resumen - SQL
Pgina 14
LAST_DAY:
ROUND:
Dependencia
Formato
Regla de redondeo
Ao
Trimestre
Mes
MON, MM
Semana
WW
Redondea da de la semana
Da
DDD, DD, J
Minuto
MI
Resumen - SQL
Pgina 15
TRUNC:
Resumen - SQL
Pgina 16
Formatos de Fecha
Siglos y aos
CC
Siglo
SCC
YYYY
SYYY
YY
YEAR
SYEAR
BC
Antes o Despus de Cristo (AC o DC) para usar con los anteriores, por
ejemplo YYYY BC
Meses
MM
RM
MONTH
FMMONTH
MON
WW
Resumen - SQL
Pgina 17
Das
DDD
Da del ao (1-366)
DD
Da de la semana (1-7)
DAY
FMDAY
DY
DDTH
Da (ordinal): 7TH
DDSPTH
Resumen - SQL
Pgina 18
horas
HH
HH12
HH24
SPHH
AM
PM
am o pm
A.M.
a.m. o p.m.
P.M.
a.m. o p.m.
Minutos y segundos
MI
Minutos (0-59)
SS
Segundos (0-59)
SSSS
Adems de estas palabras clave, el formato puede incluir espacios y los signos de
puntuacin -/,.;:. Cualquier otro carcter debe ir "entre comillas dobles".
Resumen - SQL
Pgina 19
Funciones de conversin
La conversin de tipos de datos puede ser:
VARCHAR2 o CHAR
NUMBER
VARCHAR2 o CHAR
DATE
NUMBER
VARCHAR2
DATE
VARCHAR2
TO_CHAR:
9: Representa un nmero
0: Fuerza a que se muestra el cero
U: Signo del Euro
.: Imprime el punto decimal
;: Imprime el indicador de millar
Para fechas, los formatos anteriores.
TO_DATE:
Resumen - SQL
Pgina 20
Funciones generales
NVL:
NVL2:
Resumen - SQL
Pgina 21
NULLIF:
COALESCE:
Resumen - SQL
Pgina 22
Expresiones condicionales
EXPRESIN CASE:
La expresin CASE permite utilizar la lgica IF-THEN-ELSE en sentencias
SQL sin tener que invocar procedimientos. Esta expresin se incluye a partir de
la versin Oracle9i.
La siguiente es la sintaxis que presenta la expresin CASE:
CASE <EXPRESION> WHEN <EXPRESION-COMPARACION> THEN <EXPREXION-RETORNADA>
[ WHEN <EXPRESION-COMPARACION-2> THEN <EXPREXION-RETORNADA-2>
WHEN <EXPRESION-COMPARACION-3> THEN <EXPREXION-RETORNADA-3>
Resumen - SQL
Pgina 23
Resumen - SQL
Pgina 24
DECODE:
<VALOR-BUSQUEDA-1>, <RESULTADO-1>
, <VALOR-BUSQUEDA-2>, <RESULTADO-2>
, <VALOR-BUSQUEDA-N>, <RESULTADO-N>]
Resumen - SQL
, <VALOR-DEFECTO> ] )
Pgina 25
Clusulas
WHERE
ORDER BY
Para ordenar el resultado de la seleccin por una o varias columnas
SELECT * FROM Tabla1 ORDER BY Columna1 [,Columna2,] [ASC]/[DESC]
Resumen - SQL
Pgina 26
GROUP BY
Permite agrupar resultados.
SELECT Columna1, SUM(Columna2) FROM Tabla1 GROUP BY Columna1
Devuelve la suma de los valores de Columna2 correspondientes a cada uno de los valores diferentes
de Columna1.
HAVING
SELECT Columna1, SUM(Columna2) FROM Tabla1 GROUP BY Columna1 HAVING SUM(Columna2) >
Valor1
Devuelve la suma de los valores de Columna2 correspondientes a cada uno de los valores diferentes de
Columna1, siempre que el resultado de la suma sea mayor que Valor1.
Resumen - SQL
Pgina 27
Agrupaciones
SELECT <EXP-AGRUPADO-1> [, <EXP-AGRUPADO-2> , ],
FROM <NOMBRE-TABLA>
[ WHERE <CONDICION> ]
[ GROUP BY <EXP-AGRUPACION> ]
[ HAVING <CONDICION> ]
El agrupamiento combina los registros con valores idnticos, en la lista de campos
especificados, en un nico registro. Para cada registro se crea un valor sumario si se incluye
una funcin SQL agregada, como por ejemplo SUM o COUNT, en la instruccin SELECT.
GROUP BY es opcional. Los valores de resumen se omiten si no existe una funcin SQL
agregada en la instruccin SELECT.
Los valores NULL en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores
NULL no se evalan en ninguna de las funciones SQL agregadas.
Se utiliza la clusula WHERE para excluir aquellas filas que no se desea agrupar, y la clusula
HAVING para filtrar los registros una vez agrupados.
Resumen - SQL
Pgina 28
SUM:
COUNT:
MAX:
MIN:
Resumen - SQL
Pgina 29
Resumen - SQL
Pgina 30
Resumen - SQL
Pgina 31
Unin de tablas
En la mayora de las veces, todos los datos no estarn en la misma tabla, sino que por diseo
de la base de datos, habrn quedado repartidos en diferentes tablas.
En esas ocasiones, para hacer las consultas correspondientes es necesario combinar todas las
tablas en las que estn los datos.
<NOMBRE-TABLA-1>
[ JOIN <NOMBRE-TABLA-2>
ON <TABLA-1.COLUMNA> = <TABLA-2.COLUMNA> ]
Resumen - SQL
Pgina 32
CROSS JOIN
Cruza ambas tablas dando como resultado una fila por cada combinacin de registros de
ambas tablas. Es decir que si una tabla tiene 4 registros y la otra otros 4, el resultado del
SELECT dar 16 filas (4x4).
La composicin (JOIN) de tablas se produce cuando se combinan datos de dos o ms tablas. Es
un caso particular de la operacin del lgebra relacional llamada producto cartesiano. Para
obtener un producto cartesiano se debe poner en la clusula FROM el nombre de las tablas
que se quieran combinar
Para especificar el nombre de una columna comn entre varias tablas, deberemos poner en
alguno de los casos, el nombre de la tabla y un punto, delante del nombre de la columna
(NOMBRE-TABLA.COLUMNA> ) .
<NOMBRE-TABLA-1>
Resumen - SQL
Pgina 33
Resumen - SQL
Pgina 34
NATURAL JOIN
Para poder hacer un NATURAL JOIN es preciso que las dos tablas que se combinan tengan el
mismo nombre y el mismo tipo de datos para el atributo por el que se hace la composicin
Pero si ocurriera que aun teniendo el mismo nombre, las dos columnas no tienen el mismo
tipo de dato, habra que recurrir a la clusula USING que puede ser usada para especificar
aquellas columnas que participarn en la unin siempre y cuando las columnas que participen
en la composicin no tengan un calificador (nombre de tabla o alias).
Da como resultado los elementos que tienen un valor comn en una columna de cada tabla.
La condicin se evala antes de juntar las tablas, de tal manera que solo se juntan los registros
que previamente cumplen la condicin
En el supuesto de tener ambas tablas, varios campos comunes, deber coincidir los valores de
los diversos campos comunes.
SELECT <EXPRESION-1> [, <EXPRESION-2> , ],
FROM
<NOMBRE-TABLA-1>
Resumen - SQL
Pgina 35
JOIN USING
Para poder hacer un USING JOIN es preciso que las dos tablas que se combinan tengan el
mismo nombre pero no el mismo tipo de datos para el atributo por el que se hace la
composicin
La clusula USING puede ser usada para especificar aquellas columnas que participarn en la
unin siempre y cuando las columnas que participen en la composicin no tengan un nombre
de tabla o alias.
<NOMBRE-TABLA-1>
Resumen - SQL
Pgina 36
INNER JOIN
Da como resultado los elementos que tienen un valor comn en una columna de cada tabla.
Dichas columnas hay que indicarlas expresamente, despus de la preposicin ON.
<NOMBRE-TABLA-1>
[ JOIN <NOMBRE-TABLA-2>
ON <TABLA-1.COLUMNA> = <TABLA-2.COLUMNA> ]
Resumen - SQL
Pgina 37
LEFT JOIN
Da como resultado los elementos que tienen un valor comn en una columna de cada tabla, y
devuelve el conjunto completo de valores de la tabla de la izquierda, dejando nulas las
columnas de tabla de la derecha que no cumplen la condicin.
Dichas columnas hay que indicarlas expresamente, despus de la preposicin ON.
<NOMBRE-TABLA-1>
Resumen - SQL
Pgina 38
RIGHT JOIN
Da como resultado los elementos que tienen un valor comn en una columna de cada tabla, y
devuelve el conjunto completo de valores de la tabla de la derecha, dejando nulas las
columnas de tabla de la izquierda que no cumplen la condicin.
<NOMBRE-TABLA-1>
Resumen - SQL
Pgina 39
FULL JOIN
Da como resultado los elementos que tienen un valor comn en una columna de cada tabla, y
devuelve el conjunto completo de valores de la tabla de la derecha, y devuelve el conjunto
completo de valores de la tabla de la derecha.
<NOMBRE-TABLA-1>
Resumen - SQL
Pgina 40
JOIN MULTIPLES
<NOMBRE-TABLA-1>
JOIN <NOMBRE-TABLA-2>
ON <TABLA-1.COLUMNA> = <TABLA-2.COLUMNA> ]
[
JOIN <NOMBRE-TABLA-3>
ON <TABLA-2.COLUMNA> = <TABLA-3.COLUMNA> ]
Resumen - SQL
Pgina 41
Resumen - SQL
Pgina 42
Subconsultas
Una Subconsulta es una consulta cuyo resultado es pasado como argumento a otra consulta.
Para subconsultas que devuelven una sola fila como resultado, podemos utilizar los
operadores =, <>, >, <, >=, <=.
Resumen - SQL
Pgina 43
Para subconsultas que devuelven ms de una fila como resultado, podemos utilizar los
operadores IN, ANY, ALL.
IN
ANY
Comparan el resultado de la subconsulta con cada una de las filas de la consulta, devolviendo
"verdadero" por cada fila de la consulta que tiene un resultado en la subconsulta.
Esto puede parecer igual que el resultado obtenido usando "IN". La diferencia estriba que
"ANY" puede ser usado con otros operadores distintos de "=", tales como ">", "<", "<>", etc.
Resumen - SQL
Pgina 44
ALL
Lo contrario a ANY es ALL (Cualquier valor, Todos los valores)
EXISTS
EXISTS toma un subconsulta como argumento y devuelve "verdadero" si la subconsulta
devuelve algo y "falso" si no devuelve nada.
Resumen - SQL
Pgina 45
Resumen - SQL
Pgina 46
UNION
Da como resultado los registros distintos de las subconsultas implicadas. Las consultas deben
devolver el mismo nmero de columnas y del mismo tipo de dato.
Resumen - SQL
Pgina 47
UNION ALL
Da como resultado todos los registros de las subconsultas implicadas.
Resumen - SQL
Pgina 48
INTERSECT
Da como resultado los registros iguales de las subconsultas implicadas. Las consultas deben
devolver el mismo nmero de columnas y del mismo tipo de dato.
MINUS
Da como resultado los registros nicos de la primera subconsulta respecto a la segunda
consulta implicada. Las consultas deben devolver el mismo nmero de columnas y del mismo
tipo de dato.
Resumen - SQL
Pgina 49
Resumen - SQL
Pgina 50