Curso Oracle Rápido I

6

Click here to load reader

description

bd

Transcript of Curso Oracle Rápido I

Page 1: Curso Oracle Rápido I

José Navero

Curso de Oracle

Curso Oracle Rápido

http://www.namocode.com

http://devthisblog.wordpress.com/

Page 2: Curso Oracle Rápido I

http://www.namocode.com

http://devthisblog.wordpress.

com/

2

Curso Oracle Rápido I – Comenzando Oracle.

Hace unos días, puse un pequeño índice sobre los temas que voy a tratar en el curso, así que

ahora que tengo un momento voy escribir lo que sería el primer capítulo.

Índice del capítulo.

Índice del capítulo. .................................................................................................................... 2

¿Qué es Oracle? ........................................................................................................................ 2

Comenzando, DDL .................................................................................................................... 2

Tipos de datos........................................................................................................................... 3

Creación de tablas .................................................................................................................... 3

Restricciones............................................................................................................................. 3

Anexo del capitulo .................................................................................................................... 5

¿Qué es Oracle?

Una definición Breve de Oracle, nos vendrá bien:

Según Wikipedia:

“Se considera a Oracle como uno de los sistemas de bases de datos más completos,

destacando:

- soporte de transacciones

- estabilidad

- escalabilidad

- Soporte multiplataforma.

Su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco,

recientemente sufre la competencia del Microsoft SQL Server de Microsoft y de la oferta de

otros RDBMS con licencia libre como PostgreSQL, MySql o Firebird. Las últimas versiones de

Oracle han sido certificadas para poder trabajar bajo GNU/Linux.”

Básica y brevemente, es un potente gestor de bases de datos.

Comenzando, DDL

Lenguaje de definición de Datos (Languaje Data Definition (DDL)) es un lenguaje que sirve para

gestionar la organización de la base de datos además de otros objetos como por ejemplo,

creación, modificación y borrado de las tablas, índices, disparadores, procedimientos

almacenados, etc.

Page 3: Curso Oracle Rápido I

http://www.namocode.com

http://devthisblog.wordpress.

com/

3

Tipos de datos

Hay multitud de tipos de datos que se pueden utilizar en DDL, a continuación expongo algunos

de los tipos que vamos a utilizar. Si se desea información adicional sobre todos los tipos de

datos existentes convendría consultar la documentación de la versión instalada de Oracle.

Números enteros, como pueden ser (integer o smallint) Cadenas: varchar (tamaño), char(tamaño) Números: Number(precisión, escala) ejemplo: number(3,2) podría almacenar 333,22. Si la escala es negativa, redondea hacia el 0 (por arriba o por abajo). Fecha: Date, esta variable almacena siglo/año/mes/dia/hora/min/seg. Estos son los principales tipos de datos con los que trabajaremos en este curso. Solamente

debemos recordar que hay multitud más.

Creación de tablas

Para crear una tabla utilizamos la sentencia Create table, la sentencia es la siguiente:

Create table [esquema.]tabla( Columna tipodato [Default][,…] …);

Donde:

Esquema: Es la estructura lógica que se refiere directamente a la base de datos. Tabla: Es la tabla que vamos a crear Columna: indica las columnas que contendrán la tabla Tipodato: es el tipo de dato y su longitud para una columna concreta. Defaullt: Especifica un tipo de dato por defecto. Además podemos añadirle características que veremos más adelante en el curso.

Ejemplo:

Create table equipo ( Denom varchar(15), País varchar(15), N_corredores number(3),

);

Restricciones

Las restricciones permiten prevenir la entrada de datos no validos en las tablas, estas restricciones pueden ser las siguientes: Not Null, Unique, Primary key, Foreign key, check. Estas restricciones se pueden aplicar durante la creación de la tabla o bien en cualquier otro momento. Para ello usamos constraint Si queremos crear una restricción a la hora de crear una tabla, usamos create table de la siguiente forma:

Page 4: Curso Oracle Rápido I

http://www.namocode.com

http://devthisblog.wordpress.

com/

4

CREATE TABLE Nombre_Tabla ( Campo1 tipoCampo [CONSTRAINT nombre-restricción] [NOT NULL] [UNIQUE] [PRIMARY KEY] [DEFAULT valor] [REFERENCES Nombre_Tabla [(Campo [,Campo])] [ON DELETE CASCADE]] [CHECK (condición)] ... CampoN tipoCampo …[NOT NULL]… ) [TABLESPACE espacio_de_tabla];

O bien, CREATE TABLE nombre_tabla ( Campo1 TIPO_CAMPO, Campo2 TIPO_CAMPO, … Campoi TIPO_CAMPO, … [CONSTRAINT nombrerestricción] {[UNIQUE] | [PRIMARY KEY] (Campo [,Campo])}, [CONSTRAINT nombrerestricción] [FOREIGN KEY (Campo [,Campo]) REFERENCES nombre_tabla [(Campo [,Campo])] [ON DELETE CASCADE]], [CONSTRAINT nombrerestricción][CHECK (condición)], … ) [TABLESPACE espacio_de_tabla];

Para definir la primary key, foreign key o hacer checks (mostrado posteriormente en el manual) se usa constraint, sin embargo para campos not null o unique, podemos ponerlos después del tipo de dato. Ejemplos:

Create table equipo ( Denom varchar(15) primary key, País varchar(15), N_corredores number(3),

); Create table prestamo (

cod_socio number(6), isbn varchar2(16), fecha_prestamo date, constraint pk_prestamo primary key(cod_socio, isbn), constraint fk1_prestamo foreign key(isbn) references libros, constraint fk2_prestamo foreign key(cod_socio) references socios

);

Page 5: Curso Oracle Rápido I

http://www.namocode.com

http://devthisblog.wordpress.

com/

5

Anexo del capitulo

Tipos de datos en Oracle:

TIPO DE DATOS CARACTERÍSTICAS

INTEGER Entero.

SMALLINT Igual a Integer.

REAL Número en coma flotante; no se predetermina el número de cifras decimales.

FLOAT(n) Número en coma flotante de al menos n dígitos.

VARCHAR2(tamaño) Almacena cadenas de caracteres de longitud variable, la longitud se expresa en

tamaño. La longitud máxima es de 4.000 caracteres (bytes), y la mínima es de 1. (No

rellena con blancos los espacios sobrantes) Si se produce una cadena de mayor

longitud a la fijada, Oracle devolverá un error.

CHAR(tamaño) Almacena caracteres con una longitud fija especificada en tamaño. La longitud

máxima es de 2.000 bytes. El tamaño mínimo y por defecto es de 1 byte.

NUMBER(precisión, escala) Almacena datos numéricos, tanto enteros como decimales, con o sin signo. Precisión

representa el número total de dígitos que va a tener el dato que se define; el rango va

de 1 a 38. Escala representa el número de dígitos a la derecha del punto decimal. El

rango va de -84 a 127. Si se especifica una escala negativa, el número es

redondeado tantos dígitos a la izquierda del punto decimal como se indicó en la

escala. Si el número no tiene decimales, se puede omitir la escala.

El carácter con el que se separa la parte entera de la decimal (por defecto el punto)

se puede modificar mediante el parámetro NLS_NUMERIC_CHARACTERS, con la

orden ALTER SESSION.

LONG Almacena cadenas de caracteres de longitud variable que contengan hasta 2

gigabytes de información. Se puede usar este tipo para almacenar textos muy

grandes. Este tipo de datos está sujeto a algunas restricciones: sólo se puede definir

una columna LONG por tabla, no pueden aparecer en restricciones de integridad

(constraints), no sirve para indexar, una función almacenada no puede devolver un

valor LONG, no se puede utilizar como argumento de funciones, no se puede

referenciar como subconsulta en la creación de tablas ni inserción de filas, las

variables o argumentos de PL/SQL no se pueden declarar como tipo LONG, no es

posible su uso en cláusulas WHERE, GROUP BY, ORDER BY, CONNECT BY o

DISTINCT, ni con operaciones de UNION, INTERSECT y MINUS.

DATE Almacena información de fechas y horas. Para cada tipo DATE se almacena la

siguiente información: Siglo/Año/Mes/Día/Hora/Minutos/Segundos. Por omisión, el

calor para el formato de la fecha se especifica con el parámetro

NLS_DATE_FORMAT, y es una cadena de caracteres, como ésta “DD/MM/YY”, que

representa día del mes/dos dígitos del mes/dos últimos dígitos del año. El formato de

la fecha se puede cambiar mediante la orden ALTER SESSION y variando el

parámetro NLS_DATE_FORMAT.

RAW(tamaño) Almacena datos binarios. Es similar al tipo VARCHAR2, con la diferencia de que

maneja cadenas de bytes en lugar de cadenas de caracteres. El tamaño máximo es

de 2.000 bytes.

LONG ROW Almacena datos binarios. Es similar al tipo LONG; se emplea para el almacenamiento

de gráficos, sonidos, etc. El tamaño máximo es de 2 gigabytes.

ROWID Cadena hexadecimal que representa la dirección de una fila en su tabla.

Page 6: Curso Oracle Rápido I

http://www.namocode.com

http://devthisblog.wordpress.

com/

6

NVARCHAR2(tamaño) Tipo similar al VARCHAR2 solo que el tamaño de un carácter depende de la elección

del juego de caracteres. El máximo tamaño es de 4.000 bytes.

NCHAR(tamaño) Tipo similar al CHAR solo que el tamaño de un carácter depende de la elección del

juego de caracteres. El máximo tamaño es de 2.000bytes.

CLOB Similar a LONG, se usa para objetos carácter. El tamaño máximo es de 4 gigabytes.

NCLOB Similar al anterior pero el tamaño del carácter depende del juego de caracteres

BLOB Similar a LONG ROW, se usa para objetos binarios. El tamaño máximo es de 4 GB