copyright oracle corporation, 1998. all rights reserved. · por medio de una subconsulta ......

22
Copyright Oracle Corporation, 1998. All rights reserved. 10 10 Creación y Gestión de Tablas Creación y Gestión de Tablas

Upload: hakien

Post on 19-Aug-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Copyright Oracle Corporation, 1998. All rights reserved.

1010

Creación y Gestión de TablasCreación y Gestión de Tablas

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

ObjetivosObjetivos

Al completar esta lección, debería ser capaz de hacer lo siguiente:

• Describir los principales objetos de la B.D.

• Crear tablas

• Describir los tipos de datos que se pueden usar al definir una columna

• Alterar definiciones de tablas

• Borrar, renombrar y truncar tablas

Al completar esta lecciAl completar esta leccióón, debern, deberíía ser capaz a ser capaz de hacer lo siguiente:de hacer lo siguiente:

• Describir los principales objetos de la B.D.

• Crear tablas

• Describir los tipos de datos que se pueden usar al definir una columna

• Alterar definiciones de tablas

• Borrar, renombrar y truncar tablas

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

Objetos de la Base de DatosObjetos 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-4 Copyright Oracle Corporation, 1998. All rights reserved.

Reglas para los NombresReglas para los Nombres

•• Deben comenzar con una letra.Deben comenzar con una letra.

•• Pueden tener una longitud de 1Pueden tener una longitud de 1--30 30 caracteres de largo.caracteres de largo.

•• Deben contener solamente ADeben contener solamente A––Z, aZ, a––z, 0z, 0––9, _, 9, _, $, y #$, y #

•• No deben duplicar el nombre de otro objeto No deben duplicar el nombre de otro objeto que sea propiedad del mismo usuario.que sea propiedad del mismo usuario.

•• No debe ser una palabra reservada del No debe ser una palabra reservada del Servidor Oracle8.Servidor Oracle8.

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

La Sentencia CREATE TABLELa Sentencia CREATE TABLE

• Tiene que tener :

– El privilegio CREATE TABLE

– Un área de almacenamiento

• Ha de especificar:

– Nombre de tabla

– Para las columnas: nombre, tipo de dato y tamaño

• Tiene que tener :

– El privilegio CREATE TABLE

– Un área de almacenamiento

• Ha de especificar:

– Nombre de tabla

– Para las columnas: nombre, tipo de dato y tamaño

CREATE TABLE [schema.]table

(column datatype [DEFAULT expr];

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

Referencia a Tablas de Otros Usuarios

Referencia a Tablas de Otros Usuarios

• Las tablas propiedad de otros usuarios no pertenecen al esquema del usuario.

• Debe de utilizar como prefijo de la tabla, el nombre del propietario.

• Las tablas propiedad de otros usuarios no pertenecen al esquema del usuario.

• Debe de utilizar como prefijo de la tabla, el nombre del propietario.

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

La Opción DEFAULTLa Opción DEFAULT

… hiredate DATE DEFAULT SYSDATE, …

•• Especifica un valor por defecto para una Especifica un valor por defecto para una columna, durante una insercicolumna, durante una insercióón.n.

•• Los valores permitidos son literales, Los valores permitidos son literales, expresiones, o funciones SQL, tales como expresiones, o funciones SQL, tales como SYSDATE o USER.SYSDATE o USER.

•• No se permiten valores que sean nombres No se permiten valores que sean nombres de otra columna o una pseudocolumna.de otra columna o una pseudocolumna.

•• El valor por defecto debe ser del tipo que El valor por defecto debe ser del tipo que tiene definido la columna.tiene definido la columna.

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

Creación de TablasCreación de Tablas

SQL> CREATE TABLE dept

2 (deptno NUMBER(2),

3 dname VARCHAR2(14),

4 loc VARCHAR2(13));

Table created.Table created.

• Crear la Tabla:• Crear la Tabla:

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

Name Null? Type

--------------------------- -------- ---------

DEPTNO NOT NULL NUMBER(2)

DNAME VARCHAR2(14)

LOC VARCHAR2(13)

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

Consultas al Diccionario de DatosConsultas al Diccionario de Datos

• Describir tablas propiedad del usuario.• Describir tablas propiedad del usuario.

• Ver distintos tipos de objetos propiedad del usuario.

• Ver distintos tipos de objetos propiedad del usuario.

• Ver tablas, vistas, sinónimos y secuencias propiedad del usuario.

• Ver tablas, vistas, sinónimos y secuencias propiedad del usuario.

SQL> SELECT *

2 FROM user_tables;

SQL> SELECT DISTINCT object_type

2 FROM user_objects;

SQL> SELECT *

2 FROM user_catalog;

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

Tipos de DatosTipos 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-11 Copyright Oracle Corporation, 1998. All rights reserved.

Creación de una Tablapor medio de una Subconsulta

Creación de una Tablapor medio de una Subconsulta

•• Crear una tabla e insertar filas combinando el Crear una tabla e insertar filas combinando el comando CREATE TABLE con la opcicomando CREATE TABLE con la opcióón AS n AS subquery.subquery.

•• Hacer coincidir la cantidad de columnas Hacer coincidir la cantidad de columnas especificadas con las columnas del subquery.especificadas con las columnas del subquery.

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

CREATE TABLE table

[column(, column...)]

AS subquery;

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

Creación de una Tablapor medio de una Subconsulta

Creación de una Tablapor medio de una Subconsulta

Name Null? Type

---------------------------- -------- -----

EMPNO NOT NULL NUMBER(4)

ENAME VARCHAR2(10)

ANNSAL NUMBER

HIREDATE DATE

Name Null? Type

---------------------------- -------- -----

EMPNO NOT NULL NUMBER(4)

ENAME VARCHAR2(10)

ANNSAL NUMBER

HIREDATE DATE

SQL> DESCRIBE dept30

SQL> CREATE TABLE dept30

2 AS

3 SELECT empno, ename, sal*12 ANNSAL, hiredate

4 FROM emp

5 WHERE deptno = 30;

Table created.Table created.

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

La Sentencia ALTER TABLELa Sentencia ALTER TABLE

Use la sentencia ALTER TABLE para:

• Añadir una nueva columna

• Modificar una columna que ya existe

• Dar un valor por defecto a una nueva col.

Use la sentencia ALTER TABLE para:Use la sentencia ALTER TABLE para:

• Añadir una nueva columna

• Modificar una columna que ya existe

• Dar un valor por defecto a una nueva col.

ALTER TABLE table

ADD (column datatype [DEFAULT expr]

[, column datatype]...);

ALTER TABLE table

MODIFY (column datatype [DEFAULT expr]

[, column datatype]...);

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

Añadir una ColumnaAñadir una ColumnaDEPT30DEPT30

EMPNO ENAME ANNSAL HIREDATE

------ ---------- --------

7698 BLAKE 34200 01-MAY-81

7654 MARTIN 15000 28-SEP-81

7499 ALLEN 19200 20-FEB-81

7844 TURNER 18000 08-SEP-81

...

“…“…aaññadir adir una una nueva nueva columna columna a la tabla a la tabla DEPT30DEPT30””

DEPT30DEPT30

EMPNO ENAME ANNSAL HIREDATE

------ ---------- --------

7698 BLAKE 34200 01-MAY-81

7654 MARTIN 15000 28-SEP-81

7499 ALLEN 19200 20-FEB-81

7844 TURNER 18000 08-SEP-81

...

JOB

JOB

Nueva columnaNueva columna

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

Añadir una ColumnaAñadir una Columna

• Use la cláusula ADD para añadir cols.• Use la cláusula ADD para añadir cols.

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

...

6 rows selected.

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

...

6 rows selected.

SQL> ALTER TABLE dept30

2 ADD (job VARCHAR2(9));

Table altered.Table altered.

• La nueva columna aparece en último lugar• La nueva columna aparece en último lugar

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

Modificar una ColumnaModificar una Columna

• Puede cambiar el tipo de dato de una columna, su tamaño y valor por dflt.

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

• Puede cambiar el tipo de dato de una columna, su tamaño y valor por dflt.

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

ALTER TABLE dept30

MODIFY (ename VARCHAR2(15));

Table altered.Table altered.

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

Eliminación de una TablaEliminación de una Tabla

• Se borran todos los datos de la tabla.

• Cualquier transacción pendiente termina con commit.

• Todos los índices de la tabla se borran.

• No puede hacer rollback de la sentencia

• Se borran todos los datos de la tabla.

• Cualquier transacción pendiente termina con commit.

• Todos los índices de la tabla se borran.

• No puede hacer rollback de la sentencia

SQL> DROP TABLE dept30;

Table dropped.Table dropped.

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

Cambiar el Nombre de un ObjetoCambiar el Nombre de un Objeto

• Para cambiar el nombre de una tabla, vista, secuencia o sinónimo, ejecutaremos la instrucción RENAME.

• Debe ser el propietario del objeto.

• Para cambiar el nombre de una tabla, vista, secuencia o sinónimo, ejecutaremos la instrucción RENAME.

• Debe ser el propietario del objeto.

SQL> RENAME dept TO department;

Table renamed.Table renamed.

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

Truncar una TablaTruncar una Tabla

• La Sentencia TRUNCATE TABLE:

– Borra todos los registros de una tabla

– Libera todo el espacio de almacenamiento ocupado por la tabla

• No puede hacer rollback

• Alternativamente puede borrar los registros, con la sentencia DELETE

• La Sentencia TRUNCATE TABLE:

– Borra todos los registros de una tabla

– Libera todo el espacio de almacenamiento ocupado por la tabla

• No puede hacer rollback

• Alternativamente puede borrar los registros, con la sentencia DELETE

SQL> TRUNCATE TABLE department;

Table truncated.Table truncated.

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

Añadir Comentarios a una TablaAñadir Comentarios a una Tabla

• Puede añadir comentarios a una tabla o columna, por medio de la instrucción COMMENT

• Los comentarios podrá verlos a través de determinadas estructuras del D.D.

– ALL_COL_COMMENTS

– USER_COL_COMMENTS

– ALL_TAB_COMMENTS

– USER_TAB_COMMENTS

• Puede añadir comentarios a una tabla o columna, por medio de la instrucción COMMENT

• Los comentarios podrá verlos a través de determinadas estructuras del D.D.

– ALL_COL_COMMENTS

– USER_COL_COMMENTS

– ALL_TAB_COMMENTS

– USER_TAB_COMMENTS

SQL> COMMENT ON TABLE emp

2 IS 'Employee Information';

Comment created.Comment created.

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

ResumenResumen

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-22 Copyright Oracle Corporation, 1998. All rights reserved.

Visión General de la PrácticaVisión General de la Práctica

• Creación de nuevas tablas

• Creación de una nueva tabla, usando la sintaxis CREATE TABLE AS

• Modificar definiciones de columnas

• Verificar la existencia de una tabla

• Añadir comentarios a tabla

• Borrar tablas

• Alterar tablas

• Creación de nuevas tablas

• Creación de una nueva tabla, usando la sintaxis CREATE TABLE AS

• Modificar definiciones de columnas

• Verificar la existencia de una tabla

• Añadir comentarios a tabla

• Borrar tablas

• Alterar tablas