Anda di halaman 1dari 139

Universidad

Jurez Autnoma de Tabasco


Divisin Acadmica de Inform;ca y Sistemas

Tutorial
Modelado, Diseo y Manejo de Base de Datos

Profesor
Dr. Herman Aguilar Mayo
herman_aguilar1@hotmail.com
www.hermanaguilar1.blogspot.com
Obje;vo del Material

El presente material ;ene como obje;vo



Apoyar la materia de Modelado, Diseo y Manejo de Base de
Datos
Potencializar los conocimientos del alumno en Bases de Datos
Documentacin

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Presentacin



Programa Anal;co

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Temario


I Fundamentos (parcial 1)

II Modelos de Datos (parcial 1)

III Modelo Relacional y Proceso de Normalizacin (parcial 2)

IV Creacin de un Esquema de Bases de Datos (parcial 2)

V Manejo de Bases de Datos (parcial 3)

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Pol;cas

Evaluacin
3 parciales (30% c/u)
Par;cipacin (10%)
Exentos >=8.0 sobre parciales

Asistencia
Reglamento

Laboratorio
Cubrir cuota

Respeto a la clase y a los compaeros


Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Dato o Valor

Conjunto de caracteres con algn signicado, pueden ser
numricos, alfab;cos, o alfanumricos.

Cmo se puede obtener ?


Campo o variable Constante Expresin Funcin

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Informacin
Es un conjunto ordenado de datos los cuales son manejados
segn la necesidad del usuario, para que un conjunto de datos
pueda ser procesado ecientemente y pueda dar lugar a
informacin, primero se debe guardar lgicamente en archivos.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Campo

Es la unidad ms pequea (atmica) a la cual uno puede


referirse en un programa. Desde el punto de vista del
programador representa una caracters;ca de un individuo u
objeto.
Ejemplos: Folio Raza
Color
Matrcula
Existencia Apellido
Fecha
Marca Calicacin
Nombres
Nombre

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Registro

Coleccin de campos de iguales o de diferentes ;pos. Desde el


punto de vista del programador representa una en;dad u
objeto.

Ejemplos: Cliente Boleto


Color Raza
Alumno
Tienda Taller
Libro
Marca Ciudad
Auto

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Archivo o Tabla

Coleccin de registros almacenados siguiendo una estructura


homognea.

Ejemplos:
ANDRES EDUARDO CHAN MAGAA
5 COAHUILA ROSA MARA RUBIO DAZ
6 COLIMA D A N I E L M A T A
C O M P U T A D O R A 6 9 9 0 H E R N N D E Z M A R I A N A
7 CHIAPAS T E L E V I S O R L C D 5 7 9 5 VALOS GARCA
T E L E V I S O R 1 9 9 5
V I D E O C A M A R A 2 7 9 0
MINICOMPONENTE 1995

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Base de Datos

Es una coleccin de archivos interrelacionados.


Creados con un DBMS.
Una nalidad de la base de datos es eliminar la redundancia o
al menos minimizarla.
Los tres componentes principales son
Sohware DBMS
Los datos
Personal encargado del manejo del sistema.

Prueba ACID

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Base de Datos

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Sistema Manejador de Base de Datos


Data Base Management System DMBS
Un DBMS es una coleccin de numerosas ru;nas de sohware
interrelacionadas, cada una de las cuales es responsable de una
tarea especca.
El obje;vo primordial de un sistema manejador base de
datos es proporcionar un entorno que sea a la vez conveniente
y eciente para ser u;lizado al extraer, almacenar y manipular
informacin de la base de datos. Todas las pe;ciones de acceso
a la base, se manejan centralizadamente por medio del DBMS,
por lo que este paquete funciona como interfaz entre los
usuarios y la base de datos.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Base de Datos

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos



1. Independencia lgica y isica de los datos.

Se reere a la capacidad de modicar una denicin de esquema
en un nivel de la arquitectura sin que esta modicacin afecte al
nivel inmediatamente superior.

El conjunto de datos contenidos en la base debe ser nica y estar
integrada por los mismos datos.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos


1. Independencia lgica y isica de los datos.

Esquema Esquema Esquema


externo externo externo

Esquema
conceptual

Esquema
interno

Base
de Datos

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos


2. Redundancia mnima.

Debe ser controlada, de forma que no exista duplicidad innecesarias, y que las
redundancias ]sicas, convenientes muchas veces a n de responder a
obje_vos de eciencia, sean tratadas por el mismo sistema, de modo que no
puedan producirse inconsistencias.
Se trata de usar la base de datos como repositorio comn de datos para
dis_ntas aplicaciones.
Un dato se actualizar lgicamente por el usuario en forma nica, y el sistema
se preocupar de cambiar ]sicamente todos aquellos campos en los que el
dato estuviese repe_do en caso de exis_r redundancia ]sica (redundancia
controlada).

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos


3. Acceso concurrente por parte de ml;ples usuarios

Las bases de datos pretenden servir al conjunto de de la
organizacin, manejando los datos como otro recurso.
Por lo tanto, las bases de datos han de atender a
ml_ples usuarios y a diferentes aplicaciones. En
contraposicin a los sistemas de cheros, en donde
cada chero a_ende a determinada aplicacin.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos


4. Distribucin espacial de los datos.

Los datos pueden encontrarse en otra habitacin, otro edicio e incluso otro
pas, el usuario no _ene por qu preocuparse de la localizacin espacial de los
datos a los que accede.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos



5. Integridad de los datos.

Se reere a las medidas de seguridad que impiden que se introduzcan datos
errneos.
Esto puede suceder tanto por mo_vos ]sicos (defectos de hardware,
actualizacin incompleta debido a causas externas), como de operacin
(introduccin de datos incoherentes).

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos



6. Consultas complejas op;mizadas.

Permite la rpida y ejecucin de las mismas.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos



7. Seguridad de acceso y auditora.
Se reere al derecho de acceso a los datos contenidos en la base
por parte de personas y organismos.
El sistema de auditora man_ene el control de acceso a la base,
con el objeto de saber qu o quin realiz una determinada
modicacin y en qu momento. Por ejemplo un profesor quiere
cambiar una calicacin por alguna omisin, el sistema de la
base le permi_r hacer el cambio pero quedara el registro del da
y el mo_vo del cambio, esto lo checan los jefes de academia y
observan si el profesor le ayuda al alumno o realizan su trabajo
adecuadamente.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos



8. Respaldo y recuperacin.

Se reere a la capacidad de un sistema de base de datos de
recuperar su estado en un momento previo a la prdida de
datos.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Obje;vos Base de Datos



9. Acceso a travs de lenguajes de programacin estndar.

Se reere a la posibilidad ya mencionada de acceder a los datos
de una base mediante lenguajes de programacin ajenos al
sistema de base de datos. en pocas palabras son los programas o
sogware con los que se mandaran llamar y disear los datos que
aparecern en la pantalla.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

SQL ? Structured Query Language


Lenguaje Estructurado de Consulta

Es un lenguaje declara;vo de acceso a bases de datos


relacionales que permite especicar diversos ;pos de
operaciones en ellas. Una de sus caracters;cas es el manejo del
lgebra y el clculo relacional que permiten efectuar consultas
con el n de recuperar de forma sencilla informacin de inters
de bases de datos, as como hacer cambios en ella.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

SQL Historia
Los orgenes del SQL estn ligados a los de las bases de datos
relacionales. En 1970 E. F. Codd propone el modelo relacional y
asociado a este un sublenguaje de acceso a los datos basado en
el clculo de predicados. Basndose en estas ideas, los
laboratorios de IBM denen el lenguaje SEQUEL (Structured
English Query Language) que ms tarde sera ampliamente
implementado por el sistema de ges;n de bases de datos
(SGBD) experimental System R, desarrollado en 1977 tambin
por IBM. Sin embargo, fue Oracle quien lo introdujo por
primera vez en 1979 en un programa comercial.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

SQL Historia
Sin embargo, este primer estndar no cubre todas las
necesidades de los desarrolladores e incluye funcionalidades de
denicin de almacenamiento que se consider suprimirlas. As
que, en 1992, se lanz un nuevo estndar ampliado y revisado
del SQL llamado "SQL-92" o "SQL2".

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

SQL Historia
En la actualidad el SQL es el estndar de facto de la inmensa
mayora de los SGBD comerciales, aunque la diversidad de
a a d i d o s p a r ; c u l a r e s q u e i n c l u y e n l a s d i s ; n t a s
implementaciones comerciales del lenguaje es amplia, el
soporte al estndar SQL-92 es general y muy amplio.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Categoras de SQL ?

DDL: Data Deni;on Language


Lenguaje de Denicin de Datos
Create
Alter
Drop

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Categoras de SQL ?

DML: Data Manipula;on Language


Lenguaje de Manipulacin de Datos
Insert
Update
Delete
Select

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Categoras de SQL ?

DCL: Data Control Language


Lenguaje de Control de Datos
Grant
Revoke

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Categoras de SQL ?

TCL: Transac;on Control Language


Lenguaje de Control de Transacciones
Commit
Rollback
Save point
Set Transac/on

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Tipos de llaves

Primaria
Candidata
Fornea

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Llave primaria

Iden;ca a un registro dentro de una


tabla.
nica
No nula

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Llave candidata

Iden;ca a un registro dentro de una


tabla.
No fue iden;cada como primara
Puede ser nula

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Llave fornea

Iden;ca a un registro dentro que


viene de otra tabla.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Tipos de llaves por composicin

Simple
Compuesta

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Llave simple

Esta compuesta de un solo campo

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Marco Tecnolgico
Bases de Datos

Llave compuesta

Esta compuesta de ms de un campo

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Normalizacin


Consiste en aplicar una serie re reglas a las relaciones de una
base de datos.

Obje;vos:
Evitar redundancia
Disminuir problemas de actualizacin
Proteger la integridad de los datos

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Normalizacin

Formas normales

Son 6 y deben ser aplicadas a cada tabla o relacin dentro de la
base de datos.


Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Normalizacin

Formas normales

Segn se creador Edgar Frank Codd, en general las primeras tres
formas, son sucientes para cubrir las necesidades de las
mayoras de las bases de datos y/o sistemas de informacin.


Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Normalizacin

Primera Forma Normal: 1FN



Una tabla est en primera formal normal si cada uno de sus
atributos o campos con;ene valores atmicos.


Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Normalizacin

Segunda Forma Normal: 2FN



Una tabla est en segunda formal normal si est en 1FN y todos
los atributos que no forman parte de la clave primaria,
dependen completamente de la clave primaria.


Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Normalizacin

Tercera Forma Normal: 3FN



Una tabla est en tercera formal normal si est en 2FN y no
existe dependencia funcional transi;va entre los atributos no
claves.


Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Normalizacin

Ejercicio: Aplicar 1Fn, 2 FN y 3FN a una base de datos de


prstamos de libros.
Titulo Autor Editorial Lector Prstamos Devolucin

Variable compleja Murray Spiegel McGraw Hill Perez Gomez Juan 01/09/15 10/09/15

Visual Basic 5 E. Petroustsos y Luis Joyanes Anaya ANA RO TERAN 02/09/15 11/09/15

Estads_ca Murray Spiegel McGraw - Hill Roca Rene 01/09/15 13/09/15

Modelado de Base de Datos Nancy Greenberg y Priya Nathan Oracle University Luis Garca Roque 05/09/15 08/10/15

Java Experto Luis Joyanes aguilar, Ramalho McGraw Hill Juan Prez Gmez 01/09/15 10/09/15

Variable Compleja Murray Spiegel McGraw Hill Roca Rene 21/09/15 02/10/15

Un lector puede llevar ms de un libro, l elige la fecha de devolucin de cada libro.


Es preciso saber cual es el utulo ms prstado, el lector ms frecuente, el autor ms
leido, que editoria ;ene ms libros y cual es la ms leda.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Universidad Jurez Autnoma de Tabasco
Divisin Acadmica de Inform;ca y Sistemas

Tutorial
Programacin en Bases de Datos
DML

Profesor
Dr. Herman Aguilar Mayo
herman_aguilar1@hotmail.com
www.hermanaguilar1.blogspot.com
Bases de Datos
DML

DML?

Data Manipula;on Language

Sentencias ?
Insert
Update
Delete
Select

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Lenguaje de Manipulacin de Datos

Qu sentencias alteran el estado de la base de datos?

Insert
Update
Delete
Select

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Lenguaje de Manipulacin de Datos

Qu validaciones hace la base de datos para permi;r


alterar el estado de la base de datos?

PK
UK Adems la base de datos
FK verica la sintaxis de la
sentencia
Check
NN
TD

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Insert

En qu consiste?

Inserta un registro en una tabla


Para insertar n registros se debe especicar n
sentencias

La sentencia debe cumplir todas las validaciones

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Insert

Sintaxis

Insert into tabla


( campo1, campo2, , campoN ) values
( valor1 , valor2 , , valorN ) ;

Debe de haber correspondencia entre los campos y los valores ?
N campos = N valores Campo X y valor X mismo TD
Cules son los campos mnimos a insertar en una tabla?
No nulos u obligatorios

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Insert

Ejercicios

Insertar un registro de cada tabla, segn su modelo

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Insert

Insert into estados (estado_id, nombre ) values (8, TABASCO);

Estado actual de la Tabla


Estado_id Nombre
5 COAHUILA
6 COLIMA
7 CHIAPAS
8 TABASCO

Cumple todas las validaciones? S, entonces

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Insert

Insert into estados (estado_id, nombre ) values (8, null);

Estado actual de la Tabla


Estado_id Nombre
5 COAHUILA
6 COLIMA
7 CHIAPAS
8 null

Cumple todas las validaciones? No, entonces

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Insert

S la base de datos est vaca, en cules tablas se pueden
insertar registros ?

En las tablas que no ;enen llaves forneas o que no


son obligatorias
Regularmente son catlogos.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Insert

Cul es la tabla en la que se insertan registros a lo l;mo?

Es la tabla que ;ene llave forneas y que no est


siendo referenciada

Regularmente son de produccin.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Update

En qu consiste?

Actualiza registro de s una tabla


Se puede actualizar todos
los campos o los campos V
que se deseen V
F
Slo se actualizan los V
registros que cumplan una
condicin
La sentencia debe cumplir todas las validaciones

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Update

Sintaxis
Update tabla set
campo1 = valor1,
campo2 = valor2,
campoN = valorN
[where condicion ];

Si se omite la condicin se actualizan todos los registros

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Update

Ejercicio

Modicar registros de tres tablas

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Update

Update municipios set nombre=CRDENAS where nombre=BALANCN

Estado actual Municipios Estado actual de Estados


Municipio_id Nombre Estado_id Estado_id Nombre

1 BALANCN
CRDENAS 8 6 COLIMA

2 REFORMA 7 7 CHIAPAS
8 TABASCO
3 CUNDUACN 8
4 COMALCALCO 8

Cumple todas las validaciones? Si, entonces

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Update

Update municipios set nombre=CRDENAS where nombre=BALANCAN

Estado actual Municipios Estado actual de Estados


Municipio_id Nombre Estado_id Estado_id Nombre

1 BALANCN 8 6 COLIMA

2 REFORMA 7 7 CHIAPAS
8 TABASCO
3 CUNDUACN 8
4 COMALCALCO 8
No hay ninguna
modicacin
Cumple todas las validaciones?

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Update

Update estados set estado_id = 8, nombre=TABASCO

Estado actual Municipios Estado actual de Estados


Municipio_id Nombre Estado_id Estado_id Nombre

1 BALANCN 8 6
8 COLIMA
TABASCO

2 REFORMA 7 7
8 CHIAPAS
TABASCO
8 TABASCO
3 CUNDUACN 8
4 COMALCALCO 8

Cumple todas las validaciones? No, entonces

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Update

Debido a que ya paso la temporada decembrina y se cuenta con
sobre inventario, los precios de electrnica bajaran un 15%

Se puede realizar en una sola sentencia?

Cul sera?

Update productos set precio = precio * 0.85


Where linea_id = 1;

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Delete

En qu consiste?

Borra registro de s una tabla


Slo se borran los registros V
q u e c u m p l a n u n a V
condicin
F
V
La sentencia debe cumplir todas las validaciones

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Delete

Sintaxis
Delete from tabla [where condicion ];

Si se omite la condicin se borran todos los registros

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Delete

Ejercicio

Borrar registros de cada tabla

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Delete

Delete from municipios where nombre=BALANCN

Estado actual Municipios Estado actual de Estados


Municipio_id Nombre Estado_id Estado_id Nombre

1
2 BALANCN
REFORMA 8
7 6 COLIMA

2
3 REFORMA
CUNDUACN 7
8 7 CHIAPAS
8 TABASCO
3
4 CUNDUACN
COMALCALCO 8
4 COMALCALCO 8

Cumple todas las validaciones? Si, entonces

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencia Delete

Delete from estados where estado_id = 7;

Estado actual Municipios Estado actual de Estados


Municipio_id Nombre Estado_id Estado_id Nombre

1 BALANCN 8 6 COLIMA

2 REFORMA 7 7 CHIAPAS
8 TABASCO
3 CUNDUACN 8
4 COMALCALCO 8

Cumple todas las validaciones? No, entonces

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Sentencias DML

Aplicacin de las restricciones
Insert Update Delete

PK
X
UK
X
FK

Check
X
NN
X
TD
X
Sintaxis

Siempre y cuando este involucrada la restriccin

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Conversin Implcita
10 + 5 = ? 15

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Tipos de Datos
NUMBER (Numrico): Almacena nmeros enteros o de punto
otante, precisin mxima de 36.

-- NUMBER [(precisin, escala)]


Saldo NUMBER(16,2);
/* Indica que puede almacenar un valor numrico de 16
posiciones, 2 de ellas decimales. Es decir, 14 enteros
y dos decimales */

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Tipos de Datos
Varchar2 (Carcter de longitud variable): Almacena datos de _po
carcter empleando slo la can_dad necesaria an cuando la
longitud mxima sea mayor. Mximo 4000

-- VARCHAR2 (longitud mxima)


nombre VARCHAR2(20);
/* Indica que puede almacenar valores alfanumricos de hasta
20 posiciones */
/* Cuando la longitud de los datos sea menor de 20 no se
rellena con blancos */

JUAN ANTONIO JUAN ANTONIO

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Tipos de Datos
Date (longitud ja): Almacena fechas incluyendo ao, mes, da,
hora, minutos y segundos. Se manejan como cadenas con
almacenamiento interno propio. Se puede hacer operaciones
sobre ellas.
-- Date
Fecha date;
/* Indica que puede almacenar fechas */

05/02/2013 05/feb/2013 14:22:55

05/02/2013 +1 = ? 06/02/2013

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operaciones Cules conoces?
Aritm;cos

Boleanas

Lgicas

Cadenas
Fechas

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Aritm;cos

+ Suma
- Resta
* Mul;plicacin
/ Divisin

Nota: el residuo est como funcin


Usar parntesis para alterar la precedencia de los operadores

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Aritm;cos con valores nulos

Valor null en base de datos signica ausencia de valor o que no


est denido.

10 + 0 = ? 10

10 + null = ? null

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Relacionales

= Igual
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
<> != Diferente o dis;nto

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Otros Relacionales en Oracle y Bases de Datos

Like
Determina si una cadena de caracteres coincide con un patrn
especicado.

Se usa % para el patrn

Valor like %patron%



Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Otros Relacionales en Oracle y Bases de Datos

IN
Permite determinar sin un valor est en una lista.

Calicacion in (6,7,8,9,10)

Ms adelante se ver

Calicacion in (query)

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Otros Relacionales en Oracle y Bases de Datos

Between
Permite determinar sin un valor est en un rango.

Calicacion between 6 and 10

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Otros Relacionales en Oracle y Bases de Datos

Is null determina si un valor no est denido



marca is null

marca is not null

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Lgicos

And
Or
Not

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Cadenas

|| une dos valores de ;po cadena

Juan||Lpez ? JuanLpez

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Operadores
Asignacin

= en contexto de sql

:= en contexto de pl/sql

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Conceptos Bsicos en Oracle

Qu es una condicin?

Cmo se especica una lista?

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones

Funcin?

Subprograma que realiza operaciones y que regresa un


valor
Elementos o caracters;cas?
Nombre
Entrada (lista de parmetros)
Sentencias
Tipo de datos a regresar
Salida (un valor)

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones

Desde el punto de vista del usuario (programador)


Qu ;po de funciones hay?

Pre- Denidas (con el lenguaje)


Denidas (por el usuario)

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Predenidas

En bases de datos para las funciones hay que tener en cuenta:

Las funciones se almacenan dentro de la base de datos.

No se requiere import o include.

Una vez creadas ya se pueden usar


No se ;ene acceso a disposi;vos E/S

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Predenidas

Las podemos clasicar por su ;po de datos

Numricas

Varchar

Date
Nulos
Otras

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Predenidas

Sintaxis para usar una funcin

nombreFuncion[(parmetro1, parmetro2, parmetroN)]

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Predenidas

Cmo usarlas?

Una vez denida, hacemos lo siguiente:

Invocarla por su nombre


Pasarle los parmetros
Contar con el dato a regresar

X := suma(5,10); P:=promedio(matricula);
Prin(%d,suma(5,10)); P:=precio(producto_id);

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Predenidas

Cmo usarlas?

Select matricula, promedio(matricula)


From alumnos

MATRICULA PROMEDIO
1 8.85
2 9.0
3 6.5
P:=promedio(matricula);

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Varchar

Lower(texto) Convierte un texto a minsculas


lower(Programacin en Bases de Datos) ?
programacin en bases de datos

Upper(texto) Convierte un texto a maysculas


upper(Programacin en Bases de Datos) ?
PROGRAMACIN EN BASES DE DATOS

Initcap(texto) Convierte un texto a palabras capital


initcap(Programacin en Bases de Datos) ?
Programacin En Bases De Datos

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Varchar

RTrim(texto) Elimina espacios por la derecha


rtrim( Programacin en Bases de Datos ) ?
Programacin en Bases de Datos

LTrim(texto) Elimina espacios por la izquierda


ltrim( Programacin en Bases de Datos ) ?
Programacin en Bases de Datos

Trim(texto) Elimina espacios por ambos lados


trim( Programacin en Bases de Datos ) ?
Programacin en Bases de Datos

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Varchar

SubStr(texto,i[, n]) Ob;ene una subcadena tamao n par;r de la


i n
posicion . Si se omite se retorna hasta encontrar el n de la cadena

Substr(Programacin en Bases de Datos,1,12) ?
Programacin

Substr(Programacin en Bases de Datos,5,3) ?


ram
Substr(Programacin en Bases de Datos,1) ?
Programacin en Bases de Datos
Substr(Programacin en Bases de Datos,26,30) ?
Datos

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Varchar

Length(texto) Ob;ene el tamao de una cadena


Length(Programacin) ?
12

Length(Programacin en Bases de Datos) ?


30

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Varchar

InStr(texto,patron [,i [, n]]) Ob;ene la posicin del patron


texto, se puede especicar una posicin inicial i
dentro del para
empezar a buscar y la n aparicin.

instr(Programacin en Bases de Datos,en) ?
14

instr(Programacin en Bases de Datos,a) ?


6
instr(Programacin en Bases de Datos,a,7) ?
8
instr(Programacin en Bases de Datos,a,7,3) ?
27

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Varchar

Replace(texto,patron, reemplazo) Reemplaza dentro del


texto cada aparicin del patron por el reemplazo.

replace(Programacin en Bases de Datos,a,x) ?


Progrxmxcin en Bxses de Dxtos

replace(Programacin en Bases de Datos,o,y) ?


Prygramacin en Bases de Datys

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Varchar

LPad(texto, longitud, relleno) Rellena el texto por la


izquierda con el relleno hasta alcanzar la longitud.

RPad(texto, longitud, relleno) Rellena el texto por la


derecha con el relleno hasta alcanzar la longitud.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Numricas

Round(n [,decimales]) Redondea n con los decimales


indicados.

ROUND(8.239) ?
8

ROUND(8.239,2) ?
8.24

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Numricas

Trunc(n [,decimales]) Corta n con los decimales indicados.


Trunc(8.239) ?
8

Trunc(8.239,2) ?
8.23

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Numricas

Floor(n ) Ob_ene el entero igual o menor que n



Floor(8.239) ?
8

Floor(8) ?
8

Floor(8.99) ?

8

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Numricas

Ceil(n ) Ob_ene el entero igual o mayor que n



Ceil(8.239) ?
9
Ceil(8) ?
8

Ceil(8.99) ?

9

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones Numricas

Mod(n1,n2 ) Ob_ene residuo de dividir n1 entre n2



mod(10,2) ?
0
mod(10,3) ?
1

mod(10,null)

null

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Otras Funciones Numricas

Funcin Descripcin
POWER(valor,exponente) Eleva el valor al exponente indicado

SQRT(n) Calcula la raz cuadrada de n


SIGN(n) Devuelve 1 si n es posi/vo, cero si vale cero y -1 si es nega_vo

ABS(n) Calcula el valor absoluto de n


EXP(n) Calcula en, es decir el exponente en base e del nmero n
LN(n) Logaritmo neperiano de n
LOG(n) Logaritmo en base 10 de n
SIN(n) Calcula el seno de n (n /ene que estar en radianes)
COS(n) Calcula el coseno de n (n /ene que estar en radianes)
TAN(n) Calcula la tangente de n (n /ene que estar en radianes)
ACOS(n) Devuelve en radianes el arcocoseno de n
ASIN(n) Devuelve en radianes el arcoseno de n
ATAN(n) Devuelve en radianes el arcotangente de n
SINH(n) Devuelve el seno hiperblico de n
COSH(n) Devuelve el coseno hiperblico de n
TANH(n) Devuelve la tangente hiperblica de n
Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones de Fecha

Sysdate Ob;ene la fecha del servidor (mquina donde est


instalada la base de datos).

sysdate?
26/02/2013 10:25:00

Considere el siguiente escenario:



En un estacionamiento se detect, que un cobrador al momento de registrar la
salida de los vehculos en el sistema registraba menos horas que las u;lizadas,
pero s cobraba completo a los clientes, quedndose con el importe del resto.
Cmo es posible que pueda burlar al sistema?

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones de Fecha

Add_Months( fecha, n) Suma n meses a la fecha.



Add_months(01/03/2013,12)
01/03/2014

Add_months(28/02/2013,36)
29/02/2016

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones de Fecha

Months_between( fecha1, fecha2) Ob;ene la diferencia en


meses entre fecha1 y fecha2 .

months_between (30/03/2013', '01/03/2013' )
0.9677419354838709677419354838709677419355
months_between ('01/04/2013', '01/03/2013' )
1

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones de Fecha

Round( fecha [, formato]) Redondea una fecha a un formato.

YEAR ao ms cercano HH24 hora ms cercano
MONTH mes ms cercano DAY da ms cercano (default)

Round (01/07/2013 15:23:32', YEAR) 01/01/2014

Round (15/03/2013 15:23:32 ', MONTH) 01/04/2013

Round (01/03/2013 15:23:32 ', DAY) 02/03/2013

Round (01/03/2013 15:23:32 ', HH24) 01/03/2013 15:00:00

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones de Fecha

Trunc( fecha [, formato]) Corta una fecha a un formato.

YEAR ao actual HH24 hora actual
MONTH mes actual DAY da actual (default)

Trunc(01/07/2013 15:23:32', YEAR) 01/01/2013

Trunc(15/03/2013 15:23:32 ', MONTH) 01/03/2013

Trunc(01/03/2013 15:23:32 ', DAY) 01/03/2013

Trunc(01/03/2013 15:23:32 ', HH24) 01/03/2013 15:00:00

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones de Nulos

NVl(valor1, valor2) Regresa valor1 si es no nulo, si no regresa valor2.

Nvl( 0 , 0) Nvl( null , 0)

0 0
Nvl( 0 , null) Nvl( null , null)

0 null

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones de Conversin

To_char( valor, Formato) Convierte el valor a varchar segn el
formato especicado.

To_number( valor, Formato) Convierte el valor a number segn


el formato especicado.

To_date( valor, Formato) Convierte el valor a Date segn el


formato especicado.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Funciones de Conversin

Formato Descripcin Formato Descripcin
YY Ao en 2 dgitos DDD Da del ao en 3 dgitos

YYY Ao en 3 dgitos HH24 Hora de 0 a 23

YYYY Ao en 4 dgitos MI Minutos (0 a 59)

MM Mes del ao en 2 dgitos SS Segundos (0 a 59)

MON Las tres primeras letras del SSSSS Segundos transcurridos desde la medianoche
nombre del mes
MONTH Nombre completo del mes AM / PM Indicador AM/PM

DY Las tres primeras letras del HH12 Hora de 1 a 12


da de la semana
DAY Nombre completo del da de /., Separadores
la semana
DD Da del mes en 2 dgitos

Q Semestre Los Formatos se pueden combinar


WW Semana del ao Los Formatos que representan un nombre
D Da de la semana (del 1 al 7) siguen el orden de maysculas / minsculas

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Universidad Jurez Autnoma de Tabasco
Divisin Acadmica de Inform;ca y Sistemas


Select

Profesor
Dr. Herman Aguilar Mayo
herman_aguilar1@hotmail.com
www.hermanaguilar1.blogspot.com
Bases de Datos
Select

DML Select
Sentencia para recuperar los datos de las tablas

Es la nica sentencia para recuperar


Hace proyecciones sobre los datos
Genera una tabla en memoria (ResultSet o Cursor)

La salida siempre ser una tabla

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select

Convencin del mismo signicado

Select

Query

Consulta

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select

Partes ms importantes de una consulta

Select: especica las


columnas o valores a
seleccionar
From: el origen de los
datos

Where: especica los


renglones o registros a
seleccionar

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select

Sintaxis SqlServer

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select

Sintaxis MySql

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select

Sintaxis Oracle

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select

Para hacer la sintaxis ms sencilla, vamos a ver

Consultas Sencillas
De una tabla
Sin agrupaciones
Sin operaciones relacionales
Consultas Complejas
De varias tabla
Con agrupaciones
Con operaciones relacionales

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Sencillas

Sintaxis por partes Select *


From tabla

* Selecciona todos los campos de la tabla

Consultar todos los campos de personas ?

Select * From personas

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Sencillas

Select * From personas


PERSONA_I TELEFON FECHA_NACI
D RFC NOMBRE APEPAT APEMAT EMAIL O CALLE CASA MIENTO SEXO COLONIA_ID JEFE_ID

1 LUISA HERNNDEZ HERNNDEZ JUAREZ 23 30/12/1982 1 46


aleji@hotm
2 ALEJANDRA LOPEZ REYES ail.com 12345 11/02/1977 1 1978 1

3 ANDRES EDUARDO CHAN MAGAA 22/01/1982 2


GREGORIO
4 ROSA MARA RUBIO DAZ MNDEZ 4 08/08/1982 2 3

5 MAHD8301078E7 DANIEL MATA HERNNDEZ 07/01/1983 2 3431

6 AAGM852105X5T MARIANA VALOS GARCA 12456 PINO SUREZ 14 21/05/1985 1 1837

7 GIAS821412G3A SILVIA GIL LVAREZ 123568 14/12/1982 1 2449


cita@hotm
8 ZUMC802510G6U CARMELA ZURITA MARTNEZ ail.com ALLENDE ALTOS 25/10/1980 2 2443
reyh@hotm
9 AAPH802510H4T HCTOR ALVARADO PREZ ail.com 24567 05/05/1982 2 1320
jhd@hotma
10 VEGJ821605HTG JESS EDUARDO VELEZ GUTIRREZ il.com 16/05/1982 2 7943

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Sencillas

Sintaxis por valores


Select valor1 [as alias], valor2 [ as alias], , valorN [ as alias]
From tabla
El alias sirve para cambiarle el nombre al campo de salida

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Sencillas

Cul es la consulta de la siguiente tabla?
NOMBRE APEPAT APEMAT
LUISA HERNNDEZ HERNNDEZ
ALEJANDRA LOPEZ REYES
ANDRES EDUARDO CHAN MAGAA
ROSA MARA RUBIO DAZ
DANIEL MATA HERNNDEZ
MARIANA VALOS GARCA
SILVIA GIL LVAREZ
CARMELA ZURITA MARTNEZ
HCTOR ALVARADO PREZ
JESS EDUARDO VELEZ GUTIRREZ

Select nombre, apepat, apemat


from personas

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Sencillas

Cul es la consulta de la siguiente tabla?
NOMBRE
Daniel Mata Hernndez
Luisa Hernndez Hernndez
Jess Eduardo Velez Gu_rrez
Rosa Mara Rubio Daz
Alejandra Lopez Reyes
Mariana valos Garca
Silvia Gil lvarez
Carmela Zurita Marnez
Hctor Alvarado Prez
Andres Eduardo Chan Magaa
select initcap(nombre||' '||apepat||' '||apemat) as nombre
from personas

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Sencillas

Sintaxis con condicin


Select valor1 [as alias], valor2 [ as alias], , valorN [ as alias]
From tabla
[Where Condicion]

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Sencillas

Cul es la consulta de la siguiente tabla?
NOMBRE APEPAT APEMAT
ANDRES EDUARDO CHAN MAGAA
ROSA MARA RUBIO DAZ
DANIEL MATA HERNNDEZ
CARMELA ZURITA MARTNEZ
HCTOR ALVARADO PREZ
JESS EDUARDO VELEZ GUTIRREZ

Select nombre, apepat, apemat as nombre from personas


Where sexo =2

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Sencillas

Cul sera el resultado de la siguiente consulta?

Select nombre, precio


from productos
Where mod(existencia,3)=0;

El nombre y precio de todos los productos cuya existencia sea


ml;plo de 3

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Sencillas

Cul sera el resultado de la siguiente consulta?

Select nombre
from municipios
Where nombre like %A%A%;

El nombre de todos los municipios cuyo nombre contenga dos


A.

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Complejas

Sintaxis ml;ples tablas
Select {*|valores }
From tabla1 [alias], tabla2 [alias],, tablaN [alias]
[Where Condicion]

* Selecciona todos los campos de todas las tablas


S un campo es comn, se debe colocar tabla.campo
Se ;ene acceso a todos los campos de todas las tablas tanto en
select como en where.
Podemos usar alias para las tablas, si es as, entonces debemos
referirnos a los campos por el alias y no por la tabla

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Complejas

Al consultar de varias tablas el resultado de la proyeccin
(registros) es:

Producto cartesiano entre todas las tablas


Se mul;plica la can;dad de registros de cada tabla

De qu tamao es la proyeccin de la siguiente consulta?


Select *
From estados, municipios
Campos = estados (2) + municipios (3) =5
Registro= estados (12) * municipios (16) =192

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Complejas

Eliminando producto cartesiano Cul es el registro correcto?
ESTADO_ID NOMBRE MUNICIPIO_ID NOMBRE ESTADO_ID
5 COAHUILA 2 CRDENAS 27
6 COLIMA 2 CRDENAS 27
7 CHIAPAS 2 CRDENAS 27
8 CHIHUAHUA 2 CRDENAS 27
9 DISTRITO FEDERAL 2 CRDENAS 27
16 MICHOACN 2 CRDENAS 27
25 SINALOA 2 CRDENAS 27
26 SONORA 2 CRDENAS 27
27 TABASCO 2 CRDENAS 27
28 TAMAULIPAS 2 CRDENAS 27
29 TLAXCALA 2 CRDENAS 27
30 VERACRUZ 2 CRDENAS 27

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Complejas

Eliminando producto cartesiano Cul es el registro correcto?
ESTADO_ID NOMBRE MUNICIPIO_ID NOMBRE ESTADO_ID
5 COAHUILA 158 PICHUCALCO 7
6 COLIMA 158 PICHUCALCO 7
7 CHIAPAS 158 PICHUCALCO 7
8 CHIHUAHUA 158 PICHUCALCO 7
9 DISTRITO FEDERAL 158 PICHUCALCO 7
16 MICHOACN 158 PICHUCALCO 7
25 SINALOA 158 PICHUCALCO 7
26 SONORA 158 PICHUCALCO 7
27 TABASCO 158 PICHUCALCO 7
28 TAMAULIPAS 158 PICHUCALCO 7
29 TLAXCALA 158 PICHUCALCO 7
30 VERACRUZ 158 PICHUCALCO 7

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Complejas

Eliminando producto cartesiano Cul sera la condicin?

Select *
From estados, municipios
Where ?

estados.estado_id = municipios.estado_id

Usando alias
Select *
From estados e, municipios m
Where e.estado_id = m.estado_id

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Complejas

Eliminando producto cartesiano, observando el modelo

Cul es la relacin entre las dos tablas?


Municipios.estado_id () = estados.estado_id(pk)
Slo se puede eliminar el producto cartesiano
siempre y cuando exista relacin directa entre
las dos tablas.
Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Complejas

Cul sera la consulta para la siguiente tabla?
NOMBRE ESTADO
Daniel Mata Hernndez TABASCO
Luisa Hernndez Hernndez TABASCO
Jess Eduardo Velez Gu_rrez CHIAPAS
Alejandra Lopez Reyes TABASCO
Mariana valos Garca TABASCO
Silvia Gil lvarez TABASCO
Carmela Zurita Marnez TABASCO
Hctor Alvarado Prez TABASCO


select initcap(p.nombre||' '||p.apepat||' '||p.apemat) as nombre,
e.nombre as estado
, colonias c, municipios m
from personas p, estados e
Where p.colonia_id = c.colonia_id
And c.municipio_id = m.municipio_id
And m.estado_id = e.estado_id
Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Bases de Datos
Select - Complejas

Conclusin para eliminar producto cartesiano

Slo se puede eliminar cuando exista relacin directa o indirecta

Cuando exista relacin indirecta se debe de colocar las tablas


intermediarias en el from y en el where las condiciones respec;vas

Cuando las llaves que relacionan las tablas sea simples podemos
recordar los siguiente:

n tablas en el from, n-1 condiciones en el where

Tutorial de Modelado, Diseo y Manejo de Base de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo

Anda mungkin juga menyukai