Capítulo7 Ejercicios

6
Capítulo 7: Manejando Tablas y Restricciones TABLAS CREATE TABLE PROFESOR( DNI NUMBER(5) PRIMARY KEY, NOMBRE VARCHAR2(150) NOT NULL, DIRECCION VARCHAR2(200) NOT NULL, TELEFONO NUMBER(10) NOT NULL, CARGO VARCHAR2(50) NOT NULL ); VISTAS CREATE VIEW VISTA_EJEMPLO AS( SELECT IDPRODUCTO, PRECIO, IDPROVEEDOR FROM PRODUCTO ); SECUENCIAS CREATE SEQUENCE "NOMBRE_DE_LA_BASE_DE_DATOS"."NOMBRE_DE_LA_SECUENCIA" MINVALUE 1 MAXVALUE 500 INCREMENT BY 1 START WITH 1 CACHE 20 ORDER NOCYCLE ; Ejemplo: CREATE SEQUENCE "ALMACEN"."DNI" MINVALUE 1 MAXVALUE 500 INCREMENT BY 1 START WITH 1 CACHE 20 ORDER NOCYCLE ; SINÓNIMOS CREATE OR REPLACE SYNONYM " NOMBRE_DE_LA_BASE_DE_DATOS "."NOMBRE_DEL_SINONIMO" FOR NOMBRE_DE_LA_BASE_DE_DATOS "." NOMBRE_DE_LA_TABLA "; Ejemplo: CREATE OR REPLACE SYNONYM "DISTRIBUIDORA"."SINONIMO1" FOR DISTRIBUIDORA"."CLIENTE";

Transcript of Capítulo7 Ejercicios

  • Cap tulo 7: Manejando Tablas y Restricciones

    TABLAS CREATE TABLE PROFESOR( DNI NUMBER(5) PRIMARY KEY, NOMBRE VARCHAR2(150) NOT NULL, DIRECCION VARCHAR2(200) NOT NULL, TELEFONO NUMBER(10) NOT NULL, CARGO VARCHAR2(50) NOT NULL );

    VISTAS CREATE VIEW VISTA_EJEMPLO AS( SELECT IDPRODUCTO, PRECIO, IDPROVEEDOR FROM PRODUCTO );

    SECUENCIAS CREATE SEQUENCE "NOMBRE_DE_LA_BASE_DE_DATOS"."NOMBRE_DE_LA_SECUENCIA"

    MINVALUE 1 MAXVALUE 500 INCREMENT BY 1 START WITH 1 CACHE 20 ORDER NOCYCLE ;

    Ejemplo:

    CREATE SEQUENCE "ALMACEN"."DNI" MINVALUE 1 MAXVALUE 500 INCREMENT BY 1 START

    WITH 1 CACHE 20 ORDER NOCYCLE ;

    SINNIMOS CREATE OR REPLACE SYNONYM " NOMBRE_DE_LA_BASE_DE_DATOS

    "."NOMBRE_DEL_SINONIMO" FOR NOMBRE_DE_LA_BASE_DE_DATOS "." NOMBRE_DE_LA_TABLA

    ";

    Ejemplo:

    CREATE OR REPLACE SYNONYM "DISTRIBUIDORA"."SINONIMO1" FOR DISTRIBUIDORA"."CLIENTE";

  • NDICES

    CREATE INDEX "NOMBRE_DE_LA_BASE_DE_DATOS"."NOMBRE_DEL_INDICE" ON "

    NOMBRE_DE_LA_BASE_DE_DATOS "."NOMBRE_DE_LA_TABLA" ("NOMBRE_DEL_ATRIBUTO")

    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

    TABLESPACE "USERS" ;

    Ejemplo:

    CREATE INDEX "DISTRIBUIDORA"."INDEX1" ON "DISTRIBUIDORA"."CLIENTE" ("NOMBRE")

    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

    TABLESPACE "USERS" ;

    CREANDO UNA TABLA CON TODOS LOS TIPOS DE DATOS CREATE TABLE EJEMPLO (

    SEXO CHAR (1), APODO NCHAR(50), NOMBRE VARCHAR2(100), EMPRESA NVARCHAR2(100), FOTO CLOB, LOGO NCLOB, TELEFONO NUMBER(10), FEC_NAC DATE, HORA_ENTRADA TIMESTAMP, HORA_SALIDA TIMESTAMP WITH TIME ZONE, HORA_JUNTA TIMESTAMP WITH LOCAL TIME ZONE, TIEMPO_EN_LA_EMPRESA INTERVAL YEAR(2) TO MONTH, TIEMPO_LABORADO INTERVAL DAY(2) TO SECOND, CODIGO RAW(100), DOCUMENTACION BLOB, PROYECTOS BFILE

    );

  • CREANDO TABLAS CREATE TABLE ASIGNATURA(

    ID_ASIG NUMBER(5) NOT NULL, ID_CARRERA NUMBER(5) NOT NULL, NOMBRE_ASIG VARCHAR2(200) NOT NULL, PRIMARY KEY (ID_CARRERA, NOMBRE_ASIG)

    );

    IDENTIFICADORES CREATE TABLE EMPLEADO#1_SUELDO$100(

    SEXO CHAR (1), APODO NCHAR(50), NOMBRE VARCHAR2(100)

    );

    VALORES POR DEFECTO create table Venta( folio number(8) primary key, fecha varchar2(50) DEFAULT SYSDATE, cantidad number(8) not null, idproducto varchar2(15) not null, precio_unitario number(10,2) not null, importe number(10,2) not null );

    AGREGANDO COMENTARIOS COMMENT ON TABLE Venta IS 'Presentacin de las ventas realizadas'; select*from user_tab_comments;

    CREANDO UNA TABLA DE OTRA TABLA CREATE TABLE RESUMEN_VENTAS AS SELECT FOLIO,FECHA,IMPORTE FROM VENTA;

  • ALTER TABLE

    AGREGANDO COLUMNAS ALTER TABLE VENTA ADD ID_EMPLEADO NUMBER(10);

    MODIFICANDO COLUMNAS ALTER TABLE VENTA MODIFY (ID_EMPLEADO NUMBER(5));

    ELIMINANDO COLUMNAS Elimina columnas aunque estn en uso:

    ALTER TABLE VENTA DROP COLUMN ID_EMPLEADO;

    Elimina columnas que NO estn en uso:

    ALTER TABLE VENTA SET UNUSED COLUMN ID_EMPLEADO;

    DROP TABLE DROP TABLE VENTA;

    RENOMBRAR TABLAS RENAME VENTA TO VENTAS;

  • RESTRICCIONES

    NOT NULL CREATE TABLE CLIENTE(

    IDCLIENTE VARCHAR2(15) NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, DIRECCION VARCHAR2(90) NOT NULL, TELEFONO NUMBER(20) NOT NULL

    );

    CHECK CREATE TABLE AUTOS(

    IDAUTO VARCHAR2(15) NOT NULL, MARCA VARCHAR2(50) NOT NULL, COLOR VARCHAR2(20) NOT NULL, PRECIO NUMBER(10,2) NOT NULL

    ); ALTER TABLE AUTOS ADD CONSTRAINT CK_PRECIO CHECK (PRECIO > 0);

    UNIQUE CREATE TABLE PROVEEDORES(

    IDPROVEEDOR NUMBER(5) NOT NULL, EMPRESA VARCHAR2(200) NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, DIRECCION VARCHAR2(100) NOT NULL, TELEFONO NUMBER(15) NOT NULL

    ); ALTER TABLE PROVEEDORES ADD CONSTRAINT CK_EMPRESA UNIQUE (EMPRESA);

    PRIMARY KEY CREATE TABLE PROVEEDORES(

    IDPROVEEDOR NUMBER(5) NOT NULL, EMPRESA VARCHAR2(200) NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, DIRECCION VARCHAR2(100) NOT NULL, TELEFONO NUMBER(15) NOT NULL

    ); ALTER TABLE PROVEEDORES ADD CONSTRAINT PK_PROVEEDORES PRIMARY KEY (IDPROVEEDOR);

  • FOREIGN KEY CREATE TABLE INVENTARIO( IDPRODUCTO NUMBER(5) NOT NULL, CANTIDAD NUMBER(10) NOT NULL, TALLA VARCHAR2(10) NOT NULL, COLOR VARCHAR2(20) NOT NULL ); ALTER TABLE INVENTARIO ADD CONSTRAINT FK1_INVENTARIOS FOREIGN KEY (IDPRODUCTO) REFERENCES PRODUCTO (IDPRODUCTO);

    RESTRICCIN DESABILITADA ALTER TABLE AUTOS ADD CONSTRAINT PK_AUTOS PRIMARY KEY(IDAUTO) DISABLE;

    ELIMINAR RESTRICCIONES ALTER TABLE AUTOS DROP CONSTRAINT PK_AUTOS;

    HABILITANDO Y DESABILITANDO RESTRICCIONES ALTER TABLE AUTOS DISABLE CONSTRAINT PK_AUTOS;

    ALTER TABLE AUTOS ENABLE CONSTRAINT PK_AUTOS;

    VALIDANDO RESTRICCIONES ALTER TABLE AUTOS ADD CONSTRAINT PK_AUTOS PRIMARY KEY(IDAUTO) DISABLE VALIDATE;

    ALTER TABLE AUTOS ADD CONSTRAINT PK_AUTOS PRIMARY KEY(IDAUTO) DISABLE NOVALIDATE;

    ALTER TABLE AUTOS ADD CONSTRAINT PK_AUTOS PRIMARY KEY(IDAUTO) ENABLE VALIDATE;

    ALTER TABLE AUTOS ADD CONSTRAINT PK_AUTOS PRIMARY KEY(IDAUTO) ENABLE NOVALIDATE;