La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sobre SQL. Funciones Pueden ser utilizadas en dentro de las cláusulas SQL: SELECT WHERE ORDER BY GROUP BY Podemos anidar funciones Tipos de funciones.

Presentaciones similares


Presentación del tema: "Sobre SQL. Funciones Pueden ser utilizadas en dentro de las cláusulas SQL: SELECT WHERE ORDER BY GROUP BY Podemos anidar funciones Tipos de funciones."— Transcripción de la presentación:

1 Sobre SQL

2 Funciones Pueden ser utilizadas en dentro de las cláusulas SQL: SELECT WHERE ORDER BY GROUP BY Podemos anidar funciones Tipos de funciones Aritméticas, cadenas de caracteres, manejo de fechas, conversión, otras funciones.

3 Funciones Aritméticas Valores simples ABS(n) : ABS(-5 ) = 5 NVL(valor,expresion): NVL (10,2) = 10 CEIL (n): CEIL (2.3) = 3 Grupos de valores AVG(n) COUNT(* | expresión) MAX MIN SUM Listas GREATEST ( valor1, valor2,... ) LEAST ( valor1, valor2,... )

4 Funciones de Caracters que devuelven Caracteres Sirven para analizar, convertir o manipular cadenas de caracteres: CHR(n): devolver el carácter cuyo valor binario es n CONCAT(c1, c2): concatenar la cadena c1 y c2 LOWER(c1), UPPER(c1) LPAD ( c1, n [, c2 ]): rellenar con caracteres a la izquierda. (RPAD para hacer por la derecha) TRANSLATE ( c, f, t ): convierte los caracteres de c con cada ocurrencia f por el correspondiente carácter de t.

5 Funciones de Caracteres que devuelven Números ASCCI ( c ): devuelve el valor ASCII INSTR ( c1, c2 [,comienz o [,m]] ): búsqueda de la cadena c2 en c1, puede indicar el carácter de comienzo y la ocurrencia a buscar. LENGTH ( c ): número de caracteres de c.

6 Funciones de Manejo de Fechas En general el formato de fecha depende de cada instalación: ‘DD- MON-YY’, ‘DD/MM/YY’ son algunos de estos, sin embargo con la función TO_CHAR se puede hacer la conversión: TO_CHAR( f, mascara ) Funciones SYSDATE ADD_MONTHS ( f, n) devuelve f incrementado en n meses. LAST_DAY (f ): devuelve el último día del mes MONTHS_BETWEEN (f1, f2): devuelve la diferencia en meses de la fechas f1 y f2 NEXT_DAY ( f, c ): devuelve la siguiente fecha luego de f, según el día que indique c.

7 Funciones de Conversión TO_CHAR Puede transformar de NUMBER o DATE a carácter. TO_DATE Puede transformar de NUMBER o CHAR a fecha. TO_NUMBER Transforma un CHAR a número.

8 Otras funciones DECODE VSIZE ( expr ) Retorna el tamaño de bytes de la expresión DUMP ( expr [,return_fmt[,start[,length]]]) Retorna el tipo de datos, largo en bytes y representación internal. USER Retorna el código de usuario UID Retorna el entero único que identifica la sesión de usuario.

9 Cláusulas GROUP BY y HAVING Este tipo de consultas se utilizan para trabajar sobre agrupaciones de las tuplas en la selección SELECT... FROM... WHERE.... GROUP BY exp1, exp2, exp3,... HAVING condición ORDER BY... Los datos a escoger en el SELECT pueden ser: una constante, una función de grupo (AVG, MIN, MAX, et c) o bien una expresión indicada en el GROUP BY. El HAVING se utiliza para aplicar condiciones a los grupos y no a las filas individuales. De esta forma se puede controla el grupo de filas que se puede visualizar Este HAVING se evalúa sobre el resultado del GROUP BY, por lo que no puede existir sino existe el GROUP BY.

10 Uso del EXISTS Cuando se desea saber si existe o no una condición, el uso de esta cláusula puede ser muy útil. Por ejemplo, deseo buscar los empleados que hayan registrado una venta en el pasado Véase que no interesa si tiene muchas o una sola venta, nada más que exista. SELECT e.ename FROM emp e WHERE EXISTS ( SELECT 'c' FROM customer c, ord o WHERE c.repid = e.empno AND o.custid = c.custid ) Nótese que el SELECT no necesita devolver una columna en particular, por lo que se pueden usar constantes. Esta cláusula acepta el NOT para negar la existencia

11 Cláusulas GROUP BY y HAVING Ejemplo: desplegar la cantidad de empleados por departamento. SELECT deptno, COUNT(*) FROM emp GROUP BY deptno Si deseamos ahora que solo se desplieguen los departamentos con más de 4 empleados utilizamos la consulta. SELECT deptno, COUNT(*) FROM emp GROUP BY deptno HAVING COUNT(*)>4

12 Outer Joins-Combinación Externa En una selección con una combinación, permite mostrar los registros de una tabla, aunque no tenga correspondiente con otra. Sintáxis SELECT co1, col2,... FROM t1, t2,... WHERE t1.col1 = t2.col2 (+)... Esto indica que seleccionarán to dos los registros de la tabla t1, aunque no exista el correspondiente en t2. Esto se logra con el uso del (+) detrás de la columna. Las columnas que se selección en de la tabla t2 se dejaran nulas en el despliegue.

13 Outer Joins-Combinación Externa Ejemplo: Presentar el nombre de todos los empleados y el de su jefe. SELECT e.ename, mgr.ename jefe FROM emp e, emp mgr WHERE mgr.empno = e.mgr Sin embargo el resultado de esta consulta nos trae solo 13 registros de los 14 que tiene la tabla em p. Esto se debe a que 'KING' no tiene valor en la columna mg r, por lo que la combinación no trae una tupla. Para soluciona la consulta anterior debemos escribirla como: SELECT e.ename, mgr.ename jefe FROM emp e, emp mgr WHERE mgr.empno(+) = e.mgr

14 Operaciones con Conjuntos Las operaciones con conjuntos permiten utilizar los siguientes operadores UNION INTERSECT MINUS Estas operaciones mantienen las propiedades conocidas de conjuntos. Forma de utilización SELECT... FROM... WHERE... Operador SELECT... FROM... WHERE... Véase que los tipos y cantidad de columnas del SELECT deben ser las mismas. El nombre puede diferir, así como el largo.

15 Operaciones con Conjuntos Ejemplos UNION : nombre de tablas e índices del usuario. SELECT table_name FROM user_tables UNION SELECT index_name FROM user_indexes INTERSECT: buscar empleados que sean representantes de ventas de algún cliente. SELECT e.empno FROM emp e INTERSECT SELECT c.repid FROM customer c; MINUS: desplegar los empleado s, exceptuando a los sean representantes de algún cliente de 'BURLINGAME' SELECT e.empno FROM emp e MINUS SELECT c.repid FROM customer c WHERE c.city = 'BURLINGAME';

16 Recuperación Jerárquica Cláusula CONNECT BY, la cual es poco utilizada. Con esta la idea es para la misma tabla existe una columna que la asocia con otros registros Ejemplo mgr en emp De esta forma lo que tenemos es una o varias jerarquías representadas a través de estos campos. Formato SELECT col1, col2,... FROM tabla WHERE condicion CONNECT BY [PRIOR] expresion = [PRIOR] expresion START WITH expresion = expresion Este tipo de consultas agrega una pseudo columna que se denomina LEVEL (inicia en 1 para la raíz y luego se incrementa según el nivel del árbol)

17 Recuperación Jerárquica Ejemplo con la tabla emp SELECT e.ename, e.empno, e.mgr, level FROM emp e CONNECT BY PRIOR e.empno=e.mgr START WITH ename = 'KING' Podemos utilizar LEVEL para formatear un poco más la salida SELECT LPAD ( ' ', level-1 ) || e.ename ename, e.empno, e.mgr FROM emp e CONNECT BY PRIOR e.empno=e.mgr START WITH ename = 'KING'; Si cambiamos el PRIOR podemos ve r los jefes inmediatos de un empleado SELECT LPAD ( ' ', level-1 ) || e.ename ename, e.empno, e.mgr FROM emp e CONNECT BY e.empno=PRIOR e.mgr START WITH ename = 'ADAMS';

18 Fin


Descargar ppt "Sobre SQL. Funciones Pueden ser utilizadas en dentro de las cláusulas SQL: SELECT WHERE ORDER BY GROUP BY Podemos anidar funciones Tipos de funciones."

Presentaciones similares


Anuncios Google