Comando:[Link] //para corregir problemas [desactivar oracle listener, oracle service.
exe] DBA-sys ------oracle DBO-system------oracle NOVEDADES: APLICACIN EXPRESS MODO NATIVO: //administrador de la base de datos //operador de la base de datos
GET STARTED Primero debemos loguearnos: Username: sys Password :oracle Creamos una Workspace(pestaa express aplication) Database User: HR //fisi //fisi1
Aplication Express Username:hr1 Password: hr Confirm Password:hr //fisi
//fisi
HR HR1 hr
Luego debemos loguearnos: Workpace:HR Username:HR1 //este usuario trabaja sobre el espacio de trabajo de HR Password: hr
Para crear un nuevo usuario: 1) Pestaa Administration 2) Manage Users and Goups
3) Create user
Pestaa SQLWORKSHOP 1)SQL COMMANDS desc tab ; //o describe y luego RUN,nos muestra lo siguiente:
Select tname from tab;
Select tabtype from tab;
SQL WORKSHOP Object Browser nos nuestra las siguientes tablas:
Podemos usar las siguientes sentencias (en SQL Commands): Select * from employees; Select* from departments;
Run SQL Command Line
MODO NATIVO:
SQL > connect sys /oracle as sysdba; datos;
SQL>desc dba_users;
// nos conectamos como administrador de la base de
SQL>select username , account_status from dba_users; //hr aparece lockeado SQL>alter user hr identified by hr;
SQL>alter user hr account unlock; // SQL>select username , accounts_status from dba_users; //ahora aparece hr como open SQL>connect hr/hr; SQL> desc tab; Select tname from tab; Select *from departments; Select department_id, department_name from departments; //codigo y nombre de departamentos; select employee_id, last_name from employees; // codigo de empleado y apellidos; select employee_id, last_name, department_id, from employees; // codigo,apeliido,departamento; select deparment_id from employees; //codigo de departamento select DISTINCT( deparment_id ) from employees; //codigos de departamentos distintos select DISTINCT(manager_id) from employees; //codigos de administradores distintos select hola amigos from dual; // mostrar una cadena select 7-5 from dual; select salary,salary+500 from employess; select salary,12*salary+500 from employess; //las tablas puden soportar valores nulos,pero no se puede operar con ellos select salary,12*(salary+500) from employess; //los parentesis sirven para dar prioridad select salary, commission _pct from employess; select salary,coalesce(commission _pct,0) from employess; //pone en 0 a los que no tienen comision select salary,salary+(coalesce(commission _pct,0)*salary) as sueldo_total from employess; //todo eso cambia al alias sueldo_total select salary,salary+(coalesce(commission _pct,0)*salary) sueldo_total from employess; //otra forma select first_name, last_name from employees; // columnas separadas select first_name|| last_name from employees; //concatenacion de cadenzas,columnas juntas select first_name|| || last_name from employees; //concatenacion espacio vacio select first_name|| || last_name as NOMBRE_COMPLETO from employees; EJERCICIO: Construya una consulta que permita mostrar la siguiente salida renombrando como codigo_empleado: El empleado Juan Perez tiene el codigo 123 SOLUCION: Select ( El empleado|| ||first_name|| ||last_name|| ||gana|| ||salary|| ||de salario ) as DATOS_COMPLETOS from employess ; // puede ser con parntesis tambien
Select last_name, salary,coalesce(to_char(commission_pct*salary),no tiene comisin )from employees; // multiplica el salario por la comision y lo muestra as como tambin alos que no tienen comisin
Select last_name, salary,coalesce(to_char(commission_pct*salary),no tiene comisin ) as COMISION from employees; //
FUNCIONES DE MANIPULACIONDE CARACTERES Select LOWER(last_name ) from employees; //convierte el apellido a minusculas Select UPPER(last_name ) from employees; //convierte el apellido a masyusculas Select INITCAP(last_name ) from employees; //convierte la primera letra a masyusculas
Select LOWER(last_name ),HOLA from employees; //convierte el apellido a minusculas y muestra a la derecha la palabra HOLA. Select CONCAT(first_name,last_name) from employees; // concatena el nombre y apellido pero sin dejar espacio Concatenacion anidada: Select CONCAT(CONCAT(first_name, ),last_name)) from employees; // concatena el nombre y apellido pero con espacio Select SUBSTR(last_name,1,3) from employees; // muestra las letras a partir de la posicin 1 a la posicin 3 Select UPPER( SUBSTR(last_name,1,3) )from employees; // convierte a maysculas las letras a partir de la posicin 1 a la posicin 3 Select LENGTH(last_name) from employees; // muestra la cantidad de letra del nombre Select INSTR(last_name,t) from employees; // muestra la cantidad de letras que hay hasta la letra t(tambin cuenta esta ultima) Select LPAD ( salary,10,*) from employees;
Select RPAD ( last_name,10,*) from employees ; //muestra lo anterior pero al reves Select TRIM (Z from last_name) from employees ; //recorta la letra Z del apellido TRIM ANIDADO: Select TRIM( l fromTRIM (Z from last_name) ) from employees ; //recorta la letra Z y la letra ldel apellido . Siempre corta letras de manera consecutiva
SELECT ROUND(45.923,2), ROUND(45.923,0),ROUND(45.923,-1) FROM DUAL; Uso de la Funcin ROUND DUAL es una tabla ficticia que puede utilizar para ver
l funciones y clculos. SELECT TRUNC(45.923,2), TRUNC(45.923,0),TRUNC(45.923,-2) FROM DUAL;
tados de
Uso de la Funcin TRUNC
Calcule el resto de un salario despus de dividirlo por 5000 para todos los empleados cuyos cargos son representantes de ventas
SELECT last_name, salary, MOD(salary, 5000)
FROM employees WHERE job_id = 'SA_REP';
Trabajo con Fechas
-La base de datos Oracle almacena fechas en un formatonumrico interno: siglo, ao, mes, da, horas, minutos,segundos. -El formato de visualizacin de fecha por defecto es DD-MON-RR.
Le permite almacenar fechas del siglo XXI en el sigloXX especificando solamente los dos ltimos dgitos del ao. Le permite almacenar fechas del siglo XX en el siglo
SELECT last_name, hire_date FROM employees WHERE last_name like 'G%';
SYSDATE es una funcin que devuelve: Fecha Hora
Aritmtica con Fechas
Sume o reste un nmero a/de una fecha para producir un valor de fecha. Reste dos fechas para buscar el nmero de das entre ellas. Sume horas a una fecha dividiendo el nmero de horas por 24.
Select sysdate from dual ; 29/04/12 // devuelve la fecha
SELECT last_name,hire_date FROM employees
SELECT last_name,SYSDATE-hire_date FROM employees
Devuelve a cantidad de dias y horas que hay entre la fecha de contratacin(hire_date) ya la fecha actual.
SELECT last_name, (SYSDATE-hire_date)/7 as SEMANAS FROM employees
Funciones de Fecha MONTHS_BETWEEN Nmero de meses entre dos fechas ADD_MONTHS Suma meses de calendario a una fecha NEXT_DAY Siguiente da de la fecha especificada LAST_DAY ltimo da del mes ROUND Redondea la fecha TRUNC Trunca la fecha
Select ADD_MONTHS(sysdate,2) from dual ; Select NEXT_DAY(sysdate,3) from dual ; Select LAST_DAY(sysdate) from dual ;
// suma dos meses ala fecha actual // suma 3 dias ala fecha actual
// devuelve el ultimo dia del mes;
Uso de Funciones de Fecha
Asuma SYSDATE = '25-JUL-95': ROUND(SYSDATE,'MONTH') 01-AUG-95 ROUND(SYSDATE ,'YEAR') 01-JAN-96
TRUNC(SYSDATE ,'MONTH') 01-JUL-95 TRUNC(SYSDATE ,'YEAR') 01-JAN-95
Prctica 3, Parte Uno: Visin General
Esta prctica cubre los siguientes temas: Escritura de una consulta que muestre la fecha actual. Creacin de consultas que requieran el uso de funciones numricas, de caracteres y de fecha. Realizacin de clculos de meses y aos de servicio para un empelado
Conversin Implcita de Tipos de Dato
Para las asignaciones, Oracle Server puede convertir automticamente lo siguiente:
VARCHAR2 or CHAR VARCHAR2 or CHAR NUMBER DATE a a VARCHAR2 VARCHAR2
a a
NUMBER DATE
Uso de la Funcin TO_CHAR con Fechas
El modelo de formato:
TO_CHAR(date, 'format_model')
Se debe escribir entre comillas sencillas y es sensible a maysculas/minsculas. Puede incluir cualquier elemento de formato de fecha vlido. Tiene un elemento fm
para eliminar espacios rellenados o suprimir ceros a la
izquierda. Se separa del valor de fecha con una coma.
Select last_name,to_char(hire_date,fmDD Month YYYY) as fecha_contratacion from employees;
CREAR UNA SECUENCIA SQL> create sequence secuencia Start with 0 Increment by 1
Maxvalue 999 Minvalue 0;
Select last_name , [Link] CLAVES from employees;