Iniciación a Oracle - Lenguaje estructurado de consultas SQL (4)

10 - Lenguaje estructurado de consultas SQL (4)


Curso gratis creado por José Manuel . Extraido de: http://www.lawebdejm.com
05 Febrero 2009
< anterior | 1 .. 8 9 10 11 12 .. 16 | siguiente >
Acceso a secuencias Las secuencias al ser tablas se acceden a través de consultas SELECT. La única diferencia es que se utilizan pseudocolumnas para recuperar tanto el valor actual como el siguiente de la secuencia. Al ser pseudocolumnas se puede incluir en el FROM cualquier tabla o bien la tabla DUAL.

Nombre_secuencia.CURRVAL: retorna el valor actual de la secuencia. Nombre_secuencia.NEXTVAL: incrementa la secuencia y retorna el nuevo valor.

Ejemplos:

SELECT REF_FACTURA.CURRVAL FROM DUAL;

SELECT COD_CLIENTE.NEXTVAL FROM DUAL;

SELECT COD_CLIENTE.NEXTVAL, D_CLIENTE FROM CLIENTE;

UPDATE CLIENTE SET CODIGO = SECUENCIA_CLIENTE.NEXTVAL;

INSERT INTO CLIENTE VALUES( SECUECIA_CLIENTE.NEXTVAL, ‘Juancito Pérez Pí’ );

==== CREATE TABLESPACE ====

Ya hemos visto el concepto de //tablespace //y su importancia en el acceso a datos en Oracle. Ahora vamos a ver cómo se crean los //tablespaces//.

La sintaxis básica es:

CREATE TABLESPACE nombre_tablespace DATAFILE ‘ruta\fichero_datafile.ext’ SIZE XX{K|M} {DEFAULT STORAGE( INITIAL XX{K|M} NEXT XX{K|M} )} {ONLINE | OFFLINE} {PERMANENT | TEMPORARY};

La cláusula DATAFILE indica la localización del fichero de datos (//datafile//) que soportará el //tablespace//. Para añadir más //datafiles //al //tablespace //lo podremos hacer a través de la sentencia ALTER TABLESPACE. Cuando indicamos el tamaño a través de la cláusula SIZE, le estamos diciendo al //datafile// que reserve cierto espacio en disco, aunque inicialmente ese espacio esté vacío. Conforme vayamos creando objetos sobre este //tablespace//, ese espacio reservado se irá llenando. La cláusula DEFAULT STORAGE indica qué características de almacenamiento por defecto se aplicará a los objetos creados sobre el //tablespace//. Si no incluimos la cláusula STORAGE en la creación de un objeto (por ejemplo en el CREATE TABLE), se aplicarán las características definidas en la creación del //tablespace//. El //tablespace// inicialmente podrá estar en línea o fuera de línea a través de las cláusulas ONLINE y OFFLINE. Por defecto el //tablespace// se creará en estado ONLINE. Para //tablespaces //temporales se deberá incluir la cláusula TEMPORARY, para los de datos la cláusula PERMANENT. Por defecto el //tablespace// será PERMANENT.

Ejemplos:

CREATE TABLESPACE tab_factura DATAFILE ‘C:\ORANT\DATABASE\tablespace_facturas.dat’ SIZE 100M DEFAULT STORATE( INITIAL 100K NEXT 100K ) ONLINE PERMANENT;

CREATE TABLESPACE tab_temporal DATAFILE ‘C:\ORANT\DATABASE\tablespace_tmp.ora’ SIZE 50M OFFLINE TEMPORARY;

CREATE TABLESPACE tab_indices DATAFILE ‘C:\ORANT\DATABASE\tab_indices.tab’ SIZE 10M;

==== Sentencias DROP ====

Toda sentencia de creación CREATE tiene su equivalente para eliminar el objeto creado. Todas estas sentencias tienen la misma sintaxis:

DROP tipo_objeto objeto_a_borrar.

Por ejemplo:

DROP TABLE FACTURA;

DROP SEQUENCE COD_CLIENTE;

DROP SYNONYM BILL;

DROP VIEW TOTAL_FACTURA_CLIENTE;

DROP TABLESPACE tab_indices;

Ciertas sentencias DROP (como DROP TABLE o DROP TABLESPACE) tienen cláusulas adicionales para ciertas situaciones especiales. Para más información buscar la ayuda de la sentencia necesitada en el //Oracle8 SQL Reference//.

==== Sentencias ALTER ====

Al igual que existe una sentencia DROP para cada objeto creado, también existe una sentencia ALTER para cada objeto de base de datos. Con estos tres grupos de sentencias se hace la gestión completa de los objeto: creación, modificación y borrado. La sintaxis básica de las sentencias ALTER es:

ALTER tipo_objeto nombre_objeto Cláusulas específicas de cada tipo de ALTER;

Las cláusulas propias de cada sentencia ALTER son muchas y variadas, por lo que aquí no se citarán más que ciertos ejemplos. Para más información dirigirse la ayuda de la sentencia necesitada en el //Oracle8 SQL Reference//.

Ejemplos:

ALTER TABLE FACTURA ADD( NUEVA_COLUMNA VARCHAR2(10) NOT NULL );

ALTER VIEW BILL COMPILE;

ALTER TABLESPACE tab_indices ADD( DATAFILE ‘C:\ORANT\DATABASE\otro_datafile.ora’ SIZE 5M;

ALTER TABLESPACE tab_indices RENAME DATAFILE ‘C:\ORANT\DATABASE\nombre.ora’ TO ‘C:\ORANT\DATABASE\otro_nombre.ora’

ALTER TABLESPACE tab_indices COALESCE;

ALTER SEQUENCE NOCYCLE;

==== La sentencia TRUNCATE ====

La sentencia TRUNCATE pertenece al conjunto de las sentencias DDL, y permite vaciar todos los registros de una tabla. Aparentemente es equivalente a hacer un DELETE sin condición, pero en realidad no es igual, ya que DELETE pertenece al subconjunto de DDL y TRUNCATE al DML. La sintaxis básica es:

TRUNCATE nombre_tabla {DROP|REUSE STORAGE}

La cláusula DROP STORAGE eliminará todas las extents creadas durante la vida de la tabla.

Ejemplos:

TRUNCATE FACTURA DROP STORAGE;

TRUNCATE CLIENTE;

==== Cláusula STORAGE ====

Todo objeto que tenga ocupación física en la base de datos, tendrá una cláusula //storage// en su sintaxis de creación. El objetivo de esta cláusula es definir ciertas propiedades de almacenamiento para el objeto creado, como puede ser tamaño de la extensión inicial, tamaño de las siguientes extensiones

Sintaxis:

STORAGE( INITIAL entero{K|M} NEXT entero{K|M} {MINEXTENTS entero} {MAXEXTENTS entero|UNLIMITED} {PCTINCREASE %entero} )

La cláusula INITIAL define el tamaño que tendrá al extensión inicial y NEXT el tamaño de las siguientes extensiones. La cláusula MINEXTENTS indica el número mínimo de extensiones para el objeto, y MAXEXTENTS indica el máximo número de extensiones (puede ser UNLIMITED, aunque no es aconsejable). PCTINCREASE indica el porcentaje en que se aumentará el tamaño de un “next extent”. Para que todas las extensiones adicionales sean del mismo tamaño se debe indicar 0.

===== Funciones SQL =====

Las funciones SQL permiten mostrar columnas calculadas dentro de sentencias DML (SELECT, INSERT, DELETE y UPDATE).

Funciones de tratamiento numérico

|| Función || Descripción ||
|| ABS( n ) || Retorna el valor absoluto del parámetro. ||
|| CEIL( n ) || Retorna el entero mayor del parámetro. ||
|| FLOOR( n ) || Retorna el entero menor del parámetro. ||
|| MOD( m,n ) || Retorna el resto de la división m/n ||
|| POWER( m,n ) || Retorna mn ||
|| ROUND( m[,n] ) || Retorna m, redondeado a n decimales. Si m se omite es 0. ||
|| SIGN( n ) || Retorna 1 si n es positivo, -1 si negativo y 0 si es 0. ||
|| TRUNC( n[,m] ) || Trunca un número a m decimales. Si m se omite es 0. ||

Funciones de tratamiento alfanumérico Funciones de tratamiento de fechas

|| Función || Descripción ||
|| CHR( n ) || Retorna el carácter equivalente al código n en la tabla de ||
|| || conjunto de caracteres utilizado (ASCII, UNICODE...) ||
|| CONCAT( s1, s2 ) || Concatena dos cadenas de caracteres. Equivalente al operador ||
|| || || ||
|| INITCAP( s ) || Pasa el mayúscula la primera letra de cada palabra ||
|| LOWER( s ) || Pasa a minúsculas toda la cadena de caracteres ||
|| LPAD( s, n ) || Retorna los n primeros caracteres de la cadena s. ||
|| RPAD( s, n ) || Retorna los n últimos caracteres de la cadena s. ||
|| LTRIM( s1[, s2] ) || Elimina todas las ocurrencias de s2 en s1 por la izquierda. Si se ||
|| || omite s2, se eliminarán los espacios. ||
|| RTRIM( s1[, s2] ) || Elimina todas las ocurrencias de s2 en s1 por la derecha. Si se ||
|| || omite s2, se eliminarán los espacios. ||
|| REPLACE( s1, s2, s3 ) || Retorna s1 con cada ocurrencia de s2 reemplazada por s3. ||
|| SUBSTR( s, m, n ) || Retorna los n caracteres de s desde la posición m. ||
|| UPPER( s ) || Pasa a mayúsculas toda la cadena de caracteres ||
|| LENGTH( s ) || Retorna la longitud (en caracteres) de la cadena pasada. ||
|| Función || Descripción || ||
|| ADD_MONTHS( d, n ) || Suma un número (positivo o negativo) de meses fecha. || a una ||
|| LAST_DAY( d ) || Retorna el ultimo día de mes de la fecha pasada. || ||
|| MONTHS_BETWEEN( d1, d2 ) || Retorna la diferencia en meses entre dos fechas. || ||
|| ROUND( d, s ) || Redondea la fecha d según el formato indicado en s. ( || *) ||
|| TRUNC( d, s ) || Trunca la fecha d según el formato indicado en s. (*) || ||

Formatos para ROUND y TRUNC para fechas:

|| Formato || Descripción ||
|| ‘MONTH’, ‘MON’, ‘MM’ || Principio de mes ||
|| ‘DAY’, ‘DY’, ‘D’ || Principio de semana ||
|| ‘YEAR’, ‘YYYY’, ‘Y’ || Principio de año ||

==== Funciones de grupo ====

Estas funciones actúan sobre un conjunto de valores, retornando sólo un registro.

|| Función || Descripción ||
|| SUM( valores ) || Retorna la suma. ||
|| AVG( valores ) || Retorna la media aritmética ||
|| MAX( valores ) || Retorna el máximo. ||
|| MIN( valores ) || Retorna el mínimo ||
|| COUNT(valores|* ) || Retorna la cuenta. ||
|| Todas estas funciones permite incluir el modificador DISTINCT delante de la lista de valores para que omita los repetidos. ||

Funciones de conversión

|| Función || Descripción ||
|| CHARTOROWID( s ) || Convierte una cadena en tipo de dato ROWID. ||
|| ROWIDTOCHAR( rowid ) || Convierte un tipo de dato ROWID en cadena de caracteres. ||
|| TO_CHAR( *[, s] ) || Convierte el tipo de dato * en cadena de caracteres. Si * ||
|| || es una fecha, se podrá utilizar la cadena s como formato ||
|| || de conversión. ||
|| TO_DATE( s1[, s2] ) || Convierte la cadena s1 en fecha, conforme al formato de ||
|| || convesión s2. ||
|| TO_NUMBER( s ) || Convierte una cadena de caracteres en valor numérico. ||

Otras funciones

|| Función || || Descripción ||
|| DUMP( columna ) || || Retorna información de almacenamiento para la columna ||
|| || || indicada. ||
|| GREATEST( expr1, expr2 || , ... || Retorna la expresión mayor. ||
|| ||
|| ||
< anterior | 1 .. 8 9 10 11 12 .. 16 | siguiente >

Autor y licencia de 'Iniciación a Oracle'


Curso gratis de José Manuel . Extraido de: http://www.lawebdejm.com CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.