Beruflich Dokumente
Kultur Dokumente
n
a
SQL
Introduccin a SQL Pg . - 1
Trminos y Conceptos Bsicos - Objetivos
Al concluir esta seccin estar capacitado para:
Definir SQL
Definir un sistema manejador de bases de datos relacional
Listar y definir los trminos de una base de datos
Listar las tablas que estn en la base de datos IMCLASS
Reconocer como se insertan y extraen datos desde una base de
datos.
Introduccin a SQL Pg . - 2
Base de Datos
Definicin: Un cuerpo o conjunto de datos en el cual existen
relaciones entre sus elementos
Ejemplo:
SURCE97
SURCE97
Proyecto
Mov_Est
Est_fin
Oficio
Ofi_Pro
Introduccin a SQL Pg . - 3
Sistema Manejador De Base De Datos (DBMS)
Administrador
BD
Usuarios SURCE97
SQL anywhere
Servidor
Tablas
Nombres de Columnas
22 97/000003 01 1997
Columnas
Introduccin a SQL Pg . - 4
Ejemplo: La tabla PROYECTO contiene informacin de los proyectos
Llaves Primarias
Cada rengln puede ser accesado por una llave primaria nica
Tabla Proyecto
Llave Primaria
22 97/000002 02 1997
22 97/000003 01 1997
insert PROYEC
(26,97/000002,02,SS)
Introduccin a SQL Pg . - 5
Visin General: Extraer datos de una Tabla
Extraer datos de una tabla
select * from PROYECTO
Nombres Convencionales
Forma corta
nombre_tabla.nombre_columna
Forma completa
base_datos.propietario.nombre_tabla.nombre_columna
Ejemplo:
PROYECTO.name
SURCE97.dba.PROYECTO.munici
SURCE97.admdeleg.PROYMIO.nom_com
Usar el dba
Propietario de la base de datos
Utilice dba si el propietario de la tabla es tambin
el propietario de la base de datos.
Sumario
Introduccin a SQL Pg . - 6
Joins y Subconsultas - Objetivos
Al concluir esta seccin estar capacitado para:
Resultado
Introduccin a SQL Pg . - 7
proyec nom_ofi descri
97/000355 Ensenada Social
97/000356 Ensenada Social
97/000351 Mexicali Social
97/000352 Mexicali Social
97/000358 Tecate Social
97/000357 Tecate Social
97/000353 Tijuana Social
97/000354 Tijuana Social
97/0307 Tijuana Apoyo
97/000359 Concejo Mpal. de playas de Rosarito Social
97/000360 Concejo Mpal. de playas de Rosarito Social
Ejemplos
Introduccin a SQL Pg . - 8
KEY LEFT OUTER JOIN / KEY RIGHT OUTER JOIN
(Continuacin)
Los valores que se desean desplegar en el resultado de la consulta y
que no se encuentran en alguna de las tablas utilizadas para la
operacin join aparecen como NULL
Ejemplo
Lista los proyectos del municipio 1 y la descripcin del fondo,
programa y subprograma
Resultado
Introduccin a SQL Pg . - 9
proyec fondo nombre progra descri subpro descri
97/000029 2 Fondo para el Desarrollo Regional y el SG ELECTRIFICACION 01 Urbana
Empleo
97/000030 2 Fondo para el Desarrollo Regional y el SG ELECTRIFICACION 01 Urbana
Empleo
97/000031 2 Fondo para el Desarrollo Regional y el SG ELECTRIFICACION 01 Urbana
Empleo
97/000063 2 Fondo para el Desarrollo Regional y el SD ALCANTARILLADO 03 Construccin
Empleo
97/000064 2 Fondo para el Desarrollo Regional y el SD ALCANTARILLADO 03 Construccin
Empleo
97/000065 2 Fondo para el Desarrollo Regional y el SD ALCANTARILLADO 03 Construccin
Empleo
97/001905 2 Fondo para el Desarrollo Regional y el SS ASISTENCIA SOCIAL Y SERVICIOS 01 Nutricin,
Empleo COMUNITARIOS Alimentacin y
Salud
97/000069 2 Fondo para el Desarrollo Regional y el SI VIALIDADES URBANAS 01 Reconstruccin
Empleo
97/000070 2 Fondo para el Desarrollo Regional y el SI VIALIDADES URBANAS 01 Reconstruccin
Empleo
97/000071 2 Fondo para el Desarrollo Regional y el SI VIALIDADES URBANAS 01 Reconstruccin
Empleo
97/000072 2 Fondo para el Desarrollo Regional y el SI VIALIDADES URBANAS 01 Reconstruccin
Empleo
97/000066 2 Fondo para el Desarrollo Regional y el SI VIALIDADES URBANAS 01 Reconstruccin
Empleo
97/000067 2 Fondo para el Desarrollo Regional y el SI VIALIDADES URBANAS 01 Reconstruccin
Empleo
97/000068 2 Fondo para el Desarrollo Regional y el SI VIALIDADES URBANAS 01 Reconstruccin
Empleo
97/000006 2 Fondo para el Desarrollo Regional y el SJ INFRAESTRUCTURA EDUCATIVA 02 Construccin
Empleo
97/000007 2 Fondo para el Desarrollo Regional y el SJ INFRAESTRUCTURA EDUCATIVA 02 Construccin
Empleo
97/000008 2 Fondo para el Desarrollo Regional y el SJ INFRAESTRUCTURA EDUCATIVA 02 Construccin
Empleo
97/000009 2 Fondo para el Desarrollo Regional y el SJ INFRAESTRUCTURA EDUCATIVA 02 Construccin
Empleo
Ejemplo
Lista los proyectos especficos y la descripcin del municipio y
localidad a la que pertenecen
select P.proyec,
(select M.nom_ofi
from MUNICI M
where P.ent_fed = M.ent_fed
and P.munici = M.munici),
(select L.nombre
from LOCALI L
where P.ent_fed = L.ent_fed
and P.munici = L.munici
and P.locali = L.locali)
from PRO_ESP P
Resultado
proyec nom_ofi nombre
97/000055 Tijuana TIJUANA
97/000056 Tijuana TIJUANA
97/000076 Tecate LAZARO CARDENAS, COL.
97/000029 Ensenada POPULAR 89, FRACC
97/000030 Ensenada POPULAR 89, FRACC
97/000031 Ensenada POPULAR 89, FRACC
97/000048 Mexicali PROGRESO,COL.
97/000049 Mexicali PROGRESO,COL.
97/000050 Mexicali PROGRESO,COL.
97/000043 Tijuana CUMBRES, COL.
97/000044 Tijuana TIJUANA
97/000045 Tijuana LAZARO CARDENAS, COL.
97/000077 Tecate LAZARO CARDENAS, COL.
97/000078 Tecate LAZARO CARDENAS, COL.
97/000046 Tijuana CUMBRES, COL.
97/000047 Tijuana (NULL)
97/000057 Tijuana (NULL)
97/000058 Tijuana (NULL)
Introduccin a SQL Pg . - 10
97/000063 Ensenada RUIZ CORTINES
97/000064 Ensenada RUIZ CORTINES
97/000065 Ensenada RUIZ CORTINES
97/000051 Tijuana MURUA, FRACC.
97/000052 Tijuana LOMAS TAURINAS,COL.
97/000053 Tijuana (NULL)
select P.proyec,
(select E.can_act
from EST_FIN E
where P.ent_fed = E.ent_fed
and P.proyec = E.proyec
and E.fase_pre = 3
and E.tipo_inv = 1) as inv_federal,
(select E.can_act
from EST_FIN E
where P.ent_fed = E.ent_fed
and P.proyec = E.proyec
and E.fase_pre = 3
and E.tipo_inv = 2) as inv_estatal
from PROYECTO P
where P.munici = 2
Resultado
proyec inv_federal inv_estatal
97/000048 736607.0000 245536.0000
97/000049 9375.0000 9375.0000
97/000050 (NULL) (NULL)
97/000472 97500.0000 32500.0000
97/000119 (NULL) (NULL)
97/000033 679330.0000 226443.0000
97/000034 8646.0000 8646.0000
97/000035 (NULL) (NULL)
97/000036 538978.0000 179659.0000
97/000037 1502771.0000 500924.0000
97/000038 19126.0000 19126.0000
97/000039 (NULL) (NULL)
97/000040 262319.0000 87440.0000
97/000041 452413.0000 150804.0000
Introduccin a SQL Pg . - 11
Sumario
La clusula KEY JOIN permite simplificar la operacin join en una
consulta
KEY LEFT/RIGHT OUTER JOIN son empleados cuando se requieren
extraer renglones que no cumplan con la operacin join
Otra forma de representar el KEY LEFT/RIGHT OUTER JOIN es
(*= / =*) en el WHERE de las columnas a relacionar
Las subconsultas con joins externos se consideran como columnas a
extraer con un solo valor dentro de la consulta principal
El resultado de una subconsulta puede renombrarse por medio de la
sentencia AS
Introduccin a SQL Pg . - 12
SQL Anywhere: Una Visin General
software de cliente
SQL anywhere
software de cliente
BD
BD
NOMINA
BD
SQL Anywhere SURCE
IMCLASS
Introduccin a SQL Pg . - 13
Sintaxis select lista_select
from lista_tabla
Resultado
ent_fed proyec munici eje_fis fondo progra subpro con_pro cat_pes ..................
18 97/C05003 5 1997 1 SC 01 00 0 ..................
18 97/C05004 5 1997 1 SE 03 0A 0 ..................
18 97/C05001 5 1997 1 SE 02 00 0 ..................
18 97/C07002 7 1997 1 SJ 02 0A 0 ..................
18 97/C07001 7 1997 1 SK 02 00 0 ..................
18 97/C13003 13 1997 1 SG 01 0B 0 ..................
18 97/C03006 3 1997 1 SE 02 00 0 ..................
18 97/C16002 16 1997 1 SG 01 0B 0 ..................
18 97/C13005 13 1997 1 SG 01 0B 0 ..................
18 97/C13006 13 1997 1 SG 01 0B 0 ..................
18 97/C13007 13 1997 1 SG 01 0B 0 ..................
18 97/C13008 13 1997 1 SG 01 0B 0 ..................
18 97/C13004 13 1997 1 SG 02 0B 0 ..................
18 97/C13001 13 1997 1 SE 02 00 0 ..................
18 97/C13002 13 1997 1 SD 02 00 0 ..................
18 97/C05002 5 1997 1 SJ 02 0C 0 ..................
18 97/C16001 16 1997 1 SG 02 0B 0 ..................
18 97/C05005 5 1997 1 SJ 02 0B 0 ..................
. . . . . . . . . ..................
. . . . . . . . . ..................
. . . . . . . . . ..................
select proyec
from PROYECTO
Resultado
proyec
97/C05003
97/C05004
97/C05001
97/C07002
97/C07001
97/C13003
97/C03006
97/C16002
97/C13005
97/C13006
97/C13007
97/C13008
97/C13004
97/C13001
97/C13002
97/C05002
97/C16001
97/C05005
.
.
.
Introduccin a SQL Pg . - 14
Recuperacin Simple - select/from (continuacin)
Ejemplo (ms de una columna)
Resultado
proyec munici
97/C05003 5
97/C05004 5
97/C05001 5
97/C07002 7
97/C07001 7
97/C13003 13
97/C03006 3
97/C16002 16
97/C13005 13
97/C13006 13
97/C13007 13
97/C13008 13
97/C13004 13
97/C13001 13
97/C13002 13
97/C05002 5
97/C16001 16
97/C05005 5
. .
. .
. .
Reordenar columnas
El orden de columnas en la seleccin ser el orden determinado de
las columnas en el resultado
Ejemplo
Resultado
munici proyec
5 97/C05003
5 97/C05004
5 97/C05001
Introduccin a SQL Pg . - 15
7 97/C07002
7 97/C07001
13 97/C13003
3 97/C03006
16 97/C16002
13 97/C13005
13 97/C13006
13 97/C13007
13 97/C13008
13 97/C13004
13 97/C13001
13 97/C13002
5 97/C05002
16 97/C16001
5 97/C05005
. .
. .
. .
Introduccin a SQL Pg . - 16
Eliminar Duplicados
distinct elimina renglones duplicados en la salida
select progra
from PROYECTO
distinct
distinct acta sobre el rengln completo
Ejemplo
Lista slo una ocurrencia de los programas y subprogramas de
los proyectos
Introduccin a SQL Pg . - 17
select progra, subpro select distinct progra, subpro
from PROYECTO from PROYECTO
progra subpro progra subpro
SC 01 SC 01
SE 03 SE 03
SE 02 SE 02
SJ 02 SJ 02
SK 02 SK 02
SG 01 SG 01
SE 02 SG 02
SG 01 SD 02
SG 01 SE 01
SG 01 UB 02
SG 01 SC 03
SG 01 SD 01
SG 02 SF 02
SE 02 UB 03
SD 02 SL 02
SJ 02 SC 02
SG 02 SE 04
SJ 02 TH 02
SJ 02 UB 01
SJ 02 SD 03
. . . .
. . . .
. . . .
distinct (continuacin)
Resultado
munici
16
5
13
17
7
6
2
20
15
3
4
14
10
18
19
8
998
Introduccin a SQL Pg . - 18
Extraccin Calificada - select/from/where
La clusula where limita cuales renglones son extrados
Ejemplo
Lista los proyectos especficos del municipio con clave 2
Resultado
proyec munici
97/C02001 2
97/C02002 2
97/C02003 2
97/C02004 2
97/C02005 2
97/C02007 2
97/C02008 2
97/C02009 2
97/C02010 2
97/C02006 2
97/C02013 2
97/C02014 2
97/C02011 2
97/C02012 2
97/C02016 2
97/C02015 2
97/C02017 2
97/C02018 2
97/C02019 2
97/C02020 2
97/C02021 2
not niega una expresin booleana y palabras claves como like, null,
between y in
Introduccin a SQL Pg . - 19
Ejemplo de NOT select proyec, munici
from PRO_ESP
where munici not between 1 and 5
Resultado
proyec munici
97/C16002 16
97/C16001 16
97/C13009 13
97/C13010 13
97/C17001 17
97/C17002 17
97/C17003 17
97/C17004 17
97/C17005 17
97/C17006 17
97/C17008 17
97/C07002 7
97/C07001 7
97/C13003 13
97/C13005 13
97/C13006 13
97/C13007 13
97/C13008 13
97/C13004 13
97/C13001 13
. .
. .3
. .
Operador Significado
= igual
> mayor que
< menor que
>= mayor o igual que
<= menor o igual
!= diferente que
<> diferente que
!> no es mayor que
!< no es menor que
Introduccin a SQL Pg . - 20
select/from/where - Operadores de Comparacin
Ejemplo (igual =)
Lista los proyectos que pertenecen al programa SK
Resultado
proyec nombre
97/C07001 SISTEMA DE PURIFICACION DE AGUA ESC. PRIM. MIGUEL HIDALGO Y COSTILLA
97/C19016 RECONSTRUCCION DE BARDEO EN LA ESC. PRIM. LEONA VICARIO
97/C19006 PROTECCION DE LAS VENTANAS EN 3 AULAS ESC. PRIM CUAUHTEMOC
97/C03018 REHABILITACION CERCADO PERIMETRAL JARDIN DE NIOS NARCISO MENDOZA
97/C03019 REHABILITACION DE CASA DEL MAESTRO Y SERVICIOS SANITARIOS ESC. PRIM. FCO. I. MADERO
97/C14014 REHABILITACION DE ESC. PRIM. MIGUEL HIDALGO
97/C07006 REHAB. DE ACCESO A LA ESC. SEC. FED. NO. 9 "RICARDO FLORES MAGON"
select/from/where - Rangos
between es usado para especificar un rango inclusivo : los valores
limites son incluidos en la bsqueda
Ejemplo
Ejemplo
Resultado between
Introduccin a SQL Pg . - 21
num_ofi tipo_inv cantid
COP-DPP-F1-5-0013 1 88850.0000
COP-DPP-F1-5-0037 1 80933.0000
COP-DPP-F1-5-0012 1 91285.0000
COP-DPP-F1-5-0040 1 82209.0000
COP-DPP-F1-5-0017 1 97693.0000
COP-DPP-F1-5-0067 1 82571.0000
opciones significado
% cualquier cadena de cero o muchos caracteres
_ cualquier carcter
Introduccin a SQL Pg . - 22
proyec nombre
97/C02002 PAVIMENTACION CALLE JUAREZ ENTRE 20 DE NOV. Y FCO. COSIO
97/C02003 PAVIMENTACION DE CALLES: ABASOLO, ISMAEL ZUIGA, MORELOS Y 20 DE NOVIEMBRE
97/C19006 PROTECCION DE LAS VENTANAS EN 3 AULAS ESC. PRIM CUAUHTEMOC
select nombre
from PROYECTO
where nombre like [F-P]%
Resultado Resultado
where nombre where nombre
like [BDP]% like [F-P]%
nombre nombre
PAVIMENTACION CALLE JUAREZ ENTRE 20 DE NOV. Y FCO. COSIO INTRODUCCION DEL SISTEMA DE AGUA POTABLE COL. LOS LIRIOS
INTRODUCCION DEL SISTEMA DE AGUA POTABLE COL. LOS COLOMOS
PAVIMENTACION DE CALLES: ABASOLO, ISMAEL ZUIGA, MORELOS Y 20 DE NOVIEMBRE
INTRODUCCION DEL SISTEMA DE AGUA POTABLE COL. NUEVAS PALOMAS
DRENAJE PLUVIAL EN UNIDAD DEPORTIVA INTRODUCION DEL SISTEMA DE AGUA POTABLE COL. BENITO JUAREZ OTE.
PAVIMENTACION CALLE JUAREZ ENTRE 20 DE NOV. Y FCO. COSIO
DESPIEDRE AGRICOLA CON MAQUINARIA
PAVIMENTACION DE CALLES: ABASOLO, ISMAEL ZUIGA, MORELOS Y 20 DE NOVIEMBRE
BALASTREO DE CALLES COL. SAN RAFAEL NIVELACION Y BALASTREO DE CALLES EN COL. LAZARO CARDENAS
IMPLANTACION DE PASTO Y CERCO PERIMETRAL DE 100 HAS.
BALASTREO DE CAMINO SACACOSECHAS PTA. AZUL- LADRILLERAS
PROTECCION DE LAS VENTANAS EN 3 AULAS ESC. PRIM CUAUHTEMOC
PROTECCION DE LAS VENTANAS EN 3 AULAS ESC. PRIM CUAUHTEMOC GASTOS DEL GRUPO OPERATIVO
Introduccin a SQL Pg . - 23
select/from/where - Listas
Palabra clave in
Permite seleccionar renglones con columnas cuyo contenido
corresponde a alguno de los valores de la lista
Ejemplo (in)
Busca los proyectos que sean del programa SD o SL
Resultado
proyec progra
97/C13002 SD
97/C17037 SD
97/C17038 SD
97/C02008 SL
97/C02014 SD
97/C02018 SD
97/C15005 SL
97/C04001 SD
97/C08005 SD
97/S00001 SD
97/C17033 SD
97/C17034 SD
97/C17035 SD
97/C17036 SD
97/C18005 SD
97/C18006 SD
97/C04008 SD
97/C18008 SD
97/C03017 SL
and
Conecta dos o ms condiciones
Regresa resultado slo cuando todas las condiciones son
verdaderas
Ejemplo:
Busca los proyectos del programa SE que se localicen en el
municipio con clave 2
select proyec, progra, munici
from PROYECTO
where progra = SE and munici = 2
Resultado
proyec progra munici
97/C02001 SE 2
97/C02004 SE 2
97/C02005 SE 2
97/C02007 SE 2
97/C02011 SE 2
97/C02012 SE 2
Introduccin a SQL Pg . - 24
select/from/where - Conectores condicionales
or
Conecta dos o ms condiciones
Regresa un resultado cuando alguna de las condiciones es verdadera
Es inclusivo
Ejemplo (or)
Busca los proyectos que pertenezcan al programa SD o que sean
de modalidad de ejecucin C
select proyec, progra, mod_eje
from PROYECTO
where progra = SD or mod_eje = C
Resultado
proyec progra mod_eje
97/C13003 SG C
97/C16002 SG C
97/C13005 SG C
97/C13006 SG C
97/C13007 SG C
97/C13008 SG C
97/C13004 SG C
97/C13002 SD AM
97/C16001 SG C
97/C17039 SC C
97/C17040 SC C
97/C17041 SC C
97/C17042 SC C
97/C17037 SD C
97/C17038 SD C
97/C06015 SG C
97/06016 SG C
97/C06017 SG C
97/C06018 SG C
97/C02002 SF C
97/C02003 SF C
97/C02014 SD AM
97/C02018 SD AM
97/C20005 SJ C
97/C15001 UB C
97/C13012 UB C
. . .
. . .
. . .
Resultado
proyec progra costo_tot
97/C07001 SK 27105.0000
Introduccin a SQL Pg . - 25
97/C17008 SE 287175.0000
97/C17007 SE 213456.0000
97/C02011 SE 286424.0000
97/C03005 SE 326410.0000
97/C10002 SE 256529.0000
97/C19016 SK 32479.0000
97/C19006 SK 7078.0000
97/C03018 SK 46383.0000
97/C03019 SK 23460.0000
97/C14014 SK 92587.0000
97/C07006 SK 82236.0000
Resultado
proyec progra costo_tot
97/C17008 SE 287175.0000
97/C17007 SE 213456.0000
97/C02011 SE 286424.0000
97/C03005 SE 326410.0000
97/C10002 SE 256529.0000
Sumario
extraer datos
select [distinct] nombre_columna
from nombre_tabla
[where condiciones_bsqueda]
Sumario
Operadores de Comparacin - (=) igual a; (>) mayor que; (<) menor
que; (>=) mayor que o igual; (<=) menor que o igual; (!=) o (<>)
diferente a; (!>) no mayor que; (!<) no menor que
Introduccin a SQL Pg . - 26
Sumario
like - utilizada para extraer datos de tipo char, varchar, y datatime
% cualquier cadena de cero o muchos caracteres
_ cualquier caracter
CAPITULO III
VISTAS Y
PROCEDIMIENTOS
ALMACENADOS.
Introduccin a SQL Pg . - 27
Vistas
Una vista es considerada como una Tabla Adicional que puede estar
construida en base a una consulta especificada al momento de
crearla, la cual puede incluir operaciones join, subconsultas o
simplemente la consulta de una tabla con sentencias group by, having,
etc.
La sentencia order by es la nica clusula que no se puede utilizar en
la definicin de la vista, esto por el hecho de que los renglones no se
encuentran en un orden particular
Es importante sealar que las vistas se encuentran almacenadas en la
base de datos. De tal manera que al realizar modificaciones a la base
de datos, la consulta que se realice de la vista contendr datos
actualizados.
select *
from v_progra_subpro_fondo
order by progra, subpro
Resultado
progra nom_progra subpro nom_subpro
S5 PROTECCION Y PRESERVACION ECOLOGICA 01 Reforestacin
Introduccin a SQL Pg . - 28
SB ESTIMULOS A LA EDUCACION BASICA 01 Apoyo a la Educacin Primaria
SC AGUA POTABLE 01 Rehabilitacin
SC AGUA POTABLE 02 Ampliacin
SC AGUA POTABLE 03 Construccin
SC AGUA POTABLE 04 Conduccin de Agua
SC AGUA POTABLE 05 Dotacin de Agua
SD ALCANTARILLADO 01 Rehabilitacin
SD ALCANTARILLADO 02 Ampliacin
SD ALCANTARILLADO 03 Construccin
SE URBANIZACION 01 Construccin de Calles
SE URBANIZACION 02 Empedrado y Adoquinamiento de Calles
SE URBANIZACION 03 Guarniciones y Banquetas
SE URBANIZACION 04 Construccin y Remodelacin de Plazas Cvicas y Jardines
SE URBANIZACION 05 Alumbrado Pblico
SF PAVIMENTACION EN COLONIAS POPULARES 01 Concreto
SF PAVIMENTACION EN COLONIAS POPULARES 02 Asfalto
SG ELECTRIFICACION 01 Urbana
SG ELECTRIFICACION 02 Rural
select *
from v_progra_subpro_fondo
where fondo = 1
order by progra, subpro
Resultado
fondo progra nom_progra subpro nom_subpro
1 S5 PROTECCION Y PRESERVACION 01 Reforestacin
ECOLOGICA
1 SB ESTIMULOS A LA EDUCACION BASICA 01 Apoyo a la Educacin Primaria
1 SC AGUA POTABLE 01 Rehabilitacin
1 SC AGUA POTABLE 02 Ampliacin
1 SC AGUA POTABLE 03 Construccin
1 SC AGUA POTABLE 04 Conduccin de Agua
1 SC AGUA POTABLE 05 Dotacin de Agua
1 SD ALCANTARILLADO 01 Rehabilitacin
1 SD ALCANTARILLADO 02 Ampliacin
1 SD ALCANTARILLADO 03 Construccin
1 SE URBANIZACION 01 Construccin de Calles
1 SE URBANIZACION 02 Empedrado y Adoquinamiento de Calles
1 SE URBANIZACION 03 Guarniciones y Banquetas
1 SE URBANIZACION 04 Construccin y Remodelacin de Plazas Cvicas y
Jardines
1 SE URBANIZACION 05 Alumbrado Pblico
1 SF PAVIMENTACION EN COLONIAS 01 Concreto
POPULARES
1 SF PAVIMENTACION EN COLONIAS 02 Asfalto
POPULARES
1 SG ELECTRIFICACION 01 Urbana
1 SG ELECTRIFICACION 02 Rural
Introduccin a SQL Pg . - 29
Procedimientos Almacenados
Un procedimiento es un conjunto de sentencias de SQL y que se guarda
en la base de datos
Con los procedimientos se amplia la velocidad de ejecucin de las
consultas sin reducir la eficiencia en la respuesta del servidor de base de
datos. Esto porque el procedimiento es compilado en memoria virtual del
cliente
En los procedimientos se pueden crear tablas temporales que solamente
existirn durante la ejecucin del mismo
Los valores resultantes de la ejecucin del procedimiento sern
obtenidos de la ltima consulta especificada, siempre y cuando no se
envien a una tabla temporal
Se define una tabla temporal al anteponer el smbolo # a su nombre
Crear un Procedimiento
Sintaxis
create procedure nombre del procedimiento (parametros)
result (columna o valor resultante tipo de dato)
begin
sentencias select
end
Es recomendable anteponer sp_ al nombre que se le asigne al
procedimiento, con el fin de identificarlos facilmente en la base de
datos
Introduccin a SQL Pg . - 30
where DEPEND.depend = #PROY.dep_pro;
Resultado
Introduccin a SQL Pg . - 31
Procedimientos con Parmetros
Ejemplo
Eliminar el procedimiento sp_proy e incluir al mismo los parmetros
para modalidad de inversin, submodalidad de inversin y fondo
Ejecutar el procedimiento
sp_proy 2, SP, 00
Resultado
proyec dep_pro nom_dep_pro dep_nor nom_dep_nor dep_eje nom_dep_eje
97/001067 00000020 SECRETARIA DE 00000020 SECRETARIA DE 02000503 XV AYUNTAMIENTO DE
DESARROLLO DESARROLLO ENSENADA
SOCIAL SOCIAL
97/000610 02000112 GOBIERNO DEL 02000216 I. C. B. C. 02000101 S.A.H.O.P.E.
ESTADO
97/001069 02000112 GOBIERNO DEL 00000020 SECRETARIA DE 02000106 SRIA. DE LA
ESTADO DESARROLLO CONTRALORIA
SOCIAL
97/000428 02000112 GOBIERNO DEL 02000109 S. E. B. S. 02000101 S.A.H.O.P.E.
ESTADO
97/000905 00000020 SECRETARIA DE 00000020 SECRETARIA DE 00000020 SECRETARIA DE
DESARROLLO DESARROLLO DESARROLLO SOCIAL
SOCIAL SOCIAL
97PRUEBA 02000503 XV 00000018 SECRETARIA DE 02000503 XV AYUNTAMIENTO DE
2040 AYUNTAMIENTO ENERGIA, MINAS ENSENADA
DE ENSENADA E INDUSTRIA
PARAESTATAL
C-00053 00000011 SECRETARIA DE 02000214 C O P LAD E 00000020 SECRETARIA DE
EDUCACION DESARROLLO SOCIAL
PUBLICA
Sumario
Una vista es una tabla adicional que puede estar conformada en base a
un conjunto de sentencias de SQL, exceptuando el order by
Un procedimiento es un conjunto de sentencias de SQL que permite una
mayor velocidad en la ejecucin de una consulta
Los procedimientos y las vistas son almacenados en la base de datos
Para crear una vista o un procedimiento se recomienda editarlo en un
archivo de texto y posteriormente ejecutarlo con una instruccin read
Introduccin a SQL Pg . - 32
Extraer Datos II - Objetivos
Renombrar Columnas
Existen dos formas de renombrar un encabezado de columna
1. Utilice nombre_columna_nueva = nombre_columna (ANSI-89
standard)
Ejemplo
select ent_fed, Clave_Proyecto = proyec
from PROYECTO
where progra = TH
select nombre_columna_nueva =
nombre_columna_original [, ...]
Resultado
Clave del Proyecto
97/C02016
97/C13013
97/C02021
Introduccin a SQL Pg . - 33
Renombrar Columnas (continuacin)
2. Utilice un espacio en blanco para separar nombre_columna y
nombre_nueva_columna
Ejemplo
select ent_fed, proyec Clave_Proyecto
from PROYECTO
where progra = TH
Resultado
El proyecto es: proyec
El proyecto es: 97/C02016
Introduccin a SQL Pg . - 34
xpresiones Numricas - Operadores Aritmticos
Smbolo Operacin
+ adicin
- substraccin
* multiplicacin
/ divisin
% mdulo
Resultado
proyec cantid * costo
97/C07002 252535640.476900
97/S00001 569824.000000
Ejemplo (divisin)
select proyec, costo_tot/12
from PROYECTO
where proyec = 97/C02016
Resultado
proyec costo_tot / 12
97/C02016 22638.0833333
Valores NULL
Un valor NULL es un valor desconocido
Introduccin a SQL Pg . - 35
select / order by
La clusula order by ordena el resultado de la consulta (por default
en forma ascendente)
Las columnas declaradas en el order by no es necesario que se
encuentren en la lista_select
Cuando se utiliza el order by, los valores NULL son listados al
principio
Ejemplo
select proyec, munici
from PROYECTO
order by proyec
Ejemplo (usando ms de una columna)
select proyec, munici
from PROYECTO
order by munici, proyec
Resultado: Resultado:
order by proyec order by munici, proyec
proyec munici proyec munici
96/C20007 20 97/C02001 2
97/06016 6 97/C02002 2
97/08006 8 97/C02003 2
97/C02001 2 97/C02004 2
97/C02002 2 97/C02005 2
97/C02003 2 97/C02006 2
97/C02004 2 97/C02007 2
97/C02005 2 97/C02008 2
97/C02006 2 97/C02009 2
97/C02007 2 97/C02010 2
97/C02008 2 97/C02011 2
97/C02009 2 97/C02012 2
97/C02010 2 97/C02013 2
97/C02011 2 97/C02014 2
97/C02012 2 97/C02015 2
97/C02013 2 97/C02016 2
. . . .
. . . .
Introduccin a SQL Pg . - 36
select/order by (continuacin)
Ejemplo (ordenar por una columna derivada)
Liste el costo total de los productos
select costo_tot / 12, proyec
from PROYECTO
order by costo_tot / 12
Resultado
order by costo_tot / 12
costo_tot / 12 proyec
532.4166667 97/C17029
589.8333333 97/C19006
665.5000000 97/C03011
692.5000000 97/C08005
881.1666667 97/C02010
884.9166667 97/C03009
929.4166667 97/C14003
956.5000000 97/C03016
964.8333333 97/C02008
988.6666667 97/C13009
1055.1666667 97/C06015
. .
. .
Resultado
order by progra (la columna no esta en lista_select)
proyec munici
97/C05003 5
97/C17039 17
97/C17040 17
97/C17041 17
97/C17042 17
97/C02010 2
97/C02006 2
97/C02013 2
. .
. .
Sumario
Renombrar columnas - select ttulo_columna = nombre_columna
[, ... ] select nombre_columna ttulo_columna
Operadores aritmticos - (+) adicin; (-) substraccin; (*)
multiplicacin; (/) divisin; (%) mdulo
Valor null - Es un valor desconocido, las operaciones con null resultan
null
Is null - Usado para determinar un valor null en una columna
Clusula order by - Ordena el resultado de una columna (ascendente,
por defecto)
Introduccin a SQL Pg . - 37
Organizar y Resumir Datos - Objetivos
Al concluir esta seccin estar capacitado para:
Funciones Agregadas
Funcin Obtiene
count(*) Nmero de renglones en una tabla
count(nombre_columna) Nmero de renglones en la columna
que no contengan valor null
max(nombre_columna) Valor mximo en la columna
min(nombre_columna) Valor mnimo en la columna
sum(nombre_columna) Valor total de la columna
avg(nombre_columna) Valor promedio de la columna
Resultado count(*)
6
Introduccin a SQL Pg . - 38
Funciones Agregadas - max/min
max encuentra el valor mayor en la columna
Ejemplo
select max(costo_tot)
from PROYECTO
Resultado max(costo_tot)
976800.0000
Resultado min(costo_tot)
100.0000
Introduccin a SQL Pg . - 39
proyec can_act
97/C07002 68670.0000
97/C07002 12118.0000
97/C07002 20197.0000
Funciones Agregadas
En la clusula SELECT se puede utilizar ms de una funcin
agregada
Ejemplo
select min(costo_tot), max(costo_tot)
from PROYECTO
Introduccin a SQL Pg . - 40
select/group by
group by organiza los datos dentro de grupos, formados en base al
contenido de una o varias columnas
Frecuentemente es usado con funciones agregadas en la lista_select
La funcin agregada se aplica en cada grupo
Los valores null en la columna agrupada son tratados como un grupo
Ejemplo
Agrupe los proyectos por programa y calcula el costo promedio para
cada uno.
select progra, costo_promedio = avg(costo_tot)
from PROYECTO
group by progra
Resultado
progra costo_promedio
SC 66207.62500000
SE 87279.39560440
SJ 81132.82758621
SK 44475.42857143
SG 136395.71428571
SD 290927.43750000
UB 113651.93103448
SF 195730.50000000
. .
. .
. .
select/group by (continuacin)
Los grupos se pueden formar por medio de una columna o utilizando
una expresin que no contenga una funcin agregada
Ejemplo
select sum(can_act), proyec, count(proyec)
from EST_FIN
where fase_pre = 3
group by PROYEC
Resultado
Introduccin a SQL Pg . - 41
sum(can_act) proyec count(proyec
27763.0000 97/C13005 3
39954.0000 97/C13006 3
14048.0000 97/C13007 3
261573.0000 97/C13008 3
243327.0000 97/C13004 3
53210.0000 97/C13001 3
16669.0000 97/C13002 3
130662.0000 97/C05002 3
65929.0000 97/C05003 3
72990.0000 97/C05004 3
184760.0000 97/C05001 3
100985.0000 97/C07002 3
27105.0000 97/C07001 3
77889.0000 97/C13003 3
111075.0000 97/C03006 3
83002.0000 97/C16002 3
. . .
. . .
. . .
169135.0000 97/C16007 3
15312.0000 97/C10005 3
183002.0000 97/C10006 3
Ejemplo
Lista las costos totales que ha ejercido cada dependencia
ejecutora en el programa de urbanizacion
Resultado
dep_eje sum(costo_tot)
18018002 606305.0000
18018003 692703.0000
18018005 448609.0000
18018006 445752.0000
18018008 580049.0000
18018010 359305.0000
18018013 125663.0000
18018014 273952.0000
18018015 443685.0000
18018017 3370364.0000
18018018 29937.0000
18018019 277525.0000
18018020 288576.0000
Introduccin a SQL Pg . - 42
group by con la clusula having
La clusula having restringe los grupos
Aplica una condicin a los grupos despus de formarse
Ejemplo
Obtenga el costo promedio de los programas, adems agrpelos
por programa y subprograma y solamente muestre aquellos que
presenten un precio promedio mayor a 60.000
Resultado
Sumario
Funciones Agregadas
count - obtiene el nmero de registros que cumplen la condicin
max - encuentra el valor mximo de la columna
min - encuentra el valor mnimo de la columna
sum - suma los renglones de la columna especificada
avg - obtiene el valor promedio de una columna
Introduccin a SQL Pg . - 43
Sintaxis del select [ distinct ] lista_select
elemento select [ from tabla [, ... ] ]
[ where condiciones ]
[ group by [all] expresin_sin_funcin_agregada [, ... ] ]
[ having condiciones ]
[ order by { nombre_columna
| nmero_lista_select
| expresin } [ asc | desc ] [, ... ] ]
Joins - Objetivos
Al concluir esta seccin estar capacitado para:
Joins
MUNICI
munici ent_fed nom_ofi nom_com tipo_num ...
0 0 Municipio para Municipio para AE ...
Areas Centrales Areas Centrales
1 18 Municipio para Delegacin AE ...
Delegacin
2 18 Municipio para Coplade AE ...
Coplade
3 18 ACAPONETA ACAPONETA B1 .
. . . . . .
. . . . . .
. . . . . .
PROYECTO
munici ent_fed proyec eje_fis fondo progra ...
1 18 97/C05003 1997 1 SC ...
1 18 97/C05004 1997 1 SE ...
2 18 97/C05001 1997 1 SE ...
2 18 97/C07002 1997 1 SJ ...
2 18 97/C07001 1997 1 SK ...
. . . . . . .
. . . . . . .
. . . . . . .
Introduccin a SQL Pg . - 44
Consultar dos tablas
MUNICI PROYECTO
ent_fed munici ent_fed proyec munici eje_fis
18 9999 18 97/C05004 5 1997
18 9998 18 97/C05001 5 1997
18 1 18 97/C07002 7 1997
. .
TABLA RESULTANTE
ent_fed munici proyec munici eje_fis
18 9999 97/C05004 5 1997
18 9998 97/C05001 5 1997
18 1 97/C07002 7 1997
. .
Consultar dos tablas La operacin join permite extraer datos de dos o ms tablas
Join es la parte central del modelo relacional
Combina tablas en base a valores iguales de los
renglones de cada tabla
Operacin Join
Introduccin a SQL Pg . - 45
PROYECTO OFI_PRO OFICIO
ent_fed N ent_fed 1 num_ofi
proyec proyec ent_emi
munici num_ofi N ent_rec
eje_fis 1 ent_emi lis_mun
fondo munici eje_fis
progra lug_reg fondo
subpro tipo_ofi
con_pro fec_emi
cat_pes fec_reg
nombre emisor
tipo_cob recept
fase_pro ofi_rel
costo_tot tipo_aso
mod_inv lug_reg
sub_inv
mod_reg
mod_eje
lineam
dep_pro
dep_nor
dep_eje
ele_bm
lug_reg
Introduccin a SQL Pg . - 46
Consultar tablas usando el Join
Ejemplo
select OFICIO.num_ofi, OFICIO.fondo, OFICIO.tipo_ofi,
EST_OFI.tipo_inv, EST_OFI.cantid
from OFICIO, EST_OFI
where OFICIO.num_ofi = EST_OFI.num_ofi
Resultado
num_ofi fondo tipo_ofi tipo_inv cantid
COP-DPP-F1-5-0042 1 7 1 200762.0000
COP-DPP-F1-5-0042 1 7 2 35429.0000
COP-DPP-F1-5-0042 1 7 5 59048.0000
COP-DPP-F1-5-0004 1 7 1 56442.0000
COP-DPP-F1-5-0004 1 7 2 9960.0000
COP-DPP-F1-5-0004 1 7 5 16600.0000
COP-DPP-F1-5-0004 1 7 1 115065.0000
COP-DPP-F1-5-0004 1 7 2 20305.0000
COP-DPP-F1-5-0004 1 7 5 33843.0000
... ... ... ... ...
... ... ... ... ...
COP-DPP-F1-5-0033 1 7 1 286433.0000
COP-DPP-F1-5-0074 1 7 5 101117.0000
COP-DPP-F1-5-0086 1 7 1 10412.0000
COP-DPP-F1-5-0086 1 7 2 1838.0000
COP-DPP-F1-5-0086 1 7 5 3062.0000
COP-DPP-F1-5-0086 1 7 1 124442.0000
COP-DPP-F1-5-0086 1 7 2 21960.0000
COP-DPP-F1-5-0086 1 7 5 36600.0000
COP-DDP-F2-5-1000 1 7 1 150000.0000
COP-DDP-F2-5-1000 1 7 1 200000.0000
COP-DDP-F2-5-1000 1 7 2 100000.0000
OFICIO EST_OFI
Ejemplo
Liste las CLCs y su beneficiario
Resultado
clc benefi
Introduccin a SQL Pg . - 47
Joins basados en la igualdad (continuacin)
Ejemplo
Liste los proyectos refrendados, la inversion ejercida, avance fsico y
financiero de estos, as como el numero de beneficiarios directos.
Resultado
Producto Cartesiano
Si no se especifican en el where las columnas utilizadas para relacionar
las tablas, el sistema asume que se desea obtener la combinacin de los
renglones de cada tabla
Esto se conoce como producto cartesiano
Ejemplo
Combine la tabla Fondo con la tabla Proyecto
Resultado
nombre proyec
Fondo para el Desarrollo Regional y el Empleo 97/C05003
Fondo para el Desarrollo Regional y el Empleo 97/C05004
Fondo para el Desarrollo Regional y el Empleo 97/C05001
Fondo para el Desarrollo Regional y el Empleo 97/C07002
Fondo para el Desarrollo Regional y el Empleo 97/C07001
Fondo para el Desarrollo Regional y el Empleo 97/C14027
Fondo para el Desarrollo Regional y el Empleo 97/C02044
Fondo para el Desarrollo Regional y el Empleo 97/C14028
Fondo para el Desarrollo Regional y el Empleo 97/C02045
Fondo para el Desarrollo Regional y el Empleo 97/C14029
... ...
... ...
Fondo de Desarrollo Social Municipal 97/C05003
Fondo de Desarrollo Social Municipal 97/C05004
Fondo de Desarrollo Social Municipal 97/C05001
Fondo de Desarrollo Social Municipal 97/C07002
Fondo de Desarrollo Social Municipal 97/C14027
Fondo de Desarrollo Social Municipal 97/C02044
Fondo de Desarrollo Social Municipal 97/C14028
Fondo de Desarrollo Social Municipal 97/C02045
Fondo de Desarrollo Social Municipal 97/C14029
Explicacin: La tabla proyecto contiene 972 renglones y 2 la tabla fondo, por lo tanto el
resultado es: 972 * 2 = 1944 renglones.
Introduccin a SQL Pg . - 48
Joins con order by
Ejemplo (clusula adicional: order by)
Resultado
num_ofi emisor recept tipo_inv cantid
001/97 AYTO. DE JALA SEDESOL 1 193253.0000
001/97 AYTO. DE JALA SEDESOL 2 34103.0000
001/97 AYTO. DE JALA SEDESOL 1 184375.0000
001/97 AYTO. DE JALA SEDESOL 2 32537.0000
002/97 AYTO. DE TEPIC SEDESOL 1 63750.0000
002/97 AYTO. DE TEPIC SEDESOL 2 11250.0000
003/97 AYTO. DE SAN BLAS SEDESOL 1 27971.0000
003/97 AYTO. DE SAN BLAS SEDESOL 2 4936.0000
0036/97 AYTO. DE SANTIAGO SEDESOL 1 18329.0000
0036/97 AYTO. DE SANTIAGO SEDESOL 2 3235.0000
Resultado
num_ofi emisor recept sum(EST_OFI.cantid)
Introduccin a SQL Pg . - 49
001/97 AYTO. DE JALA SEDESOL 444268.0000
002/97 AYTO. DE TEPIC SEDESOL 75000.0000
003/97 AYTO. DE SAN BLAS SEDESOL 32907.0000
0036/97 AYTO. DE SANTIAGO SEDESOL 21564.0000
004/97 SEDESOL(JORN.AGR.) SEDESOL 2247432.0000
005-NIOS/97 AYTO. DE HUAJICORI GOB. DEL EDO. 563580.0000
005/97 SEDESOL SEDESOL 566609.0000
006/97 AYTO. DE SAN PEDRO SEDESOL 6823.0000
LGS.
0070-DPD/97 AYTO. DE XALISCO SEDESOL 412992.0000
020/97 SEDESOL SEDESOL 2214413.0000
... ... ... ...
... ... ... ...
COP-DPP-FI-5-0069 GOB. DEL ESTADO AYTO. DEL NAYAR 971757.0000
COP-DPP-FI-5-0081 GOB. DEL ESTADO AYTO. DEL NAYAR 965967.0000
COP-DPP-FI-5-0099 GOB. DEL ESTADO AYTO. DEL NAYAR 1028593.0000
COP-DPP-FI-5-0102 GOB. DEL ESTADO AYTO. DEL NAYAR 30795.0000
COP-DPP-FI-5-0115 GOB. DEL ESTADO AYTO. DEL NAYAR 82369.0000
COP-DPP-FI-5-0128 GOB. DEL ESTADO AYTO. DE RUIZ 12384.0000
COP-DPP-FI-5-0148 GOB. DEL ESTADO AYTO. DE SAMAO 24942.0000
OA-CPDM-130-97 AYTO. DE EL NAYAR SEDESOL 200031.0000
S/N/97 SEDESOL SEDESOL 3140650.0000
S/N004 SEDESOL (JORN.AGR.) SEDESOL 286522.0000
Alias
Para no teclear repetidamente el nombre de la tabla, se utiliza el alias
dentro de la consulta
El alias puede usarse en cualquier parte de la consulta
Ejemplo
Listar los oficios, emisores, receptores y el tipo de oficio
Resultado
Introduccin a SQL Pg . - 50
Joins con condiciones adicionales
(en la clusula where)
Ejemplo (condicin adicional)
Liste los oficios, emisor y receptor, en los que las invesiones de la
estructura financiera sean menor o igual a 10,000.00
Resultado
Resultado
descri num_ofi emisor recept tipo_inv cantid
Propuesta 001/97 AYTO. DE JALA SEDESOL 1 193253.0000
Propuesta 001/97 AYTO. DE JALA SEDESOL 2 34103.0000
Propuesta 001/97 AYTO. DE JALA SEDESOL 1 184375.0000
Propuesta 001/97 AYTO. DE JALA SEDESOL 2 32537.0000
Propuesta 002/97 AYTO. DE TEPIC SEDESOL 1 63750.0000
Propuesta 002/97 AYTO. DE TEPIC SEDESOL 2 11250.0000
Propuesta 003/97 AYTO. DE SAN BLAS SEDESOL 1 27971.0000
Propuesta 003/97 AYTO. DE SAN BLAS SEDESOL 2 4936.0000
Propuesta 0036/97 AYTO. DE SANTIAGO SEDESOL 1 18329.0000
Propuesta 0036/97 AYTO. DE SANTIAGO SEDESOL 2 3235.0000
Propuesta 004/97 SEDESOL(JORN.AGR.) SEDESOL 1 199359.0000
... ... ... ... ... ...
... ... ... ... ... ...
Aprobacin COP-DPP-FI-5-0128 GOB. DEL ESTADO AYTO. DE RUIZ 1 10526.0000
Aprobacin COP-DPP-FI-5-0128 GOB. DEL ESTADO AYTO. DE RUIZ 2 1858.0000
Aprobacin COP-DPP-FI-5-0148 GOB. DEL ESTADO AYTO. DE SAMAO 1 13769.0000
Aprobacin COP-DPP-FI-5-0148 GOB. DEL ESTADO AYTO. DE SAMAO 2 2431.0000
Aprobacin COP-DPP-FI-5-0148 GOB. DEL ESTADO AYTO. DE SAMAO 5 8742.0000
Introduccin a SQL Pg . - 51
Joins con ms de dos tablas (continuacin)
Cuando n tablas se utilizan con el join, necesariamente se requieren n-1
condiciones join, esto para evitar un producto cartesiano.
Ejemplo (tres tablas - dos condiciones).
De las CLCs liste el beneficiario y las claves de los proyectos para los
cuales se est liberando el recurso
Resultado
clc benefi proyec
1800012 C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE MUNICIPAL 97/C17028
1800012 C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE MUNICIPAL 97/C17029
1800012 C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE MUNICIPAL 97/C17030
1800012 C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE MUNICIPAL 97/C17031
1800012 C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE MUNICIPAL 97/C17032
1800164 C. SALVADOR AGUIAR FREGOSO 97/C03019
1800159 C. SALVADOR AGUIAR FREGOSO 97/C03013
1800160 C. SALVADOR AGUIAR FREGOSO 97/C03017
1800161 C. SALVADOR AGUIAR FREGOSO 97/C03016
1800162 C. SALVADOR AGUIAR FREGOSO 97/C03015
1800163 C. SALVADOR AGUIAR FREGOSO 97/C03018
1800183 C. SALVADOR AGUIAR FREGOSO 97/C03020
1800108 C. SALVADOR AGUIAR F. 97/C03005
1800003 C. SALVADOR AGUIAR FREGOSO 97/C03001
1800003 C. SALVADOR AGUIAR FREGOSO 97/C03002
1800003 C. SALVADOR AGUIAR FREGOSO 97/C03006
1800003 C. SALVADOR AGUIAR FREGOSO 97/C03007
1800105 C. SALVADOR AGUIAR FREGOSO 97/C03004
1800106 C. SALVADOR AGUIAR FREGOSO 97/C03009
1800107 C. SALVADOR AGUIAR FREGOSO 97/C03011
1800109 C. SALVADOR AGUIR FREGOSO 97/C03003
1800110 C. SALVADOR AGUIAR FREGOSO 97/C03008
1800153 PROFR. AGUSTIN AGUILAR IBARRA 97/C02021
... ...
... ...
1800378 C. FELIPE HARO FREGOSO 97/C19029
1800379 C. FELIPE HARO FREGOSO 97/C19028
1800380 C. FELIPE HARO FREGOSO 97/C19027
1800381 C. FELIPE HARO FREGOSO 97/C19030
Sumario
Sintaxis:
select [ tabla ].nombre_columna, [ ...]
from { tabla }, { tabla }, [ ...]
[ where condiciones ]
Introduccin a SQL Pg . - 52
Sintaxis del alias select lista_select
from nombre_tabla nombre_alias1, nombre_tabla
nombre_alias2
where nombre_alias1.nombre_columna =
nombre_alias2.nombre_columna
Subconsultas - Objetivos
Al concluir esta seccin estar capacitado para:
Resultado: 2
Introduccin a SQL Pg . - 53
18 97/S00290 7 1997 2 TF 01 00 2 REHABILITACION DE
HUERTAS DE DURAZNO
18 97/S00288 7 1997 2 TE 01 00 2 REHABILITACION DE LIENZOS
EN PARCELAS Y POTREROS
Resultado
ent_fed proyec munici eje_fis fondo progra subpro con_pro cat_pes nombre
18 97/S00221 14 1997 2 TH 02 00 2 DESPIEDRE MANUAL
18 97/S00095 14 1997 2 SS 06 00 0 EQUIPAMIENTO DE
COCINA
18 97/S00001 4 1997 2 SD 01 00 0 REHABILITACION DEL
SISTEMA DE
ALCANTARILLADO S.
18 97/S00016 998 1997 2 SS 08 00 0 GASTOS DEL GRUPO
OPERATIVO (JORNALEROS
AGRICO.
18 97/S00053 18 1997 2 TB 01 00 0 TORTILLERIA
18 97/S00054 16 1997 2 TB 01 00 0 TORTILLERIA
18 97/S00055 14 1997 2 TB 01 00 0 TORTILLERIA
18 97/S00056 7 1997 2 TB 01 00 0 TORTILLERIA
18 97/S00057 7 1997 2 TB 01 00 0 PANADERIA
(TERMINACION)
18 97/S00058 7 1997 2 TB 01 00 0 TIENDA DE ABASTO
... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ...
18 97/S00059 7 1997 2 TB 01 00 0 TORTILERIA
18 97/S00289 7 1997 2 TF 01 00 2 REHABILITACION DE
HUERTOS DE DURAZNO
18 97/S00290 7 1997 2 TF 01 00 2 REHABILITACION DE
HUERTAS DE DURAZNO
18 97/S00288 7 1997 2 TE 01 00 2 REHABILITACION DE
LIENZOS EN PARCELAS Y
POTREROS
Introduccin a SQL Pg . - 54
[ where condiciones ] )
Notas de la sintaxis
Restricciones de Subconsultas
Si la clusula where de la consulta exterior incluye un nombre de
columna, sta necesitar un join compatible con el nombre de la
columna en la lista_select_subconsulta
Resultado
ent_fed proyec munici eje_fis fondo progra subpro con_pro cat_pes nombre
18 97/S00139 2 1997 2 SS 06 00 0 ORGANIZACION PARA EL
CONSUMO (GRUPOS OPER.)
18 97/S00020 2 1997 2 S5 07 00 0 PRODUCCION DE 50,000
PLANTAS
18 97/S00021 2 1997 2 S5 07 00 0 MANTENIMIENTO DE
50,000 PLANTAS
18 97/S00022 2 1997 2 S5 07 00 0 PLANTACION Y
Introduccin a SQL Pg . - 55
NOVILIZACION SOCIAL,
CARGA Y DESCARGA DE
15,000 OPERATIVOS
Resultado
num_ofi tipo_inv cantidad
COP-DPP-F1-5-0042 1 200762.0000
COP-DPP-F1-5-0042 2 35429.0000
COP-DPP-F1-5-0042 5 59048.0000
COP-DPP-F1-5-0004 1 56442.0000
COP-DPP-F1-5-0004 2 9960.0000
COP-DPP-F1-5-0004 5 16600.0000
COP-DPP-F1-5-0004 1 115065.0000
COP-DPP-F1-5-0004 2 20305.0000
COP-DPP-F1-5-0004 5 33843.0000
COP-DPP-F1-5-0033 1 286433.0000
COP-DPP-F1-5-0033 2 50547.0000
COP-DPP-F1-5-0033 5 84247.0000
... ... ...
... ... ...
25-541711-F2-0033 1 193253.0000
25-541711-F2-0033 2 34103.0000
25-541711-F2-0033 1 184375.0000
25-541711-F2-0033 2 32537.0000
COP-DPP-FI-0160/97 2 17159778.0000
COP-DPP-FI-0160/97 1 97238744.0000
COP-DPP-F1-5-0188 1 190140.0000
COP-DPP-F1-5-0188 2 33554.0000
Resultado
Introduccin a SQL Pg . - 56
proyec nombre costo_tot
97/C8012 CONSTRUCCION CERCO PERIMETRAL EN BENEFICIO HUMEDO DE CAFE 68590.0000
97/08006 EMPEDRADO DE CALLES COL. NAVARREO 73830.0000
97/S00056 TORTILLERIA 45865.0000
97/S00062 FRUTERIA Y TIENDA DE ABASTO 64310.0000
97/S00107 MEJORAMIENTO DE TECHOS, PISOS Y MUROS 60000.0000
97/V17089 BECAS NIOS ESC. PRIMARIA LEONA VICARIO T. V. 21712.0000
97/S00178 HUERTO COMUNITARIO 1245.0000
97C/08024 ESC. PRIM. " 20 DE NOVIEMBRE " 22656.0000
97/S00003 CONSTRUCCION DE PLANTA DE TRATAMIENTO 1817200.0000
Las subconsultas pueden realizar algunas tareas que las clusulas join
no pueden hacer
Una clusula where en una declaracin select no puede incluir una
funcin agregada
Una subconsulta puede incluir una funcin agregada
Ejemplo (mayor que y una funcin agregada)
Liste los proyectos, sus nombres y costo total de los que se
encuentran en aprobacin; adems que el costo total de estos
proyectos sea menor al promedio de las cantidades aprobadas de
todos los proyectos.
Resultado
proyec nombre costo _tot
97/C07001 SISTEMA DE PURIFICACION DE AGUA ESC. PRIM. MIGUEL HIDALGO Y COSTILLA 27105.0000
97/C13005 AMPLIACION RED ELECTRICA BARRIO DE EN MEDIO 27763.0000
97/C13007 AMPLIACION RED ELECTRICA BARRIO DE ABAJO 14048.0000
... ... ...
... ... ...
97/C02045 DESAYUNOS ESCOLARES ESC. PRIMARIA IGNACIO ZARAGOZA T.V. 18548.0000
97/C14029 ESCUELA PRIMARIA JUAN ESCUTIA 22656.0000
Ejemplo de error
Introduccin a SQL Pg . - 57
(select can_act from est_fin
where fase_pre =
(select fase_pre from fase_pre
where descri like 'Aprobaci_n'))
Al ejecutar la instruccin indica Error: Subquery cannot return more than one result.
Liste los proyectos que estn actualizados cuyo costo total sea menor
al promedio de los costos totales de todos los proyectos (Propuesta,
Actualizacin, Aprobacin, etc.)
Resultado
ent_fed proyec munici eje_fis fondo progra subpro con_pro cat_pes nombre
18 97/08006 8 1997 1 SE 02 00 0 EMPEDRADO DE CALLES
COL. NAVARREO
18 97/C8012 8 1997 1 TF 04 00 0 CONSTRUCCION CERCO
PERIMETRAL EN
BENEFICIO ...
18 7 1997 2 TB 01 00 0 TORTILLERIA
97/S00056
18 2 1997 2 TB 01 00 0 FRUTERIA Y TIENDA DE
97/S00062 ABASTO
18 15 1997 2 SH 01 0B 0 MEJORAMIENTO DE
97/S00107 TECHOS, PISOS Y MUROS
18 12 1997 2 SS 08 00 0 HUERTO COMUNITARIO
97/S00178
18 8 1997 1 SB 01 00 1 ESC. PRIM. " 20 DE
97C/0802 NOVIEMBRE "
4
18 17 1997 1 SB 01 00 1 BECAS NIOS ESC.
97/V1708 PRIMARIA LEONA VICARIO
9 T. V.
Sumario
Una Subconsulta - es una clusula select, usada como una
expresin en parte de otra clusula select, update, insert, or
delete.
Introduccin a SQL Pg . - 58
Introduccin a SQL Pg . - 59