Esquemas oracle

Solo disponible en BuenasTareas
  • Páginas : 26 (6464 palabras )
  • Descarga(s) : 0
  • Publicado : 17 de mayo de 2010
Leer documento completo
Vista previa del texto
Creación de esquemas

En SQL*Plus es posible usar todos los comandos básicos de SQL con algunas restricciones de sintaxis. Para crear una tabla, debe teclearse en la linea de comandos:
CREATE TABLE nombretabla (
{nombre_col tipo [DEFAULT expr] [rest_columna] ...
|rest_tabla}
[,{nombre_col tipo [DEFAULT expr] [rest_columna] ...
|rest_tabla}] ...
);
Donde nombretabla representa el nombreque se le dara a la relación que se está creando; nombre_col es el nombre de un atributo, y tipo indica el tipo de datos del mismo; DEFAULT expr representa el valor por defecto de un atributo (el valor que se asigna cuando no se especifican datos de entrada para ese atributo); rest_columna son las restricciones a nivel de atributo que se pueden colocar; y rest_tabla las restricciones a nivel de larelación (por ejemplo, si la clave está constituida por un solo atributo, se puede indicar como restricción a nivel de columna, en cambio, si es compuesta, se indica como restricción a nivel de tabla).
Un ejemplo lo tenemos con:
SQL> CREATE TABLE empleado (
2> ci NUMBER(8) CONSTRAINT pk_empleado PRIMARY KEY,
3> nombre VARCHAR2(20) NOT NULL
4> CONSTRAINT may CHECK (nombre=UPPER(nombre)),
5>cargo VARCHAR2(9),
6> jefe NUMBER CONSTRAINT fk_jefe REFERENCES empleado(ci),
7> ingreso DATE,
8> sueldo NUMBER(10,2),
9> dpto NUMBER(2) NOT NULL
10> CONSTRAINT fk_dpto REFERENCES depto(nro)
11> );
Note que mientras no se cierra la sentencia completa de SQL (con punto y coma) aparece un prompt con el número de linea que se esta escribiendo. La sentencia solo se ejecuta luego de escribir elpunto y coma y presionar [ENTER].
Note además que los comandos en SQL no son case sensitive, por lo cual no habra diferencia entre una tabla empleado y una tabla EMPLEADO.
La sentencia anterior crea una relación empleado, con las siguientes características:
cedula: Entero de longitud 8, clave primaria;
nombre: Cadena de caracteres de hasta 20 caracteres, no puede contener nulos, y todas lasletras deben ser mayusculas;
cargo: Cadena de caracteres de hasta 9 caracteres, sin restricciones;
jefe: Número de cédula de identidad del jefe, es clave foránea de la misma relación en el atributo ci;
ingreso: Fecha en la cual comenzó a trabajar en la empresa;
sueldo: Número en punto flotante, de hasta diez dígitos, incluyendo dos decimales, que indica el sueldo mensual del empleado;
dpto:Número del departamento para el cual trabaja el empleado, es clave foránea del atributo nro, de la relación depto.
Tipos de datos
Tipo Descripción
CHAR(n) Cadena de caracteres de longitud n. Una vez que se declara, se reserva espacio para n caracteres, aun cuando no se usen todos.
VARCHAR2(n) Cadena de caracteres de longitud n. Se define un máximo de n caracteres, pero solo se usa el espaciocorrespondiente a los caracteres ocupados
VARCHAR(n) Exactamente lo mismo que VARCHAR2(n)
NUMBER(p,s) Número en punto flotante, de p dígitos, de los cuales s son decimales. El parámetro s puede ser omitido, con lo cual se considerará que su valor es 0. El valor por defecto para p es 38.
DATE Fecha comprendida entre Enero 1, 4712 aC y Diciembre 31, 4712 dC.
Inserción de tuplas
Para insertar tuplasen una relación se usa la instrucción INSERT de SQL:
SQL> INSERT INTO tabla VALUES (valor1, valor2, . . ., valorN);
Por ejemplo, para insertar una nueva tupla en la relación empleado, basta con escribir:
SQL> INSERT INTO empleado VALUES (
2 12325432, 'Juen Jose', 'Gil', 125000.00
3 );
Para la inserción de fechas, debe especificarse el formato en que se está intorduciendo la fecha, usando paraello:
TO_DATE ("string de fecha", "formato")
por ejemplo, si se quisiera ingresar en la relación empleado anterior, un atributo con la fecha de nacimiento, deberia agregarse la misma, de la siguiente manera:
SQL> INSERT INTO empleado VALUES (
2 12325432, 'Juen Jose', 'Gil',
3 125000.00, TO_DATE ('15-02-72', 'DD-MM-YY')
4 );
Si se quisiera ademas, agregar la hora de nacimiento, deberia...
tracking img