Sei sulla pagina 1di 9

DDL Data Definition

Language

DDL Data Definition Language


El lenguaje de definicin de datos (en ingls Data Definition Language, o
DDL), es el que se encarga de la modificacin de la estructura de los
objetos de la base de datos. Existen cuatro operaciones bsicas: CREATE,
ALTER, DROP y TRUNCATE.

I. Creacin de Tablas
Sintaxis
CREATE [GLOBAL TEMPORARY] TABLE
[esquema.]tabla columna datatype [DEFAULT
expr] [column_constraint(s)] [,columna datatype
[,...]] table_constraint table_ref_constraint [ON
COMMIT {DELETE|PRESERVE} ROWS]
storage_options [COMPRESS int|NOCOMPRESS]
[LOB_storage_clause][varray_clause]
[nested_storage_clause] [XML_type_clause]
Partitioning_clause [[NO]CACHE]
[[NO]ROWDEPENDENCIES] [[NO]MONITORING]
[PARALLEL parallel_clause] [ENABLE
enable_clause | DISABLE disable_clause]
{ENABLE|DISABLE} ROW MOVEMENT [AS
subquery]

DDL Data Definition Language

Queda mas claro con unos ejemplos


create table t_clientes (
numclient number,
nombre varchar2(100))

Nuestra tabla creada no tiene ningn


constraint.
Casos:
1. Definimos contraint (primary key) para nuestra tabla creada.
alter table t_clientes
add constraint pk_t_clientes
primary key (numclient)
2. Si desearamos asignar su constraint (primary key) al
momento de crear la tabla, tuviramos la siguiente
sintaxis, como tenemos la tabla clientes creada la
borramos y procedemos a crear (Cuando no existe tabla)
drop table t_clientes
create table t_clientes (
numclient number primary key,
nombre varchar2(100));

DDL Data Definition Language

Para nuestro segundo ejemplo, creamos otra tabla. Que relacionaremos


mediante un foreign key con la tabla clientes
create table t_pedidos(
numpedido number,
fecpedido date,
numclient number);

Nuestra tabla creada no tiene ningn


constraint.
1. Casos:
Definimos contraint (primary key) para nuestra tabla creada.
alter table t_pedidos
add constraint pk_t_pedidos
primary key (numpedido);
2. Definimos contraint (Foreign key) para nuestra tabla creada.
alter table t_pedidos
add constraint fk_t_pedidos_t_clientes
foreign key (numpedido)
references t_clientes(numclient);

DDL Data Definition Language


2. Si desearamos asignar los constraints (primary key y
foreign key) al momento de crear la tabla, tuviramos la
siguiente sintaxis, como tenemos la tabla clientes creada
la borramos y procedemos a crear (Cuando no existe
tabla)
Drop table t_pedidos
create table t_pedidos (
numpedido number primary key,
fecpedido date,
numclient number references
t_clientes(numclient));

DDL Data Definition Language


II. Alterar Tablas
Sintaxis:
ALTER TABLE [esquema.]tabla {ADD|MODIFY|
DROP}...

Aadir una columna a una tabla:


Alter table t_pedidos add direccion varchar2(50);
Cambiar el tamao de una columna en una tabla:
Alter table t_pedidos modify direccion varchar2(100);

Hacer NOT NULL una columna en una tabla:


Alter table t_pedidos modify direccion not null;

Eliminar una columna a una tabla:


Alter table t_pedidos drop column direccion;

Aade dos columnas:


Alter table t_pedidos add (cantidad int, importe number);

DDL Data Definition Language


III. Eliminar Tablas Drop

Para eliminar una tabla determinada, se usa la instruccin DROP


TABLE, de la siguiente manera:
Sintaxis:
SQL> DROP TABLE nombretabla;
Con lo cual se elimina la tabla nombretabla del sistema.

Un caso especial se presenta si la relacin a ser eliminada est


referenciada por claves forneas en otra(s) relacin(es). En este caso,
se debe hacer la llamada de la siguiente manera:
Sintaxis:
SQL> DROP TABLE nombretabla CASCADE CONSTRAINTS;

De esta manera se eliminarn todas las tuplas en otras relaciones


que referencien a la clave primaria de la relacin a ser eliminada. Si no
se incluye el parmetro CASCADE CONSTRAINTS y existe alguna
referencia a una tupla que
se eliminar, ORACLE retornar un
mensaje de error y no eliminar la relacin.

DDL Data Definition Language


IV. Eliminar Tablas Truncate
Este comando trunca todo el contenido de una tabla
Sintaxis:
TRUNCATE TABLE ''TABLA_NOMBRE1''
Nota:
La ventaja sobre el comando DROP, es que si se quiere borrar todo el
contenido de la tabla, es mucho ms rpido, especialmente si la tabla es
muy grande. La desventaja es que TRUNCATE slo sirve cuando se quiere
eliminar absolutamente todos los registros, ya que no se permite la
clusula WHERE. Si bien, en un principio, esta sentencia parecera ser DML
(Lenguaje de Manipulacin de Datos), es en realidad una DDL, ya que
internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no
ejecuta ninguna transaccin.
Otra diferencia es la siguiente: cuando la tabla tiene un campo
"auto_increment", si borramos todos los registros con "delete" y luego
ingresamos un registro, al cargarse el valor en el campo
autoincrementable, contina con la secuencia teniendo en cuenta el valor
mayor que se haba guardado; si usamos "truncate table" para borrar todos
los registros, al ingresar otra vez un registro, la secuencia del campo

Links

http://ora.u440.com/ddl/create%20table.html
http://www.programatium.com/manuales/oracle/2.htm
http://es.wikipedia.org/wiki/SQL
http://ora.u440.com/ddl/alter%20table.html
http://www.programatium.com/manuales/oracle/4.htm

Potrebbero piacerti anche