Descargar

Manual de Oracle 9i (página 2)

Enviado por Fabricio Pinto


Partes: 1, 2

INSERT INTO tabla [(columna1 [, columna2…])]

VALUES (valor1 [,valor2]);

Indicando la tabla se añaden los datos que se especifiquen tras el apartado values en un nuevo registro. Los valores deben corresponderse con el orden de las columnas. Si no es

así se puede indicar tras el nombre de la tabla y entre paréntesis. Ejemplo:

INSERT INTO proveedores(nombre, CIF)

VALUES ("Araja SA","14244223Y");

Consultar las tablas del usuario

En el diccionario de datos hay una entrada que permite consultar las tablas de cada usuario. Esa entrada es USER_TABLES. De forma que SELECT * FROM

USER_TABLES obtiene una vista de las tablas del usuario actual. Hay diversas columnas que muestran datos sobre cada tabla, entre ellas la columna TABLES_NAME

muestra el nombre de la tabla.

Borrar tablas

La orden DROP TABLE seguida del nombre de una tabla, permite eliminar la tabla en cuestión.

Al borrar una tabla:

  • Desaparecen todos los datos

  • Cualquier vista y sinónimo referente a la tabla seguirán existiendo, pero ya no funcionarán (conviene eliminarlos).

  • Las transacciones pendientes son aceptadas (COMMIT)

  • Sólo es posible realizar esta operación si se es el propietario de la tabla o se posee el privilegio DROP ANY TABLE.

El borrado de una tabla es irreversible, y no hay ninguna petición de confirmación, por lo que conviene ser muy cuidadoso con esta operación.

Tipos de datos

Equivalentes ANSI SQL con el SQL de Oracle

Hay diferencias entre los tipos de datos del estándar ANSI con respecto al SQL de Oracle.

Aunque Oracle es capaz de utilizar bases de datos con formato ANSI y tipos compatibles con el mismo, la equivalencia ANSI / Oracle la dicta esta tabla:

Tipos ANSI SQL Equivalente Oracle SQL

CHARACTER(n)

CHAR(n)

CHAR(n)

CHARACTER VARYING(n)

CHAR VARYING(n)

VARCHAR(n)

NATIONAL CHARACTER(n)

NATIONAL CHAR(n)

NCHAR(n)

NCHAR(n)

NATIONAL CHARACTER VARYING(n)

NATIONAL CHAR VARYING(n)

NCHAR VARYING(n)

NVARCHAR2(n)

NUMERIC(p,s)

DECIMAL(p,s)

NUMBER(p,s)

INTEGER

INT

SMALLINT

NUMBER(38)

FLOAT(b)

DOUBLE

DOUBLE PRECISSION

REAL

NUMBER

LONG VARCHAR(n) LONG

textos

Para los textos disponemos de los siguientes tipos:

„« VARCHAR2. Para textos de longitud variable de hasta 4000 caracteres

„« CHAR. Para textos de longitud fija de hasta 2000 caracteres.

„« NCHAR. Para el almacenamiento de caracteres nacionales de texto fijo

„« NVARCHAR2. Para el almacenamiento de caracteres nacionales de longitud

Variable.

En todos estos tipos se indican los tamaños entre paréntesis tras el nombre del tipo. Ese tamaño en el caso de los tipos VARCHAR2 es obligatorio, en el caso de los tipos CHAR son opcionales (de no ponerlos se toma el uno).

Conviene poner suficiente espacio para almacenar los valores. En el caso de los VARCHAR, Oracle no malgasta espacio por poner más espacio del deseado ya que si el

texto es más pequeño que el tamaño indicado, el resto del espacio se ocupa.

números

El tipo NUMBER es un formato versátil que permite representar todo tipo de números.

Su rango recoge números de entre 10-130 y 9,99999999999 * 10128. Fuera de estos rangos Oracle devuelve un error.

Los números decimales (números de coma fija) se indican con NUMBER(p,s), donde p es la precisión máxima y s es la escala (número de decimales a la derecha de la coma). Por ejemplo, NUMBER (8,3) indica que se representan números de ocho cifras de precisión y tres decimales. Los decimales en Oracle se presenta con el punto y no con la coma.

Para números enteros se indica NUMBER(p) donde p es el número de dígitos. Eso es equivalente a NUMBER(p,0).

Para números de coma flotante (equivalentes a los flota o double de muchos lenguajes de programación) simplemente se indica el texto NUMBER sin precisión ni escala.

Precisión y escala.

La cuestión de la precisión y la escala es compleja. Para entenderla mejor, se muestran estos ejemplos:

Formato Número escrito por el usuario Se almacena como…

NUMBER 345255.345 345255.345

NUMBER(9) 345255.345 345255

NUMBER(9,2) 345255.345 345255.36

NUMBER(7) 345255.345 Da error de precisión

NUMBER(7,-2) 345255.345 345300

NUMBER(7,2) 345255.345 Da error de precisión

En definitiva, la precisión debe incluir todos los dígitos del número (puede llegar hasta 38 dígitos). La escala sólo indica los decimales que se respetarán del número, pero si es

negativa indica ceros a la izquierda del decimal.

tipo LONG se trata de un tipo de datos que actualmente se mantiene por compatibilidad. Se recomienda encarecidamente utilizar en su lugar el tipo CLOB (que se comentará más

adelante). En cualquier caso este tipo permite almacenar textos de hasta 2 GB de tamaño.

Pero no puede formar clave, ni índice, ni ser parte de la cláusula WHERE, ni GROUP BY, ni SELECT con DISTINCT, ni pueden ser UNIQUE y sólo puede haber un campo de este tipo en una misma tabla entre otras limitaciones. fechas y horas DATE

El tipo DATE permite almacenar fechas. Las fechas se pueden escribir en formato día, mes y año entre comillas. El separador puede ser una barra de dividir, un guión y casi cualquier símbolo.

Para almacenar la fecha actual basta con utilizar la función SYSDATE que devuelve esa fecha.

TIMESTAMP. Es una extensión del anterior, almacena valores de día, mes y año, junto con hora, minuto y segundos (incluso con decimales). Con lo que representa un instante concreto en el tiempo. Un ejemplo de TIMESTAMP sería "2/2/2004 18:34:23,34521". En este caso si el formato de fecha y hora del sistema está pensado para el idioma español, el separador decimal será la coma (y no el punto). Intervalos Hay unos cuantos tipos de datos en Oracle que sirven para almacenar intervalos de tiempo (no fechas, sino una suma de elementos de tiempo).

INTERVAL YEAR TO MONTH. Este tipo de datos almacena años y meses. Tras la palabra YEAR se puede indicar la precisión de los años (cifras del año), por defecto es de dos. Ejemplo:

CREATE TABLE tiempos (meses INTERVAL YEAR(3) TO MONTH);

INSERT INTO tiempos VALUES("3-2");

En el ejemplo se inserta un registro que representa 3 años y dos meses. INTERVAL DAY TO SECOND. Representa intervalos de tiempo que expresan días, horas, minutos y segundos. Se puede indicar la precisión tras el texto DAY y el número de decimales de los segundos tras el texto SECOND. Ejemplo:

CREATE TABLE tiempos (dias INTERVAL DAY(3) TO SECOND(0));

INSERT INTO tiempos VALUES("2 7:12:23");

RAW. Sirve para almacenar valores binarios de hasta 2000 bytes (se puede especificar el tamaño máximo entre paréntesis). El valor LONG RAW almacena hasta 2GB.

LOB. Son varios tipos de datos que permiten almacenar valores muy grandes. Más adelante se comentan en su totalidad. Incluye a BLOB, CLOB, NCLOB y BFILE. ROWID. Valor hexadecimal que representa la dirección única de una fila en su tabla. RENAME. Permite el cambio de nombre de cualquier objeto. Sintaxis:

RENAME nombreViejo TO nombreNuevo borrar contenido de tablas

La orden TRUNCATE TABLE seguida del nombre de una tabla, hace que se elimine el contenido de la tabla, pero no la tabla en sí. Incluso borra del archivo de datos el espacio

ocupado por la tabla. Esta orden no puede anularse con un ROLLBACK. Modificar tablas.

ALTER TABLE. Permite hacer cambios en la estructura de una tabla. Añadir columnas

ALTER TABLE nombreTabla ADD(nombreColumna TipoDatos

[Propiedades]

[,columnaSiguiente tipoDatos [propiedades]…)

Permite añadir nuevas columnas a la tabla. Se deben indicar su tipo de datos y sus

propiedades si es necesario (al estilo de CREATE TABLE).

Las nuevas columnas se añaden al final, no se puede indicar otra posición. Borrar columnas ALTER TABLE nombreTabla DROP(columna);

Elimina la columna indicada de manera irreversible e incluyendo los datos que contenía.

No se puede eliminar la última columna (habrá que usar DROP TABLE).

Modificar columna Permite cambiar el tipo de datos y propiedades de una determinada columna. Sintaxis:

ALTER TABLE nombreTabla MODIFY(columna tipo [propiedades]

[columnaSiguiente tipo [propiedades] …]

Los cambios que se permiten son:

Permite añadir nuevas columnas a la tabla. Se deben indicar su tipo de datos y sus propiedades si es necesario (al estilo de CREATE TABLE).

Las nuevas columnas se añaden al final, no se puede indicar otra posición.

  • Incrementar precisión o anchura de los tipos de datos

  • Sólo se puede reducir la anchura si la anchura máxima de un campo si esa Columna posee nulos ALTER TABLE nombreTabla DROP(columna);

Elimina la columna indicada de manera irreversible e incluyendo los datos que contenía.

No se puede eliminar la última columna (habrá que usar DROP TABLE).

modificar columna permite cambiar el tipo de datos y propiedades de una determinada columna. Sintaxis:

ALTER TABLE nombreTabla MODIFY(columna tipo [propiedades]

[columnaSiguiente tipo [propiedades] …]

Los cambios que se permiten son:

  • Incrementar precisión o anchura de los tipos de datos

  • Sólo se puede reducir la anchura si la anchura máxima de un campo si esa columna posee nulos en todos los registros, o todos los valores son o no hay registros.

  • Se puede pasar de CHAR a VARCHAR2 y viceversa (si no se modifica la anchura)

  • Se puede pasar de DATE a TIMESTAMP y viceversa Añadir comentarios a las tablas.

Se le pueden poner comentarios a las tablas y las columnas. Un comentario es un texto

descriptivo utilizado para documentar la tabla. Sintaxis:

COMMENT ON { TABLE NombreTabla | COLUMN tabla.nombreColumna }

IS "Comentario"

Para mostrar los comentarios puestos se usan las siguientes vistas del diccionario de

datos mediante la instrucción SELECT:

  • USER_TAB_COMMENTS. Comentarios de las tablas del usuario actual.

  • USER_COL_COMMENTS. Comentarios de las columnas del usuario actual.

  • ALL_TAB_COMMENTS. Comentarios de las tablas de todos los usuarios (sólo administradores).

  • ALL_COL_COMMENTS. Comentarios de las columnas de todos los usuarios (sólo administradores).

Valor por defecto

A cada columna se le puede asignar un valor por defecto durante su creación mediante la propiedad DEFAULT. Se puede poner esta propiedad durante la creación o modificación de la tabla, añadiendo la palabra DEFAULT tras el tipo de datos del campo y colocando detrás el valor que se desea por defecto. Ejemplo:

CREATE TABLE articulo (cod NUMBER(7), nombre VARCHAR2(25),

precio NUMBER(11,2) DEFAULT 3.5);

Restricciones

Una restricción es una condición de obligado cumplimiento para una o más columnas de la tabla. A cada restricción se le pone un nombre, en el caso de no poner un nombre (en

las que eso sea posible) entonces el propio Oracle le coloca el nombre que es un nemotécnico con el nombre de tabla, columna y tipo de restricción.

Su sintaxis general es:

{CREATE TABLE nombreTabla |

ALTER TABLE nombreTabla {ADD | MODIFY}}

(campo tipo [propiedades] [,…]

CONSTRAINT nombreRestricción tipoRestricción (columnas)

[,CONSTRAINT nombrerestricción tipoRestricción (columnas) …)

nombre, pero entonces será críptico. Por eso es mejor ponerle uno mismo. Los nombres de restricción no se pueden repetir para el mismo esquema, por lo que es buena idea incluir de algún modo el nombre de la tabla, los campos involucrados y el tipo de restricción en el nombre de la misma. Por ejemplo pieza_id_pk podría indicar que el campo id de la tabla pieza tiene una clave principal (PRIMARY KEY).

Prohibir nulos

La restricción NOT NULL permite prohibir los nulos en una determinada tabla. Eso obliga a que la columna tenga que tener obligatoriamente un valor para que sea almacenado el registro.

Se puede colocar durante la creación (o modificación) del campo añadiendo la palabra

NOT NULL tras el tipo:

CREATE TABLE cliente(dni VARCHAR2(9) NOT NULL);

En ese caso el nombre le coloca Oracle. La otra forma (que admite nombre) es:

CREATE TABLE cliente(dni VARCHAR2(9)

CONSTRAINT dni_sinnulos NOT NULL(dni));

Valores únicos

Las restricciones de tipo UNIQUE obligan a que el contenido de uno o más campos no quedan repetir valores. Nuevamente hay dos formas de colocar esta restricción: CREATE TABLE cliente(dni VARCHAR2(9) UNIQUE);

En ese caso el nombre de la restricción la coloca el sistema Oracle. Otra forma es:

CREATE TABLE cliente(dni VARCHAR2(9) CONSTRAINT dni_u UNIQUE);

Esta forma permite poner un nombre a la restricción. Si la repetición de valores se refiere a varios campos, la forma sería:

CREATE TABLE alquiler(dni VARCHAR2(9),

cod_pelicula NUMBER(5),

CONSTRAINT alquiler_uk UNIQUE(dni,cod_pelicula) ;

La coma tras la definición del campo cod_pelicula hace que la restricción sea independiente de ese campo. Eso obliga a que, tras UNIQUE se indique la lista de campos.

Los campos UNIQUE son las claves candidatas de la tabla (que habrán sido detectadas en la fase de diseño de la base de datos).

Clave primaria

La clave primaria de una tabla la forman las columnas que indican a cada registro de la misma. La clave primaria hace que los campos que la forman sean NOT NULL (sin posibilidad de quedar vacíos) y que los valores de los campos sean de tipo UNIQUE (sin posibilidad de repetición).

Si la clave está formada por un solo campo basta con:

CREATE TABLE cliente(

dni VARCHAR2(9) PRIMARY KEY,

nombre VARCHAR(50)) ;

O, poniendo un nombre a la restricción:

CREATE TABLE cliente(

dni VARCHAR2(9) CONSTRAINT cliente_pk PRIMARY KEY,

nombre VARCHAR(50)) ;

Si la clave la forman más de un campo:

CREATE TABLE alquiler(dni VARCHAR2(9),

cod_pelicula NUMBER(5),

CONSTRAINT alquiler_pk PRIMARY KEY(dni,cod_pelicula) ;

clave secundaria o foránea

Una clave secundaria o foránea, es uno o más campos de una tabla que están relacionados con la clave principal de los campos de otra tabla. La forma de indicar una clave foránea es:

CREATE TABLE alquiler(dni VARCHAR2(9),

cod_pelicula NUMBER(5),

CONSTRAINT alquiler_pk PRIMARY KEY(dni,cod_pelicula),

CONSTRAINT dni_fk FOREIGN KEY (dni)

REFERENCES clientes(dni),

CONSTRAINT pelicula_fk FOREIGN KEY (cod_pelicula)

REFERENCES peliculas(cod));

Esta completa forma de crear la tabla alquiler incluye sus claves foráneas, el campo dni hace referencia al campo dni de la tabla clientes y el campo cod_pelicula que hace referencia al campo cod de la tabla peliculas. También hubiera bastado con indicar sólo la tabla a la que hacemos referencia, si no se indican los campos relacionados de esa tabla, se toma su clave principal (que es lo normal).

Esto forma una relación entre dichas tablas, que además obliga al cumplimiento de la integridad referencial. Esta integridad obliga a que cualquier dni incluido en la tabla alquiler tenga que estar obligatoriamente en la tabla de clientes. De no ser así el registro no será insertado en la tabla (ocurrirá un error).

Otra forma de crear claves foráneas (sólo válida para claves de un solo campo) es:

CREATE TABLE alquiler(

dni VARCHAR2(9) CONSTRAINT dni_fk

REFERENCES clientes(dni),

cod_pelicula NUMBER(5) CONSTRAINT pelicula_fk

REFERENCES peliculas(cod)

CONSTRAINT alquiler_pk PRIMARY KEY(dni,cod_pelicu ));

39

Esta definición de clave secundario es idéntica a la anterior, sólo que no hace falta colocar el texto FOREIGN KEY.

La integridad referencial es una herramienta imprescindible de las bases de datos relacionales. Pero provoca varios problemas. Por ejemplo, si borramos un registro en la tabla principal que está relacionado con uno o varios de la secundaria ocurrirá un error, ya que de permitírsenos borrar el registro ocurrirá fallo de integridad (habrá claves secundarios refiriéndose a una clave principal que ya no existe).

Por ello Oracle nos ofrece dos soluciones a añadir tras la cláusula REFERENCES:

  • ON DELETE SET NULL. Coloca nulos todas las claves secundarias relacionadas con la borrada.

  • ON DELETE CASCADE. Borra todos los registros cuya clave secundaria es igual que la clave del registro borrado.

Si no se indica esta cláusula, no se permite el borrado de registros relacionados. El otro problema ocurre si se desea cambiar el valor de la clave principal en un registro relacionado con claves secundarias. En muchas bases de datos se implementan soluciones consistentes en añadir ON UPDATE CASCADE o ON UPDATE SET NULL. Oracle no implementa directamente estas soluciones. Por lo que hay que hacerlo de otra forma. Las soluciones son:

  • Implementar un TRIGGER para que cuando se actualice el registro se actualicen las claves secundarias (el mecanismo de funcionamiento es parecido al que se muestra en el siguiente párrafo).

  • Añadir un registro igual que el que se quiere cambiar en la tabla principal, pero con el nuevo valor de la clave. Mediante una instrucción UPDATE actualizar a ese valor de clave todos los registros de la tabla secundaria cuyo valor coincida con la antigua clave. Finalmente borrar el registro en la tabla principal con el valor antiguo de la clave.

  • La sintaxis completa para añadir claves foráneas es:

CREATE TABLE tabla(lista_de_campos

CONSTRAINT nombreRestriccion FOREIGN KEY (listaCampos)

REFERENCES tabla(clavePrincipalRelacionada)

[ON UPDATE {SET NULL | CASCADE}]);

Si es de un solo campo existe esta alternativa:

CREATE TABLE tabla(lista_de_campos tipos propiedades, nombreCampoClaveSecundaria

CONSTRAINT nombreRestriccion

REFERENCES tabla(clavePrincipalRelacionada)

[ON UPDATE {SET NULL | CASCADE}]

Son restricciones que dictan una condición que deben cumplir los contenidos de una columna. La expresión de la condición es cualquier expresión que devuelva verdadero o

falso, pero si cumple estas premisas:

  • No puede hacer referencia a números de fila

  • No puede hacer referencia a objetos de SYSTEM o SYS

  • No se permiten usar las funciones SYSDATE, UID, USER y USERENV

  • No se permiten usar las funciones SYSDATE, UID, USER y USERENV

  • No se permiten referencias a columnas de otras tablas (si a las de la misma tabla)

  • Una misma columna puede tener múltiples CHECKS en su definición (se pondrían varios

CONSTRAINT seguidos, sin comas). Ejemplo:

CREATE TABLE ingresos(cod NUMBER(5) PRIMARY KEY,

concepto VARCHAR2(40) NOT NULL,

importe NUMBER(11,2) CONSTRAINT importe_min

CHECK (importe>0)

CONSTRAINT importe_max

CHECK (importe

);

41

Añadir restricciones

Es posible querer añadir restricciones tras haber creado la tabla. En ese caso se utiliza la

siguiente sintaxis:

ALTER TABLE tabla

ADD [CONSTRAINT nombre] tipoDeRestricción(columnas);

tipoRestricción es el texto CHECK, PRIMARY KEY o FOREIGN KEY. Las

restricciones

NOT NULL deben indicarse mediante ALTER TABLE .. MODIFY colocando NOT

NULL

En el campo que se modifica.

borrar restricciones

Sintaxis:

ALTER TABLE tabla

DROP PRIMARY KEY | UNIQUE(campos) |

CONSTRAINT nombreRestricción [CASCADE]

La opción PRIMARY KEY elimina una clave principal (también quitará el índice UNIQUE sobre las campos que formaban la clave. UNIQUE elimina índices únicos. La opción CONSTRAINT elimina la restricción indicada.

La opción CASCADE hace que se eliminen en cascada las restricciones de integridad que dependen de la restricción eliminada. Por ejemplo en:

CREATE TABLE curso(

cod_curso CHAR(7) PRIMARY KEY,

fecha_inicio DATE,

fecha_fin DATE,

tItulo VARCHAR2(60),

cod_siguientecurso CHAR(7),

CONSTRAINT fecha_ck CHECK(fecha_fin>fecha_inicio),

CONSTRAINT cod_ste_fk FOREIGN KEY(cod_siguientecurso)

REFERENCES curso ON DELETE SET NULL);

Tras esa definición de tabla, esta instrucción:

ALTER TABLE curso DROP PRIMARY KEY;

Produce este error:

ORA-02273: a esta clave única/primaria hacen referencia

42

algunas claves ajenas

Para ello habría que utilizar esta instrucción:

ALTER TABLE curso DROP PRIMARY KEY CASCADE;

Esa instrucción elimina la clave secundaria antes de eliminar la principal.

También produce error esta instrucción:

ALTER TABLE curso DROP(fecha_inicio);

ERROR en línea 1:

ORA-12991: se hace referencia a la columna en una restricción de multicolumna

Cambiar de nombre a las restricciones

Para hacerlo se utiliza este comando:

ALTER TABLE table RENAME CONSTRAINT

nombreViejo TO nombreNuevo;

mostrar restricciones

La vista del diccionario de datos USER_CONSTRAINTS permite identificar las restricciones colocadas por el usuario (ALL_CONSTRAINTS permite mostrar las restricciones de todos los usuarios, pero sólo está permitida a los administradores). En esa vista aparece toda la información que el diccionario de datos posee sobre las restricciones.

En ella tenemos las siguientes columnas interesantes:

Columna Tipo de datos Descripción

OWNER VARCHAR2(20) Indica el nombre del usuario propietario de la tabla CONSTRAINT_NAME VARCHAR2(30) Nombre de la restricción Consultas SELECT

Capacidades sin duda el comando más versátil del lenguaje SQL es el comando SELECT. Este comando permite:

  • Obtener datos de ciertas columnas de una tabla (proyección)

  • Obtener registros (filas) de una tabla de acuerdo con ciertos criterios (selección)

  • Mezclar datos de tablas diferentes (asociación, join)

  • sintaxis sencilla

SELECT * | {[DISTINCT] columna | expresión [[AS] alias], …}

FROM tabla;

Donde:

  • El asterisco significa que se seleccionan todas las columnas

  • DISTINCT. Hace que no se muestren los valores duplicados.

  • colu-mna. Es el nombre de una columna de la tabla que se desea mostrar

  • expresión. Una expresión válida SQL

  • alia-s. Es un nombre que se le da a la cabecera de la columna en el resultado de esta Instrucción.

Ejemplos:

/* Selección de todos los registros de la tabla clientes */

SELECT * FROM Clientes;

/* Selección de algunos campos*/

SELECT nombre, apellido1, apellido2 FROM Clientes;

Cálculos aritméticos

Los operadores + (suma), – (resta), * (multiplicación) y / (división), se pueden utilizar para hacer cálculos en las consultas. Cuando se utilizan como expresión en una consulta SELECT, no modifican los datos originales sino que como resultado de la vista generada por SELECT, aparece un nueva columna. Ejemplo:

SELECT nombre, precio,precio*1.16 FROM articulos

SQL para Oracle 9i

Comandos internos SQL e iSQL*Plus

Esa consulta obtiene tres columnas. La tercera tendrá como nombre la expresión utilizada, para poner un alias basta utilizar dicho alias tras la expresión:

SELECT nombre, precio, precio*1.16 AS precio_con_iva

FROM articulos;

Los nombres pueden llevar espacios si se ponen con comillas dobles:

SELECT nombre, precio, precio*1.16 AS "precio con iva"

FROM articulos;

44

Esas comillas dobles cumplen otra función y es la de hacer que se respeten las mayúsculas y minúsculas del nombre (de otro modo el nombre de la columna aparece siempre en mayúsculas.

La prioridad de esos operadores es: tienen más prioridad la multiplicación y división, después la suma y la resta. En caso de igualdad de prioridad, se realiza primero la operación que esté más a la izquierda. Como es lógico se puede evitar cumplir esa prioridad usando paréntesis; el interior de los paréntesis es lo que se ejecuta primero. Cuando una expresión aritmética se calcula sobre valores NULL, el resultado de la expresión es siempre NULL. Concatenación El operador || es el de la concatenación. Sirve para unir textos. Ejemplo:

FROM piezas;

El resultado puede ser:

TIPO MODELO Clave Pieza

AR 6 AR-6

AR 7 AR-7

AR 8 AR-8

AR 9 AR-9

AR 12 AR-12

AR 15 AR-15

AR 20 AR-20

AR 21 AR-21

BI 10 BI-10

BI 20 BI-20

BI 38 BI-38

BI 57 BI-57

Condiciones

Se pueden realizar consultas que restrinjan los datos de salida de las tablas. Para ello se utiliza la cláusula WHERE. Esta cláusula permite colocar una condición que han de cumplir todos los registros, los que no la cumplan no aparecen en el resultado.

© Copyright – Copyleft ' Jorge Sánchez 2004

Requisitos antes de instalar Oracle 9i

En la actualidad ya no es dable que se trabaje con equipos inferiores a Pentium Dual Core entonces la instalación de Oracle requiere estos requisitos mínimos:

Windows 2000 con service pack 1 o Windows XP Professional o Windows 2003 Server

Protocolo TCP/IP o TCP/IP con SSL

1 GB de memoria RAM

Al menos 2 GB de memoria virtual mínima y 4 GB de máxima

VGA de 32 bit colores

1 GB en el disco duro del sistema (normalmente C) y otras 3 GB más en ese mismo disco para el software de Administrador y otras herramientas de Oracle.

Además se requiere 2,85 GB en el disco que albergará la carpeta raíz de Oracle, el llamado Oracle Home, 1 GB más si se usa el Oracle Management Server y otros 2,35 GB más si se usa el Oracle Internet Directory. Las herramientas de administrador requieren 750 MB y las de ejecución (Runtime) otras 3 GB.

Además hay que tener en cuenta que los tamaños de disco indicados sólo son válidos si se usan discos duros con el sistema NTFS, si es FAT32 hay que doblar el tamaño

(llegando a las 13 GB con instalación absoluta).

Se requiere también un navegador web. Especialmente Internet Explorer 5 o superior o Netscape 4.7 o superior (o cualquiera compatible

Como instalar Oracle 9i.

Antes de proseguir a instalar hay que tener en cuenta que debemos asegurar que disponemos de 400 MB en el disco duro. Este espacio es temporal. Por defecto se tomará en la carpeta TEMP del sistema, hay que comprobar de que el disco duro en el que se encuentra esa carpeta dispone de se espacio, de otro modo habrá que cambiar la ubicación de TEMP a otro disco duro con ese espacio.

Para cambiar la ubicación de esa carpeta se debe modificar la ruta de la variable de entorno temp (desde el apartado de variables de entorno en Sistema en el Panel de control.

Con la iniciación de la instalación, se ejecuta el Universal Installer de Oracle, el programa Java encargado de realizar las instalaciones y desinstalaciones. Tras su ejecución ocurre lo siguiente:

Aparecerá la ventana de bienvenida del instalador. Pulsar Siguiente

edu.red

Elegir una ruta para la carpeta Home de Oracle. Esa carpeta es la encargada de almacenar el software de base de datos de Oracle. Se nos pregunta qué nombre tendrá esa carpeta Home (por defecto se llama OraHome92) y la ubicación de la misma. Pulsar Siguiente.

edu.red

Aparece una lista con las posibles instalaciones que permite el CD. Lógicamente se elegirá Database si es la base de datos lo que queremos instalar.

edu.red

Se nos pregunta (salvo que hayamos elegido la versión personalizada) por el tipo de base de datos que se creará en la instalación. Ya en la instalación se crea una base de datos que puede ser:

Propósito general. Bases de datos que se utilizan para todo tipo de tareas (ante la duda conviene utilizar esta opción).

Procesamiento de transacciones, preparada para utilizar transacciones muy a menudo.

Almacenes de datos, base de datos pensada para primar el almacenamiento de grandes volúmenes de datos (Warehousing).

Personalizada, permite especificar más claramente la base de datos a utilizar (esta opción requiere más pasos que las otras).

Sólo software, instala el software de base de datos sin crear una primera base de datos (habrá que crearla más adelante.

edu.red

Elegir la opción preferida (ante la duda elegir uso General) y pulsar Siguiente.

Si se está migrando de una versión anterior aparecerá un cuadro que nos permite migrar (o no) los datos de la versión anterior.

Si el equipo tiene Microsoft Transaction Server se nos pedirá el número de puerto (normalmente el 2030) que ha de utilizarse para usar dicho software de transacciones.

Se nos pide el identificador (SID, System Identifier) y el nombre global de la base de datos. El nombre global es un nombre único para la red a la que pertenece el servidor en el que instalamos Oracle (por ejemplo uniandes.ibarra.local). El SID es el nombre que identifica a la base de datos en el ordenador en el que estamos. En el cuadro se pone primero el nombre global el instalador sugiere el SID correspondiente. Pulsar Siguiente.

edu.red

edu.red

Indicar la ruta en la que se instalarán por defecto los archivos de la base de datos. Es conveniente que esta carpeta esté en una unidad distinta a la de la carpeta Home de Oracle, para acelerar el rendimiento. Esta carpeta se suele llamar OraData.

edu.red

Indicar el juego de caracteres que se utilizará en la base de datos. Normalmente se toma el juego de caracteres que utiliza el sistema operativo. Este dato si se rellena mal ocasiona que algunos de nuestros caracteres nacionales, nunca se muestren adecuadamente.

edu.red

Tras aceptar el cuadro anterior se nos muestra un resumen de la instalación. Tras este resumen comienza la copia de los archivos en nuestro disco duro. Este es el paso más largo, se pueden tardar bastantes minutos (incluso alguna hora) en completarse).

En segundo plano se configurarán los servicios de red necesarios para el funcionamiento de Oracle, la base de datos y el servidor http de Oracle. (Ver imagen anterior).

En cuanto se instala la base de datos y se lanza la instancia asociada a ella (la instancia es la base de datos en ejecución, desde ese instante al arrancar Windows la instancia estará en memoria salvo que la detengamos) se nos piden las contraseñas asociadas a los usuarios administrativos SYS y SYSTEM. Es muy importante recordarlas y no perderlas.

edu.red

Tras el paso anterior se lanza el Agente de Oracle (Oracle Intelligent Agent) y el servidor http. Al final se indicarán los puertos necesarios para comunicar con el servidor http de Oracle (añadiendo el texto /isqlplus a esa dirección se podrá conectar desde un navegador con el servidor Oracle vía http).

Prueba de la instalación

Para comprobar si la instalación es correcta, se debe hacer lo siguiente.

Ir al grupo de programas de Oracle en Windows (normalmente Inicio-Programas-Oracle Home92) y hacer clic sobre Enterprise Manage Console (consola de administración).

Activar la casilla Iniciar en modo autónomo y aceptar el cuadro

edu.red

Desde el programa de administración, expandir el apartado Bases de datos. Aparecerán las bases que hemos creado, después se nos pedirá un nombre de usuario y contraseña para conectarnos con la base de datos. Inicialmente habrá que conectar con el usuario SYSTEM y la contraseña que especificamos para dicho usuario en la instalación indicar que conectamos como SYSDBA (administrador) lo que nos permite realizar todo tipo de tareas.

Creación de la cadena de conexión:

edu.red

edu.red

edu.red

edu.red

edu.red

Creación de tablespace.

Para crear un tablespace seleccionamos almacenamiento, tablespace. En tablespace damos clic derecho nuevo y proseguimos colocando el nombre del tablespace.

edu.red

Creación de usuarios.

Para crear un usuario expandimos seguridad– damos clic derecho sobre usuarios y damos clic en nuevo.

Luego colocamos el nombre, la contraseña. Luego seleccionamos la pestaña rol y elegimos connect y resourse, por ultimo seleccionamos la pestaña sistema y seleccionamos créate database link, cluster, dimensión, public database, public synony y creamos el usuario.

edu.red

Creación de un esquema.

Un esquema son las tablas de la base de datos, para crear un esquema seleccionamos el usuario que creamos. Damos clic derecho y seleccionamos nueva tabla y proseguimos con el ingreso de los campos.

edu.red

Creación de una secuencia.

La secuencia se realiza para realizar números automáticos ya que Oracle no posee la función de auto numérico.

Para crear una secuencia nos dirigimos a esquemas elegimos el usuario, seleccionamos secuencias, una vez seleccionado damos clic derecho y colocamos nueva secuencia. Después ingresamos el nombre de la secuencia y colocar el rango.

edu.red

Creación de un trigger.

Para crear un trigger seleccionamos esquema, el usuario con el que se está trabajando, seleccionamos tablas y en disparadores damos clic derecho y seleccionamos nuevo.

edu.red

Prueba de consulta a través de Oracle sql plus.

edu.red

Linkografía

http://es.wikipedia.org/wiki/Oracle

http://www.programatium.com/bd/oracle.htm

Copyright-Copyleft: © Jorge Sánchez 2004

 

 

 

Autor:

Fabricio Pinto

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES

edu.red

Facultad: sistemas Mercantiles

Especialidad: Ingeniería en Sistemas

Nivel: Noveno

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente