Está en la página 1de 10

Lenguaje de Consulta Estructurado

Structured Query Language


SQL
Clase II

Electiva: MySQL – PostgreSQL


Octubre – Diciembre 2010
Tablas de Ejemplo Estado – Mcpio - Prquia

tblestado
tblparroquia

tblmunicipio

Electiva: MySQL – PostgreSQL


Octubre – Diciembre 2010
Listar todos los municipios pertenecientes a un estado
específico

SELECT clvcodigo, strnombre


FROM tblmunicipio
WHERE clvestado=3

Listar todos los parroquias pertenecientes a un


municipio específico

SELECT clvcodigo, strnombre


FROM tblmunicipio
WHERE clvmunicipio=26
Electiva: MySQL – PostgreSQL
Octubre – Diciembre 2010
Consideraciones al “cruzar” varias tablas

Listar el código, nombre de municipio y


nombre de estado

SELECT clvcodigo, strnombre, strnombre


FROM tblestado, tblmunicipio

Consideraciones
Si los nombres de los campos coinciden en ambas tablas,
será necesario asignarle antes del campo el nombre de la
tabla, para no crear Ambigüedad

SELECT tblmunicipio.clvcodigo, tblmunicipio.strnombre,


tblestado.strnombre
FROM tblestado, tblmunicipio Electiva: MySQL – PostgreSQL
Octubre – Diciembre 2010
Consideraciones al “cruzar” varias tablas

Listar el código, nombre de municipio y


nombre de estado

Consideraciones
Es posible utilizar alias para las tablas

SELECT m.clvcodigo,
m. m.strnombre,
m.
e.strnombre
e.
FROM tblestado e, tblmunicipio m

Consideraciones
El resultado de la ejecución del query mostrará como
resultado un producto cartesiano, por lo que es importante
establecer la relación entre los campos claves
Electiva: MySQL – PostgreSQL
Octubre – Diciembre 2010
INNER JOIN

Listar el código, nombre de municipio y


nombre de estado

SELECT m.clvcodigo, m.strnombre, e.strnombre


FROM tblestado e INNER JOIN tblmunicipio m
ON (e.clvcodigo=m.clvestado)

SELECT m.clvcodigo, m.strnombre, e.strnombre


FROM tblestado e, tblmunicipio m
WHERE (e.clvcodigo=m.clvestado)

Electiva: MySQL – PostgreSQL


Octubre – Diciembre 2010
INNER JOIN

Listar la cantidad de municipios por cada estado,


ordenada ascendente por el nombre

SELECT e.strnombre, count(m.*


count( )
FROM tblestado e INNER JOIN tblmunicipio m
ON (e.clvcodigo=m.clvestado)
GROUP BY e.strnombre
ORDER BY e.strnombre

Electiva: MySQL – PostgreSQL


Octubre – Diciembre 2010
INNER JOIN

Listar la cantidad de municipios por cada estado,


ordenada ascendente por el nombre, y que se muestre
sólo aquellos cuya cantidad sea mayor a 10

SELECT e.strnombre, count(m.*


count( )
FROM tblestado e INNER JOIN tblmunicipio m
ON (e.clvcodigo=m.clvestado)
GROUP BY e.strnombre
HAVING count(m.*)>10
ORDER BY e.strnombre

Electiva: MySQL – PostgreSQL


Octubre – Diciembre 2010
LEFT JOIN

tblpersona tbldpto

Listar el nombre de todas las personas y en caso de


que tengan departamento indicar cual es

SELECT p.nombre, d.descripcion as departamento


FROM tblpersona p LEFT JOIN tbldpto d
ON (p.cod_dpto=d.codigo)

Electiva: MySQL – PostgreSQL


Octubre – Diciembre 2010
RIGHT JOIN

tblpersona tbldpto

Listar el nombre de todos los departamentos y el


personal que trabaja en la misma, si el dpto

SELECT p.nombre, d.descripcion as departamento


FROM tblpersona p RIGHT JOIN tbldpto d
ON (p.cod_dpto=d.codigo)

Electiva: MySQL – PostgreSQL


Octubre – Diciembre 2010

También podría gustarte