Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 2. Creación de estructuras de datos
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno diseña e implementa modelos de datos que incorporen reglas o restricciones mediante la definición de objetos tales como tablas, secuencias y sinónimos.
Temario
2.1 Tema 3: CREACIÓN DE ESTRUCTURAS DE DATOS
2.1.1 Creación y modificación de tablas
2.1.2 Creación de restricciones
2.1.3 Manejo de índices
2.1.4 Manejo de secuencias
2.1.5 Manejo de sinónimos
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Sesión02 - Creación de objetos (Oracle)
1. /*
Sesión02 – Creación de Objetos
Estudiante: José Luis Toro Alcarraz
Curso: Base de Datos Avanzado II
Correo:i201010865@cibertec.edu.pe
*/
Objetivo de la sesión.
Describir algunos objetos de la base de datos y sus usos.
Crear, mantener y usar tablas, índices, constraints, secuencias y sinónimos.
1) Manejo de tablas.
2) Manejo de constraints.
3) Manejo de secuencias.
4) Manejo de sinónimos.
5) Manejo de índices.
1) Manejo de tablas.
Unidad básica de almacenamiento, conformada por filas y columnas.
Los nombres de las tablas y de sus columnas deben tener un máximo de 30 caracteres.
No debe duplicar el nombre de otro objeto propiedad del mismo usuario.
a) Creación de tablas.
Nombre de tabla.
Nombre de columna, tipo de dato de columna y tamaño de columna.
Usuario creador debe tener privilegios.
Usando la sentencia CREATE TABLE
CREATE TABLE [schema.] table
column datatype [DEFAULT expr] [, …]);
Cree una tabla e inserte filas combinando la sentencia CREATE TABLE y la opción AS
subquey. Haga coincidir el número de columnas especificadas con el número de columnas
de las sub consultas.
CREATETABLE table [(column, column…)]
AS subquery;
Para confirmar la creación de una tabla utizamos la sentencia DESCRIBE, DESC
DESCRIBE [schema.] table;
Ejemplo1:
SQL> CREATE TABLE DEPT_A
(
DEPTNO NUMBER(4),
DNAME VARCHAR2(14),
2. LOC VARCHAR2(13)
);
Tabla creada.
SQL> DESCRIBE DEPT_A;
Nombre
┐Nulo? Tipo
----------------------------------------- -------- -------------------------DEPTNO
DNAME
LOC
NUMBER(4)
VARCHAR2(14)
VARCHAR2(13)
Ejemplo2:
SQL> CREATE TABLE EMP10
AS
SELECT EMPNO EMPLOYEE_ID, ENAME LAST_NAME, SAL * 12 ANNSAL,
HIREDATE HIRE_DATE
FROM EMP
WHERE DEPTNO = 10;
Tabla creada.
SQL> DESC EMP10;
Nombre
┐Nulo? Tipo
----------------------------------------- -------- ---------------------------EMPLOYEE_ID
LAST_NAME
ANNSAL
HIRE_DATE
NOT NULL NUMBER(4)
VARCHAR2(10)
NUMBER
DATE
SQL> SELECT * FROM EMP10;
EMPLOYEE_ID
----------7782
7839
7782
7839
LAST_NAME
---------CLARK
KING
CLARK
KING
ANNSAL
---------29400
60000
29400
60000
HIRE_DAT
-------09/06/81
17/11/81
09/06/81
17/11/81
b) Comentar una tabla.
Podemos utilizar el comando COMMENT ON para agregar comentarios a las tablas y a sus
columnas.
COMMENT ON TABLE table
IS ‘Comentario’;
3. Los comentarios se pueden visualizar a través de las vistas del diccionario de datos
ALL_COL_COMMENTS, USER_COL_COMMENTS
ALL_TAB_COMMENTS, USER_TAB_COMMENTS
Ejemplo:
SQL> COMMENT ON TABLE EMP10
IS ‘Tabla empleados’;
Comentario creado
c) Modificar una tabla.
Agregar una columna nueva.
Modificar una columna existente.
Eliminar una columna existente.
Definir un valor por defecto para una columna.
Actualiza constraints asociados con tabla.
Agregar una columna
ALTER TABLE table
ADD (column datatype [DEFAULT exp]
[, column datatype]…);
Modificar una columna
ALTER TABLE table
MODIFY (column datatype [DEFAULT exp]
[, column datatype]…);
Borrar una columna
ALTER TABLE table
DROP (column);
Ejemplo1:
SQL> ALTER TABLE EMP10
ADD (JOB_ID VARCHAR2(9));
Tabla modificada.
Ejemplo2:
SQL> ALTER TABLE EMP10
MODIFY (LAST_NAME VARCHAR2(30));
Tabla modificada.
Ejemplo3:
4. SQL> ALTER TABLE EMP10
DROP COLUMN JOB_ID;
Tabla modificada.
d) Sentencia TRUNCATE.
Elimina todas las filas de una tabla
Libera el espacio de almacenamiento utilizado por dicha tabla.
No puede realizar rollback de la eliminación de filas si utiliza TRUNCATE.
También puede eliminar filas utilizando la sentencia DELETE.
SQL> delete from emp10 where employee_id=7934;
1 fila suprimida.
SQL> TRUNCATE TABLE EMP10;
Tabla truncada.
e) Eliminar una tabla.
Se suprimen todos los datos y la estructura de la tabla.
Se valida cualquier transaccion pendiente.
Se borran todos los índices.
No puede realizar rollback de la sentencia DROP TABLE.
SQL> DROP TABLE EMP10;
Tabla borrada.
f) Renombrando un objeto.
Para cambiar el nombre de una tabla, una vista una secuencia o un sinónimo, ejecute la sentencia
RENAME. Debe ser el propietario de objeto.
SQL> RENAME DEPT_A TO DEPARTAMENTO;
Nombre de tabla cambiado.
Importante:
Tipos de datos más comunes en Oracle son NUMBER, CHAR, VARCHAR2, DATE.
¿Qué tipo de dato le corresponde mejor a una llave primaria?, ¿NUMBER o CHAR?
Cuando la clave identifique un registro como único pero que no represente el registro o no
representa la información, entonces vendría hacer un ID por los tanto seria NUMBER.
Ejemplo: COD_CINE NUMBER (4)
5. Cuando el código defina alguna cosa, es decir representa la información, entonces estaríamos
aplicando un CHAR. Ejemplo: COD_EMP CHAR (5).