La siguiente tabla muestra los diferentes tipos de datos utilizados por Oracle.
Tipo de Dato Descripción
VARCHAR2(n) Dato de caracteres de longitud variable
CHAR(n) Dato de caracteres de longitud fija
NUMBER(p,s) Dato numérico de longitud variable
DATE Valores de fecha y hora
LONG Dato de caracteres de longitud variable de hasta 2 gigabytes
CLOB Dato de caracteres de hasta 4 gigabytes
RAW y LONG RAW Dato raw binario
BLOB Dato binario de hasta 4 gigabytes
BFILE Dato binario almacenado en un archivo externo; hasta 4 Gigabytes
ROWID Sistema numérico de base 64 que representa la dirección única de una fila en su tabla.
Debe recordar que:
No se copia una columna LONG cuando se crea una tabla utilizando una subconsulta.
No se puede incluir una columna LONG en una cláusula GROUP BY u ORDER BY.
Sólo se puede utilizar una columna LONG por tabla.
No se pueden definir restricciones en una columna LONG.
Puede utilizar una columna CLOB en lugar de una columna LONG.
jueves, 19 de julio de 2007
Tipos de datos Oracle
Publicado por
edinson
en
11:07
0
comentarios
Crear una tabla a partir de un select
Se pueden crear tablas a partir de una sentencia SELECT utilizando la cláusula AS.
Sintaxis:
CREATE TABLE nombre _ tabla [(columna1, columna2,…)]AS sentencia_select;
Ejemplo:
- Cree la tabla depto1 a partir de una sentencia Select de la tabla Dept
CREATE TABLE depto1 As Select * From dept;
http://liang.armstrong.edu:5560/isqlplus
Veamos la estructura de la tabla depto2:
Describe depto2;
Veamos los datos:
SELECT * From depto2;
Debe recordar que:
La tabla se crea con los nombres de columna especificados y las filas recuperadas por la sentencia SELECT se insertan en la tabla.
La definición de columna sólo puede contener el nombre de columna y el valor por defecto.
Si no se proporcionan especificaciones de columna, los nombres de columna de la tabla son los mismos que los nombres de columna de la subconsulta.
Las reglas de integridad no se transmiten a la nueva tabla, sólo las definiciones de tipo de dato de columna.
Publicado por
edinson
en
10:48
0
comentarios
Creación de Tablas
Los requisitos de la cláusula CREATE TABLE son:
- Nombre de la tabla
- Nombre de la columna
- Tipo de dato de la columna
Sintaxis:
CREATE TABLE [usuario.] tabla
({columna1 tipo_dato [DEFAULT expr][constraint_colum]}[, {columna2 tipo_dato [DEFAULT expr][constraint_colum]}]…);
Debe recordar que:
Las tablas se pueden crear en cualquier momento, incluso mientras los usuarios utilizan la base de datos.
No es necesario especificar el tamaño de las tablas, ya que se define en última instancia por la cantidad de espacio asignado a la base de datos entera. Sin embargo, es importante estimar cuánto espacio va a utilizar una tabla con el tiempo.
La estructura de tabla se puede modificar en línea.
Ejemplo:
- Crear la tabla departamento con los siguientes campos: cod_dpto, nombre, ubicación. La Primary Key en el campo cod_dpto.
CREATE TABLE departamento
(cod_dpto NUMBER(2) Primary Key,
nombre VARCHAR2(14),
ubicacion VARCHAR2(13));
http://liang.armstrong.edu:5560/isqlplus
Ejemplo:
- Crear la tabla departamento1 con los siguientes campos: cod_dpto, nombre y ubicación. La Primary Key para el campo cod_dpto como una continuación de la lista de los campos.
CREATE TABLE departamento1
(cod_dpto NUMBER(2),
nombre VARCHAR2(14),
ubicacion VARCHAR2(13),
Primary Key (cod_dpto));
Ejemplo:
- Crear la tabla departamento2 con los mismos campos del ejercicio superior; para crear la Primary Key deberá alterar la tabla.
CREATE TABLE departamento2
(cod_dpto NUMBER(2),
Nombre VARCHAR2(14),
Ubicacion VARCHAR2(13));
Ahora alteramos la tabla para añadirle la Primary Key.
Alter table departamento2
Add Primary Key (cod_dpto);
Reglas de nomenclatura:
- El nombre debe tener como longitud de 1 a 30 caracteres con el primer carácter alfabético A – Z, a – z, 0 – 9, _
- $ y # también son validos pero no se sugieren
- No debe ser una palabra reservada de Oracle.
- No debe ser igual al nombre de otro objeto dentro del mismo usuario de Oracle.
Debe recordar que:
Como la creación de una tabla es una sentencia DDL (Data Definition Language), tiene lugar una validación automática cuando se ejecuta esta sentencia.
Los nombres de la tabla son los mismos ya sean escritos en mayúscula o minúscula.
Publicado por
edinson
en
10:23
0
comentarios
martes, 17 de julio de 2007
Definición de variables de Usuario
En iSql*Plus es posible definir variables que se pueden utilizar más adelante en el propio programa. Piense en una variable como en una columna de tabla con una sola fila de datos. Al igual que la columna de una tabla, una variable tiene asignada un tipo de dato (númerico o de caracteres) y contiene datos. Lo importante aquí es es recordar que en un archivo de órdenes puede tener una o más consultas SQL.
Comando define:
DEFINE empleado=’KING’
http://liang.armstrong.edu:5560/isqlplus
Confirmación de la variable:
DEFINE empleado
Listar la definición de todas las variables:
DEFINE
Eliminar Variable de Usuario:
Comando Undefine
UNDEFINE empleado
Debe recordar que:
Todas las variables, independientemente del tipo de dato asignado, son datos de tipo carácter.
Las palabras define y undefine se pueden abreviar a def y undefine.
Variable de Sustitución
Muchas veces, cuando se ejecuta una consulta, no se conoce de antemano qué valor quiere utilizar el usuario para el ínforme (o programa), sino que se desea introducir un valor cuando se inicia la realización del ínforme. Las variables de sustitución son variables de usuarios precedidos por los símbolos & o &&.
Ejemplo:
- Defina 2 variables de usuario
DEFINE columna=job
DEFINE tabla=emp
Ejemplo:
Select &columna, sal From &tabla
Order By &columna;
En Oracle 10g se presenta las línea old y new cuando sustituye los valores de las variables.
Se puede suprimir esta presentanción con la orden iSql*Plus Set Verify Off ó ( Set Ver Off).
Las variables pueden en cualquier parte de un comando SQL o iSql*Plus excepto como primera palabra del comando.
Cuando se define una variable con convenio &&, en este caso se evita que Oracle pida multiples veces el valor de una variable (Oracle implícitamente define la variable).
Para dar un valor diferente a la variable definida con &&, hay que eliminar (undefine) la variable.
Publicado por
edinson
en
8:15
0
comentarios
lunes, 16 de julio de 2007
Ordenamiento de Filas
La Cláusula ORDER BY permite ordenar:
- Ascendentemente
- Descendentemente
- Por multiples columnas
- Por la posición de las columnas
Debe recordar que:
Si no se utiliza la cláusula ORDER BY, el orden no está definido y es posible que el Servidor Oracle no recupere las filas en el mismo orden dos veces para la misma consulta.
Utilice esta cláusula para mostrar las filas en un orden específico.
- Mostrar el nombre, el cargo y el salario de todos los empleados que trabajen en el departamento 10.
Ordenados ascendentemente por salario.
Select ename, job, sal From emp
Where deptno=10
Order By sal;
http://liang.armstrong.edu:5560/isqlplus
- Mostrar el nombre, el cargo y el salario de todos los empleados que trabajen en el departamento 10.
Ordenados descendentemente por salario.
Select ename, job, sal From emp
Where deptno=10
Order By sal Desc;
- Mostrar el nombre, el cargo y el salario de todos los empleados; ordenando el resultado ascendentemente por cargo, si existe más de un empleado con el mismo cargo ordenarlos de forma descendente por salario.
Select ename, job, sal From emp
Order By job, sal Desc;
Por la posición de las columnas:
- Mostrar el nombre del empleado, el cargo y el salario de todos los empleados del departamento 20, ordenados ascendentemente por el salario (la columna 3).
Select ename, job, sal From emp
Where deptno = 20
Order By 3;
Publicado por
edinson
en
21:20
0
comentarios
domingo, 15 de julio de 2007
Reglas de Prioridad
Las reglas de prioridad determinan el orden en el que se evalúan y se calculan las expresiones.
La tabla enumera el orden de prioridad por defecto.
1 Operadores aritméticos
2 Operador de Concatenación
3 Condiciones de comparación
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 Condición lógica NOT
7 Condición lógica AND
8 Condición lógica OR
Prioridad del Operador AND
- En este ejemplo, tenemos dos condiciones:
• La primera condición es que el cargo es PRESIDENT y el salario mayor que 4000. - La segunda condición es que el cargo es SALES.
Select ename, job, sal From emp
Where job= 'SALES' OR job = 'PRESIDENT' AND sal > 4000;
http://liang.armstrong.edu:5560/isqlplus
La sentencia SELECT indica lo siguiente:
“Seleccionar la fila si un empleado es presidente (PRESIDENT) y gana más de 4000 o si el empleado es vendedor (SALES).”
Uso de Paréntesis
- En este ejemplo, tenemos dos condiciones:
• La primera condición es que el cargo es PRESIDENT o SALES.
• La segunda condición es que el salario es mayor que 4000.
Select ename, job, sal From emp
Where (job = 'SALES' OR job = 'PRESIDENT') AND sal> 4000;
La sentencia SELECT indica lo siguiente:
“Seleccionar la fila si un empleado es presidente (PRESIDENT) o vendedor (SALES) y gana más de 4000.”
Debe recordar que:
Puede sustituir el orden por defecto escribiendo entre paréntesis las expresiones que desee calcular en primer lugar.
Publicado por
edinson
en
9:53
0
comentarios
Operadores Lógicos
Las operadores lógicos combinan el resultado de dos condiciones componentes para producir un resultado único basado en ellas o invierten el resultado de una única condición.
Se devuelve una fila sólo si el resultado global de la condición es verdadero.
En SQL están disponibles tres operadores lógicos:
• AND
• OR
• NOT
Puede utilizar varias condiciones en una cláusula WHERE utilizando los operadores AND y OR.
El Operador AND
- En el ejemplo, las dos condiciones deben ser verdaderas para que se seleccione un registro.
Select empno, ename, job, sal From emp
Where sal >=1000 AND ename Like '%SC%';
http://liang.armstrong.edu:5560/isqlplus/
- En el ejemplo, cualquiera de las dos condiciones puede ser verdadera para que se seleccione un registro.
Select empno, ename, job, sal From emp
Where sal >=3000 OR ename Like '%M%';
El Operador NOT
- El ejemplo nos muestra el apellido y el cargo de todos los empleados que no sean ANALYST, CLERK o SALESMAN.
Select ename, job From emp
Where job NOT In ('ANALYST', 'CLERK', 'SALESMAN');
Debe recordar que:
El operador NOT también se puede utilizar con otros operadores SQL, como IN, BETWEEN, LIKE y NULL.
Publicado por
edinson
en
9:29
0
comentarios
