Académique Documents
Professionnel Documents
Culture Documents
Aqui esta definida la sintaxis de las sentencias del lenguaje de definicion de datos (Data Definition
Language o DDL) de oracle como CREATE TABLE, CREATE INDEX, CREATE USER, etc.
Create index: Los indices se usan para mejorar el rendimiento de las operaciones sobre
una tabla. En general mejoran el rendimiento las SELECT y empeoran (minimamente) el
rendimiento de los INSERT y los DELETE. En oracle existen tres tipos de indices:
1. Table Index:
CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name ON [esquema.]table_name
[tbl_alias] (col [ASC | DESC]) index_clause index_attribs
2. Bitmap Join Index:
CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name ON [esquema.]table_name
[tbl_alias] (col_expression [ASC | DESC]) FROM [esquema.]table_name [tbl_alias]
WHERE condition [index_clause] index_attribs
3. Cluster Index:
CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name ON CLUSTER
[esquema.]cluster_name index_attribs
Create view: Esta sentencia sirve para crear una vista de una tabla o tablas. Una vista es
una tabla lgica basada en los datos de otra tabla. Ejemplo:
CREATE VIEW V_PEDIDOS (NUMPEDIDO, FECPEDIDO, NUNCLIENTE, NOMCLIENTE) FROM
SELECT A.NUMPEDIDO,A.FECPEDIDO,A.NUMCLIENTE, B.NOMCLIENTE FROM T_PEDIDOS A,
T_CLIENTE B WHERE A.NUMCLIENTE=B.NUMCLIENTE;
Constraints
Para cambiar las restricciones y la clave primaria de una tabla debemos usar ALTER TABLE.
Aqui estan definidas las sentencias del lenguaje de manipulacin de datos (Data Manipulation
Language o DML) de oracle, como SELECT, UPDATE, INSERT, DELETE, etc...
SELECT
La seleccin sobre una tabla consiste en elegir un subconjunto de filas quecumplan (o no) algunas
condiciones determinadas. La sintaxis de una sentencia de este tipo es la siguiente:
- HAVING condicin-seleccin-grupos
Se utiliza con la clusula GROUP BY, cuando se quiere poner condiciones al resultado de
un grupo.
columna1, columna2,... Para diferenciar las columnas con el mismo nombre se antepondr el
nombre de la tabla a la que pertenecen, utilizando el punto como separador. Por ejemplo:
Recupera las filas de una tabla eliminando los valores de la columna duplicados.
En Oracle8i podemos usar la sintaxis siguiente, con una clusula ORDER BY, para elegir filas con los
valores mximos o mnimos de un campo:
SELECT * FROM (SELECT * FROM my_table ORDER BY col_name_1 DESC) WHERE ROWNUM < 10;
- COUNT. Indica el nmero de filas que cumplen una determinada condicin, o el nmero
de valores diferentes que posee una columna.
COUNT(*) o COUNT(DISTINCT columna)
SUBSELECTS
Permite realizar comparaciones con valores obtenidos en otra sentencia select anidada, a la que se
denomina Subselect o Subselect interna.
SELECT columna1>, columna2,.... FROM nombre-tabla1, nombre-tabla2 WHERE columna1 =
(SELECT columna1 FROM nombre-tabla1, nombre-tabla2 WHERE condicin)
INSERT
El orden en el que se asignen los valores en la clusula VALUES tiene que coincidir con el orden en
que se definieron las columnas en la creacin del objeto tabla, dado que los valores se asignan por
posicionamiento relativo. Por ejemplo: INSERT INTO T_PEDIDOS VALUES (125,2,'PEPE');
DELETE
TRUNCATE
COMMIT
Libera los recursos bloqueados por cualquier actualizacin hecha con la transaccin actual (LOCK
TABLE).
UPDATE nombre-tabla SET columna1 = valor1 [, columna2 = valor2 ...] [WHERE condicin]
Actualiza los campos correspondientes junto con los valores que se le asignen, en el subconjunto
de filas que cumplan la condicin de seleccin.
- Si no se pone condicin de seleccin, la actualizacin se da en todas las filas de la tabla.
- Si se desea actualizar a nulos, se asignar el valor NULL.
- Versin de Oracle:
select value from v$system_parameter where name = 'compatible'
- Muestra los datos de una tabla especificada (en este caso todas las tablas que lleven la
cadena "EMPLO"):
select * from ALL_ALL_TABLES where upper(table_name) like '%EMPLO%'
- Muestra los disparadores (triggers) de la base de datos Oracle Database: select * from
ALL_TRIGGERS
- Obtener los privilegios otorgados a un rol de Oracle: select privilege from dba_sys_privs
where grantee = 'NOMBRE_ROL'
REFERENCIAS
[3] "Algunas consultas SQL muy tiles para el administrador de Oracle (DBA) Proyecto
AjpdSoft", Ajpdsoft.com , 2017. [En lnea]. Disponible:
http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=131. [Consultado: 24 de
octubre de 2017].