Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TABLAS
Crear tabla con restriccines de columna:
CREATE TABLE nombre_tabla(
Columna1 TIPO_DE_DATO
[CONSTRAINT nombrerestriccin]
[NOT NULL] [UNIQUE] [PRIMARY KEY] [DEFAULT valor]
[REFERENCES Nombretabla [(columna [, columna])]
[ON DELETE CASCADE]]
[CHECK (condicin)],
Columna2 TIPO_DE_DATO
[CONSTRAINT nombrerestriccin]
[NOT NULL] [UNIQUE] [PRIMARY KEY] [DEFAULT valor]
[REFERENCES Nombretabla [(columna [, columna])]
[ON DELETE CASCADE]]
[CHECK (condicin)],
...
);
Crear tabla con restricciones de tabla:
CREATE TABLE nombre_tabla(
Columna1 TIPO_DE_DATO [NOT NULL],
Columna2 TIPO_DE_DATO [NOT NULL],
Columna3 TIPO_DE_DATO [NOT NULL],
...
[CONSTRAINT nombrerestriccin]
{[UNIQUE] | [PRIMARY KEY] (columna[,columna])},
[CONSTRAINT nombrerestriccin]
[FOREIGN KEY (columna[,columna])
REFERENCES Nombretabla [(columna[,columna])]
[ON DELETE CASCADE]],
[CONSTRAINT nombrerestriccin]
[CHECK (condicin)],
...
)
Crear tabla a partir de una consulta:
CREATE TABLE EJEMPLO_AS2 (COL1, COL2, COL3, COL4)
AS SELECT * FROM EJEMPLO;
Insertar filas en una tabla:
INSERT INTO NombreTabla [(columna [, columna] ...)]
VALUES (valor [, valor] ...);
INSERT INTO PERSONAS VALUES(1133, 'Luis', 'La Pea 12', 'Berrocalejo', 22);
INSERT INTO EJEMPLO (NIF) VALUES ('45222111-A');
INSERT INTO NombreTabla1 [(columna [, columna] ...)]
SELECT {columna [, columna] ... | *}
FROM NombreTabla2 [CLUSULAS DE SELECT];
ROLLBACK Y COMMIT
SHOW AUTOCOMMIT;
SET AUTOCOMMIT ON;
Estas ordenes fuerzan un COMMIT:
ALTER
REVOQUE
AUDIT
NOAUDIT
CREATE VIEW
DROP VIEW
GRANT
DISCONNECT
CREATE TABLE
DROP TABLE
QUIT
EXIT
CONNECT
VISTAS
Crear una vista:
CREATE [OR REPLACE] VIEW Nombrevista [(columna [,columna])]
AS consulta
[WITH {CHECK OPTION | READ ONLY} CONSTRAINT nombrerestriccn];
Ejemplo:
CREATE VIEW DEP30
AS SELECT APELLIDO, OFICIO, SALARIO FROM EMPLE
WHERE DEPT_NO=30 [WITH CHECK OPTION] [WITH READ ONLY];
Ver los nombres de las vistas creadascon sus textos:
SELECT VIEW_NAME, TEXT FROM USER_VIEWS;
Borrar Vista:
DROP VIEW nombrevista;
Vistas con el prefijo DBA: muestran una vista global de toda la base de datos, su finalidad es que la consulten
slo los administradores. Cualquier usuario con el privilegio del sistema SELECT ANY TABLE podr consultar las
vistas con prefijo DBA.
Vistas con el prefijo ALL: estas vistas hacen referencia a la perspectiva global del usuario de la base de datos.
Devuelven informacin acerca de los objetos de esquema a los que el usuario tiene acceso.
Vistas con el prefijo USER: estas vistas hacen referencia a lo que hay en el esquema del usuario, es decir, a los
objetos que posee el usuario.
SINONIMOS
Crear sinnimo:
CREATE [PUBLIC] SYNONYM nombresinnimo FOR [usuario.]Nombretabla;
PUBLIC hace que el sinnimo est disponible para todos los usuarios.
Borrar sinnimo:
DROP [PUBLIC] SYNONYM [usuario.]sinnimo;
Cambiar nombre a TABLA, VISTA o SINONIMO:
RENAME nombreanterior TO nombrenuevo;
SECUENCIAS E INDICES
Crear una secuencia:
CREATE SEQUENCE nombresecuencia
[INCREMENT BY entero]
[START WITH entero]
[MAXVALUE entero |NOMAXVALUE]
[MINVALUE entero |NOMINVALUE]
[CYCLE|NOCYCLE]
[ORDER|NOORDER]
[CACHE entero |NOCACHE];
Borrar una secuencia:
DROP SEQUENCE CODIGOS;
Ver el valor actual de la secuencia:
SELECT CODIGOS.CURRVAL FROM DUAL;
Ejemplo de secuencia:
CREATE SEQUENCE CODIGOS START WITH 1 INCREMENT BY 1 MAXVALUE 99;
Uso de secuencias:
INSERT INTO FRUTAS VALUES (CODIGOS.NEXTVAL, 'MANZANAS');
Crear un ndice:
CREATE INDEX nombreindice
ON nombretabla (colum[ASC|DESC] [,colum[ASC|DESC]]...)
[STORAGE clausulas_almacenamiento]
[TABLESPACE nombretablespace]
[otras_clusulas];
Borrar un ndice:
DROP INDEX INDICEEMPLE;
Ejemplo:
CREATE INDEX INDICEEMPLE ON EMPLE (EMP_NO);
Las vistas USER_INDEXES y DBA_INDEXES informan sobre los ndices creados.
USUARIOS
Ver usuarios:
select * from all_users;
Crear / modificacr un usuario:
CREATE/ALTER USER nombre_usuario
IDENTIFIED BY clave_acceso
[DEFAULT TABLESPACE espacio_tabla]
[TEMPORARY TABLESPACE espacio_tabla]
[QUOTA {entero {K|M} |UNLIMITED} ON espacio_tabla]
[PROFILE perfil];
Ejemplos:
CREATE USER USUARIO2 IDENTIFIED BY USUARIO2 DEFAULT TABLESPACE TRABAJO TEMPORARY
TABLESPACE TEMPORAL QUOTA 1M ON TRABAJOS QUOTA 500K ON TEMPORAL;
CREATE USER ALICIA IDENTIFIED BY ALICIA;
Conceder acceso a un usuario:
GRANT CONNECT TO ALICIA;
Borrar un usuario (CASCADE borra los objetos de usuario):
DROP USER usuario [CASCADE];
Vistas con informacin de usuarios:
USER_USERS: Obtiene informacin del usuario actual: la fecha de creacin, los tablespaces asignados, el
identificador, etctera.
ALL_USERS: Obtiene informacin acerca de todos los usuarios creados en la base de datos: el nombre, la fecha
de creacin y su identificador.
PRIVILEGIOS
Los hay para el entorno de desarrollo y para la administracin de la DB.
Para el entorno de desarrollo se ofrecen tres roles, que agrupan una serie de privilegios:
CONNECT:
ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE, SEQUENCE, CREATE SESSION,
CREATE SYNONYM, CREATE TABLE y CREATE VIEW.
RESOURCE:
CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE, PROCEDURE, CREATE TABLE,
CREATE SEQUENCE, CREATE TRIGGER y CREATE TYPE
DBA:
Posee todos los privilegios del sistema
Para la administracin de la DB hay dos tipos de privilegios, sobre objetos y del sistema.
PRIVILEGIOS SOBRE OBJETOS:
(Sobre que objetos se aplica: Tabla, Vista, Secuencia, Procedure (Columna))
ALTER TS
DELETE TV
EXECUTE P
INDEX T
INSERT TVC
REFRENCES TC
SELECT TVS
UPDATE TVC
Uso:
ROLES
Un ROL es un conjunto de privilegios.
Uso para crear o eliminar:
CREATE / DROP ROLE NombreRol;
Ejemplo:
Creamos un ROL:
CREATE ROLE ACCESO;
Aadimos privilegios:
GRANT SELECT, INSERT ON EMPLE TO ACCESO;
GRANT INSERT ON DEPART TO ACCESO;
GRANT CREATE SESSION TO ACCESO;
Quitamos privilegios:
REVOKE INSERT ON EMPLE FROM ACCESO;
Concedemos ROLES:
GRANT ACCESO TO USUARIO;
Establecer un ROL por defecto:
ALTER USER Nombreusuario DEFAULT ROLE nombre_rol;
Vistas del diccionario con informacin de roles y privilegios:
ROLE_SYS_PRIVS: privilegios del sistema asignados a roles.
ROLE_TAB_PRIVS: privilegios sobre tablas aplicados a roles.
ROLE_ROLE_PRIVS: roles asignados a otros roles.
SESSION_ROLES: roles activos para el usuario.
USER_ROLE_PRIVS: roles asignados al usuario.
PERFILES
Un PERFIL es un conjunto de limites a los recursos.
Para activar el uso de perfiles en el sistema, el administrador ha de ejecutar esta orden:
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
Uso:
CREATE PROFILE nombreperfil LIMIT
{parmetros_recursos | parmetros_contrasea}
{Entero [K|M] | UNLIMITED | DEFAULT};
Donde:
parmetros_recursos: SESSIONS_PER_USER, CPU_PER_SESSION, CPU_PER_CALL, CONNECT_TIME,
IDLE_TIME, LOGICAL_READS_PER_SESSION, LOGICAL_READS_PER_CALL, PRIVATE_SGA,
COMPOSITE_LIMIT
parmetros_contrasea: FAILED_LOGIN_ATTEMPTS, PASSWORD_LIFE_TIME, PASSWORD_REUSE_TIME,
PASSWORD_REUSE_MAX, PASSWORD_LOCK_TIME, PASSWORD_GRACE_TIME,
PASSWORD_VERIFY_FUNCTION
UNLIMITED significa que no hay lmite sobre un recurso particular.
DEFAULT coge el lmite del perfil DEFAULT.
Ejemplo:
CREATE PROFILE PERFIL1 LIMIT SESSIONS_PER_USER 1 CONNECT_TIME 2;
Pasra asignar un perfil:
ALTER USER USUARIO PROFILE nombreperfil;
Crear un usuario con perfil y asignar un privilegio:
CREATE USER PRUEBA IDENTIFIED BY PRUEBAQUOTA 100K ON USERS PROFILE PERFIL1;
GRANT CONNECT TO PRUEBA;
Para desbloquear una cuenta el administrador de la base de datos tiene que ejecutar:
ALTER USER PRUEBA ACCOUNT UNLOCK;
Eliminar un perfil (CASCADE necesario si hay usuarios usando el perfil):
DROP PROFILE NombrePerfil [CASCADE];