Sei sulla pagina 1di 9

--CREAR UN USUARIO

CREATE USER "USUARIO_NUEVO" PROFILE "DEFAULT"

IDENTIFIED BY "USUARIO_NUEVO" DEFAULT TABLESPACE "USERS"

ACCOUNT UNLOCK;

--ASIGNAR PERMISO PARA CONECTARSE

GRANT "CONNECT" TO "USUARIO_NUEVO";

--ASIGNAR PERMISO DE DBA

GRANT "DBA" TO "USUARIO_NUEVO";

--Activar los mensajes de consola

SET SERVEROUTPUT ON;

EXECUTE DBMS_OUTPUT.ENABLE(20000);

--Crear procedimientos de almacenado

CREATE OR REPLACE PROCEDURE NombreProcedimiento

IS

BEGIN

--AquÃ- se indican todas las instrucciones.

DBMS_OUTPUT.PUT_LINE('HOLA MUNDO');

END;

--Ejecutar un procedimiento
EXECUTE NombreProcedimiento;

--PROCEDIMIENTOS CON PARÃ?METROS

CREATE OR REPLACE PROCEDURE NombreProcedimientoParametros (nombre IN varchar2)

IS

BEGIN

DBMS_OUTPUT.PUT_LINE('HOLA MUNDO EL NOMBRE ES ' || nombre);

END;

--Ejecutar un procedimiento

EXECUTE NombreProcedimientoParametros('Melvin');

--PROCEDIMIENTOS CON PARÃ?METROS utilizando el cursor de memoria

CREATE OR REPLACE PROCEDURE NombreProcedimientoParametrosTabla (cursorMemoria OUT


SYS_REFCURSOR)

AS

BEGIN

OPEN cursorMemoria FOR SELECT * FROM TABLA;

END;

--Habilitar el auto print

SET AUTOPRINT ON;


--Deshabilitar un trigger

ALTER TRIGGER TABLA DISABLE;

--Habilitar un trigger

ALTER TRIGGER TABLA ENABLE;

--Deshabilitar todos los trigger de una tabla

ALTER TABLE TABLA DISABLE ALL TRIGGERS;

--Habilitar todos los trigger de una tabla

ALTER TABLE TABLA ENABLE ALL TRIGGERS;

VARIABLE nombre_curso SYS_REFCURSOR;

--ejecutar un procedimiento con cursor de memoria

EXECUTE NombreProcedimientoParametrosTabla (:nombre_curso);

--PROCEDIMIENTOS CON PARÃ?METROS utilizando el cursor de memoria

CREATE OR REPLACE PROCEDURE NombreProcedimientoParametrosTablaCondicionada


(cursorMemoria OUT SYS_REFCURSOR, nombre IN varchar2)

AS

BEGIN

OPEN cursorMemoria FOR SELECT * FROM TABLA WHERE campo = nombre;

END;
--CREAR SECUENCIA SIN INCREMENTO

CREATE SEQUENCE varible_secuencia

START WITH 10000;

--CREAR SECUENCIA CON INCREMENTO

CREATE SEQUENCE varible_secuencia

START WITH 10000 INCREMENT BY 1;

--MANEJO DE FECHAS Y HORAS

SELECT TO_CHAR(FECHA_REGISTRO, 'YYYY-MM-DD HH24:MI:SS') FROM CUENTA;

----------------------------------------------------

----------------------------------------------------

-- SEGUNDO PARCIAL

----------------------------------------------------

----------------------------------------------------

--AUTORIZAR USUARIOS A LA BASE DE DATOS

GRANT SCHEMA NombreEsqBD AUTHORIZATION usuario;

--ASIGNAR PRIVILEGIOS

GRANT privilegiosON objetoTO usuarios[WITH GRANT OPTION]


--REVOCAR PRIVILEGIOS

REVOKE [GRANT OPTION FOR] privilegioON objetoFROM usuarios

{CASCADE | RESTRICT}

--ejemplo

GRANT SELECT ON ListaAlumnos TO PUBLIC;

--Entrenador puede borrar tuplasde Atletas y autorizar borrados a otros usuarios.

GRANT DELETE ON AtletasTO EntrenadorWITH GRANT OPTION

--CREACIÓN DE USUARIOS

--AUTENTICACIÓN MEDIANTE PASSWORD:

CREATE USER byronIDENTIFIED BY b12z321;

--AUTENTICACIÓN EXTERNA:

CREATE USER ops$byronIDENTIFIED BY b12z321;

--AUTENTICACIÓN GLOBAL:

CREATE USER byronIDENTIFIED GLOBALLY AS ‘CN=alumnos,OU=campus .......’

--ASIGNACIÓN DE UN USUARIO A UN TABLESPACE ( DEFAULT TABLESPACE )

CREATE USER byronIDENTIFIED BY b12z321 DEFAULT TABLESPACE users;

--En caso de tener creado ya el usuario le asignamos un tablespace.

ALTER USER byronDEFAULT TABLESPACE users;


--La base de datos toma un tablespacepor defecto, en caso de querer cambiar este
tablespaceutilizamos la siguiente sentencia

ALTER DATABASE DEFAULT TABLESPACE users;

--Un tablespacetemporal se utiliza para almacenar “segmentos� temporales que son creados
durante operaciones comoORDER BY,SELECT DISTINCT,MERGE JOINoCREATE INDEX.

CREATE USER byron IDENTIFIED BY b12z321 DEFAULT TABLESPACE users TEMPORARY TABLESPACE
temp;

--BORRADO DE UN USUARIO:

DROP USER byron CASCADE;

--PRIVILEGIOS

GRANT ALL ON tabla_alumnos TO byron;

GRANT SELECT ON tabla_alumnos TO byron;

GRANT SELECT,INSERT ON tabla_alumnos TO byron;

--ELIMINAR O REVOCAR PRIVILEGIOS

REVOKE ALL ON tabla_usuarios FROM byron


--LIMITAR LA SALIDA A 10 REGISTROS TOP 10!

--Es necesario meter el resultado en una sub consulta

SELECT *

FROM (SELECT * FROM sales ORDER BY sale_date DESC)

WHERE rownum <= 10

--FECHAS

--FECHA ACTUAL

SELECT SYSDATE FROM DUAL;

--FECHA Y HORA ACTUAL

--TO_CHAR(fecha, máscara)

SELECT TO_CHAR(SYSDATE,’DD/MM/YYYY HH24:MI’) FROM DUAL;

--FECHA COMO ENTEROS

--EXTRACT(comp FROM fecha):

SELECT EXTRACT(DAY FROM SYSDATE) FROM DUAL;

--OPERACIONES CON FECHAS

--SQL permite las siguientes operaciones con fechas:

--F1 + N: suma a una fecha un número N (con decimales) de dÃ-as


--F1 - N: resta a una fecha un número N (con decimales) de dÃ-as

--F1 + F2: ¡ERROR! No es posible sumar dos fechas

--F1 - F2: Diferencia entre ambas fechas, expresada en dÃ-as (con decimales)

--FECHA: SUMAR UN MES

SELECT SYSDATE + INTERVAL '1' MONTH FROM DUAL;

--FECHA: SUMAR CINCO MES

SELECT SYSDATE + INTERVAL '5' MONTH FROM DUAL;

--FECHA: SUMAR UN DIA

SELECT SYSDATE + INTERVAL '1' DAY FROM DUAL;

--FECHA: SUMAR UN DIA Y UN MES A LA FECHA ACTUAL

SELECT SYSDATE + INTERVAL '1' DAY + INTERVAL '1' MONTH FROM DUAL;

--FECHA: OBTENER LA FECHA DE HACE 60 DÍAS

SELECT SYSDATE - INTERVAL '60' DAY FROM DUAL;

--FECHA: FECHA ACTUA, MES ANTERIOR Y LA FECHA 12 MESES DESPUÉS

SELECT SYSDATE, ADD_MONTHS(SYSDATE, -1) ANTERIOR,

ADD_MONTHS(SYSDATE, 12) SIGUIENTE

FROM DUAL;

--FECHA: DEVUELVE LA CANTIDAD DE MESES ENTRE DOS FECHAS

SELECT MONTHS_BETWEEN('31/03/08', '30/09/08') F1,

ROUND(MONTHS_BETWEEN('11/03/08', '30/09/08'), 1) F2,


ROUND(MONTHS_BETWEEN('01/03/08', '30/09/08'), 1) F3,

MONTHS_BETWEEN('31/03/08', '30/09/07') F4

FROM DUAL;

--FECHA: DEVUELVE EL ÚLTIMO DÍA DEL MES EN QUE ESTAMOS

SELECT SYSDATE,

LAST_DAY(SYSDATE) FIN_DE_MES,

LAST_DAY(SYSDATE) + 1 SIGUIENTE_MES

FROM DUAL;

--FECHA: REDONDEAR FECHAS.

--ROUND(FECHA, FORMATO)

SELECT SYSDATE, ROUND(SYSDATE, 'HH24') ROUND_HOUR,

ROUND(SYSDATE) ROUND_DATE, ROUND(SYSDATE, 'MM') NEW_MONTH,

ROUND(SYSDATE, 'YY') NEW_YEAR

FROM DUAL;

Potrebbero piacerti anche