Está en la página 1de 8

INSTITUCIÓN UNIVERSITARIA ANTONIO JOSÉ CAMACHO

FACULTAD DE INGENIERÍA
PROGRAMA: ASIGNATURA:
GUÍA No.2
TECNOLOGÍA EN SISTEMAS BASE DATOS 1

SQL: DEFINICION DE DATOS

OBJETIVOS

1. Usar sentencias de definición de datos para crear la estructura de una tabla


2. Usar sentencias de definición de datos para modificar la estructura de una tabla
3. Usar sentencias de definición de datos para eliminar la estructura de una tabla.

PREPARACION PARA LA PRÁCTICA:

Herramienta cliente de SQL*Plus instalada en los PC’s de la sala de computo

CONCEPTOS PREVIOS

Se requiere conocer aspectos de SQL como sus elementos, tipos de datos, valores nulos,
sentencias de definición de datos CREATE, ALTER, DROP, INSERT Y DELETE. Revisar capítulos
3 y 4 del texto Fundamentos de SQL de la colección 30 años ITM.

DESARROLLO

Teniendo en cuenta el modelo de datos mostrado a continuación y usando sentencias de definición


de datos implementarlo en Oracle.

Caso: CITAS MÉDICAS

Tabla: AFILIADOS

Campo Tipo Long. Función Obligatoriedad Restricciones


identificación Numérico 10 PK SI >0
nombres Carácter 30 SI
apellidos Carácter 30 SI
direccion Carácter 25 SI
telef_casa Carácter 12 SI
fecha_nacim Fecha ---- SI
fecha_afiliacion Fecha ---- SI
telef_celular Carácter 15 NO

Tabla: Beneficiarios

Campo Tipo Long. Función Obligatoriedad Restricciones


cod_afiliacion Numérico 5 PK SI >0
identificación Numérico 10 SI >0
nombres Carácter 30 SI
apellidos Carácter 30 SI
dirección Carácter 25 SI
telef_casa Carácter 12 SI
fecha_nacim Fecha ---- SI
fecha_afiliación Fecha ---- SI
telef_celular Carácter 15 NO
AFILIADO Numérico 10 FK(AFILIADOS) SI >0
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.1B Ing. Sandra Lucía Guañarita Fernández

Tabla: Especialidades

Campo Tipo Long. Función Obligatoriedad Restricciones


cod_especialidad Numérico 2 PK SI >0
descripcion Carácter 30 SI

Tabla: Consultorios

Campo Tipo Long. Función Obligatoriedad Restricciones


nro_consultorio Numérico 2 PK SI >0
nro_piso Numérico 2 SI >0

Tabla: Médicos

Campo Tipo Long. Función Obligatoriedad Restricciones


identificacion Numérico 10 PK SI >0
nombres Carácter 30 SI
apellidos Carácter 30 SI
dirección Carácter 25 SI
telef_casa Carácter 12 SI
telef_celular Carácter 15 NO
e_mail Carácter 35 NO
especialidad Numérico 2 FK(Especialidades) SI >0,
consultorio Numérico 2 FK(Consultorios) SI >0

Tabla: Citas

Campo Tipo Long. Función Obligatoriedad Restricciones


cod_cita Numérico 5 PK SI >0
fecha_cita Fecha SI
hora_cita Carácter 10 SI
valor_cita Numérico 10,2 SI >20000
tipo_consulta Numérico 2 SI
AFILIADO Numérico 10 FK(AFILIADOS) SI >0
medico Numérico 10 FK(Medicos) SI >0

Parte 1: Creación de tablas


Sintaxis:
CREATE TABLE nombre_tabla (
nombre_columna tipo NOT NULL / NULL,
....);
donde
 nombre_tabla: nombre de la tabla a crear, no olvide que debe estar en plural.
 nombre_columna: nombre de la columna de la tabla según MRD.
 tipo: tipo de dato según MRD.
 NOT NULL / NULL: utilizar NOT NULL si el campo es obligatorio, NULL en caso
contrario.
 ... : resto de columnas con su tipo y obligatoriedad.

 En la línea de comandos digite la siguiente sentencia para crear la tabla AFILIADOS:

2
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.1B Ing. Sandra Lucía Guañarita Fernández

CREATE TABLE AFILIADOS (


identificacion NUMBER(10) NOT NULL,
nombres VARCHAR2(30) NOT NULL,
apellidos VARCHAR2(30) NOT NULL,
direccion VARCHAR2(25) NOT NULL,
telef_casa VARCHAR2(12) NOT NULL,
fecha_nacim DATE NOT NULL,
fecha_afiliacion DATE NOT NULL,
telef_celular VARCHAR2(15)
);
La respuesta a esta sentencia si está correcta es la siguiente: table created

 En la línea de comandos digite la siguiente sentencia para crear la tabla BENEFICIARIOS:

CREATE TABLE Beneficiarios (


cod_afiliacion NUMBER(5) NOT NULL,
identificacion NUMBER(10) NOT NULL,
nombres VARCHAR2(30) NOT NULL,
apellidos VARCHAR2(30) NOT NULL,
direccion VARCHAR2(25) NOT NULL,
telef_casa VARCHAR2(12) NOT NULL,
fecha_nacim DATE NOT NULL,
fecha_afiliacion DATE NOT NULL,
telef_celular VARCHAR2(15),
afiliado NUMBER (10) NOT NULL
);
La respuesta a esta sentencia si está correcta es la siguiente: table created

 En la línea de comandos digite la siguiente sentencia para crear la tabla CONSULTORIO:

CREATE TABLE consultorio(


nro_consultorio NUMBER(2) NOT NULL,
nro_pisos NUMBER(2) NOT NULL
);

La respuesta a esta sentencia si está correcta es la siguiente: table created

 Construya una sentencia para crear cada una de las otras tablas del caso CITAS-MEDICAS.

Parte 2: Adición de una columna a una tabla


Sintaxis:
ALTER TABLE nombre_tabla
ADD nombre_columna tipo NOT NULL / NULL;
donde
 nombre_tabla: nombre de la tabla creada a la cual adiciono la columna.
 nombre_columna tipo not null / null: nombre de la columna, tipo de dato y
obligatoriedad. Si la tabla contiene información a pesar de ser la columna not null se
debe adicionar sin esta propiedad.

3
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.1B Ing. Sandra Lucía Guañarita Fernández

a) Estando en la línea de comandos digite la siguiente sentencia para adicionar columna e_mail
la cual tiene 35 caracteres y es opcional a la tabla AFILIADOS:
ALTER TABLE AFILIADOS ADD e_mail VARCHAR2(35);

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

b) Estando en la línea de comandos digite la siguiente sentencia para verificar la adición de la


columna a la tabla AFILIADOS:
DESCRIBE AFILIADOS;

c) Estando en la línea de comandos digite la siguiente sentencia para adicionar columna


titulo_profesional la cual tiene 25 caracteres y es obligatorio a la tabla AFILIADOS:
ALTER TABLE AFILIADOS ADD titulo_profesional VARCHAR2(25) NOT NULL;

* Cuando la tabla tiene datos esta sentencia debe tener la obligatoriedad NULL, posteriormente
se insertan datos en esta columna y finalmente mediante una sentencia de modificación de
columna se cambia el estado de la obligatoriedad.

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

Parte 3: Renombrado de una tabla


Sintaxis:
ALTER TABLE nombre_tabla
RENAME TO nuevo_nombre_tabla
donde
 nombre_tabla: nombre actual de de la tabla.
 Nuevo_nombre_tabla: nuevo nombre que se dará a la tabla

a) Estando en la línea de comandos digite la siguiente sentencia para modificar el nombre de


la tabla consultorio a consultorios

ALTER TABLE consultorio


RENAME TO consultorios;

Parte 4: Modificación de una columna de una tabla


Sintaxis:
ALTER TABLE nombre_tabla
MODIFY nombre_columna tipo NOT NULL / NULL;
donde
 nombre_tabla: nombre de la tabla creada a la cual modifico las características de la
columna.
 nombre_columna: nombre de la columna a la cual deseo modificar su tipo y/o
obligatoriedad (puedo modificar las dos propiedades o una de ellas).
 tipo not null / null: tipo de dato y obligatoriedad. Si la tabla contiene información a
pesar de ser la columna not null se debe adicionar sin esta propiedad.
4
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.1B Ing. Sandra Lucía Guañarita Fernández

b) Estando en la línea de comandos digite la siguiente sentencia para modificar el tipo de


dato de la columna telef_casa por NUMBER(10) en la tabla AFILIADOS:
ALTER TABLE AFILIADOS MODIFY telef_casa NUMBER(10);

En la anterior sentencia se cambia solamente el tipo a la columna telefono, su obligatoriedad


permanece.

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

c) Estando en la línea de comandos digite la siguiente sentencia para modificar la longitud de


la columna titulo_profesional por VARCHAR2(35) y obligatoriedad SI (NOT NULL) en la
tabla AFILIADOS:
ALTER TABLE AFILIADOS MODIFY titulo_profesional VARCHAR2(35) NOT NULL;

En la anterior sentencia se cambia tanto el tipo como la obligatoriedad de la columna.

La respuesta a esta sentencia si está correcta es la siguiente: table altered.


 formación a pesar de ser la columna not null se debe adicionar sin esta propiedad.

d) Estando en la línea de comandos digite la siguiente sentencia para modificar el nombre


del campo nro_pisos a nro_piso en la tabla consultorios.

ALTER TABLE consultorios


RENAME COLUMN nro_pisos TO nro_piso;

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

e) Estando en la línea de comandos digite la siguiente sentencia para modificar el tipo de


dato de la columna telef_casa por NUMBER(10) en la tabla AFILIADOS:
ALTER TABLE AFILIADOS MODIFY telef_casa NUMBER(10);

En la anterior sentencia se cambia solamente el tipo a la columna telefono, su obligatoriedad


permanece.

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

f) Estando en la línea de comandos digite la siguiente sentencia para modificar la longitud de


la columna titulo_profesional por VARCHAR2(35) y obligatoriedad SI (NOT NULL) en la
tabla AFILIADOS:
ALTER TABLE AFILIADOS MODIFY titulo_profesional VARCHAR2(35) NOT NULL;

En la anterior sentencia se cambia tanto el tipo como la obligatoriedad de la columna.

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

Parte 5: Eliminación de una columna en una tabla


Sintaxis:
ALTER TABLE nombre_tabla
DROP COLUMN nombre_columna;
donde
5
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.1B Ing. Sandra Lucía Guañarita Fernández

 nombre_tabla: nombre de la tabla creada a la cual elimino columna existente.


 nombre_columna: nombre de la columna a eliminar.

a) Estando en la línea de comandos digite la siguiente sentencia para eliminar columna


titulo_profesional de la tabla AFILIADOS:
ALTER TABLE AFILIADOS DROP COLUMN titulo_profesional;

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

b) Estando en la línea de comandos digite la siguiente sentencia para verificar la eliminación de la


columna de la tabla AFILIADOS:
DESCRIBE AFILIADOS;

Parte 6: Adición de Llave Primaria a una tabla


Sintaxis:
ALTER TABLE nombre_tabla ADD CONSTRAINT nombre_llave
PRIMARY KEY(lista columnas llave);
donde
 nombre_tabla: nombre de la tabla creada a la cual adiciono la llave primaria.
 nombre_llave: nombre a asignar a la llave primaria. Como estándar se utiliza las
iniciales pk seguidas del nombre de la tabla.
 lista columna llave: nombre de las columnas que conforman la llave primaria separadas
por coma.

Para adicionar datos en una tabla se debe tener en cuenta las siguientes recomendaciones:
 Si la tabla contiene información se debe verificar que no existan filas con las mismas columnas
clave (llave primaria) porque de lo contrario la sentencia no se ejecutará y se generará un error
por violación a la llave primaria.
 Las columnas que conforman la llave primaria debieron haberse creado como obligatorias
(NOT NULL).
 La llave primaria de una tabla conforma una restricción y se almacena en el diccionario de la
base de datos, para el caso de Oracle se guarda como una fila en la tabla user_constraints.
 Una tabla debe tener una sola llave primaria (la cual puede contener una o varias columnas).

a) Estando en la línea de comandos digite la siguiente sentencia para adicionar llave primaria a la
tabla AFILIADOS:

ALTER TABLE AFILIADOS ADD CONSTRAINT pk_AFILIADOS


PRIMARY KEY(identificacion);

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

b) Estando en la línea de comandos digite la siguiente sentencia para adicionar llave primaria a la
tabla Beneficiarios:

ALTER TABLE Beneficiarios ADD CONSTRAINT pk_beneficiarios


PRIMARY KEY(cod_afiliacion);

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

c) Si desea verificar la creación de la llave primaria para una tabla como AFILIADOS, digite en la
línea de comando la siguiente instrucción:
SELECT constraint_name, constraint_type, search_condition
FROM user_constraints
WHERE table_name = ‘AFILIADOS’;
6
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.1B Ing. Sandra Lucía Guañarita Fernández

donde:
 constraint_name: nombre de la restricción
 constraint_type: tipo de restricción. P: Llave Primaria, R: Llave Foránea, C: Check,
generalmente para campos creados con obligatoriedad NOT NULL.

PARA EL CASO DE LA TABLA AFILIADOS, SE OBTIENE LA RESTRICCION


CORRESPONDIENTE A LA LLAVE PRIMARIA Y UNA RESTRICCION TIPO C POR CADA
COLUMNA CREADA COMO NOT NULL.

d) Estando en la línea de comandos digite las sentencias para adicionar llave primaria a las
demás tablas del caso CITAS-MEDICAS.

Nota: Las llaves (primaria o foránea) también se puede adicionar en el mismo momento de
creación, de la siguiente manera:

CREATE TABLE nombre_tabla (


nombre_columna tipo_columna NOT NULL, …
CONSTRAINT pk_nombre_llave PRIMARY KEY(columnas_llave),
CONSTRAINT fk_nombre_llave FOREIGN KEY(columnas_llave) ... );

Parte 7: Eliminación de Llave Primaria de una tabla


Sintaxis:
ALTER TABLE nombre_tabla DROP CONSTRAINT nombre_llave;
donde
 nombre_tabla: nombre de la tabla creada a la cual elimino la llave primaria.
 nombre_llave: nombre llave primaria a eliminar.

 Estando en la línea de comandos digite la siguiente sentencia para eliminar llave primaria a la
tabla Beneficiarios:

ALTER TABLE Beneficiarios DROP CONSTRAINT pk_beneficiarios;

La respuesta a esta sentencia si está correcta es la siguiente: table altered. En caso de que la
llave no exista se genera el siguiente mensaje: cannot drop constraint – nonexistent constraint

Parte 8: Adición de Llave Foránea a una tabla


Sintaxis:
ALTER TABLE nombre_tabla1 ADD CONSTRAINT nombre_llave
FOREIGN KEY(lista columnas llave)
REFERENCES nombre_tabla2 (columnas llave primaria);
donde
 nombre_tabla1: nombre de la tabla creada a la cual deseo adicionar llave foránea.
 nombre_llave: nombre a asignar a la foránea. Como estándar se utiliza las iniciales fk
seguidas abreviatura nombres de las tablas relacionadas.
 lista columnas llave: nombres de las columnas que conforman la llave foránea de
nombre_tabla1 separadas por coma.
 nombre_tabla2: nombre de la tabla creada con la cual deseo relacionar nombre_tabla1.
 columnas llave primaria: nombres de las columnas que conforman la llave primaria de
nombre_tabla2 y que son equivalentes a llave foránea nombre_tabla2.

Para adicionar datos en una tabla se debe tener en cuenta las siguientes recomendaciones:

7
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.1B Ing. Sandra Lucía Guañarita Fernández

 Si las tablas contienen información se debe verificar que para la llave foránea de tabla1 exista
el correspondiente dato en tabla2.
 Las columnas que conforman la llave foránea debieron haberse creado como obligatorias (not
null).
 La llave foránea de una tabla conforma una restricción y se almacena en el diccionario de la
base de datos, para el caso de Oracle se guarda como una fila en la tabla user_constraints.
 Una tabla puede tener una o varias llaves foráneas. Se debe escribir una sentencia por cada
llave foránea.

a) Estando en la línea de comandos digite la siguiente sentencia para adicionar llave foránea a la
tabla BENEFICIARIOS

ALTER TABLE beneficiarios ADD CONSTRAINT fk_ben_pac


FOREIGN KEY(AFILIADO)
REFERENCES AFILIADOS(identificacion);

La respuesta a esta sentencia si está correcta es la siguiente: table altered.

b) Si desea verificar la creación de la llave foránea para beneficiarios, digite en la línea de


comando la siguiente instrucción:

SELECT constraint_name, constraint_type, search_condition


FROM user_constraints
WHERE table_name = ‘BENEFICIARIOS’;

PARA EL CASO DE LA TABLA BENEFICIARIOS, SE OBTIENE LA RESTRICCION


CORRESPONDIENTE A LA LLAVE PRIMARIA, LA RESTRICCION DE LLAVE FORÁNEA Y
UNA RESTRICCION TIPO C POR CADA COLUMNA CREADA COMO NOT NULL.

c) Estando en la línea de comandos digite las sentencias para adicionar llave foránea a las
demás tablas del caso CITAS-MEDICAS (solo aquellas con llaves foráneas.

También podría gustarte