Está en la página 1de 26

USANDO SENTENCIAS

DDL PARA CREAR Y


MANEJAR TABLAS
Objetivos de la Clase

 Consideraciones para crear una tabla en la Base de Datos.


 Tipos de datos válidos para las columnas de la tabla.
 Cómo incluir los diferentes tipo de Constraints para crear una tabla.
 Cómo modificar la estructura de una tabla existente.
 Cómo cambiar el nombre de un objeto de la Base de Datos.
 Cómo eliminar una tabla de una Base de Datos.
Objetos de Bases de Datos

TABLA

VIS ICE
TA ÍND

E NCIA SINÓ
NIM
U
SEC O
Creando Tablas

Deben tener entre 1 a


30 caracteres
pu eden
D
com eben No ener
enza cont s en
una r con cio
letr espa nco
a bla

No d
eben
nt ener pala se
nc o bras r
Debe a-z, 0-9, reser
A-Z, $ y # vada
s
_,
No deben tener el
mismo nombre de otro
objeto del mismo
usuario
Creando Tablas

 Utilizar CREATE TABLE para crear tablas en la Base de Datos.


 Sintaxis:

CREATE TABLE [esquema.]tabla


(
columna tipo_dato [DEFAULT expresión] [, ...]
);
Creando Tablas utilizando la opción DEFAULT

 Ejemplo:
CREATE TABLE dept
(deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13),
create_date DATE DEFAULT SYSDATE);
Tipos de Datos para las columnas de las Tablas
Tipos de Datos para las columnas de las Tablas
Columna Auto Incrementable (Identity)

 A contar de la versión Oracle 12c, se puede utilizar un nuevo atributo a nivel


de columna de la tabla, conocido como identidad a nivel de columna
(Identity Column). Esto permite que una columna pueda autoincrementarse
automáticamente, como se hacen en otros motores de base de datos.
 Una tabla puede tener sólo una columna IDENTITY .
 En las columnas IDENTITY no se pueden modificar los valores que se
definieron para realizar el autoincremento.
Columna Auto Incrementable (Identity)

 Sintaxis:

GENERATED [ ALWAYS| BY DEFAULT | [ON NULL ] ]


AS IDENTITY [ (IDENTITY OPTIONS) ]
Columna Auto Incrementable (Identity)

 Ejemplo:

CREATE TABLE EMPLEADO


(ID NUMBER(10) GENERATED ALWAYS AS IDENTITY
MINVALUE 1
MAXVALUE 999999
START WITH 10
INCREMENT BY 1,
Nombre VARCHAR2(15) NOT NULL,
Ape_Paterno VARCHAR2(30) NOT NULL,
Ape_Materno VARCHAR2(30) NOT NULL,
CONSTRAINT PK_EMPLEADO PRIMARY KEY(ID)
);
Incluyendo Constraints a una Tabla

PRIMARY
KEY

FOR
EI LL
KEY G N NO T NU

CONSTRAINTS
DE UNA
TABLA

IQ UE CHE
UN C K
Incluyendo Constraints a una Tabla

 CONSTRAINT a nivel de columna:

columna tipo_de_dato [CONSTRAINT nombre_constraint] tipo_de_constraint,

 Ejemplo:

CREATE TABLE EMPLEADO


(ID NUMBER(6) CONSTRAINT PK_EMPLEADO PRIMARY KEY,
Nombre VARCHAR2(20),
Ape_Paterno VARCHAR2(25),
... ,
ID_Departamento NUMBER(4)
);
Incluyendo Constraints a una Tabla

 CONSTRAINT a nivel de tabla:

columna tipo_de_dato, ...


[CONSTRAINT nombre_constraint] tipo_de_constraint (columna, ...),

 Ejemplo:

CREATE TABLE EMPLEADO


(ID NUMBER(6),
Nombre VARCHAR2(20),
Ape_Paterno VARCHAR2(25),
... ,
ID_Departamento NUMBER(4),
CONSTRAINT PK_EMPLEADO PRIMARY KEY (ID)
);
Constraint NOT NULL

 Ejemplo:

CREATE TABLE EMPLEADO


(ID NUMBER(6),
Nombre VARCHAR2(20),
Ape_Paterno VARCHAR2(25) CONSTRAINT Emp_Ape_Paterno NOT NULL,
fono VARCHAR2(20),
fecha_contrato DATE NOT NULL,
…,
ID_Departamento NUMBER(4)
);
Constraint PRIMARY KEY (Clave Primaria)
 Creación a nivel de columna:

CREATE TABLE EMPLEADO


(ID NUMBER(6) CONSTRAINT PK_EMPLEADO PRIMARY KEY,
Nombre VARCHAR2(20),
Ape_Paterno VARCHAR2(25),
... ,
ID_Departamento NUMBER(4)
);

 Creación a nivel de tabla:


CREATE TABLE EMPLEADO
(ID NUMBER(6),
Nombre VARCHAR2(20),
Ape_Paterno VARCHAR2(25),
... ,
ID_Departamento NUMBER(4),
CONSTRAINT PK_EMPLEADO PRIMARY KEY (ID)
);
Constraint FOREIGN KEY (Clave Foránea)
 Se puede definir a nivel de columna o tabla (respetivamente):

CREATE TABLE EMPLEADO


(ID NUMBER(6) CONSTRAINT PK_EMPLEADO PRIMARY KEY,
Nombre VARCHAR2(20),
Ape_Paterno VARCHAR2(25),
... ,
ID_Departamento NUMBER(4) CONSTRAINT FK_EMP_DEPT REFERENCES
DEPARTAMENTO (ID_Departamento)
);

CREATE TABLE EMPLEADO


(ID NUMBER(6),
Nombre VARCHAR2(20),
Ape_Paterno VARCHAR2(25),
... ,
ID_Departamento NUMBER(4),
CONSTRAINT FK_EMP_DEPT FOREIGN KEY (ID_Departamento)
REFERENCES DEPARTAMENTO (ID_Departamento)
);
Constraint CHECK

 Ejemplo:

...,
sueldo NUMBER(2) CONSTRAINT ck_sueldo_emp CHECK (sueldo > 0),
...
Modificando una Tabla

 Agregar una columna:

ALTER TABLE nombre_tabla


ADD (columna tipo_de_dato [DEFAULT expresión]
[, columna tipo_de_dato]...);

 Modificar una columna:


ALTER TABLE nombre_tabla
MODIFY (columna tipo_de_dato [DEFAULT expresión]
[, columna tipo_de_dato]...);

 Eliminar una columna:


ALTER TABLE nombre_tabla
DROP (columna);
Agregando una columna a una Tabla

 Ejemplo: ………
………
………
EMPLOYEES ………
………
………

 Para agregar una columna a la tabla se debe utilizar la cláusula ADD:

ALTER TABLE EMPLOYEES


ADD (fecha_nacimiento DATE);

 La nueva columna pasa a ser la última de la tabla:


………
………
………
EMPLOYEES ………
………
………
Modificando una columna a una Tabla

 Ejemplo:

ALTER TABLE employees


MODIFY (last_name VARCHAR2(30));
Cambio de Nombre de un Objeto

 Sintaxis:

RENAME nombre_actual_objeto TO nombre_nuevo_objeto;

 Ejemplo:

RENAME employees TO empleado;


Eliminación de una Tabla

 Sintaxis:

DROP TABLE nombre_tabla;

 Ejemplo:

DROP TABLE EMPLEADO;


Eliminación de una Tabla

 Ejemplo:

DROP TABLE DEPARTAMENTO;

 ¿Por qué se produce el error?


Eliminación de una Tabla

 Sintaxis:

DROP TABLE nombre_table CASCADE CONSTRAINTS;

 Ejemplo:

DROP TABLE DEPARTAMENTO CASCADE CONSTRAINTS;


Resumen de la Clase

 Se describieron las consideraciones para crear una tabla en la Base de


Datos.
 Se describieron los tipos de datos válidos para las columnas de la tabla.
 Se describieron los diferentes tipos de Constraints y cómo incluirlas en
la creación de una tabla.
 Se utilizaron distintas operaciones para modificar una tabla existente.
 Se mostró cómo eliminar una tabla de una Base de Datos.

También podría gustarte