Você está na página 1de 12

Comando:services.msc //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 , secuencia.nextval CLAVES from employees;

Você também pode gostar