Sei sulla pagina 1di 17

Manual de Comandos ORACLE 10G

Introduccin a consultas Consultas simples: SELECT campo FROM tabla; Consulta simple con condicin: SELECT campo1, campo2, FROM tablaDeArticulos WHERE precio>10; Consultas con subconsultas: SELECT precio FROM tablaDeArticulos WHERE referencia = (SELECT referencia FROM tablaDeReferencias WHERE nombreArticulo = patinete ) Operadores: +, -, *, / 12*(sal+100) Alias: Renombra encabezado, pone nombres a las columnas resultantes de una consulta ,SELECT ename Nombre trabajador, sal Salario FROM trabajadores;} Concatenacin: || Concatena columnas o cadenas. ,SELECT ename||job Empleados;,SELECT ename || es un || job Detalles;Filas Duplicadas: distinct no muestra duplicadas, despues de SELECT {SELECT distinct deptno, job;} Visualizar estructura completa de una tabla: desc {desc dept;} Ficheros: sav[e] guarda consulta

{sav archiv.sql} @ ejecuta consultas en fichero / sta[rt] ejecuta consultas en fichero {@ arciv.sql} ed[it] permite editar fichero {ed archiv.sql} Operador WHERE: Restringe la consulta a las filas que cumple una condicin FROM emp WHERE job=CLERK (CASE SENSITIVE!!) Operadores comparacin: =, >, >=, <, <=, <> {SELECT campo FROM table WHERE salario>=200;} ,WHERE hiredate < 01-01-95;,WHERE hiredate > 01-JAN-95;Operadores comparacin 2: BETWEEN..AND.., IN(list), LIKE, IS NULL BETWEEN: , WHERE salario BETWEEN 100 AND 150;IN: ,mgr IN (7902, 7566);- ,WHERE ename IN (FORD , ALLEN)LIKE: Comodin % representa 0 o N caracteres. Comodin _ representa exactamente 1 caracter. ,WHERE ename LIKE _S%ESCAPE: Interpreta _ literal. ,WHERE ename LIKE %\_% ESCAPE \;IS NULL: Si un valor es nulo . Atencion, NULL! =0!! ,WHERE mgr IS NULL;-

Operadores Lgicos: AND, OR, NOT ,WHERE job NOT IN (CLERK, MANAGER); job NOT LIKE %A_;Ordenar: ORDER BY (columna/alias). Ordenar de forma ascendente o descendente: ORDER BY (columna/alias) *ASC/DESC+ ORDER BY hiredate desc; ORDER BY deptno, sal desc; Funciones de caracteres: LOWER/UPPER: Convierte a minusculas/maysculas lower(JOB) -> job ename=upper(blake); INITCAP: Primera letra mayusculas resto minusculas Initcap(JOB) -> Job CONCAT: Concatena (como |) SUBSTR: Devuelve los caracteres seleccionados de una cadena de la cadena LENGTH: Devuelve nmero caracteres INSTR: Devuelve posicin del caracter en la cadena LPAD: Rellena cadena por la derecha con el car seleccionado TRIM: Elimina caracteres del principio o del final Funciones Numricas: Round: Redondea al decimal especificado round(45.926, 2) -> 45.93 Trunc: Trunca en le decimal especificado trunc(45.926, 2) -> 45.92 Mod: Devuelve el resto de la divisin

Mod(1600, 300) -> 100 Mod(sal, comm) -> Calcula el RATIO Fechas: sysdate: devuelve fecha y hora actual num + fecha = fecha fecha num = fecha fecha fecha = dias num/24 + fecha = agrega horas {SELECT (sysdate-hiredate)/7 SEMANAS} Conversin: to_char: to_car(date, fmt), (hiredate, fmDD) fm: elimina espacios en blanco to_number: to_number(char) to_date: Guarda datos en formato de fecha to_date(char[, 'fmt']) to_date(07/05/1984) SELECT to_char(sysdate,MM) FROM dual; Elementos: YYYY: Ao numrico YEAR: Ao letras MM: Mes numrico MONTH: Mes letras DY: Abreviatura 3 letras da

DAY: Nombre completo Hora: HH24:MI:SS AM -> 15:45:32 PM Aadir cars: DD of MONT -> 12 of October N dia en letras: ddspth -> fourteenth NVL: Convierte un nulo a un valor nvl(comm, 0), nvl(job, No Job), nvl(hiredate,01-JAN-97) ,SELECT ename, nvl(to_car(mgr), No Manager) FROM emp;DECODE: Funcin de CASE SELECT job, sal, decode(job, ANALYST, sal*1.1, CLERK, sal*2, sal) FROM emp; Funciones de grupo: AVG: Media COUNT: Cantidad de filas MAX: Valor maximo MIN: Valor mimimo ignorando nulos STDDEV: Desviacin ignorando nulos SUM: Suma de valores ignorando nulos VARIANCE: Varianza ignorando nulos NOTA: Se pueden utilizar sin aparecer en SELECT SELECT deptno FROM emp GROUP BY deptno HAVING MAX(sal)>1

Ver tablas creadas: {SELECT * FROM data_dictionary} Dnde data_dictionary puede ser: DBA_TABLES: Contiene todas las tablas de la base de datos ALL_TABLES: Contiene todas las tablas accesibles por el usuario (las propias ms las que tiene permisos sobre ellas) USER_TABLES: Contiene totas las tablas del usuario DBA_SEGMENTS: Contiene todos los segmentos de la base de datos, esto incluye tablas, indices y segmentos de rollback entre otros. SELECT * FROM USER_TABLES; Insertar registros en una tabla: Caracteres y fechas entre comillas simples {INSERT INTO tabla [] VALUES []} INSERT INTO tab (dnum, depnam, hiredate, usr_actual) VALUES (50, DEVELOPMENT, SYSDATE, USERID); Insertar registros nulos: INSERT INTO dept VALUES (70, FINANCE, NULL); Creacin de Scripts: Los scripts nos permiten crear sencillas aplicaciones para aadir datos de forma sencilla a nuestra base de datos. {ACCEPT variable PROMPT texto a mostrar INSERT INTO tabla *+ VALUES*&variable+} ACCEPT id PROMPT Introduce el ID de usuario: ACCEPT last_name prompt Introduce apellido del usuario: ACCEPT first_name prompt Introduce nombre del usuario: INSERT INTO my_employee (id, LAST_NAME, FIRST_NAME, USERID) VALUES (&id, &last_name, &first_name, substr(&first_name,1,1) || substr($last_name,1,7));

Insertar registros de otra tabla: {INSERT INTO tabla *+ select()} INSERT INTO managers(id, name, salary, hiredate) SELECT empno, ename, sal, hiredate FROM emp WHERE job = MANAGER Modificacin de registros: {UPDATE tabla SET column = value where} UPDATE emp SET deptno = 20 WHERE empno = 7782; UPDATE emp SET (job,deptno) = (SELECT job, deptno from) Eliminar registros: {DELETE FROM tabla WHERE condicin} DELETE FROM department WHERE dname = DEVELOPMENT DELETE FROM employee WHERE deptno = (SELECT deptno from) Control transacciones: COMMIT: Confirmar cambios realizados en la base de datos ROLLBACK: Deshacer todos los cambios realizados en la base de datos SAVEPOINT nombre: Crear punto de guardado ROLLBACK TO nombre: Volver a punto de guardado Creacin de tablas: {CREATE TABLE tabla (columna tipo(longitud), columna..)} Tipos: NUMBER, VARCHAR2, DATE, NUMBER(dcimal,digit) CREATE TABLE dept (deptno NUMBER(2) NOT NULL, name VARCHAR2(50)); Crear tabla a partir de otra (por subconsulta): {CREATE TABLE tabla AS SELECT}

CREATE TABLE departamento AS SELECT empno, ename Nombre Departamento, sal FROM dept; Modificar tabla: -Aadir columnas: {ALTER TABLE tabla ADD (columna1 tipo(), columna2 tipo());} ALTER TABLE dept add (job VARCHAR2(9)); -Modificar columnas existentes: {ALTER TABLE tabla MODIFY (col1 tipo() [DEFAULT expr]);} ALTER TABLE empl modify (name VARCHAR2(50) DEFAULT Nom); Eliminar columna: {ALTER TABLE tabla DROP COLUMN columna;} ALTER TABLE dept DROP COLUMN dname; Notificar columna como no usada: {ALTER TABLE tabla SET UNUSED (columna)} ALTER TABLE dept SET UNUSED (loc); Eliminar columnas marcadas como no usadas: {ALTER TABLE tabla DROP UNUSED COLUMNS;} ALTER TABLE dept DROP UNUSED COLUMNS; Eliminar tabla: {DROP TABLE table;} DROP TABLE dept; Modificar nombre de objeto (tabla, vista): {RENAME tabla/vista TO tabla/vista}

RENAME dept TO departmento; Eliminar todos los registros (TRUNCAR): {TRUNCATE TABLE tabla;} TRUNCATE TABLE dept; Aadir comentarios a una tabla: {COMMENT ON TABLE/COLUMN table/columna IS comentario;} COMMENT ON TABLE emp IS Employee Infromation COMMENT ON COLUMN TABLE.column IS comentario COMMENT ON COLUMN emp.ename IS Nombre trabajador Definicin de constraints (restricciones): {CREATE TABLE tabla (columna tipo() [default expr] CONSTRAINT [nombre] tipo (columna));} -Nivel de tabla: CREATE TABLE emp( (empno NUMBER(4), ename VARCAHR2(10), deptno NUMBER(2), CONSTRAINT emp_empno_pk PRIMARY KEY (empono)); - Nivel de columna: CREATE TABLE emp( (empno NUMBER(4) [CONSTRAINT emp_empno_nn] NOT NULL, ename VARCAHR2(10),

deptno NUMBER(2) NOT NULL); Constraints (tipos y situacin): NOT NULL (Nivel de columna) CREATE TABLE emp( (empno NUMBER(4) [CONSTRAINT emp_empno_nn] NOT NULL, ename VARCAHR2(10), deptno NUMBER(2) NOT NULL); UNIQUE (Columna o tabla) CREATE TABLE dept (dname VARCHAR(14), CONSTRAINT dept_dname_uk UNIQUE(dname)); PRIMARY KEY (Columna o tabla) -> PK lleva implcito UNIQUE CREATE TABLE dept (deptno NUMBER(2), CONSTRAINT dept_deptno_pk PRIMERY KEY (deptno)); FOREIGN KEY (Columna o tabla) CREATE TABLE emp (ename VARCAHR2(10) NOT NULL, deptno NUMBER(7,2) NOT NULL, CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)

REFERENCES dept (deptno)); CHECK -Condicion- (Columna o tabla) CREATE TABLE emp (deptno NUMBER(2), CONSTRAINT emp_deptno_ck CHECK (deptno between 10 and 99)); Aadir CONSTRAINT (restriccin) a tabla existente: {ALTER TABLE tabla add/modify [CONSTRAINT CONSTRAINT] type (col);} Podemos aadir restriccin NOT NULL con MODIFY Podemos aadir o borrar CONSTRAINTs pero NO modificar. Para modificar eliminar y volver a crear ALTER TABLE emp add CONSTRAINT emp_mgr_fk FOREING KEY(mgr) REFERENCES emp(empno); Eliminacin de restricciones (CONSTRAINTs): {ALTER TABLE tabla DROP CONSTRAINT CONSTRAINT;} ALTER TABLE emp DROP CONSTRAINT emp_mgr_fk; Borrar CONSTRAINT PK y (FK de tabla dependiente de otra usando-CASCADE-) {ALTER TABLE tabla DROP primary key CASCADE;} ALTER TABLE dept DROP primary key cascade; Eliminacin de restricciones en cascada: Es usado para eliminar PK u otras con dependencias {ALTER TABLE tabla DROP (constraint) cascade CONSTRAINT;} ALTER TABLE dept DROP (deptno) cascade CONSTRAINTS; Desactivar constraint:

{ALTER TABLE tabla DISABLE CONSTRAINT constraint [CASCADE];} ALTER TABLE emp disable CONSTRAINT emp_empno_pk CASCADE; Activar constraints: {ALTER TABLE tabla ENABLE CONSTRAINT CONSTRAINT;} ALTER TABLE emp ENABLE CONSTRAINT emp_empno_pk; Creacin de vistas: {CREATE VIEW vista AS SELECT} [with check option CONSTRAINT CONSTRAINT] [with read only] CREATE view empvu10 as select empno n empleado, job from emp where deptno=10; Modificacin de vistas: {CREATE OR REPLACE VIEW vista *(colname, colname, colname)+ as select} Nota: Los alias de columna se puede poner en SELECT o en CREATE CREATE or replace view empvu10 (employee_number, employee_name, job_title) as select empno, ename, job from emp where deptno = 10; Creacin vistas complejas con funciones de grupo para ver 2 tablas: {CREATE view dept_sum_vu (name, minsal, maxsal, avgsal) as select d.dname, MIN(e.sal), MAX(e.sal), AVG(e.sal) from emp e, dept d where e.deptno = d.deptno group by d.dname} With check option: CREATE or replace view vista as select

with check option CONSTRAINT CONSTRAINT With read only: CREATE or replace view vista as select with read only; Nota: En este caso no podemos quitar, insertar o modificar la vista Eliminacin de vistas: {DROP view vista;} Creacin de vistas inline: {SELECT FROM tabla a(SELECT) b where} SELECT tablaA.ename, tablaA.sal, tablaA.deptno, tablaB.maxsal from emp tablaA, (select deptno, max(sal) from emp group by deptno) tablaB where tablaA.deptno = tablaB.deptno and tablaA.sal < tablaB.maxsal Obtener los N primeros/ltimos datos de una tabla (Top-N): {SELECT ROWNUM *as alias+ FROM (SELECT FROM tabla WHERE ORDER BY Top-NCol) where ROWNUM <= N} SELECT ROWNUM as RANKING, ename, sal from (select ename, sal from emp order by sal desc) where rownum <=3; Creacin de secuencias: CREATE/ALTER sequence secuencia increment by n start with n (no en ALTER) maxvalue n

minvalue n cycle (continua generando despues de max) cache n (memoria oracle) Insertar valores de una secuencia en una tabla: INSERT INTO tabla (valorActual, valorSiguiente) VALUES (secuencia.currval, secuencia.nextval) Eliminar secuencias: {DROP sequence secuencia;} Crear ndices: {CREATE index indice on tabla (col, col+10, upper(ename))} Eliminar ndices: {DROP index ndice} Crear sinonimos: {CREATE [public] SYNONYM sinonimo FOR objecto} CREATE public synonym dept for sis228.dept Eliminar sinnimos: {DROP SYNONYM sinnimo}

Crear usuarios de Oracle: {CREATE USER nombre IDENTIFIED BY contrasea DEFAULT TABLESPACE nombreTableSpace TEMPORARY TABLESPACE nombreTemp} CREATE USER sis2dba IDENTIFIED BY sis2dbapass / EXTERNALLY DEFAULT TABLESPACE sis2tabla

TEMPORARY TALESPACE sis2temp QUOTA INT [K|M] UNLIMITED ON NOMBRETABLESPACE PASSWORD EXPIRE ACCOUNT [LOCK | UNLOCK] Modificar nombre de usuarios Oracle: {ALTER USER NombreUsuario Modificacin;} ALTER USER sis2dba QUOTA UNLIMITED ON sis2tabla; Borrar usuarios: {DROP USER nombre CASCADE} Nota: CASCADE nos indica que vamos a borrar tambin TOdos sus objeTOs Permitir conexin y crear tablas: {GRANT CONNECT, RESOURCE TO nombre} Nota: Para que un usuario de Oracle pueda crear objeTOs NECESITA el permiso RESOURCE Conceder permisos de DBA: {GRANT DBA TO NombreUsuario} PERMISOS:
Permiso alter delete execute insert SELECT update Tabla X X X X X Vista X X X X X X Secuencia X ProcedimienTO

Conceder permisos: {GRANT permiso1, permiso 2 ON objeTO TO nombreUsuario *ROLE+} GRANT SELECT ON emp TO sis226

GRANT SELECT, INSERT, UPDATE ON emp TO public GRANT permiso1, permiso2 ON objeTO TO nombreUsuario WITH GRANT OPTION Nota: GRANT OPTION nos permite conceder permisos a otros usuarios Quitar permiso: ,REVOKE permiso1, ON objeTO TO nombreUsuarioREVOKE permiso1 ON SELECT TO sis226 Nota: Se quita los permisos a sis226 y a TOdos a los que sis226 he dado permisos Conceder permisos de Sistema: {GRANT permiso1, permiso2 ANY TABLE TO NombreUsuario} GRANT CREATE, SELECT ANY TABLE TO sis226 GRANT permiso1, permiso2 ANY TABLE TO NombreUsuario WITH ADMIN OPTION Nota: WITH ADMIN OPTION permite dar permisos de sistema a otros usuarios Quitar permiso de Sistema: {REVOKE permiso1, permiso2 ANY TABLE FROM NombreUsuario} REVOKE SELECT ANY TABLE FROM sis226 Nota: Quita los permisos a sis226 pero NO a los que sis226 ha dado ROLES: Un ROLE es una agrupacin de permisos con lo cual podemos juntar ciertos permisos en un rol y drselo a un usuario o grupo de usuarios. Creacin de ROLEs: {CREATE ROLE nombreRol [IDENTIFIED BY Contrasea];} CREATE ROLE scott_rol; Borrar ROLEs:

{DROP ROLE nombreRol;} Dar permisos a ROLEs: GRANT SELECT, UPDATE ON scott.emp TO scott_rol; GRANT SELECT, INSERT, DELETE, UPDATE ON scott.dept TO scott_rol; GRANT SELECT ON scott.salgrade TO scott_rol; GRANT SELECT ON scott.bonus TO scott_rol; Conceder rol a usuario: {GRANT role TO usuario} GRANT scott_rol TO sis226 Modificar ROLEs: {GRANT Permiso1, ON nombreUsuario TO ROLE;} GRANT SELECT on scott.dept TO scott_rol ; Nota: SOLO modifica la linea del scott.dept

Potrebbero piacerti anche