Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UD12 RepasoSQLyConsultasSQLenDelphi
UD12 RepasoSQLyConsultasSQLenDelphi
1
Información a utilizar en los ejemplos
Clientes.db
Provee.db
3
Tablas
Producto.db
4
Tablas
Ventas.db
6
Creando un ALIAS
7
Creando un ALIAS
Seleccione la opción
Apply para que se
Indique el directorio
definadonde se
el Alias.
encuentran las tablas
8
SQL Explorer
Consultas
9
Select - from
SELECT Lista_de_campos
FROM nombre_de_la_tabla
Permite obtener los campos (columnas) indicados
para TODOS los registros de la tabla.
Ejecuta la consulta
11
Ejemplo de Select - from
SELECT * from Producto.db
12
La condición de selección
SELECT *
from Producto
where cod_prov = 3
14
Operadores de String
Operador like
– Permite averiguar si una cadena satisface o no
cierto patrón de caracteres
– Su segundo operando es el patrón, un string dentro
del cual pueden incluirse los siguientes caracteres:
Carácter Significado
% cero o más caracteres arbitrarios
_ (subrayado) Un carácter cualquiera
15
Operadores de String
Ejemplo:
Expresión String Aceptado String no aceptado
Nombre like '% Perez' 'Cecilia Perez' 'Perez Luciano'
Fruta like 'Manzana_' 'Manzanas' 'Manzana'
16
Operadores de String
17
El valor nulo
Quedan sólo los
SELECT * from Producto productos que
where nombre is null no tienen
nombre.
18
Eliminando duplicados
SELECT cod_prod
from Ventas
where (Fecha> '01/01/2006')
19
Consultas con varias tablas
Suponga que desea obtener para cada producto el
nombre del proveedor a quien Ud. se lo compra.
select P.cod_prod,P.nombre,P.cod_prov,
R.cod_prov,R.nombre as NombreProv
from producto P, provee R
22
Producto cartesiano
Filtra los
registros
SELECT P.cod_prod, P.nombre, incorrectamente
asociados por el
R.nombre as Proveedor producto
from producto P, provee R cartesiano de
las tablas.
where (P.cod_Prov = R.cod_Prov)
23
INNER JOIN
SELECT Producto.cod_prod, Producto.nombre,
Provee.nombre as Proveedor
FROM “Producto.db” Producto
INNER JOIN "Provee.db" Provee
ON (Producto.Cod_Prov = Provee.Cod_Prov)
Sólo devuelve
los registros que
cumplen la
condición
24
Ordenando los resultados
SELECT P.cod_prod, P.nombre, R.nombre Rehacer esta
from producto P, provee R consulta
where (P.cod_Prov = R.cod_Prov) and utilizando
(P.nombre like '%a') INNER JOIN
order by R.nombre
25
Ordenando los resultados
SELECT P.cod_prod, P.nombre, R.nombre
from producto P
inner join provee R on (P.cod_Prov = R.cod_Prov)
where (P.nombre like '%a')
order by R.nombre
26
Ordenando los resultados
SELECT P.cod_prod, P.nombre, R.nombre Rehacer esta
from producto P, provee R consulta
where (P.cod_Prov = R.cod_Prov) utilizando
order by R.nombre, P.nombre desc INNER JOIN
27
Ordenando los resultados
SELECT P.cod_prod, P.nombre, R.nombre
from producto P
INNER JOIN provee R on (P.cod_Prov = R.cod_Prov)
order by R.nombre, P.nombre desc
28
Ordenando los resultados
SELECT P.cod_prod, nombre, fecha,
V.cantidad * P.Precio as Monto
from producto P
inner join Ventas V on (P.cod_Prod = V.cod_Prod)
order by 4 desc, fecha
29
Consultas desde Delphi
Query
Propiedades
– DataBaseName = SQL_Ejem
– SQL
SELECT P.cod_prod, P.nombre, R.nombre
from producto P
inner join provee R on (P.cod_Prov = R.cod_Prov)
order by R.nombre, P.nombre desc
– Active = TRUE
40
Ejemplo_Query.dpr
Ejemplo_Query2.dpr 42
Consultas con parámetros
DbLookupComboBox
de la tabla de
proveedores
Resultado de la
consulta visualizado en
una grilla
43
Consulta
44
Indicando el valor del parámetro
Cerrar la componente Query.
Utilizar el método ParamByName para asignar a
cada parámetro su valor.
Ejemplo:
Query1.ParamByName(‘dato’).asInteger := 2;
Abrir el Query
45
Evento OnClick del
DBlookupComboBox
procedure TForm1.DBLookupComboBox1Click(Sender:
TObject);
Var codigo : Integer;
begin
codigo := Provee.fieldbyname('cod_prov').asInteger;
Query1.close;
Query1.parambyname('dato').asInteger := codigo;
Query1.Open;
end;
46
Ejemplo_Query3.dpr
47
Ejemplo_Query3.dpr
La consulta realizada es
48
Ejemplo_Query3.dpr