Está en la página 1de 6

SISTEMAS MANEJADORES DE BASE DE DATOS

DROP. Elimina cualquier objeto relacional


ALTER. Modifica alguna caracterstica de cualquier objeto relacional
TABLE SPACE PRIMARIO. Se define con base el el layout
METADATO. Informacin de cada dato y se aloja en los catalogos del DBMS (no confundir con el
diccionario de datos de la etapa de anlisis.
1 CHAR = BYTE
DECIMAL (10,4)= 999999.9999 = 6 BYTES
INTEGER (DB2, IBM) = 4 BYTES
SMALLINT (10, 4)
PRIQTY. Es para los registries posibles de una table
SECQTY. Para espacio adicional cuando se rebase la cantidad primaria
RESPECTO A UNA TABLA
UPDATE. Actualiza valores en algunas columnas
SELECT. Para consultar alguna tabla
INSERT. Para agregar registros en una tabla
DELETE. Elimina registros
GRANT. Otorga permisos o privilegios para poder utilizar comandos
REVOKE. Quite permiso concedido o denegado previamente.
FUNCIONES DE COLUMNA
SUM. Totaliza los valores de un dominio numero de una columna
AVG. Calcula el promedio de un conjunto de valores del un dominio de una columna
MIN. Obtiene el minimo valor dentro de un conjunto de valores en el dominio de una columna
COUNT. DEVUELVE EL NUMERO DE ELEMENTOS DE UN GRUPO
DISTINCT. No repite los valores



NORMALIZACION
Consiste en aplicar restricciones a las columnas de las tablas
Objetivo. Crear estructuras de datos relacionales optimas para evitar ambigedades o anomalas al
intentar actualizar, borrar, insertar o consultar registros de una tabla (DML).
1 FORMA NORMAL (1FN). Todos los valores en el dominio de una columna deben ser nicos.
Objetivo. Evitar mltiples valores en el dominio de cada columna
Toda estructura de datos relacional esta en segunda forma normal en automtico y/si solamente
tiene una llave primaria.
2FN. Toda columna en una tabla que no forma parte de la llave primaria debe depender
completamente de la llave primaria.
Objetivo. Evitar dependencias parciales para cumplir que siempre exista una dependencia total de
la llave primaria
3FN. Toda columna q no forma parte de la llave primaria no puede depender de otra que tampoco
forme parte de la llave primaria
Objetivo. Eliminar dependencias transitivas
CARDINALIDAD. Es el numero de registros de una tabla.













CREACION DE LA BASE DE DATOS
CREATE STOGROUP STOGRAEREO
VOLUMES (DISCOX1, DISCO2)
CREATE DATABASE AEROLINEA
STOGROUP STOGRAEREO
CREATE TABLESPACE TSVUELO
USING STOGROUP STOGRAEREO
PRIQTY 80KB
SECQTY 40KB
CREATE TABLE VUELO
(NUM_VUELO SMALLINT NOT NULL; FECHA_VUELO DATE NOT NULL; NUM_PILOTO
SMALLINT NOT NULL) IN AEROLINEA.TSVUELO
CREATE UNIQUE INDEX 1XVUELO ON VUELO (NUM_VUELO, FECHA_VUELO)
USING STOGROUP STOGRAEREO
PRIQTY 60KB
SECQTY 30KB

GRANT SELECT, INSERT UPDATE, DELETE ON VUELO TO USER12 WITH GRANT
NULL se utiliza para indicar la ausencia de valor asociado a un campo para un
determinado registro.
FUNCIONES ESCALARES
YEAR (FECHA_VUELO)
MONTH (FECHA_VUELO)
DAY (FECHA_VUELO)
SUBSTR (CURP, 5, 6)

CONSULTAS
BOLETA CVE_MATERIA CALIFICACION
2001 SMBD 9
2001 REDES 8
2001 PROBA 8
2001 COSTOS

SELECT AVG (CALIFICACION) FROM CALIFICACION
WHERE BOLETA = 2001
SELECT DISTINCT (CVE_MATERIA) FROM CALIFICACION
DE LA TABLA EMPLEADO
-SELECT DISTINCT (CVE_DEPTO) FROM EMPLEADO
-SELECT NUM_EMPLEADO FROM EMPLEADO
-SELECT NUM_PUESTO, NOM_EMPLEADO, E.NUM_PUESTO, NOM_PUESTO,
E.NUM_DEPTO, NOM_DEPTO
FROM EMPLEADO E, PUESTO P, DEPARTAMENTO D
WHERE E.NUM_PUESTO = P.NUM_PUESTO
AND E.NUM_DEPTO = D.NUM_DEPTO

-SELECT MAX (SUELDO_QUINCENAL)*2,
MIN (SUELDO_QUINCENAL)*2,
AVG (SUELDO_QUINCENAL)*2,
SUM (SUELDO_QUINCENAL)*2,
COUNT (*)
FROM EMPLEADO
-SELECT *FROM EMPLEADO
WHERE SUELDO_QUINCENAL *2> (SELECT AVG (SUELDO_QUINCENAL)*2 FROM
EMPLEADO)

Obtener la informacin de cada unos de los empleados que tenga un sueldo mayor al sueldo
promedio de su departamento
SELECT *FROM EMPLEADO E1
WHERE SUELDO_QUINCENAL> (SELECT AVG (SUELDO_QUINCENAL)
FROM EMPLEADO E2
WHERE E1.NUM_DEPTO = E2.NUM_DEPTO)



Toda la informacin de los empleados que fueron contratados el ultimo mes en que hubo
contrataciones
SELECT *FROM EMPLEADO
WHERE MONTH (FECHA_CONT) = (SELECT MONTH (MAX (FECHA_CONT) FROM
EMPLEADO)
AND YEAR (FECHA_CONT) = (SELECT YEAR (MAX (FECHA_CONT) FROM EMPLEADO)

Insercion de un nuevo registro a una tabla
INSERT INTO EMPLEADO VALUES (1, HUITRON TOLEDO ADRIAN,
HUTA871101HDFTLD02, 2011-03-01, 100.00, 017, 01
Al registro cambiarle la fecha
UPDATE EMPLEADO SET FECHA_INGRESO = 2012-09-03 WHERE NUM_EMPLEADO = 1
Escribir el postulado o query para crear la vista con el nombre V1_EMPLEADO con base en la
tabla empleado
CREATE VIEW V1_EMPLEADO AS (SELECT * FROM EMPLEADO
WHERE NUM_DEPTO BETWEEN 1 AND 99)

Otorgar grant al usuario u1234 otorgandole los commandos del DML y a su vez que el usuario
pueda otorgar privilegios a otros usuarios
GRANT SELECT, INSERT, UPDATE, DELETE
ON V1_EMPLEADO TO U1234 WITH GRANT OPTION

Escribir el postulado para obtener las cifras anuales por departamento delo que se paga por
concepto de sueldos
1.- sueldos actuales
2.- si se otorga un incremento del 3.89%
3.- por el total de ambos
Solo para los departamentos que tengan al menos 2empleados cuyo sueldo promedio mensual sea
menor a $9000
SELECT SUM (SUELDO_QUINCENAL)*24, SUM (SUELDO_QUINCENAL)*24*0.0389,
SUM (SUELDO_QUINCENAL)*24*1.0389, NUM_DEPTO
FROM EMPLEADO
GROUP BY NUM_DEPTO
HAVING COUNT (*) >= 2 AND AVG (SUELDO_QUINCENAL)*2<9000



Escibirel postulado para obtener de forma mensual el total de sueldos, el sueldo promedio, el
sueldo maximo, sueldo minimo y la cardinalidad de cada depot pero solo de los departamentos que
tengan al menos 10 empleados, sustituyendo las columnas por los siguientes nombres
respectivamente total_de_sueldos, sueldo_promedio, sueldo_maximo, sueldo_minimo,
cantidad_de_empleadosy ordenar por numero de departamento de forma descendente
SELECT SUM (SUELDO_QUINCENAL)*2 AS TOTAL_DE_SUELDOS , AVG
(SUELDO_QUIENCENAL)*2 AS SUELDO_PROMEDIO, MAX (SUELDO_QUINCENAL)*2 AS
SUELDO_MAX, MIN (SUELDO_QUINCENAL)*2 AS SUELDO_MIN), COUNT (*) AS CA
CONTIDAD_EMPLEADOS, NUM_DEPTO FROM EMPLEADO
GROUP BY NUM_DEPTO
HAVING COUNT (*) >9 ORDER BY NUM_DEPTO DESC

Escriba el postulado para obtener las columnas num_empleado, nom_empleado, la feha de
nacimiento en format aa/mm/dd, la columna fech_ingreso de los empleados en el ultimo mes que
hubo contrataciones, sustituyendo la columna para la obtencion de la fecha de nacimiento por la
leyernda fecha de nacimiento
SELECT NUM_EMPLEADO, NOM_EMPLEADO, SUBSTR (CURP, 5, 6) AS FECHA_DE
_NACIMIENTO, FECH_INGRESO FROM EMPLEADO
WHERE MONTH (FECH_INGRESO) = (SELECT MONTH (MAX (FECH_INGRESO)) FROM
EMPLEADO)
AND YEAR (FECH_INGRESO) = (SELECT YEAR (MAX (FECH_INGRESO)) FROM EMPLEADO)


Escriba el postulado para obtener las columnas num_empleado, nom_empleado, sueldo mensual,
num_depto de los empleados que no tengan apellido Villarreal en el paterno suponiendo que este
es el primero en todos los valores de la columna y ordenar por num_depto de forma ascendente.
SELECT NUM_EMPELADO, NOM_EMPLEADO, (SUELDO_QUINCENAL)*2 AS
SUELDO_MENSUAL, NUM_DEPTO FROM EMPLEADOS
WHERE NOM_EMPLEADO NO LIKE VILLARREAL%
ORDER BY NUM_DEPTO

También podría gustarte