Sei sulla pagina 1di 8

CONNECT SYSTEM / ADMIN

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];

Actualizar filas de una tabla:


UPDATE NombreTabla
SET columna1=valor1, ..., columnan=valorn
WHERE condicin;
UPDATE <NombreTabla>
SET columna1 = valor1, columna2 = valor2, ...
WHERE columna3=(SELECT ....);
UPDATE <NombreTabla>
SET (columna1, columna2, ...)=(SELECT col1, col2, ...)
WHERE condicin;
UPDATE <NombreTabla>
SET columna1 = (SELECT col1 ... ), columna2 = (SELECT col2 ...)
WHERE condicin;
Borrar filas de una tabla:
DELETE [FROM] NombreTabla WHERE Condicin;
Borrar / vaciar una tabla:
DROP TABLE [usuario].nombretabla [CASCADE CONSTRAINTS];
TRUNCATE TABLE [usuario.]nombretabla [{DROP|REUSE} STORAGE];
Aadir campos a una tabla:
ALTER TABLE nombretabla{
[ADD (columna)
[MODIFY (columna [,columna] ...) ]
[DROP COLUMN (columna [,columna] ...) ]
[ADD CONSTRAINT restriccin]
[DROP CONSTRAINT restriccin]
[DISABLE CONSTRAINT restriccin]
[ENABLE CONSTRAINT restriccin]
};
Modificar campos de una tabla:
ALTER TABLE EJEMPLO3 ADD (SEXO CHAR(1), IMPORTE NUMBER(4));
UPDATE EJEMPLO3 SET SEXO = 'X';
Restricciones de tablas:
USER_CONSTRAINTS: definiciones de restricciones de tablas propiedad del usuario.
ALL_CONSTRAINTS: definiciones de restricciones sobre tablas a las que puede acceder el usuario.
DBA_CONSTRAINTS: todas las definiciones de restricciones sobre todas las tablas.
Restricciones de columnas:
USER_CONS_COLUMNS: informacin sobre las restricciones de columnas en tablas del usuario.
ALL_CONS_COLUMNS: informacin sobre las restricciones de columnas en tablas a las que puede acceder el
usuario.
DBA_CONS_COLUMNS: informacin sobre todas las restricciones de columnas.

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:

GRANT {priv_objeto [,priv_objeto] ...|ALL [PRIVILEGES]}


[(columna [,columna]...)]
ON [usuario.]objeto}
TO {usuario|rol|PUBLIC [,{usuario|rol|PUBLIC} ...]
[WITH GRANT OPTION];
PRIVILEGIOS DEL SISTEMA:
Ver la tabla con todos los privilegios.
Uso:
GRANT {privilegio|rol} [, {privilegio|rol}, ....]
TO{usuario|rol|PUBLIC}[,{usuario|rol|PUBLIC}] ....
[WITH ADMIN OPTION];
Eliminar privilegios a usuarios o roles:
REVOKE {priv_objeto [,priv_objeto] ...|ALL [PRIVILEGES]}
ON [usuario.]objeto
FROM {usuario|rol|PUBLIC} [,{usuario|rol|PUBLIC}]...;
Eliminar privilegios de sistema o roles a usuarios o privilegios a roles:
REVOKE {priv_sistema|rol} [,{priv_sistema|rol}] ...
FROM {usuario|rol|PUBLIC} [,{usuario|rol|PUBLIC}]...;
Vistas con informacin de los privilegios
SESSION_PRIVS: privilegios del usuario activo.
USER_SYS_PRIVS: privilegios de sistema asignados al usuario.
DBA_SYS_PRIVS: privilegios de sistema asignados a los usuarios o a los roles.
USER_TAB_PRIVS: concesiones sobre objetos que son propiedad del usuario, concedidos o recibidos por ste.
USER_TAB_PRIVS_MADE: concesiones sobre objetos que son propiedad del usuario (asignadas).
USER_TAB_PRIVS_RECD: concesiones sobre objetos que recibe el usuario.
USER_COL_PRIVS: concesiones sobre columnas en las que el usuario es el propietario, asigna el privilegio o lo
recibe.
USER_COL_PRIVS_MADE: todas las concesiones sobre columnas de objetos que son propiedad del usuario.
USER_COL_PRIVS_RECD: concesiones sobre columnas recibidas por el usuario.

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];

Potrebbero piacerti anche