Está en la página 1de 5

FUNCIONES DE CONVERSION FUNCION RESULTADO LOWER('SQL Course') sql course INITCAP('SQL Course') Sql Course UPPER('SQL Course') SQL

COURSE FUNCIONES DE MANIPULACION DE CARACTERES FUNCION CONCAT('Hello', 'World') SUBSTR('HelloWorld',2,4) LENGTH('HelloWorld') INSTR('HelloWorld', 'W') LPAD(salary,10,'*') RPAD(salary, 10, '*') REPLACE('JACK and JUE','J','BL') TRIM('H' FROM 'HelloWorld') FUNCIONES DE NUMEROS FUNCION RESULTADO ROUND(45.926, 2) 45.93 TRUNC(45.926, 2) MOD(1600, 300) 45.92 100

DESCRIPCION Convierte todo a minusculas Convierte Primera letra en mayuscula Convierte todo a Mayusculas

RESULTADO HelloWorld Hello 10 6 *****24000 24000***** BLACK and BLUE elloWorld

DESCRIPCION Concatena dos cadenas Muestra caracteres de 2 al 4 Muestra Num de caracteres Muestra posicion del caracter Rellena 10 * ala Izquierda Rellena 10 * ala Derecha Reemplaza los J por BL Elimin letras de inicio y fin

DESCRIPCION Redondea la columna (Si n es negativo, los nmeros a la izquierda del punto decimal se redondean ascendentemente) Trunca la columna (Si n es negativo, los nmeros a la izquierda del punto decimal se redondean descendentemente) Devuelve el resto de m dividido por n

OPERACIONES CON FECHAS FUNCION RESULTADO FECHA + NUMERO FECHA FECHA - NUMERO FECHA FECHA FECHA NUMERO DE DIAS FECHA + NUMERO/24 FECHA

DESCRIPCION Agrega un nmero de das a una fecha Resta un nmero de das de una fecha Resta un da de otro Agrega un nmero de horas a una fecha

FUNCIONES DE MANIPULACION DE FECHAS FUNCION SYSDATE='25-JUL-03' MONTHS_BETWEEN('01-SEP-95','11-JAN-94') ADD_MONTHS(31-JAN-96',1) NEXT_DAY('01-SEP-95','FRIDAY') LAST_DAY('01-FEB-95')

RESULTADO 19.6774194 '29-FEB-96' '08-SEP-95' '28-FEB-95'

ROUND(SYSDATE,'MONTH') ROUND(SYSDATE ,'YEAR') TRUNC(SYSDATE ,'MONTH') TRUNC(SYSDATE ,'YEAR')

01-AUG-03 01-JAN-04 01-JUL-03 01-JAN-03

DESCRIPCION Nmero de meses entre dos fechas Aadir mes calendario hasta la fecha Siguiente da de la fecha especificada ltimo da del mes Redondea fecha en mes Redondea fecha en ao Trunca fecha en mes Trunca fecha en ao

ORACLE PUEDE CONVERTIR AUTOMTICAMENTE EL SIGUIENTE: DE A VARCHAR2 or CHAR NUMBER VARCHAR2 or CHAR DATE El modelo de formato debe estar encerrado entre comillas simples y distingue entre maysculas y minsculas. El modelo de formato puede incluir cualquier elemento de formato de fecha vlido. Pero asegrese de separar el valor de la fecha a partir del modelo de formato con una coma. Los nombres de los das y meses en la salida se rellenan automticamente con blancos. Para eliminar los espacios en blanco acolchados o para suprimir ceros a la izquierda, use el elemento fm modo de relleno. ELEMENTOS DEL FORMATO MODELO FECHA

ELEMENTO YYYY YEAR MM MONTH MON DY DAY DD

RESULTADO Ao completo en nmeros Ao enunciados (en Ingls) Valor de dos dgitos para el mes Nombre completo del mes Tres letras de la abreviatura del mes Tres letras de la abreviatura del da de la semana Nombre completo del da de la semana Da numrico del mes

-----CAPITULO 1----SELECT department_id, department_name, manager_id FROM departments;--Sentencia select SELECT last_name, salary, 2*salary + 300 FROM employees;--Operadores aritmeticos SELECT last_name, job_id, salary, commission_pct FROM employees;----Valor nulo SELECT last_name AS Linio, last_name pedro, last_name "rodrigo" FROM employees;--Alias SELECT last_name, job_id, last_name||job_id AS "Employees" FROM employees;--Concatenar SELECT last_name ||' is a '||job_id AS "Detalle" FROM employees;--Usando caracteres para concatenar SELECT department_name || q'[Id: ]'|| manager_id AS "Detalle" FROM departments;--Citas delimitador SELECT DISTINCT department_id FROM employees;--eliminar registros duplicados DESCRIBE employees--Describe estructura de la tabla -----CAPITULO 2----SELECT employee_id, last_name FROM employees WHERE employee_id = 100 ;--Condiciones SELECT last_name, salary FROM employees WHERE salary <= 3000 ;--Condiciones SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500 ;--Operador rango SELECT last_name, manager_id FROM employees WHERE manager_id IN (100, 101, 201) ;--Incluye SELECT first_name FROM employees

WHERE first_name LIKE '_S%' ;--Inicia segunda letra con S SELECT last_name, salary*12 annsal FROM employees ORDER BY annsal ;--Operaciones aritmeticos SELECT last_name, job_id FROM employees ORDER BY 2;--Ordenar por Num de columna SELECT employee_id, last_name FROM employees WHERE employee_id = &employee_num ;--Uso de variables numeros SELECT last_name, department_id FROM employees WHERE last_name = '&last_name';--Uso de variables Caracteres -----CAPITULO 3----SELECT UPPER(last_name),LOWER(last_name),INITCAP(last_name) FROM employees;--Funciones de Conversion SELECT CONCAT(first_name, last_name), LENGTH (last_name) FROM employees;--Concatena dos columnas y numero de letras SELECT last_name, SUBSTR(last_name, 2,4) FROM employees; --Muestra las letras en posicion 2-4 en last_name SELECT last_name, INSTR(last_name, 'a') FROM employees; --Muestra el posicion del primer letra 'a' en last_name SELECT salary, LPAD(salary,10,'*') FROM employees; --Completa ala izq con * hasta 10 digitos a salary SELECT salary, RPAD(salary,10,'*') FROM employees; --Completa ala der con * hasta 10 digitos a salary SELECT last_name, REPLACE(last_name,'i','e') FROM employees;--Reemplaza en last_name los i por e SELECT last_name, TRIM('a' FROM last_name) FROM employees;--Recorta letra a de inicio o final SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM DUAL;--Redondea para arriba SELECT TRUNC(45.923,2), TRUNC(45.923), TRUNC(45.923,-1) FROM DUAL;--Redondea para abajo SELECT last_name, salary, MOD(salary, 5000) FROM employees;--Muestra el resto de salary entre 5000 SELECT sysdate FROM dual;--Retorna fecha actual SELECT sysdate, ADD_MONTHS(sysdate,1)

FROM employees;--Agrega 1 mes ala fecha actual SELECT hire_date, (SYSDATE-hire_date) AS DIAS FROM employees;-- Resto de fecha actual y hire_date en dias SELECT hire_date, (SYSDATE-hire_date)/7 AS SEMANAS FROM employees;-- Resto de fecha actual y hire_date en semanas SELECT hire_date, MONTHS_BETWEEN(SYSDATE, hire_date) MESES FROM employees;--Retorna numero de meses del rango SELECT hire_date, ROUND(hire_date,'MONTH') "REDONDEO POR MES", ROUND(hire_date,'YEAR') "REDONDEO POR AO" FROM employees;--Redondea fecha SELECT hire_date, TRUNC(hire_date,'MONTH') "TRUNCA POR MES", TRUNC(hire_date,'YEAR') "TRUNCA POR AO" FROM employees;--Trunca fecha -----CAPITULO 4----SELECT hire_date, TO_CHAR(hire_date, 'MM/YY') Month_Hired FROM employees;--Convierte fecha a caracter mes/dia SELECT TO_CHAR(hire_date, 'fmDD Month YYYY') AS HIREDATE FROM employees;--fm para eliminar 0 SELECT last_name, TO_CHAR(hire_date, 'fmDdspth "de" Month YYYY HH:MI:SS AM') FROM employees;--numeros en letras y hora de hire_date SELECT salary, TO_CHAR(salary, '$99,999.00') Nuevo FROM employees;--Antepone $ al salario SELECT last_name,UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 4), '_hola')) FROM employees;--Funciones anidadas SELECT last_name, job_id, salary, CASE job_id WHEN 'IT_PROG' THEN 200+salary ELSE salary END "REVISED_SALARY" FROM employees; SELECT salary, commission_pct, CASE commission_pct WHEN null THEN 200+salary ELSE salary END "REVISAR_SALARIO" FROM employees; SELECT salary,commission_pct, CASE commission_pct WHEN 'null' THEN 'sin comision' ELSE salary END "REVISED_SALARY" FROM employees;

-----EXAMEN------1 SELECT last_name, salary FROM employees WHERE salary > 12000; --2 SELECT last_name, salary FROM employees WHERE salary<5000 OR salary>12000; --3 SELECT last_name, job_id, hire_date FROM employees WHERE last_name='Matos' OR last_name='Taylor' ORDER BY hire_date; --4 SELECT last_name, department_id FROM employees WHERE department_id=20 OR department_id=50 ORDER BY last_name; --5 SELECT last_name, hire_date FROM employees WHERE hire_date LIKE '%94'; --6 SELECT last_name FROM employees WHERE last_name LIKE '__a%'; --7 SELECT last_name, salary, salary+((salary*23.5)/100) AS new_salary FROM employees; --8 SELECT INITCAP(last_name), LENGTH(last_name) AS tamao FROM employees WHERE last_name LIKE 'J%' OR last_name LIKE 'M%' OR last_name LIKE 'A%'; --9 SELECT LOWER(last_name), hire_date AS meses FROM employees --WHERE BETWEEN hire_date AND '01-FEB-14' WHERE CURRENT_DATE > hire_date ORDER BY hire_date desc; SELECT sysdate - hire_date FROM employees; SELECT CURRENT_DATE "Hoy" FROM DUAL; SELECT sysdate-'14-09-13' FROM dual;