Documente Academic
Documente Profesional
Documente Cultură
n
a
SQL
Introduccin a SQL
Pg . - 1
Introduccin a SQL
Pg . - 2
Objetivos
Introduccin a SQL
Pg . - 3
SQL
Structured Query Language (Lenguaje de consulta estructurado)
Introduccin a SQL
Pg . - 4
Base de Datos
Definicin: Un cuerpo o conjunto de datos en el cual existen relaciones
entre sus elementos
Ejemplo:
SURCE97
SURCE97
Mov_Est
Proyecto
Est_fin
Oficio
Introduccin a SQL
Ofi_Pro
Pg . - 5
Administrador
BD
Usuarios
SQL anywhere
SURCE97
Servidor
Tabla
Columna
Rengln
Llave Primaria
Llave Fornea
Introduccin a SQL
Pg . - 6
Tablas
Nombres de Columnas
Ent_fed
Renglones
Proyec
Munici
Eje_fis
22
97/000001
01
1997
22
97/000002
02
1997
22
97/000003
01
1997
Columnas
Llaves Primarias
Cada rengln puede ser accesado por una llave primaria nica
En todos los renglones, algunas columnas o grupos de columnas
debern identificar nicamente este rengln.
Introduccin a SQL
Pg . - 7
Tabla Proyecto
Llave
Primaria
Ent_fed
Proyec
Munici
Eje_fis
22
97/000001
01
1997
22
97/000002
02
1997
22
97/000003
01
1997
Introduccin a SQL
Pg . - 8
Nombres convencionales
Defaults
El valor default para el propietario es el de la base
actual
El valor default para la base de datos es el de la
base de datos actual
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.
Introduccin a SQL
Pg . - 9
Sumario
Structured Query Language (SQL) -es una forma estndar para
Introduccin a SQL
Pg . - 10
Introduccin a SQL
Pg . - 11
proyec
97/000029
97/000030
97/000031
97/000063
97/000064
97/000065
97/001905
97/000069
97/000070
97/000071
97/000072
97/000066
97/000067
97/000068
97/000006
proyec
97/000029
97/000030
97/000031
97/000063
97/000064
97/000065
97/001905
97/000069
97/000070
97/000071
97/000072
97/000066
97/000067
97/000068
97/000006
munici
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Introduccin a SQL
munici
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Ensenada
Pg . - 12
Resultado
proyec
97/000355
97/000356
97/000351
97/000352
97/000358
97/000357
97/000353
97/000354
97/0307
97/000359
97/000360
nom_ofi
Ensenada
Ensenada
Mexicali
Mexicali
Tecate
Tecate
Tijuana
Tijuana
Tijuana
Concejo Mpal. de playas de Rosarito
Concejo Mpal. de playas de Rosarito
descri
Social
Social
Social
Social
Social
Social
Social
Social
Apoyo
Social
Social
Introduccin a SQL
Pg . - 13
Ejemplos
select PRO_ESP.proyec, CAR_GEN.descri
from PRO_ESP key left outer join CAR_GEN
where PRO_ESP.munici = 1
order by PRO_ESP.proyec
proyec
00053
descri
(NULL)
proyec
97/000007
97/000006
(NULL)
sgc01
97/000007
97/000008
97/000009
97/000029
97/000030
97/000031
97/000063
97/000064
97/000065
97/000066
97/000067
Introduccin a SQL
descri
CONSTRUCCION DE 4 AULAS TIPO
REGIONAL EN E.P.E.LA ESPERANZA
Pavimentacin de Av. Prueba mediante maquinaria
de plancha al calor.
Pg . - 14
Introduccin a SQL
Pg . - 15
fondo
2
97/000030
97/000031
97/000063
97/000064
97/000065
97/001905
97/000069
97/000070
97/000071
97/000072
nombre
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
el Desarrollo Regional y el
progra
SG
descri
ELECTRIFICACION
subpro
01
descri
Urbana
el Desarrollo Regional y el
SG
ELECTRIFICACION
01
Urbana
el Desarrollo Regional y el
SG
ELECTRIFICACION
01
Urbana
el Desarrollo Regional y el
SD
ALCANTARILLADO
03
Construccin
el Desarrollo Regional y el
SD
ALCANTARILLADO
03
Construccin
el Desarrollo Regional y el
SD
ALCANTARILLADO
03
Construccin
el Desarrollo Regional y el
SS
el Desarrollo Regional y el
SI
VIALIDADES URBANAS
01
Nutricin,
Alimentacin y
Salud
Reconstruccin
el Desarrollo Regional y el
SI
VIALIDADES URBANAS
01
Reconstruccin
el Desarrollo Regional y el
SI
VIALIDADES URBANAS
01
Reconstruccin
el Desarrollo Regional y el
SI
VIALIDADES URBANAS
01
Reconstruccin
Introduccin a SQL
Pg . - 16
97/000066
97/000067
97/000068
97/000006
97/000007
97/000008
97/000009
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
Fondo para
Empleo
el Desarrollo Regional y el
SI
VIALIDADES URBANAS
01
Reconstruccin
el Desarrollo Regional y el
SI
VIALIDADES URBANAS
01
Reconstruccin
el Desarrollo Regional y el
SI
VIALIDADES URBANAS
01
Reconstruccin
el Desarrollo Regional y el
SJ
INFRAESTRUCTURA EDUCATIVA
02
Construccin
el Desarrollo Regional y el
SJ
INFRAESTRUCTURA EDUCATIVA
02
Construccin
el Desarrollo Regional y el
SJ
INFRAESTRUCTURA EDUCATIVA
02
Construccin
el Desarrollo Regional y el
SJ
INFRAESTRUCTURA EDUCATIVA
02
Construccin
Resultado
proyec
97/000055
97/000056
97/000076
97/000029
97/000030
97/000031
97/000048
97/000049
97/000050
97/000043
97/000044
97/000045
nom_ofi
Tijuana
Tijuana
Tecate
Ensenada
Ensenada
Ensenada
Mexicali
Mexicali
Mexicali
Tijuana
Tijuana
Tijuana
nombre
TIJUANA
TIJUANA
LAZARO CARDENAS, COL.
POPULAR 89, FRACC
POPULAR 89, FRACC
POPULAR 89, FRACC
PROGRESO,COL.
PROGRESO,COL.
PROGRESO,COL.
CUMBRES, COL.
TIJUANA
LAZARO CARDENAS, COL.
Introduccin a SQL
Pg . - 17
97/000077
97/000078
97/000046
97/000047
97/000057
97/000058
97/000063
97/000064
97/000065
97/000051
97/000052
97/000053
Tecate
Tecate
Tijuana
Tijuana
Tijuana
Tijuana
Ensenada
Ensenada
Ensenada
Tijuana
Tijuana
Tijuana
inv_federal
inv_estatal
736607.0000
245536.0000
9375.0000
9375.0000
(NULL)
(NULL)
97500.0000
32500.0000
(NULL)
(NULL)
679330.0000
226443.0000
8646.0000
8646.0000
(NULL)
(NULL)
Introduccin a SQL
Pg . - 18
97/000036
97/000037
97/000038
97/000039
97/000040
97/000041
538978.0000
1502771.0000
19126.0000
(NULL)
262319.0000
452413.0000
179659.0000
500924.0000
19126.0000
(NULL)
87440.0000
150804.0000
Introduccin a SQL
Pg . - 19
Sumario
La clusula KEY JOIN permite simplificar la operacin join en una
consulta
KEY LEFT/RIGHT OUTER JOIN son empleados cuando se requieren
sentencia AS
Introduccin a SQL
Pg . - 20
Objetivos
Introduccin a SQL
Pg . - 21
software de cliente
SQL anywhere
software de cliente
Introduccin a SQL
Pg . - 22
BD
BD
SQL Anywhere
SURCE
BD
NOMINA
IMCLASS
Introduccin a SQL
Pg . - 23
datos
Ejemplo (todas las columnas)
* indica todas las columnas de la tabla PROYECTO
Select * from PROYECTO
Sintaxis
select lista_select
from lista_tabla
Resultado
ent_fed
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
.
.
.
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
.
.
.
munici
5
5
5
7
7
13
3
16
13
13
13
13
13
13
13
5
16
5
.
.
.
eje_fis
1997
1997
1997
1997
1997
1997
1997
1997
1997
1997
1997
1997
1997
1997
1997
1997
1997
1997
.
.
.
fondo
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
.
.
.
progra
SC
SE
SE
SJ
SK
SG
SE
SG
SG
SG
SG
SG
SG
SE
SD
SJ
SG
SJ
.
.
.
subpro
01
03
02
02
02
01
02
01
01
01
01
01
02
02
02
02
02
02
.
.
.
con_pro
00
0A
00
0A
00
0B
00
0B
0B
0B
0B
0B
0B
00
00
0C
0B
0B
.
.
.
Introduccin a SQL
cat_pes
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
.
.
.
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
..................
Pg . - 24
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 . - 25
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
.
.
.
munici
5
5
5
7
7
13
3
16
13
13
13
13
13
13
13
5
16
5
.
.
.
Introduccin a SQL
Pg . - 26
Reordenar columnas
El orden de columnas en la seleccin ser el orden determinado de las
columnas en el resultado
Ejemplo
Lista los municipios de los proyectos de la tabla PROYECTO
select munici, proyec
from PROYECTO
Resultado
munici
5
5
5
7
7
13
3
16
13
13
13
13
13
13
13
5
16
5
.
.
.
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 . - 27
Eliminar Duplicados
distinct elimina renglones duplicados en la salida
Sintaxis
Utilizando distinct
progra
SC
SE
SE
SJ
SK
SG
SE
SG
SG
SG
SG
SG
SG
SE
SD
SJ
SG
SJ
SJ
.
.
.
progra
SC
SE
SJ
SK
SG
SD
UB
SF
SL
TH
TJ
SH
ST
TF
TE
SS
SP
Introduccin a SQL
Pg . - 28
distinct
distinct acta sobre el rengln completo
Ejemplo
Lista slo una ocurrencia de los programas y subprogramas de los
proyectos
select distinct progra, subpro
from PROYECTO
progra
SC
SE
SE
SJ
SK
SG
SE
SG
SG
SG
SG
SG
SG
SE
SD
SJ
SG
SJ
SJ
SJ
.
.
.
progra
SC
SE
SE
SJ
SK
SG
SG
SD
SE
UB
SC
SD
SF
UB
SL
SC
SE
TH
UB
SD
.
.
.
subpro
01
03
02
02
02
01
02
01
01
01
01
01
02
02
02
02
02
02
02
02
.
.
.
subpro
01
03
02
02
02
01
02
02
01
02
03
01
02
03
02
02
04
02
01
03
.
.
.
Introduccin a SQL
Pg . - 29
distinct (continuacin)
El distinct es usado para:
Encontrar cada valor posible en una columna en particular
Agrupar valores en categoras
Ejemplo
Lista cada municipio de la tabla PRO_ESP
select distinct munici
from PRO_ESP
Resultado
munici
16
5
13
17
7
6
2
20
15
3
4
14
10
18
19
8
998
Introduccin a SQL
Pg . - 30
Ejemplo
Lista los proyectos especficos del municipio con clave 2
select proyec, munici
from PRO_ESP
where munici = 2
Las condiciones de bsqueda son expresiones booleanas (verdadero,
falso) aplicadas a cada rengln para determinar el resultado que
deber regresar
Sintaxis
select lista_select
from lista_de_tablas
where condicin
Resultado
proyec
97/C02001
97/C02002
97/C02003
97/C02004
97/C02005
97/C02007
97/C02008
97/C02009
97/C02010
97/C02006
97/C02013
97/C02014
97/C02011
97/C02012
97/C02016
97/C02015
97/C02017
97/C02018
97/C02019
97/C02020
97/C02021
munici
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
Introduccin a SQL
Pg . - 31
between y in
Ejemplo de NOT
Resultado
proyec
97/C16002
97/C16001
97/C13009
97/C13010
97/C17001
97/C17002
97/C17003
97/C17004
97/C17005
97/C17006
97/C17008
97/C07002
97/C07001
97/C13003
97/C13005
97/C13006
97/C13007
97/C13008
97/C13004
97/C13001
.
.
.
munici
16
16
13
13
17
17
17
17
17
17
17
7
7
13
13
13
13
13
13
13
.
.3
.
Introduccin a SQL
Pg . - 32
Significado
igual
>
mayor que
<
menor que
>=
<=
menor o igual
!=
diferente que
<>
diferente que
!>
no es mayor que
!<
no es menor que
No es igual a
<> es igual a !=
menor que
mayor que
Nota
Introduccin a SQL
Pg . - 33
Resultado
proyec
97/C07001
97/C19016
97/C19006
97/C03018
97/C03019
97/C14014
97/C07006
nombre
SISTEMA DE PURIFICACION DE AGUA ESC. PRIM. MIGUEL HIDALGO Y COSTILLA
RECONSTRUCCION DE BARDEO EN LA ESC. PRIM. LEONA VICARIO
PROTECCION DE LAS VENTANAS EN 3 AULAS ESC. PRIM CUAUHTEMOC
REHABILITACION CERCADO PERIMETRAL JARDIN DE NIOS NARCISO MENDOZA
REHABILITACION DE CASA DEL MAESTRO Y SERVICIOS SANITARIOS ESC. PRIM. FCO. I.
MADERO
REHABILITACION DE ESC. PRIM. MIGUEL HIDALGO
REHAB. DE ACCESO A LA ESC. SEC. FED. NO. 9 "RICARDO FLORES MAGON"
Ejemplo
No igual
Ejemplo
Mayor que
Ejemplo
Menor que
Introduccin a SQL
Pg . - 34
select/from/where - Rangos
between es usado para especificar un rango inclusivo : los valores
especificados
Ejemplo
select num_ofi, tipo_inv, cantid
from EST_OFI
where cantid not between 75000 and 100000
Resultado between
num_ofi
COP-DPP-F1-5-0013
COP-DPP-F1-5-0037
COP-DPP-F1-5-0012
COP-DPP-F1-5-0040
COP-DPP-F1-5-0017
COP-DPP-F1-5-0067
tipo_inv
1
1
1
1
1
1
cantid
88850.0000
80933.0000
91285.0000
82209.0000
97693.0000
82571.0000
tipo_inv
1
1
1
1
1
1
1
1
1
1
.
.
.
cantid
7584.0000
63441.0000
39867.0000
49068.0000
122167.0000
17068.0000
180341.0000
552427.0000
723851.0000
228116.0000
.
.
.
Introduccin a SQL
Pg . - 35
significado
cualquier cadena de cero o muchos caracteres
cualquier carcter
[]
[^]
Introduccin a SQL
Pg . - 36
nombre
PAVIMENTACION CALLE JUAREZ ENTRE 20 DE NOV. Y FCO. COSIO
PAVIMENTACION DE CALLES: ABASOLO, ISMAEL ZUIGA, MORELOS Y 20 DE NOVIEMBRE
PROTECCION DE LAS VENTANAS EN 3 AULAS ESC. PRIM CUAUHTEMOC
nombre
REHAB. DEL SISTEMA DE AGUA POTABLE ( RED DE DISTRIBUCION )
CONSTRUCCION DE GUARNICIONES
CONSTRUCCION DE EMPEDRADOS
CONSTRUCCION AULA PREESCOLAR CONCEPCION JAIME ESPINOZA COL. EL CARRIZAL
SISTEMA DE PURIFICACION DE AGUA ESC. PRIM. MIGUEL HIDALGO Y COSTILLA
AMPLIACION RED ELECTRICA BARRIO DE ARRIBA
EMPEDRADO DE CALLES
AMPLIACION RED ELECTRICA COL. EL TACOTE
AMPLIACION RED ELECTRICA BARRIO DE ENMEDIO
AMPLIACION RED ELECTRICA COL. BUENOS AIRES
AMPLIACION RED ELECTRICA BARRIO DE ABAJO
AMPLIACION RED ELECTRICA COL. PROGRESO
AMPLIACION RED ELECTRICA COL. NUEVA
EMPEDRADO CALLES COL. LAZARO CARDENAS
AMPLIACION ALCANTARILLADO SANITARIO COL. BUENOS AIRES
CONST. DE CERCO PERIMETRAL ESC. TELESEC. VICENTE GUERRERO
.
.
.
Introduccin a SQL
Pg . - 37
Resultado
where nombre
like [BDP]%
Resultado
where nombre
like [F-P]%
nombre
nombre
Introduccin a SQL
Pg . - 38
select/from/where - Listas
Palabra clave in
Resultado
proyec
97/C13002
97/C17037
97/C17038
97/C02008
97/C02014
97/C02018
97/C15005
97/C04001
97/C08005
97/S00001
97/C17033
97/C17034
97/C17035
97/C17036
97/C18005
97/C18006
97/C04008
97/C18008
97/C03017
progra
SD
SD
SD
SL
SD
SD
SL
SD
SD
SD
SD
SD
SD
SD
SD
SD
SD
SD
SL
Introduccin a SQL
Pg . - 39
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
97/C02001
97/C02004
97/C02005
97/C02007
97/C02011
97/C02012
progra
SE
SE
SE
SE
SE
SE
munici
2
2
2
2
2
2
Introduccin a SQL
Pg . - 40
Resultado
proyec
97/C13003
97/C16002
97/C13005
97/C13006
97/C13007
97/C13008
97/C13004
97/C13002
97/C16001
97/C17039
97/C17040
97/C17041
97/C17042
97/C17037
97/C17038
97/C06015
97/06016
97/C06017
97/C06018
97/C02002
97/C02003
97/C02014
97/C02018
97/C20005
97/C15001
97/C13012
.
.
.
progra
SG
SG
SG
SG
SG
SG
SG
SD
SG
SC
SC
SC
SC
SD
SD
SG
SG
SG
SG
SF
SF
SD
SD
SJ
UB
UB
.
.
.
mod_eje
C
C
C
C
C
C
C
AM
C
C
C
C
C
C
C
C
C
C
C
C
C
AM
AM
C
C
C
.
.
.
Introduccin a SQL
Pg . - 41
Resultado
proyec
97/C07001
97/C17008
97/C17007
97/C02011
97/C03005
97/C10002
97/C19016
97/C19006
97/C03018
97/C03019
97/C14014
97/C07006
progra
SK
SE
SE
SE
SE
SE
SK
SK
SK
SK
SK
SK
costo_tot
27105.0000
287175.0000
213456.0000
286424.0000
326410.0000
256529.0000
32479.0000
7078.0000
46383.0000
23460.0000
92587.0000
82236.0000
progra
SE
SE
SE
SE
SE
costo_tot
287175.0000
213456.0000
286424.0000
326410.0000
256529.0000
Introduccin a SQL
Pg . - 42
Sumario
extraer datos
select [distinct] nombre_columna
from nombre_tabla
[where condiciones_bsqueda]
distinct - elimina renglones duplicados en la salida
Introduccin a SQL
Pg . - 43
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
between - rango inclusivo: los valores limites son incluidos en la
bsqueda
select [distinct] nombre_columna
from nombre_tabla
[where condiciones_bsqueda]
not - niega una expresin
Introduccin a SQL
Pg . - 44
Sumario
like - utilizada para extraer datos de tipo char, varchar, y datatime
cualquier caracter
[]
[^]
valores
Introduccin a SQL
Pg . - 45
CAPITULO III
VISTAS Y
PROCEDIMIENTOS
ALMACENADOS.
Introduccin a SQL
Pg . - 46
Introduccin a SQL
Pg . - 47
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.
Introduccin a SQL
Pg . - 48
nom_progra
PROTECCION Y PRESERVACION ECOLOGICA
ESTIMULOS A LA EDUCACION BASICA
AGUA POTABLE
AGUA POTABLE
AGUA POTABLE
AGUA POTABLE
AGUA POTABLE
ALCANTARILLADO
ALCANTARILLADO
ALCANTARILLADO
URBANIZACION
URBANIZACION
URBANIZACION
URBANIZACION
URBANIZACION
PAVIMENTACION EN COLONIAS POPULARES
PAVIMENTACION EN COLONIAS POPULARES
ELECTRIFICACION
ELECTRIFICACION
subpro
01
01
01
02
03
04
05
01
02
03
01
02
03
04
05
01
02
01
02
nom_subpro
Reforestacin
Apoyo a la Educacin Primaria
Rehabilitacin
Ampliacin
Construccin
Conduccin de Agua
Dotacin de Agua
Rehabilitacin
Ampliacin
Construccin
Construccin de Calles
Empedrado y Adoquinamiento de Calles
Guarniciones y Banquetas
Construccin y Remodelacin de Plazas Cvicas y Jardines
Alumbrado Pblico
Concreto
Asfalto
Urbana
Rural
Introduccin a SQL
Pg . - 49
progra
S5
1
1
1
1
1
1
1
1
1
1
1
1
1
SB
SC
SC
SC
SC
SC
SD
SD
SD
SE
SE
SE
SE
1
1
SE
SF
SF
1
1
SG
SG
nom_progra
PROTECCION Y PRESERVACION
ECOLOGICA
ESTIMULOS A LA EDUCACION BASICA
AGUA POTABLE
AGUA POTABLE
AGUA POTABLE
AGUA POTABLE
AGUA POTABLE
ALCANTARILLADO
ALCANTARILLADO
ALCANTARILLADO
URBANIZACION
URBANIZACION
URBANIZACION
URBANIZACION
subpro
01
nom_subpro
Reforestacin
01
01
02
03
04
05
01
02
03
01
02
03
04
URBANIZACION
PAVIMENTACION EN COLONIAS
POPULARES
PAVIMENTACION EN COLONIAS
POPULARES
ELECTRIFICACION
ELECTRIFICACION
05
01
02
Asfalto
01
02
Urbana
Rural
Introduccin a SQL
Pg . - 50
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
Introduccin a SQL
Pg . - 51
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 . - 52
Introduccin a SQL
Pg . - 53
Resultado
proyec
97/001067
dep_pro
00000020
97/000610
02000112
97/001069
02000112
97/000428
02000112
97/000905
00000020
97PRUEB
A2040
02000503
C-00053
00000011
C-00053A
00000011
nom_dep_pro
SECRETARIA DE
DESARROLLO
SOCIAL
GOBIERNO DEL
ESTADO
GOBIERNO DEL
ESTADO
dep_nor
00000020
nom_dep_nor
SECRETARIA DE
DESARROLLO
SOCIAL
I. C. B. C.
dep_eje
02000503
nom_dep_eje
XV AYUNTAMIENTO DE
ENSENADA
02000101
S.A.H.O.P.E.
SECRETARIA DE
DESARROLLO
SOCIAL
S. E. B. S.
02000106
SRIA. DE LA
CONTRALORIA
GOBIERNO DEL
ESTADO
SECRETARIA DE
DESARROLLO
SOCIAL
XV
AYUNTAMIENTO
DE ENSENADA
02000109
02000101
S.A.H.O.P.E.
00000020
SECRETARIA DE
DESARROLLO SOCIAL
02000503
XV AYUNTAMIENTO DE
ENSENADA
02000214
SECRETARIA DE
DESARROLLO
SOCIAL
SECRETARIA DE
ENERGIA, MINAS
E INDUSTRIA
PARAESTATAL
COPLADE
SECRETARIA DE
EDUCACION
PUBLICA
SECRETARIA DE
EDUCACION
PUBLICA
00000020
SECRETARIA DE
DESARROLLO SOCIAL
02000214
COPLADE
00000020
SECRETARIA DE
DESARROLLO SOCIAL
02000216
00000020
00000020
00000018
Introduccin a SQL
Pg . - 54
dep_pro
00000020
97/000610
02000112
97/001069
02000112
97/000428
02000112
97/000905
00000020
97PRUEB
A2040
02000503
C-00053
00000011
nom_dep_pro
SECRETARIA DE
DESARROLLO
SOCIAL
GOBIERNO DEL
ESTADO
GOBIERNO DEL
ESTADO
dep_nor
00000020
GOBIERNO DEL
ESTADO
SECRETARIA DE
DESARROLLO
SOCIAL
XV
AYUNTAMIENTO
DE ENSENADA
02000109
SECRETARIA DE
EDUCACION
02000214
02000216
00000020
00000020
00000018
nom_dep_nor
SECRETARIA DE
DESARROLLO
SOCIAL
I. C. B. C.
dep_eje
02000503
nom_dep_eje
XV AYUNTAMIENTO DE
ENSENADA
02000101
S.A.H.O.P.E.
SECRETARIA DE
DESARROLLO
SOCIAL
S. E. B. S.
02000106
SRIA. DE LA
CONTRALORIA
02000101
S.A.H.O.P.E.
SECRETARIA DE
DESARROLLO
SOCIAL
SECRETARIA DE
ENERGIA, MINAS
E INDUSTRIA
PARAESTATAL
COPLADE
00000020
SECRETARIA DE
DESARROLLO SOCIAL
02000503
XV AYUNTAMIENTO DE
ENSENADA
00000020
SECRETARIA DE
DESARROLLO SOCIAL
Introduccin a SQL
Pg . - 55
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 . - 56
Objetivos:
Introduccin a SQL
Pg . - 57
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
Sintaxis
select nombre_columna_nueva =
nombre_columna_original [, ...]
select nombre_columna_nueva =
nombre_columna_original [, ...]
Nota
Resultado
Clave del Proyecto
97/C02016
97/C13013
97/C02021
Introduccin a SQL
Pg . - 58
nombre_nueva_columna
Ejemplo
select ent_fed, proyec Clave_Proyecto
from PROYECTO
where progra = TH
Cuidado: Al omitir una coma en la lista select, la columna ser
proyec
97/C02016
97/C13013
97/C02021
munici
2
13
2
munici
97/C02016
97/C13013
97/C02021
Introduccin a SQL
Pg . - 59
Resultado
El proyecto es:
El proyecto es:
proyec
97/C02016
Introduccin a SQL
Pg . - 60
Operacin
adicin
substraccin
multiplicacin
divisin
mdulo
Resultado
proyec
97/C07002
97/S00001
cantid * costo
252535640.476900
569824.000000
Ejemplo (divisin)
select proyec, costo_tot/12
from PROYECTO
where proyec = 97/C02016
Resultado
proyec
97/C02016
costo_tot / 12
22638.0833333
Introduccin a SQL
Pg . - 61
Valores NULL
Un valor NULL es un valor desconocido
Un null no implica un cero o un espacio en blanco; es un valor
especial que significa informacin no disponible
Is null debe ser utilizado para determinar valores null contenidos en
una columna; la sintaxis = null es vlida pero no recomendada.
Un valor null nunca es igual a otro valor null
Los valores null se consideran en el ordenamiento y en los grupos
Algunas columnas son definidas para permitir valores NULL
Si un elemento es null en una operacin el resultado ser null
Introduccin a SQL
Pg . - 62
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
Sintaxis
Resultado:
order by proyec
Resultado:
order by munici, proyec
proyec
96/C20007
97/06016
97/08006
97/C02001
97/C02002
97/C02003
97/C02004
97/C02005
97/C02006
97/C02007
97/C02008
97/C02009
97/C02010
97/C02011
97/C02012
97/C02013
.
.
proyec
97/C02001
97/C02002
97/C02003
97/C02004
97/C02005
97/C02006
97/C02007
97/C02008
97/C02009
97/C02010
97/C02011
97/C02012
97/C02013
97/C02014
97/C02015
97/C02016
.
.
munici
20
6
8
2
2
2
2
2
2
2
2
2
2
2
2
2
.
.
Introduccin a SQL
munici
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
.
.
Pg . - 63
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
Ejemplo (columna que no se declara en la lista_select)
select proyec, munici
from PROYECTO
order by progra
Resultado
order by costo_tot / 12
costo_tot / 12
532.4166667
589.8333333
665.5000000
692.5000000
881.1666667
884.9166667
929.4166667
956.5000000
964.8333333
988.6666667
1055.1666667
.
.
proyec
97/C17029
97/C19006
97/C03011
97/C08005
97/C02010
97/C03009
97/C14003
97/C03016
97/C02008
97/C13009
97/C06015
.
.
Resultado
order by progra (la columna no esta en lista_select)
proyec
97/C05003
97/C17039
97/C17040
97/C17041
97/C17042
97/C02010
97/C02006
97/C02013
.
.
munici
5
17
17
17
17
2
2
2
.
.
Introduccin a SQL
Pg . - 64
Sumario
Renombrar columnas - select ttulo_columna = nombre_columna
] select nombre_columna ttulo_columna
[, ...
Introduccin a SQL
Pg . - 65
Objetivos
Introduccin a SQL
Pg . - 66
Funciones Agregadas
Funcin
count(*)
count(nombre_columna)
max(nombre_columna)
min(nombre_columna)
sum(nombre_columna)
avg(nombre_columna)
Obtiene
Nmero de renglones en una tabla
Nmero de renglones en la columna
que no contengan valor null
Valor mximo en la columna
Valor mnimo en la columna
Valor total de la columna
Valor promedio de la columna
Sintaxis
Introduccin a SQL
Pg . - 67
count(*)
6
count (con_pej)
0
Introduccin a SQL
Pg . - 68
max(costo_tot)
976800.0000
min(costo_tot)
100.0000
costo_tot
100.0000
5000.0000
5000.0000
6389.0000
7078.0000
7986.0000
8310.0000
10574.0000
10619.0000
11153.0000
11478.0000
11578.0000
11864.0000
12662.0000
12830.0000
13372.0000
.
.
.
326410.0000
432235.0000
443717.0000
444207.0000
444333.0000
552029.0000
632251.0000
693956.0000
976800.0000
Introduccin a SQL
Pg . - 69
can_act
68670.0000
12118.0000
20197.0000
Introduccin a SQL
Pg . - 70
Funciones Agregadas
En la clusula SELECT se puede utilizar ms de una funcin agregada
Ejemplo
select min(costo_tot), max(costo_tot)
from PROYECTO
Resultado
min(costo_tot)
100.0000
Introduccin a SQL
max(costo_tot)
976800.0000
Pg . - 71
Introduccin a SQL
Pg . - 72
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
Sintaxis
Resultado
progra
SC
SE
SJ
SK
SG
SD
UB
SF
.
.
.
costo_promedio
66207.62500000
87279.39560440
81132.82758621
44475.42857143
136395.71428571
290927.43750000
113651.93103448
195730.50000000
.
.
.
Introduccin a SQL
Pg . - 73
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
Los grupos no se pueden formar por medio del ttulo de la columna
Normalmente el group by contiene las columnas y expresiones en la
lista_select
El violar esta regla puede dar un resultado inesperado, pero si la
lista_select contiene una funcin agregada el resultado es correcto
Resultado
sum(can_act)
27763.0000
39954.0000
14048.0000
261573.0000
243327.0000
53210.0000
16669.0000
130662.0000
65929.0000
72990.0000
184760.0000
100985.0000
27105.0000
77889.0000
111075.0000
83002.0000
.
.
.
169135.0000
15312.0000
183002.0000
proyec
97/C13005
97/C13006
97/C13007
97/C13008
97/C13004
97/C13001
97/C13002
97/C05002
97/C05003
97/C05004
97/C05001
97/C07002
97/C07001
97/C13003
97/C03006
97/C16002
count(proyec
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
.
.
.
3
3
3
.
.
.
97/C16007
97/C10005
97/C10006
Introduccin a SQL
Pg . - 74
Resultado
dep_eje
18018002
18018003
18018005
18018006
18018008
18018010
18018013
18018014
18018015
18018017
18018018
18018019
18018020
sum(costo_tot)
606305.0000
692703.0000
448609.0000
445752.0000
580049.0000
359305.0000
125663.0000
273952.0000
443685.0000
3370364.0000
29937.0000
277525.0000
288576.0000
Introduccin a SQL
Pg . - 75
Resultado
progra
SC
SE
SE
SJ
SK
SG
SG
SD
SE
UB
SC
SD
SF
UB
SL
SC
SE
TH
UB
sub_pro
01
03
02
02
02
01
02
02
01
02
03
01
02
03
02
02
04
02
01
avg(costo_tot)
34383.88888889
122067.06250000
88240.84482759
78109.40740741
36541.80000000
126520.18181818
172606.00000000
249340.75000000
53974.20000000
94352.75000000
203166.50000000
377503.42857143
195730.50000000
148763.26666667
60213.00000000
50762.44444444
41325.00000000
271657.00000000
51605.83333333
Introduccin a SQL
Pg . - 76
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
isnull - substituye un valor null por uno real
group by - organiza los renglones en grupos
having - restringe los grupos
Sintaxis del
elemento select
Introduccin a SQL
Pg . - 77
Joins - Objetivos
Al concluir esta seccin estar capacitado para:
Realizar un join basado en la igualdad
Utilizar un join incluyendo condiciones
Establecer un join como operacin de unin para varias tablas
Objetivos
Introduccin a SQL
Pg . - 78
Joins
MUNICI
munici
ent_fed
nom_ofi
nom_com
tipo_num
...
Areas Centrales
AE
...
Delegacin
AE
...
Coplade
AE
...
18
Municipio para
Areas Centrales
Municipio para
Delegacin
Municipio para
Coplade
ACAPONETA
ACAPONETA
B1
18
18
PROYECTO
munici
1
1
2
2
2
.
.
.
ent_fed
18
18
18
18
18
.
.
.
proyec
97/C05003
97/C05004
97/C05001
97/C07002
97/C07001
.
.
.
eje_fis
1997
1997
1997
1997
1997
.
.
.
Introduccin a SQL
progra
...
SC
SE
SE
SJ
SK
...
...
...
...
...
.
.
.
fondo
1
1
1
1
1
.
.
.
.
.
.
Pg . - 79
PROYECTO
munici
ent_fed
9999
9998
1
.
18
18
18
97/C05004
97/C05001
97/C07002
munici
5
5
7
9999
9998
1
.
97/C05004
97/C05001
97/C07002
eje_fis
1997
1997
1997
TABLA RESULTANTE
munici
proyec
ent_fed
18
18
18
.
proyec
munici
5
5
7
eje_fis
1997
1997
1997
Introduccin a SQL
Pg . - 80
Introduccin a SQL
Pg . - 81
Operacin Join
PROYECTO
ent_fed
proyec
munici
eje_fis
fondo
progra
subpro
con_pro
cat_pes
nombre
tipo_cob
fase_pro
costo_tot
mod_inv
sub_inv
mod_reg
mod_eje
lineam
dep_pro
dep_nor
dep_eje
ele_bm
lug_reg
N
1
OFI_PRO
ent_fed
proyec
num_ofi
ent_emi
munici
lug_reg
1
N
OFICIO
num_ofi
ent_emi
ent_rec
lis_mun
eje_fis
fondo
tipo_ofi
fec_emi
fec_reg
emisor
recept
ofi_rel
tipo_aso
lug_reg
Introduccin a SQL
Pg . - 82
where
Introduccin a SQL
Pg . - 83
Resultado
num_ofi
fondo
tipo_ofi
tipo_inv
cantid
COP-DPP-F1-5-0042
COP-DPP-F1-5-0042
COP-DPP-F1-5-0042
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
...
...
COP-DPP-F1-5-0033
COP-DPP-F1-5-0074
COP-DPP-F1-5-0086
COP-DPP-F1-5-0086
COP-DPP-F1-5-0086
COP-DPP-F1-5-0086
COP-DPP-F1-5-0086
COP-DPP-F1-5-0086
COP-DDP-F2-5-1000
COP-DDP-F2-5-1000
COP-DDP-F2-5-1000
1
1
1
1
1
1
1
1
1
...
...
1
1
1
1
1
1
1
1
1
1
1
7
7
7
7
7
7
7
7
7
...
...
7
7
7
7
7
7
7
7
7
7
7
1
2
5
1
2
5
1
2
5
...
...
1
5
1
2
5
1
2
5
1
1
2
200762.0000
35429.0000
59048.0000
56442.0000
9960.0000
16600.0000
115065.0000
20305.0000
33843.0000
...
...
286433.0000
101117.0000
10412.0000
1838.0000
3062.0000
124442.0000
21960.0000
36600.0000
150000.0000
200000.0000
100000.0000
OFICIO
EST_OFI
Introduccin a SQL
Pg . - 84
Resultado
clc
benefi
1800012
1800164
1800159
1800160
1800161
...
...
1800378
1800379
1800380
1800381
1800397
Introduccin a SQL
Pg . - 85
Resultado
proyec
ben_ind
ava_fin
ava_fis
96/C09046
60
20.00
20.00
Introduccin a SQL
Pg . - 86
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
select FONDO.nombre, PROYECTO.proyec
from PROYECTO, FONDO
Resultado
nombre
Fondo para el Desarrollo Regional y el Empleo
Fondo para el Desarrollo Regional y el Empleo
Fondo para el Desarrollo Regional y el Empleo
Fondo para el Desarrollo Regional y el Empleo
Fondo para el Desarrollo Regional y el Empleo
Fondo para el Desarrollo Regional y el Empleo
Fondo para el Desarrollo Regional y el Empleo
Fondo para el Desarrollo Regional y el Empleo
Fondo para el Desarrollo Regional y el Empleo
Fondo para el Desarrollo Regional y el Empleo
...
...
Fondo de Desarrollo Social Municipal
Fondo de Desarrollo Social Municipal
Fondo de Desarrollo Social Municipal
Fondo de Desarrollo Social Municipal
Fondo de Desarrollo Social Municipal
Fondo de Desarrollo Social Municipal
Fondo de Desarrollo Social Municipal
Fondo de Desarrollo Social Municipal
Fondo de Desarrollo Social Municipal
proyec
97/C05003
97/C05004
97/C05001
97/C07002
97/C07001
97/C14027
97/C02044
97/C14028
97/C02045
97/C14029
...
...
97/C05003
97/C05004
97/C05001
97/C07002
97/C14027
97/C02044
97/C14028
97/C02045
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 . - 87
Resultado
num_ofi
001/97
001/97
001/97
001/97
002/97
002/97
003/97
003/97
0036/97
0036/97
emisor
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
JALA
JALA
JALA
JALA
TEPIC
TEPIC
SAN BLAS
SAN BLAS
SANTIAGO
SANTIAGO
recept
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
tipo_inv
1
2
1
2
1
2
1
2
1
2
cantid
193253.0000
34103.0000
184375.0000
32537.0000
63750.0000
11250.0000
27971.0000
4936.0000
18329.0000
3235.0000
OA-CPDM-130-97
OA-CPDM-130-97
OA-CPDM-130-97
OA-CPDM-130-97
OA-CPDM-130-97
OA-CPDM-130-97
S/N/97
S/N/97
S/N004
S/N004
AYTO. DE EL NAYAR
AYTO. DE EL NAYAR
AYTO. DE EL NAYAR
AYTO. DE EL NAYAR
AYTO. DE EL NAYAR
AYTO. DE EL NAYAR
SEDESOL
SEDESOL
SEDESOL (JORN.AGR.)
SEDESOL (JORN.AGR.)
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
1
2
1
2
1
2
1
2
1
2
11420.0000
2015.0000
2317.0000
409.0000
156290.0000
27580.0000
2731000.0000
409650.0000
243544.0000
42978.0000
DE
DE
DE
DE
DE
DE
DE
DE
DE
DE
Introduccin a SQL
Pg . - 88
Resultado
num_ofi
emisor
recept
sum(EST_OFI.cantid)
001/97
002/97
003/97
0036/97
004/97
005-NIOS/97
005/97
006/97
AYTO. DE JALA
AYTO. DE TEPIC
AYTO. DE SAN BLAS
AYTO. DE SANTIAGO
SEDESOL(JORN.AGR.)
AYTO. DE HUAJICORI
SEDESOL
AYTO. DE SAN PEDRO
LGS.
AYTO. DE XALISCO
SEDESOL
...
...
GOB. DEL ESTADO
GOB. DEL ESTADO
GOB. DEL ESTADO
GOB. DEL ESTADO
GOB. DEL ESTADO
GOB. DEL ESTADO
GOB. DEL ESTADO
AYTO. DE EL NAYAR
SEDESOL
SEDESOL (JORN.AGR.)
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
GOB. DEL EDO.
SEDESOL
SEDESOL
444268.0000
75000.0000
32907.0000
21564.0000
2247432.0000
563580.0000
566609.0000
6823.0000
SEDESOL
SEDESOL
...
...
AYTO. DEL NAYAR
AYTO. DEL NAYAR
AYTO. DEL NAYAR
AYTO. DEL NAYAR
AYTO. DEL NAYAR
AYTO. DE RUIZ
AYTO. DE SAMAO
SEDESOL
SEDESOL
SEDESOL
412992.0000
2214413.0000
...
...
971757.0000
965967.0000
1028593.0000
30795.0000
82369.0000
12384.0000
24942.0000
200031.0000
3140650.0000
286522.0000
0070-DPD/97
020/97
...
...
COP-DPP-FI-5-0069
COP-DPP-FI-5-0081
COP-DPP-FI-5-0099
COP-DPP-FI-5-0102
COP-DPP-FI-5-0115
COP-DPP-FI-5-0128
COP-DPP-FI-5-0148
OA-CPDM-130-97
S/N/97
S/N004
Introduccin a SQL
Pg . - 89
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
select T.descri, O.num_ofi, O.emisor, O.recept
from TIPO_OFI T, OFICIO O
where T.tipo_ofi = O.tipo_ofi
order by T.tipo_ofi
Sintaxis
select lista_select
from tabla1 alias_para_tabla1, tabla2
alias_para_tabla2
where alias_para_tabla1.nombre_columna =
alias_para_tabla2.nombre_columna
Resultado
descri
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
num_ofi
020/97
S/N/97
004/97
S/N004
005/97
086-01/97
0070-DPD/97
COP-142/97
...
...
Aprobacin
Aprobacin
Aprobacin
Aprobacin
...
...
25-541711-F2-0032
25-541711-F2-0033
COP-DPP-FI-0160/97
COP-DPP-F1-5-0188
emisor
SEDESOL
SEDESOL
SEDESOL(JORN.AGR.)
SEDESOL (JORN.AGR.)
SEDESOL
SEDESOL (EMPLEO)
AYTO. DE XALISCO
AYTO. DE BAHIA DE
BANDERAS
...
...
SEDESOL
SEDESOL
GOB. DEL ESTADO
GOB. DEL ESTADO
Introduccin a SQL
recept
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
AYTO. STA. MA. ORO
SEDESOL
SEDESOL
...
...
AYTO. DE XALISCO
AYTO.DE JALA
AYTO. DE SAMAO
AYTO. DE AHUACATLAN
Pg . - 90
Resultado
num_ofi
COP-DPP-F1-5-0030
COP-DPP-F1-5-0026
COP-DPP-F1-5-0026
COP-DPP-F1-5-0026
COP-DPP-F1-5-0026
COP-DPP-F1-5-0036
COP-DPP-F1-5-0015
...
...
25-541711-F2-0030
25-541711-F2-0030
25-541711-F2-0031
25-541711-F2-0031
25-541711-F2-0031
emisor
GOB. DEL
GOB. DEL
GOB. DEL
GOB. DEL
GOB. DEL
GOB. DEL
GOB. DEL
...
...
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
ESTADO
ESTADO
ESTADO
ESTADO
ESTADO
ESTADO
ESTADO
recept
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
...
...
AYTO.
AYTO.
AYTO.
AYTO.
AYTO.
ACAPONETA
ACAPONETA
EL NAYAR
EL NAYAR
EL NAYAR
Introduccin a SQL
tipo_inv
2
1
2
5
2
2
2
...
...
2
2
2
1
2
cantid
5240.0000
7584.0000
1338.0000
2231.0000
7035.0000
8658.0000
3012.0000
...
...
1470.0000
3966.0000
2015.0000
2317.0000
409.0000
Pg . - 91
Resultado
descri
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
Propuesta
...
...
Aprobaci
n
Aprobaci
n
Aprobaci
n
Aprobaci
n
Aprobaci
n
num_ofi
001/97
001/97
001/97
001/97
002/97
002/97
003/97
003/97
0036/97
0036/97
004/97
...
...
COP-DPP-FI-5-0128
emisor
AYTO. DE JALA
AYTO. DE JALA
AYTO. DE JALA
AYTO. DE JALA
AYTO. DE TEPIC
AYTO. DE TEPIC
AYTO. DE SAN BLAS
AYTO. DE SAN BLAS
AYTO. DE SANTIAGO
AYTO. DE SANTIAGO
SEDESOL(JORN.AGR.)
...
...
GOB. DEL ESTADO
recept
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
SEDESOL
...
...
AYTO. DE RUIZ
tipo_inv
1
2
1
2
1
2
1
2
1
2
1
...
...
1
cantid
193253.0000
34103.0000
184375.0000
32537.0000
63750.0000
11250.0000
27971.0000
4936.0000
18329.0000
3235.0000
199359.0000
...
...
10526.0000
COP-DPP-FI-5-0128
AYTO. DE RUIZ
1858.0000
COP-DPP-FI-5-0148
AYTO. DE SAMAO
13769.0000
COP-DPP-FI-5-0148
AYTO. DE SAMAO
2431.0000
COP-DPP-FI-5-0148
AYTO. DE SAMAO
8742.0000
Introduccin a SQL
Pg . - 92
Resultado
clc
1800012
1800012
1800012
1800012
1800012
1800164
1800159
1800160
1800161
1800162
1800163
1800183
1800108
1800003
1800003
1800003
1800003
1800105
1800106
1800107
1800109
1800110
1800153
...
...
1800378
1800379
1800380
1800381
benefi
C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE
C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE
C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE
C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE
C. JOSE FELIX TORRES HARO,\X0D\X0APRESIDENTE
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR F.
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIAR FREGOSO
C. SALVADOR AGUIR FREGOSO
C. SALVADOR AGUIAR FREGOSO
PROFR. AGUSTIN AGUILAR IBARRA
...
...
C. FELIPE HARO FREGOSO
C. FELIPE HARO FREGOSO
C. FELIPE HARO FREGOSO
C. FELIPE HARO FREGOSO
Introduccin a SQL
MUNICIPAL
MUNICIPAL
MUNICIPAL
MUNICIPAL
MUNICIPAL
proyec
97/C17028
97/C17029
97/C17030
97/C17031
97/C17032
97/C03019
97/C03013
97/C03017
97/C03016
97/C03015
97/C03018
97/C03020
97/C03005
97/C03001
97/C03002
97/C03006
97/C03007
97/C03004
97/C03009
97/C03011
97/C03003
97/C03008
97/C02021
97/C19029
97/C19028
97/C19027
97/C19030
Pg . - 93
Sumario
Sintaxis:
select [ tabla ].nombre_columna, [ ...]
from { tabla }, { tabla }, [ ...]
[ where condiciones ]
Producto cartesiano - todas las posibles combinaciones de los
renglones de cada tabla.
Alias - mediante una abreviatura permite referenciar tablas dentro de un
elemento simple del SQL
Join con mltiples tablas - cuando n tablas son utilizadas con el join, n1 condiciones son necesarias para evitar el producto cartesiano.
select lista_select
from nombre_tabla nombre_alias1, nombre_tabla
nombre_alias2
where nombre_alias1.nombre_columna =
nombre_alias2.nombre_columna
Introduccin a SQL
Pg . - 94
Subconsultas - Objetivos
Al concluir esta seccin estar capacitado para:
Usar una subconsulta como un mtodo alternativo de la clusula join
Usar subconsultas para funciones adicionales de la clusula join
Objetivos
Introduccin a SQL
Pg . - 95
proyec
97/S00221
97/S00095
97/S00001
munici
14
14
4
eje_fis
1997
1997
1997
fondo
2
2
2
progra
TH
SS
SD
subpro
02
06
01
con_pro
00
00
00
cat_pes
2
0
0
18
97/S00016
998
1997
SS
08
00
18
18
18
18
18
16
14
7
...
...
8
1997
1997
1997
1997
...
...
1997
2
2
2
2
2
TB
TB
TB
TB
...
...
TF
01
01
01
01
...
...
04
00
00
00
00
...
...
00
0
0
0
0
18
97/S00053
97/S00054
97/S00055
97/S00056
...
...
97/S00287
18
97/S00282
1997
UB
03
0A
18
97/S00281
1997
UB
03
0A
18
97/S00280
1997
UB
03
0A
18
97/S00278
1997
UB
03
0A
18
97/S00291
1997
TE
01
00
18
97/S00293
1997
TE
01
00
18
97/S00289
1997
TF
01
00
18
97/S00290
1997
TF
01
00
...
...
...
...
Introduccin a SQL
...
...
2
nombre
DESPIEDRE MANUAL
EQUIPAMIENTO DE COCINA
REHABILITACION DEL
SISTEMA DE
ALCANTARILLADO SANIT.
GASTOS DEL GRUPO
OPERATIVO (JORNALEROS
AGRICOLAS)
TORTILLERIA
TORTILLERIA
TORTILLERIA
TORTILLERIA
...
...
PATIOS ASOLEADEROS PARA
EL CAFE
MACHETEO DE CAMINO DE
ACCESO
MACHETES DE CAMINO DE
ACCESO
CONSERVACION DEL
CAMINO DE ACCESO AL
POBLADO
RAHABILITACION DEL
CAMINO DE TERRACERIA
REHABILITACION DE LIENZOS
EN PAECELAS Y POTREROS
REHABILITACION DE LIENZOS
EN PARCELAS Y POTREROS
REHABILITACION DE
HUERTOS DE DURAZNO
REHABILITACION DE
HUERTAS DE DURAZNO
Pg . - 96
18
97/S00288
1997
TE
01
00
REHABILITACION DE LIENZOS
EN PARCELAS Y POTREROS
Resultado
ent_fed
18
18
proyec
97/S00221
97/S00095
munici
14
14
eje_fis
1997
1997
fondo
2
2
progra
TH
SS
subpro
02
06
con_pro cat_pes
00
2
00
0
18
97/S00001
1997
SD
01
00
18
97/S00016
998
1997
SS
08
00
18
18
18
18
18
97/S00053
97/S00054
97/S00055
97/S00056
97/S00057
18
16
14
7
7
1997
1997
1997
1997
1997
2
2
2
2
2
TB
TB
TB
TB
TB
01
01
01
01
01
00
00
00
00
00
0
0
0
0
0
00
2
2
TB
...
...
TB
TF
01
7
7
1997
...
...
1997
1997
18
18
97/S00058
...
...
97/S00059
97/S00289
01
01
00
00
0
2
18
97/S00290
1997
TF
01
00
18
97/S00288
1997
TE
01
00
18
...
...
...
...
...
...
...
...
Introduccin a SQL
...
...
...
...
nombre
DESPIEDRE MANUAL
EQUIPAMIENTO DE
COCINA
REHABILITACION DEL
SISTEMA DE
ALCANTARILLADO S.
GASTOS DEL GRUPO
OPERATIVO (JORNALEROS
AGRICO.
TORTILLERIA
TORTILLERIA
TORTILLERIA
TORTILLERIA
PANADERIA
(TERMINACION)
TIENDA DE ABASTO
...
...
TORTILERIA
REHABILITACION DE
HUERTOS DE DURAZNO
REHABILITACION DE
HUERTAS DE DURAZNO
REHABILITACION DE
LIENZOS EN PARCELAS Y
POTREROS
Pg . - 97
Introduccin a SQL
Pg . - 98
Sintaxis completa
de subconsulta
select lista_select
[ from { tabla } [ ,...] ]
[ where condiciones ] {operador_de_comparacin}
( select lista_select_subconsulta
[ from { tabla } [ ,...]
[ where condiciones ] )
Notas de la sintaxis
Slo las columnas
de la lista_select en la primera
declaracin select son desplegadas
Introduccin a SQL
Pg . - 99
Restricciones de Subconsultas
Si la clusula where de la consulta exterior incluye un nombre de
into
El distinct no puede ser usado con subconsultas que incluyan una
clusula group by
Introduccin a SQL
Pg . - 100
Resultado
ent_fed
18
proyec
97/S00139
munici
2
eje_fis
1997
fondo
2
progra
SS
subpro
06
con_pro cat_pes
00
0
18
97/S00020
1997
S5
07
00
18
97/S00021
1997
S5
07
00
18
97/S00022
1997
S5
07
00
Introduccin a SQL
nombre
ORGANIZACION PARA EL
CONSUMO (GRUPOS
OPER.)
PRODUCCION DE 50,000
PLANTAS
MANTENIMIENTO DE
50,000 PLANTAS
PLANTACION Y
NOVILIZACION SOCIAL,
CARGA Y DESCARGA DE
15,000 OPERATIVOS
Pg . - 101
Resultado
num_ofi
COP-DPP-F1-5-0042
COP-DPP-F1-5-0042
COP-DPP-F1-5-0042
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
COP-DPP-F1-5-0004
COP-DPP-F1-5-0033
COP-DPP-F1-5-0033
COP-DPP-F1-5-0033
...
...
25-541711-F2-0033
25-541711-F2-0033
25-541711-F2-0033
25-541711-F2-0033
COP-DPP-FI-0160/97
COP-DPP-FI-0160/97
COP-DPP-F1-5-0188
COP-DPP-F1-5-0188
tipo_inv
1
2
5
1
2
5
1
2
5
1
2
5
...
...
1
2
1
2
2
1
1
2
Introduccin a SQL
cantidad
200762.0000
35429.0000
59048.0000
56442.0000
9960.0000
16600.0000
115065.0000
20305.0000
33843.0000
286433.0000
50547.0000
84247.0000
...
...
193253.0000
34103.0000
184375.0000
32537.0000
17159778.0000
97238744.0000
190140.0000
33554.0000
Pg . - 102
Resultado
proyec
97/C8012
97/08006
97/S00056
97/S00062
97/S00107
97/V17089
97/S00178
97C/08024
97/S00003
nombre
CONSTRUCCION CERCO PERIMETRAL EN BENEFICIO HUMEDO DE CAFE
EMPEDRADO DE CALLES COL. NAVARREO
TORTILLERIA
FRUTERIA Y TIENDA DE ABASTO
MEJORAMIENTO DE TECHOS, PISOS Y MUROS
BECAS NIOS ESC. PRIMARIA LEONA VICARIO T. V.
HUERTO COMUNITARIO
ESC. PRIM. " 20 DE NOVIEMBRE "
CONSTRUCCION DE PLANTA DE TRATAMIENTO
Introduccin a SQL
costo_tot
68590.0000
73830.0000
45865.0000
64310.0000
60000.0000
21712.0000
1245.0000
22656.0000
1817200.0000
Pg . - 103
Sintaxis
select lista_select
[ from { tabla } [,...] ]
[ where expresin { = | != | > | >= | < | <= } [ any | all ] ]
(subconsulta)
Resultado
proyec
97/C07001
97/C13005
97/C13007
...
...
97/C02045
97/C14029
nombre
SISTEMA DE PURIFICACION DE AGUA ESC. PRIM. MIGUEL HIDALGO Y COSTILLA
AMPLIACION RED ELECTRICA BARRIO DE EN MEDIO
AMPLIACION RED ELECTRICA BARRIO DE ABAJO
...
...
DESAYUNOS ESCOLARES ESC. PRIMARIA IGNACIO ZARAGOZA T.V.
ESCUELA PRIMARIA JUAN ESCUTIA
Introduccin a SQL
costo _tot
27105.0000
27763.0000
14048.0000
...
...
18548.0000
22656.0000
Pg . - 104
Ejemplo de error
select proyec, nombre, costo_tot from proyecto
where fase_pro =
(select fase_pre from fase_pre
where descri like 'Aprobaci_n') and costo_tot <
(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.
Resultado
ent_fed
18
proyec
97/08006
munici
8
eje_fis
1997
fondo
1
progra
SE
subpro
02
con_pro cat_pes
00
0
18
97/C8012
1997
TF
04
00
18
97/S0005
6
97/S0006
2
97/S0010
7
97/S0017
1997
TB
01
00
1997
TB
01
00
15
1997
SH
01
0B
12
1997
SS
08
00
18
18
18
Introduccin a SQL
nombre
EMPEDRADO DE CALLES
COL. NAVARREO
CONSTRUCCION CERCO
PERIMETRAL EN
BENEFICIO ...
TORTILLERIA
FRUTERIA Y TIENDA DE
ABASTO
MEJORAMIENTO DE
TECHOS, PISOS Y MUROS
HUERTO COMUNITARIO
Pg . - 105
18
18
8
97C/0802
4
97/V1708
9
1997
SB
01
00
17
1997
SB
01
00
Sumario
Una Subconsulta - es una clusula select, usada como una
consulta exterior
Sintaxis
select lista_select
[ from { tabla } [,...] ]
[ where condicin ] {operador de comparacin}
( select lista_select_subconsulta
[ from { tabla } [ ,... ]
[ where condiciones ]
[ group by expresin [,...] ]
[ having condicin ]
[ order by { { tabla }. ] columna | nmero_lista_select
| expresin } [ asc | desc] [,...] ]
[ compute rengln ( columna ) [ ,... ] ]
[ by columna [ ,... ] ] )
Introduccin a SQL
Pg . - 106