Sei sulla pagina 1di 22

10

Creación y Gestión de Tablas

Copyright  Oracle Corporation, 1998. All rights reserved.


Objetivos
Al
Al completar
completar esta
esta lecci ón, deber
lección, ía ser
debería ser capaz
capaz
de
de hacer
hacer lo
lo siguiente:
siguiente:
•• Describir
Describir los
los principales
principales objetos
objetos de
de la
la B.D.
B.D.
•• Crear
Crear tablas
tablas
•• Describir
Describir los
los tipos
tipos de
de datos
datos que
que se
se pueden
pueden
usar
usar al
al definir
definir una
una columna
columna
•• Alterar
Alterar definiciones
definiciones de
de tablas
tablas
•• Borrar,
Borrar, renombrar
renombrar yy truncar
truncar tablas
tablas

10-2 Copyright  Oracle Corporation, 1998. All rights reserved.


Objetos de la Base de Datos

Objeto Descripción
Tabla Unidad básica de almacenamiento;
compuesta de registros y columnas.
Vista Lógicamente representa un subconjunto de
una o más tablas.
Secuencia Genera valores para claves primarias.
Indice Mejoran el rendimiento de algunas consultas
Sinónimo Da nombres alternativos a los objetos.

10-3 Copyright  Oracle Corporation, 1998. All rights reserved.


Reglas para los Nombres
• Deben comenzar con una letra.
• Pueden tener una longitud de 1-30
caracteres de largo.
• Deben contener solamente A–Z, a–z, 0–9, _,
$, y #
• No deben duplicar el nombre de otro objeto
que sea propiedad del mismo usuario.
• No debe ser una palabra reservada del
Servidor Oracle8.

10-4 Copyright  Oracle Corporation, 1998. All rights reserved.


La Sentencia CREATE TABLE
•• Tiene
Tiene que
que tener
tener ::
–– El
El privilegio
privilegio CREATE
CREATE TABLE
TABLE
–– Un
Un área
área de
de almacenamiento
almacenamiento
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr];

•• Ha
Ha de
de especificar:
especificar:
–– Nombre
Nombre de
de tabla
tabla
–– Para
Para las
las columnas:
columnas: nombre,
nombre, tipo
tipo de
de
dato
dato yy tamaño
tamaño
10-5 Copyright  Oracle Corporation, 1998. All rights reserved.
Referencia a Tablas de
Otros Usuarios

•• Las
Las tablas
tablas propiedad
propiedad dede otros
otros usuarios
usuarios
no
no pertenecen
pertenecen al al esquema
esquema del
del usuario.
usuario.
•• Debe
Debe dede utilizar
utilizar como
como prefijo
prefijo de
de la
la tabla,
tabla,
el
el nombre
nombre del
del propietario.
propietario.

10-6 Copyright  Oracle Corporation, 1998. All rights reserved.


La Opción DEFAULT

• Especifica un valor por defecto para una


columna, durante una inserción.

… hiredate DATE DEFAULT SYSDATE, …

• Los valores permitidos son literales,


expresiones, o funciones SQL, tales como
SYSDATE o USER.
• No se permiten valores que sean nombres
de otra columna o una pseudocolumna.
• El valor por defecto debe ser del tipo que
tiene definido la columna.
10-7 Copyright  Oracle Corporation, 1998. All rights reserved.
Creación de Tablas
•• Crear
Crear la
la Tabla:
Tabla:
SQL> CREATE TABLE dept
2 (deptno NUMBER(2),
3 dname VARCHAR2(14),
4 loc VARCHAR2(13));
Table created.

•• Verificar
Verificar que
que se
se ha
ha creado
creado correctamente:
correctamente:
SQL> DESCRIBE dept

Name Null? Type


--------------------------- -------- ---------
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)

10-8 Copyright  Oracle Corporation, 1998. All rights reserved.


Consultas al Diccionario de Datos
•• Describir
Describir tablas
tablas propiedad
propiedad del
del usuario.
usuario.
SQL> SELECT *
2 FROM user_tables;

•• Ver
Ver distintos
distintos tipos
tipos de
de objetos
objetos propiedad
propiedad
del
del usuario.
usuario.
SQL> SELECT DISTINCT object_type
2 FROM user_objects;

•• Ver
Ver tablas,
tablas, vistas,
vistas, sinónimos
sinónimos yy secuencias
secuencias
propiedad
propiedad del
del usuario.
usuario.
SQL> SELECT *
2 FROM user_catalog;

10-9 Copyright  Oracle Corporation, 1998. All rights reserved.


Tipos de Datos
Tipo de Dato Descripción
VARCHAR2(size) Dato carácter de longitud variable
CHAR(size) Dato carácter de longitud fija
NUMBER(p,s) Dato numérico de longitud variable
DATE Valores de fecha y hora
LONG Dato carácter de longitud variable
hasta 2 gigabytes
CLOB Dato carácter “single-byte” de hasta
4 gigabytes
RAW and LONG RAW Datos binarios
BLOB Datos binarios hasta 4 gigabytes
BFILE Datos binarios almacenados en un
fichero externo; hasta 4 gigabytes

10-10 Copyright  Oracle Corporation, 1998. All rights reserved.


Creación de una Tabla
por medio de una Subconsulta
• Crear una tabla e insertar filas combinando el
comando CREATE TABLE con la opción AS
subquery.
CREATE TABLE table
[column(, column...)]
AS subquery;

• Hacer coincidir la cantidad de columnas


especificadas con las columnas del subquery.
• Definir las columnas con sus nombres, valores por
defecto y restricciones de integridad solamente.

10-11 Copyright  Oracle Corporation, 1998. All rights reserved.


Creación de una Tabla
por medio de una Subconsulta
SQL> CREATE TABLE dept30
2 AS
3 SELECT empno, ename, sal*12 ANNSAL, hiredate
4 FROM emp
5 WHERE deptno = 30;
Table created.

SQL> DESCRIBE dept30

Name
Name Null?
Null? Type
Type
----------------------------
---------------------------- --------
-------- -----
-----
EMPNO
EMPNO NOT
NOT NULL
NULL NUMBER(4)
NUMBER(4)
ENAME
ENAME VARCHAR2(10)
VARCHAR2(10)
ANNSAL
ANNSAL NUMBER
NUMBER
HIREDATE
HIREDATE DATE
DATE

10-12 Copyright  Oracle Corporation, 1998. All rights reserved.


La Sentencia ALTER TABLE
Use
Use la
la sentencia
sentencia ALTER
ALTER TABLE
TABLE para:
para:
•• Añadir
Añadir una
una nueva
nueva columna
columna
•• Modificar
Modificar una
una columna
columna que
que ya
ya existe
existe
•• Dar
Dar un
un valor
valor por
por defecto
defecto aa una
una nueva
nueva col.
col.
ALTER TABLE table
ADD (column datatype [DEFAULT expr]
[, column datatype]...);

ALTER TABLE table


MODIFY (column datatype [DEFAULT expr]
[, column datatype]...);

10-13 Copyright  Oracle Corporation, 1998. All rights reserved.


Añadir una Columna
DEPT30 Nueva columna
“…añadir
una
EMPNO ENAME ANNSAL HIREDATE JOB
------ ---------- --------
nueva
7698 BLAKE 34200 01-MAY-81 columna
7654 MARTIN 15000 28-SEP-81 a la tabla
7499 ALLEN 19200 20-FEB-81 DEPT30”
7844 TURNER 18000 08-SEP-81
...

DEPT30
EMPNO ENAME ANNSAL HIREDATE JOB
------ ---------- --------
7698 BLAKE 34200 01-MAY-81
7654 MARTIN 15000 28-SEP-81
7499 ALLEN 19200 20-FEB-81
7844 TURNER 18000 08-SEP-81
...

10-14 Copyright  Oracle Corporation, 1998. All rights reserved.


Añadir una Columna
•• Use
Use la
la cláusula
cláusula ADD
ADD para
para añadir
añadir cols.
cols.
SQL> ALTER TABLE dept30
2 ADD (job VARCHAR2(9));
Table altered.

•• La
La nueva
nueva columna
columna aparece
aparece en
en último
último lugar
lugar
EMPNO
EMPNO ENAME
ENAME ANNSAL
ANNSAL HIREDATE
HIREDATE JOB
JOB
---------
--------- ----------
---------- ---------
--------- ---------
--------- ----
----
7698
7698 BLAKE
BLAKE 34200
34200 01-MAY-81
01-MAY-81
7654
7654 MARTIN
MARTIN 15000
15000 28-SEP-81
28-SEP-81
7499
7499 ALLEN
ALLEN 19200
19200 20-FEB-81
20-FEB-81
7844
7844 TURNER
TURNER 18000
18000 08-SEP-81
08-SEP-81
...
...
66 rows
rows selected.
selected.

10-15 Copyright  Oracle Corporation, 1998. All rights reserved.


Modificar una Columna
•• Puede
Puede cambiar
cambiar el
el tipo
tipo de
de dato
dato de
de una
una
columna,
columna, su
su tamaño
tamaño yy valor
valor por
por dflt.
dflt.
ALTER TABLE dept30
MODIFY (ename VARCHAR2(15));
Table altered.

•• Si
Si cambia
cambia el
el valor
valor por
por defecto,
defecto, afectará
afectará
sólo
sólo aa sucesivas
sucesivas inserciones
inserciones en
en la
la tabla.
tabla.

10-16 Copyright  Oracle Corporation, 1998. All rights reserved.


Eliminación de una Tabla

•• Se
Se borran
borran todos
todos los
los datos
datos de
de la
la tabla.
tabla.
•• Cualquier
Cualquier transacción
transacción pendiente
pendiente
termina
termina con
con commit.
commit.
•• Todos
Todos los
los índices
índices de
de la
la tabla
tabla se
se borran.
borran.
•• No
No puede
puede hacer
hacer rollback
rollback de
de la
la sentencia
sentencia
SQL> DROP TABLE dept30;
Table dropped.

10-17 Copyright  Oracle Corporation, 1998. All rights reserved.


Cambiar el Nombre de un Objeto

•• Para
Para cambiar
cambiar el
el nombre
nombre dede una
una tabla,
tabla,
vista,
vista, secuencia
secuencia oo sinónimo,
sinónimo,
ejecutaremos
ejecutaremos la
la instrucción
instrucción RENAME.
RENAME.
SQL> RENAME dept TO department;
Table renamed.

•• Debe
Debe ser
ser el
el propietario
propietario del
del objeto.
objeto.

10-18 Copyright  Oracle Corporation, 1998. All rights reserved.


Truncar una Tabla
•• La
La Sentencia
Sentencia TRUNCATE
TRUNCATE TABLE:
TABLE:
–– Borra
Borra todos
todos los
los registros
registros de
de una
una tabla
tabla
–– Libera
Libera todo
todo el
el espacio
espacio de
de
almacenamiento
almacenamiento ocupado
ocupado por
por la
la tabla
tabla
SQL> TRUNCATE TABLE department;
Table truncated.

•• No
No puede
puede hacer
hacer rollback
rollback
•• Alternativamente
Alternativamente puede
puede borrar
borrar los
los
registros,
registros, con
con la
la sentencia
sentencia DELETE
DELETE

10-19 Copyright  Oracle Corporation, 1998. All rights reserved.


Añadir Comentarios a una Tabla
•• Puede
Puede añadir
añadir comentarios
comentarios aa una
una tabla
tabla o
o
columna,
columna, por
por medio
medio de
de la
la instrucción
instrucción
COMMENT
COMMENT
SQL> COMMENT ON TABLE emp
2 IS 'Employee Information';
Comment created.

•• Los
Los comentarios
comentarios podrá
podrá verlos
verlos aa través
través de
de
determinadas
determinadas estructuras
estructuras del
del D.D.
D.D.
–– ALL_COL_COMMENTS
ALL_COL_COMMENTS
–– USER_COL_COMMENTS
USER_COL_COMMENTS
–– ALL_TAB_COMMENTS
ALL_TAB_COMMENTS
–– USER_TAB_COMMENTS
USER_TAB_COMMENTS
10-20 Copyright  Oracle Corporation, 1998. All rights reserved.
Resumen

Sentencia Descripción
CREATE TABLE Creación de tablas.
ALTER TABLE Modifica la estructura de una tabla.
DROP TABLE Borra la estructura y registros de la tabla
RENAME Cambia el nombre de una tabla, vista,
secuencia o sinónimo.
TRUNCATE Borra todos los registros y libera el espacio
ocupados por los registros de la tabla.
COMMENT Añade comentarios a una tabla o vista.

10-21 Copyright  Oracle Corporation, 1998. All rights reserved.


Visión General de la Práctica

•• Creación
Creación de
de nuevas
nuevas tablas
tablas
•• Creación
Creación de
de una
una nueva
nueva tabla,
tabla, usando
usando la
la
sintaxis
sintaxis CREATE
CREATE TABLE
TABLE AS
AS
•• Modificar
Modificar definiciones
definiciones de
de columnas
columnas
•• Verificar
Verificar la
la existencia
existencia de
de una
una tabla
tabla
•• Añadir
Añadir comentarios
comentarios aa tabla
tabla
•• Borrar
Borrar tablas
tablas
•• Alterar
Alterar tablas
tablas
10-22 Copyright  Oracle Corporation, 1998. All rights reserved.

Potrebbero piacerti anche