Examen

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 4

--======1ER EXAMEN BASE DE DATOS II POSTGRESQL ====TIPO A===========--

/*==================================================================
Nombres y Apellidos:
Cedula de Identidad:
Examen:
Subir al siguiente enlace: https://forms.gle/j8mWg4Uqr9mcRaej6
====================================================================*/
--1. Crear una Base de Datos denominado 1EXAMEN_A en PostgreSQL
CREATE DATABASE "1EXAMEN_A"
--2. Crear un usuario con el nombre EXAMEN_1A con contraseña 12345 de tipo super
usuario
CREATE USER EXAMEN_1A PASSWORD '12345'
--3. A la base de datos 1EXAMEN_A asignar el usuario creado y con su contraseña
correspondiente
ALTER DATABASE "1EXAMEN_A" OWNER TO EXAMEN_1A
--4. Se debe crear un Esquema denominado DATOS_EXAMEN_A en la misma base de datos
creado esto para futuros backup (solo creación)
CREATE SCHEMA DATOS_EXAMEN_A
--====AQUÍ SE DEBEN CREAR DOMINIOS DE DATOS PARA LAS TABLAS========
--5. ==================CREACION DE TABLAS============================
/*==================================================================
--crear las tablas por defecto en el esquema PUBLIC
Nombre de la tabla: CARRERAS
Campos:
1. Carrera_No: DOM_NRO
2. C_Nombre: TEXTO50
3. SIGLA SIGLA
Restricciones:
1. Crear un dominio de datos CARRERA_NO de tipo llave primaria ejemplo CAR-01, CAR-
02, CAR-03,…,N
2. Crear dominio de datos con nombre TEXTO50 de tipo varchar con tamaño de 50 no
debe aceptar valores nulos
3. Crear dominio de datos con nombre SIGLA solo debe ingresar caracteres de tipo
alfabético ejemplo A,B,C,D,…,Z letras mayúsculas y no números ni caracteres
especiales
===================================================================*/
--1.
CREATE DOMAIN CARRERA_NO AS CHAR(6)CHECK (VALUE~'^[A-Z]{2}[-]{1}[0-9]{1}$');
--2.
CREATE DOMAIN TEXTO50 AS VARCHAR(50) NOT NULL
--3.
CREATE DOMAIN SIGLA AS VARCHAR(50) CHECK (VALUE~'[A-Z][A-Z][A-Z]' AND NOT
VALUE~'^[1-0]{3}$')
--TABLA--
CREATE TABLE CARRERAS(
Carrera_No CARRERA_NO,
C_Nombre TEXTO50,
SIGLA SIGLA,
PRIMARY KEY(Carrera_No)
);
/*Nombre de la tabla: ESTUDIANTES
Campos:
1. Est_No: DOM_CODIGO
2. nombre: TEXTO50
3. apellido TEXTO50
4. fecha_nacimiento DATE
5. fecha_ingreso DATE
6. carrera_No DOM_NRO
7. promedio ENTERO
8. sexo VALOR
Restricciones:
1. Crear un dominio de datos denominado EST_NO de tipo entero en secuencia de
impares positivos ejemplo 1, 3, 5,…,N estos datos debe ingresar automaticamente
2. Usar el mismo dominio de datos TEXTO50 para los campos indicados
3. Crear un dominio de datos llamado VALOR donde el campo sexo solo debe
aceptar valores M, F de tipo mayúscula usar un constraint para el caso
4. Para el campo carrera_No usar el mismo dominio de datos DOM_NRO
5. Crear un dominio de dato ENTERO donde solo debe ingresar números positivo
entre 1 al 100
********************************************************************/

create domain EST_NO as int check (value%2=1)


create domain VALOR as char (1) constraint CK_valor check (VALUE~'^[M]{1}$' AND
VALUE~'^[F]{1}$')
create domain DOM_CODIGO as int;
create domain DOM_NRO as CARRERA_NO;
create domain ENTERO as int check (value>100 and value<1);

create table estudiantes(


Est_No DOM_CODIGO,
nombre TEXTO50,
apellido TEXTO50,
fecha_nacimiento date,
fecha_ingreso date,
carrera_No DOM_NRO,
promedio ENTERO,
sexo VALOR
)

--6.Adicionar constraint de llave primaria al campo Est_No de la tabla ESTUDIANTES

alter table estudiantes add constraint pk_llave primary key(Est_No)

--7.Adicionar constraint de llave secundaria al campo carrera_No de la tabla


ESTUDIANTES con el campo carrera_No de la tabla CARRERAS

alter table estudiantes add constraint fk_llave foreign key (carrera_No) references
carreras (carrera_No)

--8.Agregar nuevos registros a las tablas CARRERAS, ESTUDIANTES


/*Insertar datos en la tabla carreras
('CAR-01','Psicologia','PSI'),
('CAR-02','Ingenieria de Sistemas','IDS'),
('CAR-03','Contabilidad','CON'),
('CAR-04','Ingenieria de Quimica','IDQ'),
('CAR-05','Mercadotecnia','MER'),
('CAR-06','Arquitectura','ARQ'),
('CAR-07','Administracion de Empresas','ADE'),
('CAR-08','Medicina','MED');
('CAR-09,'Sociologia','SOC');
('CAR-10','Parvularia','PAR');*/

insert into CARRERAS (Carrera_No, C_Nombre, SIGLA) VALUES


('CAR-01','Psicologia','PSI'),
('CAR-02','Ingenieria de Sistemas','IDS'),
('CAR-03','Contabilidad','CON'),
('CAR-04','Ingenieria de Quimica','IDQ'),
('CAR-05','Mercadotecnia','MER'),
('CAR-06','Arquitectura','ARQ'),
('CAR-07','Administracion de Empresas','ADE'),
('CAR-08','Medicina','MED'),
('CAR-09','Sociologia','SOC'),
('CAR-10','Parvularia','PAR');

/*Insertar datos en la tabla estudiantes


(1,'Juan','Vazquez','1960-05-08','1992-02-18','CAR-01',89,'M'),
(3,'Carlos Miguel','Lopez','1990-07-18','2016-02-05','CAR-02',70,'M'),
(5,'Maria Carlota','Sanchez','2020-07-28','2003-05-25','CAR-09',75,'F'),
(7,'Casandra','Gavilan','2009-06-08','2015-02-21','CAR-10',69,'F'),
(9,'Andrea','Davila','1980-08-28','2010-02-11','CAR-02',55,'F'),
(11,'Joao','Aguiar','2000-09-18','2011-02-27','CAR-01',89,'M'),
(13,'Flor','Velazquez','2001-03-13','2008-02-24','CAR-03',90,'F'),
(15,'Celeste','Vazquez','1999-04-11','2007-02-24','CAR-05',95,'F'),
(17,'Abigail','Andrade','1998-06-23','2012-02-25','CAR-07',75,'F'),
(19,'Juan Carlos','Espinoza','2005-27-08','2012-02-26','CAR-10',85,'M'),
(21,'Jose Carlos','Flores','2006-07-28','2005-02-23','CAR-06',85,'M'),
(23,'Cristian Jesus','Kilberth','2010-03-08','2006-02-18','CAR-01',98,'M'),*/

insert into CARRERAS (est_no, nombre, apellido, fecha_nacimiento, fecha_ingreso,


carrera_no, promedio, sexo) VALUES
(1,'Juan','Vazquez','1960-05-08','1992-02-18','CAR-01',89,'M'),
(3,'Carlos Miguel','Lopez','1990-07-18','2016-02-05','CAR-02',70,'M'),
(5,'Maria Carlota','Sanchez','2020-07-28','2003-05-25','CAR-09',75,'F'),
(7,'Casandra','Gavilan','2009-06-08','2015-02-21','CAR-10',69,'F'),
(9,'Andrea','Davila','1980-08-28','2010-02-11','CAR-02',55,'F'),
(11,'Joao','Aguiar','2000-09-18','2011-02-27','CAR-01',89,'M'),
(13,'Flor','Velazquez','2001-03-13','2008-02-24','CAR-03',90,'F'),
(15,'Celeste','Vazquez','1999-04-11','2007-02-24','CAR-05',95,'F'),
(17,'Abigail','Andrade','1998-06-23','2012-02-25','CAR-07',75,'F'),
(19,'Juan Carlos','Espinoza','2005-27-08','2012-02-26','CAR-10',85,'M'),
(21,'Jose Carlos','Flores','2006-07-28','2005-02-23','CAR-06',85,'M'),
(23,'Cristian Jesus','Kilberth','2010-03-08','2006-02-18','CAR-01',98,'M');

--Realizar las pruebas de visualización usando el LMD con insertar 2 registro a las
tablas

--9. Adicionar una columna TELEFONO a la tabla carreras, donde debe crearse a
través de dominio de datos TELEFONO la validación correspondiente para el teléfono.
En este caso, se establece que el valor debe estar en el formato "xxx-xxxxxxxx",
donde "x" es un número del 0 al 9. Ejemplo 591-73299220 (ahora si no permite
insertar valores permitir que acepten nulos)

/*========= CREACION DE HERENCIA DE TABLAS===========================


--10.Crear herencia de 2(dos) tablas hijas que hereden campos de la tabla CARRERAS,
el cual tiene que tener nombres las tablas de: CARRERA_1 CARRERA_2, en la tabla
CARRERRA_1 solo deben ingresar en su campo carrera_No registros en el rango
(ejemplo 1 hasta 20), y en la tabla CARRERA_2 en el campo carrera_No registro en el
rango (ejemplo 21 hasta 40), aplicar las reglas correspondientes y ver resultados
con LMD y LQD realizar 1 ó 2 inserción de registros a las 2 tablas, mostrar
resultados con capturas de pantalla.

--11.Crear herencia de identidad para la tabla ESTUDIANTES con 3(tres) tablas hijas
denominados: ESTUDIANTES1, ESTUDIANTES2, ESTUDIANTES3, de igual arquitectura y
diseño solo aplicar en campos usando LQD, mostrar resultados con capturas de
pantalla.

--12.Crear herencia de múltiple para la tabla CARRERA y ESTUDIANTE con 1 tabla hija
de igual arquitectura y diseño solo campos realizar aplicando el LQD el nombre de
la tabla debe ser PERSONAL con un único campo llamado Personal_No de tipo primary
key, y luego hacer heredar los siguientes campos solo datos aplicando LQD, mostrar
resultados con capturas de pantalla.

--=========================SUBCONSULTAS (SUBQUERY) =================


--13.Realizar la subconsulta donde debe mostrar los campos de SIGLA, NOMBRE y
APELLIDO de los estudiantes con un promedio que estén en el rango de 51 a 70 esto
aplicando la tabla carreras y estudiantes

--14.Realizar la subconsulta para listar aquellos estudiantes que estén en la


carrera Parvularia el cual debe mostrar en una lista NOMBRE CARRERA, NOMBRE
ESTUDIANTE

--15.Realizar una subconsulta aquellos estudiantes que su apellido en la penúltima


letra sea igual a la letra E, ejemplo Marquez se debe buscar por la letra E

También podría gustarte