Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MODELADO
DE
DATOS
Profesor:
Luis Javier Bracho
www.aul@Frontino.org.ve
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
MODELADO DE
DATOS
Es un recurso didáctico elaborado como material de apoyo a la
Unidad Curricular Modelado de Datos de Ingeniería Informática,
establecido por el Programa Nacional de Formación en Informática
que se imparte en la Universidad Politécnica Territorial “J.J Montilla”.
Elaborado Por:
Desarrolladores de Proyecto aul@Frontino.
Ing. MSc. Luis Bracho (Líder de Proyecto).
T.S.U Rosendo Angélica (Gestor de Configuración).
Noviembre,2012
www.aul@Frontino.org.ve
2
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Dar a conocer el Modelado de Datos y las operaciones básicas que se pueden realizar
con SQL (Lenguaje Estructurado de Consultas), que tienen una aplicación directa con la
creación de aplicaciones en red.
Obtener una visión del modelado de datos que necesita manejar la organización
utilizando diagramas entidad relación.
www.aul@Frontino.org.ve
3
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
MODELO DE DATOS
Descripción de datos.
Operaciones.
Reglas de integridad.
Modelo relacional
Modelo multidimensional
Modelos lógicos
…
www.aul@Frontino.org.ve
4
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
REPRESENTACION DE DATOS
REPRESENTACIÓN DE DATOS
www.aul@Frontino.org.ve
5
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Es una técnica que nos permite modelar los datos que una organización administra.
Su objetivo es proporcionar un modelo independiente de cualquier almacenamiento de
datos y método de acceso.
Los elementos que lo conforman son entidad, relación, atributo y claves primarias.
Relación: es una asociación entre dos entidades referida a un nombre. Cada relación
tiene dos extremos, para cada uno de los cuales tiene un:
Nombre
Cardinalidad (cuántos)
Una relación es una asociación entre dos entidades referida a un nombre. Existen
tres tipos de relaciones:
Uno a muchos.
Muchos a uno.
Muchos a muchos.
www.aul@Frontino.org.ve
6
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
7
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
8
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
9
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
10
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
PROCESO DE NORMALIZACIÓN
1FN: Define un solo valor para un atributo. Se aplica, cuando existe más de un valor
a la vez para un atributo o para más de un atributo con el mismo nombre. Permite
eliminar los atributos repetidos o grupos de atributos agregando una nueva entidad.
Ejemplo:
www.aul@Frontino.org.ve
11
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
2 FN
Elimina y/o ubica atributos dependientes sólo en parte del identificador único.
Ejemplo:
Entonces una entidad está en segunda forma normal cuando está en 1FN y todos sus
atributos no claves dependen únicamente de la clave primaria.
www.aul@Frontino.org.ve
12
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
3FN: Consiste en eliminar los atributos dependientes de atributos que no son parte
del identificador único:
La Tercera Forma Normal, es el mecanismo final para identificar las entidades y/o
relaciones perdidas y generalmente se da cuando nos encontramos con relaciones de
muchos a muchos.
Una tabla esta en 3FN, cuando esta en 2FN y todos los atributos no claves dependen
completamente de la clave primaria. Es decir, que no hay atributos que dependan en
forma parcial y que además no se den relaciones de muchos a muchos.
BCFN (BoyceCode)
4FN
5FN
Se considera un modelo normalizado cuando cumple con la tercera forma
normal.
www.aul@Frontino.org.ve
13
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
14
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
La información de una tabla puede ser relacionada con la información de otra tabla.
Cada empleado en la tabla EMPLEADOS tiene un numero de departamento
(id_departamento), el cual referencia al número de departamento en la tabla
DEPARTAMENTO. Por ejemplo, MARÍA (nombre_emp = MARÍA) JIMENEZ (apellido_emp =
JIMENEZ), trabaja en el departamento 20 (id_departamento = 20), y el departamento 20
es el departamento de VENTAS (nombre_dep = VENTAS) que está ubicado en la ciudad de
CARACAS (ciudad_dep = CARACAS).
www.aul@Frontino.org.ve
15
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
MODELADO SEMÁNTICO
Consiste en estudiar los datos que se pretenden almacenar en la base de datos antes
de elegir el modelo de datos concreto que se va a usar en la base de datos.
“El modelado semántico permite separar el análisis (¿qué?), del diseño (¿cómo?)”.
www.aul@Frontino.org.ve
16
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
17
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
SQL
El hecho de que sea estándar no quiere decir que sea idéntico para cada manejador
de base de datos. En efecto, determinados manejadores de bases de datos implementan
funciones específicas que no tienen necesariamente que funcionar en otras.
www.aul@Frontino.org.ve
18
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
INSTRUCCIÓN SELECT
SELECCIONANDO COLUMNAS
Sintaxis:
FROM nombre_tabla;
SELECT *
FROM nombre_tabla;
Ejemplo: Muestre todas las columnas con información acerca de cada departamento
www.aul@Frontino.org.ve
19
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
SQL> SELECT *
1 FROM departamentos;
nombre_dep Id_departamento
------------ ----------------
PROGRAMACION 10
VENTAS 20
ALMACEN 30
OPERACIONES 40
www.aul@Frontino.org.ve
20
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
cargo
----------------
PROGRAMADOR
VENDEDOR
GERENTE
ANALISTA
PRESIDENTE
SELECCIONANDO FILAS
www.aul@Frontino.org.ve
21
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Operadores matemáticos
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Distinto
= Igual
Operadores lógicos
AND
OR
NOT
Otros Operadores
Selecciona los registros cuyo valor de campo se asemeje, no teniendo en
LIKE
cuenta mayúsculas y minúsculas.
Da un conjunto de valores para un campo para los cuales la condición de
IN y NOT IN
selección es (o no) valida.
IS NULL e IS NOT Selecciona aquellos registros donde el campo especificado esta (o no)
NULL vacío.
BETWEEN...AND Selecciona los registros comprendidos en un intervalo.
DISTINCT Selecciona los registros no coincidentes.
DESC Clasifica los registros por orden inverso.
Comodines
* Sustituye a todos los campos.
% Sustituye a cualquier cosa o nada dentro de una cadena.
_ Sustituye un solo carácter dentro de una cadena.
www.aul@Frontino.org.ve
22
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Nota: para mantener la precedencia en los operadores, las expresiones deben ser
escritas entre paréntesis.
Ejemplo: muestre numero del empleado, nombre, apellido y sueldo básico de todos los
empleados del departamento 30.
SELECCIONANDO FILAS
www.aul@Frontino.org.ve
23
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
24
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Para mostrar filas basados en una lista o conjunto utilizar el operador IN o NOT IN.
Ejemplo: muestre el nombre del empleado, cargo y número de departamento para todos los
empleados programadores y analistas.
www.aul@Frontino.org.ve
25
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Para ordenar los resultados de una consulta se utiliza la cláusula ORDER BY.
Se puede dar orden ascendente, descendente, por múltiples columnas y por la posición
de la columna.
Sintaxis:
www.aul@Frontino.org.ve
26
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
27
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Ejemplo orden descendente: muestre el sueldo básico, cargo, apellido y nombre de los
empleados del departamento 10 en orden descendente por salario básico.
www.aul@Frontino.org.ve
28
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Ejemplo orden por posición de columnas: muestre el apellido, nombre, sueldo básico y
cargo de los empleados del departamento 10 en orden ascendente por salario básico.
www.aul@Frontino.org.ve
29
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
LABORATORIO 1
www.aul@Frontino.org.ve
30
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Para crear tablas en una base de datos, se utiliza el comando CREATE TABLE, el
cual requiere del nombre de la tabla, nombre de la columna y tipo de dato de la
columna.
Sintaxis:
www.aul@Frontino.org.ve
31
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Tipos de datos:
TIPO DESCRIPCIÓN
Tinyint [Unsigned] Entero de 0 a 255 o de -128 a 128 si dispone de signo.
Smallint [Unsigned] Entero de 0 a 65535 o de -32768 a 32768 si dispone de signo.
Entero normal. Rango de -2147483648 a 2147483648 si
Int Integer
dispone de signo o de 0 a 4294967295 si no disponede él.
Número en coma flotante de simple precisión si no se pasa
Float [( M, D) ] ningún argumento. M es el número de dígitos y D es el
número de decimales.
Double [( M, D) ] Número en coma flotante de doble precisión. Siempre
Double Precision [( M, D)] dispone de signo. M es el número de dígitos y D es el número
Real [( M, D)] de decimales.
Número almacenado como una cadena de caracteres. M es el
Decimal [(M [, D ] )]
número total de dígitos sin contar el signo ni el punto
Numeric (M , D)
decimal y D es el número de decimales.
Tipo fecha. Admite formatos "YYYY-MM-DD" o "YY-MM-DD" o
Date "YYMMDD". Rango desde el 01-01-1000 al 31-12-9999. Se
pueden asignar como cadenas de caracteres.
Tipo hora. Admite formato "HH:MM:SS" o "HHMMSS" o "HHMM"
Time
o "HH".
Cadena de caracteres de la longitud indicada. Se reserva el
Char (logitud)
espacio en caracteres aunque no se usen.
Cadena de caracteres de la longitud indicada que se
Varchar (logitud) almacena con su ocupación. El espacio sobrante no se
reserva. Máxima logitud : 255 caracteres.
Crear una nueva tabla usando la cláusula AS en el CREATE TABLE, usando atributos de
columnas y datos de una tabla existente.
Sintaxis:
Ejemplo: crear una tabla denominada fecha_ingreso que contenga las columnas
id_empleado, apellido_emp, nombre_emp y fecha_ingreso de los empleados asociados al
departamento 10, usando la tabla empleados.
Sintaxis ADD:
www.aul@Frontino.org.ve
33
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Sintaxis MODIFY:
Sintaxis:
www.aul@Frontino.org.ve
34
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
CREANDO VISTAS
Una vista es un objeto de la base de datos que representa lógicamente a una o más
tablas. Una vista no contiene datos. Toda la data se deriva del interior de las tablas.
Proporciona seguridad.
Conveniencia.
Perpestiva.
www.aul@Frontino.org.ve
35
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Ejemplo: crear una vista que contenga el número del empleado, apellido, nombre y cargo
para todos los empleados del departamento 10.
SQL> SELECT *
1 FROM vempleados;
Para eliminar una vista de la base de datos, se utiliza la cláusula DROP VIEW
Sintaxis:
www.aul@Frontino.org.ve
36
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
CREANDO INDICES
Los índices son estructuras opcionales asociadas a las tablas, usadas para aumentar
la velocidad de ejecución de las consultas y/ o garantizar unicidad.
www.aul@Frontino.org.ve
37
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Índice usado:
SQL> SELECT *
1 FROM empleados
2 WHERE nombre_emp = 'JUAN';
Índice no usado:
SQL> SELECT *
1 FROM empleados;
Crear indices únicos para asegurar que no contendrán dos filas de idénticos valores en
la columna indexada o columnas.
Sintaxis:
www.aul@Frontino.org.ve
38
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
LABORATORIO 2 Y 3
www.aul@Frontino.org.ve
39
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Para insertar una fila en una tabla debe usar la sentencia o instrucción INSERT
Sintaxis:
Ejemplo: insertar valores en todas las columnas de la tabla empleados para un nuevo
empleado.
SQL> INSERT INTO empleados
www.aul@Frontino.org.ve
40
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
UPDATE nombre_tabla
SET nombre_columna1 = valor, nombre_columna2 = valor
WHERE condicion
www.aul@Frontino.org.ve
41
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
42
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
43
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Elimine el empleado numero 7369 (MARIA JIMENEZ) de la tabla empleados para reflejar
esta terminación.
www.aul@Frontino.org.ve
44
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
LABORATORIO 4
www.aul@Frontino.org.ve
45
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Para ejecutar operaciones de cálculo sobre datos, debes usar los siguientes
operadores aritméticos:
+ SUMAR
- RESTAR
* MULTIPLICAR
/ DIVIDIR
PRECEDENCIA EN LOS
()
OPERADORES
SELECT…
FROM…
WHERE…
GROUP BY…
HAVING…
ORDER BY…
Muestre los resultados de los cálculos como si fueran columnas con expresiones
aritméticas en declaraciones SELECT
www.aul@Frontino.org.ve
46
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
sueldo_básico+
nombre_emp apellido_emp sueldo_basico monto_comision
monto_comision
---------------- ----------------- ------------------- ---------------------- -------------------------
JUAN RODRIGUEZ 500000 200000 700000
PEDRO PEREZ 600000 300000 900000
CARMEN MENDOZA 650000 700000 1350000
Una fila sin ningún valor en una columna es vista por que contiene un valor nulo (NULL).
Cuando una expresión o función individual se refiere a una columna que contiene un valor
nulo, el resultado también es nulo.
Ejemplo: muestre el nombre, apellido, sueldo anual más el monto de la comisión para
todos los vendedores. Ordene los resultados por sueldo anual.
www.aul@Frontino.org.ve
47
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
48
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
49
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
ELEMENTO DESCRIPCIÓN
DD Días del mes (Ejemplo: 31).
DY Días de la semana (Ejemplo: FRI).
Nombre del día en mayúsculas, compreso con blancos para longitud de
DAY
9 caracteres. (MONDAY).
DDSPTH Nombre del día en mayúsculas, abreviado. (Ejemplo: TWELFTH).
MM Mes (01 - 12) (Ejemplo: JAN = 01).
MON Nombre del mes en mayúsculas, 3 letras abreviadas (Ejemplo: JAN).
Nombre del mes en mayúsculas, compreso con blancos para longitud
MONTH
de 9 caracteres. (JANUARY).
YY Dos dígitos del año (Ejemplo: 02).
YYYY Cuatro dígitos del año (Ejemplo: 2002).
HH:MI:SS Horas: Minutos: Segundos (Ejemplo: 09:16:23).
Modo completo: elementos posteriores compresos con rellenos
fm
blancos, permitiendo un resultado de longitud variable.
Ejemplo: mostrar las fechas de contrato para todos los empleados del departamento 20
en formato DD, de Mes y YYYY.
www.aul@Frontino.org.ve
50
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Fecha de Ingreso
-----------------------
05 de Mayo 2000
30 de Mayo 2002
02 de Febrero 2000
18 de Febrero 2001
17 de Diciembre 2000
Para mostrar los resultados de las consultas de una manera más comprensible,
combina las columnas y constantes de tipo caracter.
DEPARTAMENTOS
-------------------
Programación - Valencia
Ventas - Caracas
Almacén - Caracas
Operaciones - Maracaibo
Educación - Portuguesa
Finazas - Merida
www.aul@Frontino.org.ve
51
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Ejemplo: muestre las primeras cinco letras del nombre del departamento y el nombre
completo de la ubicación del departamento.
nombre_dep ubicación_dep
----------- -------------
PROGR VALENCIA
VENTA CARACAS
ALMAC CARACAS
OPERA MARACAIBO
EDUCA PORTUGUESA
FINAN MERIDA
www.aul@Frontino.org.ve
52
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Ver resúmenes por grupos de filas es mucho más cómodo que trabajar con el
conjunto completo de las filas..
Ejemplo: Muestre el promedio, máximo y la suma de los salarios anuales de todos los
vendedores.
www.aul@Frontino.org.ve
53
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
EMPLEADOS COMISION
------------ ----------
14 3
GROUP BY
Mostrar una tabla en subgrupos de filas con la cláusula GROUP BY
www.aul@Frontino.org.ve
54
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Ejemplo: muestre la cantidad de empleados para cada categoría de cargo con cada
departamento.
www.aul@Frontino.org.ve
55
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
HAVING
Para colocar una condición a la funciones de grupo utilice la claúsula HAVING.
Ejemplo: Muestre el salario anual para todos los tipos de cargos con más de dos
empleados.
LABORATORIO 5
1 Para cada empleado, calcule el tiempo que ha transcurrido desde que ingresó a la
empresa. Ordena los resultados por el número de meses obtenidos.
2 Muestra el nombre, apellido, total sueldo y fecha de ingreso para todos aquellos
empleados cuyo salario es mayor que el doble de su comisión. Muestre la fecha de
ingreso en el formato: 3 de Diciembre, 2001.
3 Muestre el número de años que han pasado desde la invención del AUTOMÓVIL
5 Muestra el año del invento más viejo y del invento más nuevo.
www.aul@Frontino.org.ve
56
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
ENLAZANDO TABLAS
Un Join es la forma usada por el comando SELECT para combinar información de una
o más tablas.
Las especificaciones que se deben cumplir para usar un JOIN en una consulta:
www.aul@Frontino.org.ve
57
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Tipos de JOIN:
Sintaxis:
www.aul@Frontino.org.ve
58
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
www.aul@Frontino.org.ve
59
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Con un JOIN externo se pueden combinar dos o más tablas retornando aquellas filas de
una tabla que no tiene relación directa en la otra tabla.
Sintaxis:
or
Usando un NON- EQUIJOIN en la cláusula WHERE se pueden retornar filas de dos o más
tablas basadas en una relación sobre otra condición de igualdad.
Ejemplo: muestre el nombre, apellido y salario de los empleados cuyo grado de sueldo
pertenezca al nivel 3.
www.aul@Frontino.org.ve
60
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
ESCRIBIENDO SUBQUERYS
Las subconsultas permiten seleccionar filas de una tabla con una condición que
depende de los valores de otra consulta. las subconsultas pueden aparecer en la
cláusula WHERE de las siguientes instrucciones:
SELECT
INSERT
UPDATE
DELETE
Se puede retornar un valor completando una condición en la cláusula WHERE con una
consulta de una sola fila.
Ejemplo: muestre el nombre, apellido y cargo de todos los empleados con el mismo
departamento que tiene CARLOS DAZA.
www.aul@Frontino.org.ve
61
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Importante: las subconsultas de una sola fila usan los siguientes operadores:
>, <, >=, <=, <>, o ! =
Se puede retornar más de un valor completando una condición en la cláusula WHERE con
una consulta de múltiples filas.
www.aul@Frontino.org.ve
62
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Ejemplo: muestre el nombre, apellido y fecha de ingreso de todos los empleados cuyo
salario es mayor que el promedio de salario de los empleados y quienes trabajen en el
departamento con cualquier empleado de nombre JOSE.
LABORATORIO 6
Use las tablas EMPLEADOS, PAISES e INVENTOS para completar los siguientes
ejercicios:
www.aul@Frontino.org.ve
63
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
<?PHP
$conexion = mysql_connect ("localhost","root","root");
mysql_select_db ("dbagricola", $conexion) OR die ("No se puede conectar");
$sql = "SELECT * FROM trubros";
$result = mysql_query ($sql,$conexion);
?>
CÓDIGO MISCLASES.PHP
<?
//--------------------------------------------------------------------
// Clase rubro
//--------------------------------------------------------------------
class rubro {
var $cid_codigo;
var $cdescripcion;
function consulta()
{
$filas;
$contador = 0;
$conexion = mysql_connect("localhost","root","root");
mysql_select_db ("dbagricola", $conexion) OR die ("No se puede conectar");
$sql="SELECT * FROM trubros";
$result=mysql_query($sql,$conexion);
www.aul@Frontino.org.ve
64
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
if ($row= mysql_fetch_array($result))
{
DO
{
$filas [$contador][1] = $row["cid_rubro"];
$filas [$contador][2] = $row["cdescripcion"];
$filas [$contador][3] = $row["nprecio"];
$contador++;
}
WHILE ($row=mysql_fetch_array($result));
}
return $filas;
}
}
?>
CÓDIGO LISTAPRECIOS.PHP
<?php
include ("misclases.php");
$r = new rubro;
$lista = $r->consulta();
echo "<TABLE width='500' height='64' border='0' align='center'>";
echo "<TR><TD><B> <FONT size = 2 color = '#6666CC' face = 'Arial'> Código </FONT> </
B></TD><TD><B> <FONT size = 2 color = '#6666CC' face = 'Arial'> Descripción </FONT> </
B></TD><TD><B> <FONT size = 2 color = '#6666CC' face = 'Arial'> Precio </FONT> </B></
TD></TR>";
for ($i = 0;$i<=count($lista);$i++)
{
echo "<TR><TD>".$lista[$i][1]."</TD><TD>".$lista[$i][2]."</TD><TD>".$lista[$i][3]."</
TD></TR>";
}
echo "</TABLE>";
?>
www.aul@Frontino.org.ve
65
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Universidad Politécnica Territorial del Estado Portuguesa
“Juan de Jesús Montilla”
Acarigua Estado Portuguesa
Referencias Bibliográficas
www.aul@Frontino.org.ve
66