Vous êtes sur la page 1sur 24

SQL

Select
Para qu utilizamos los comandos SQL? El uso comn es
la seleccin de datos desde tablas ubicadas en una base
de datos. Inmediatamente, vemos dos palabras claves:
necesitamos SELECT la informacin FROM una tabla
SELECT "nombre_columna" FROM SELECT "nombre_columna" FROM
"nombre_tabla"nformacin FROM una tabla.
SELECT ciudad FROM tiendas
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
Chillan 1300 2013-05-04
tiendas
Concepcin
Los Angeles
Chillan
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
Chillan
Los Angeles
Los Angeles
Concepcion
Chillan
Concepcion
DISTINCT
La palabra clave SELECT nos permite tomar toda la
informacin de una columna (o columnas) en una tabla.
Esto, obviamente, significa necesariamente que habr
redundancias. Qu sucedera si slo deseamos
seleccionar cada elemento DISTINCT? Esto es fcil de
realizar en SQL. Todo lo que necesitamos hacer es realizar en SQL. Todo lo que necesitamos hacer es
agregar DISTINCT luego de SELECT. La sintaxis es la
siguiente:
SELECT DISTINCT "nombre_columna"
FROM "nombre_tabla"
SELECT DISTINCT ciudad FROM tiendas
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
Chillan 1300 2013-05-04
tiendas
Concepcin
Los Angeles
Chillan
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
Chillan
WHERE
Luego, podramos desear seleccionar condicionalmente
los datos de una tabla. Por ejemplo, podramos desear
slo recuperar los negocios con ventas mayores a $1.000
pesos. Para ello, utilizamos la palabra clave WHERE.
SELECT "nombre_columna" SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "condicin"
SELECT ciudad FROM tiendas WHERE ventas >1500
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
Chillan 1300 2013-05-04
tiendas
Concepcin
Los Angeles
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
AND OR
la palabra clave WHERE tambin puede utilizarse para
seleccionar datos condicionalmente desde una tabla. Esta
condicin puede ser una condicin simple, o puede ser
una condicin compuesta. Las condiciones compuestas
estn formadas por mltiples condiciones simples
conectadas por AND u OR. No hay lmites en el nmero
de condiciones simples que pueden presentarse en una
conectadas por AND u OR. No hay lmites en el nmero
de condiciones simples que pueden presentarse en una
sola instruccin SQL.
SELECT "nombre_columna
FROM "nombre_tabla"
WHERE "condicin simple"
{[AND|OR] "condicin simple"}
SELECT ciudad FROM tiendas WHERE ventas >
1750 OR (ventas < 1150 AND ventas > 1000)
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
tiendas
Chillan
Los Angeles
Los Angeles 1560 2013-05-03
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
IN
En SQL, hay dos usos de la palabra clave IN, y esta
seccin introduce aqul relacionado con la
clusula WHERE. Cuando se lo utiliza en este contexto,
sabemos exactamente el valor de los valores regresados
que deseamos ver para al menos una de las columnas.
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" IN (''valor1', ''valor2', ...)
SELECT ciudad FROM tiendas WHERE ciudad IN
(Chillan, Los Angeles)
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
tiendas
Chillan
Los Angeles
Los Angeles 1560 2013-05-03
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
BETWEEN
Mientras que la palabra clave IN ayuda a las personas a
limitar el criterio de seleccin para uno o ms valores
discretos, la palabra clave BETWEEN permite la
seleccin de un rango.
SELECT "nombre_columna" SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" BETWEEN 'valor1' AND
'valor2'
SELECT ventas FROM tiendas WHERE fecha
BETWEEN 2013-05-04 and 2013-05-05
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
Ventas
1300
1000
1800
1240
Los Angeles 1560 2013-05-03
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
1800
1240
1100
1000
LIKE
LIKE es otra palabra clave que se utiliza en la
clusula WHERE. Bsicamente, LIKE le permite hacer
una bsqueda basada en un patrn en vez de especificar
exactamente lo que se desea (como en IN) o determinar
un rango (como en BETWEEN).
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" LIKE {patrn}
{patrn} generalmente consiste en comodines. Aqu hay
algunos ejemplos:
'A_Z': Toda lnea que comience con 'A', otro carcter y termine con
'Z'. Por ejemplo, 'ABZ' y 'A2Z' deberan satisfacer la condicin,
mientras 'AKKZ' no debera (debido a que hay dos caracteres entre
A y Z en vez de uno).
'ABC%': Todas las lneas que comienzan con 'ABC'. Por ejemplo, 'ABC%': Todas las lneas que comienzan con 'ABC'. Por ejemplo,
'ABCD' y 'ABCABC' ambas deberan satisfacer la condicin.
'%XYZ': Todas las lneas que terminan con 'XYZ'. Por ejemplo,
'WXYZ' y 'ZZXYZ' ambas deberan satisfacer la condicin.
'%AN%': : Todas las lneas que contienen el patrn 'AN' en cualquier
lado. Por ejemplo, 'LOS ANGELES' y 'SAN FRANCISCO' ambos
deberan satisfacer la condicin.
SELECT * FROM tiendas WHERE ciudad LIKE
'%an%'
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
ciudad | ventas | fecha
Los Angeles | 1560 | 2013-05-03
Chillan | 1300 | 2013-05-04
Los Angeles | 1000 | 2013-05-05
Los Angeles 1560 2013-05-03
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
Los Angeles | 1000 | 2013-05-05
Los Angeles | 1800 | 2013-05-04
Chillan | 1100 | 2013-05-04
FUNCIONES
Se pueden realizar clculos matemticos con los
nmeros:
- AVG
- COUNT
- MAX
- MIN - MIN
- SUM
La sintaxis para el uso de funciones es,
SELECT "tipo de funcin"("nombre_columna")
FROM "nombre_tabla"
SELECT AVG(ventas) FROM tiendas
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
AVG(ventas)
1337,5
Los Angeles 1560 2013-05-03
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
COUNT
Otra funcin aritmtica es COUNT. Esto nos
permite COUNT el nmero de filas en una tabla
determinada.
SELECT COUNT("nombre_columna")
FROM "nombre_columna" FROM "nombre_columna"
SELECT COUNT(ciudad) FROM tiendas
SELECT COUNT(DISTINCT ciudad) FROM
tiendas
ciudad ventas fecha
Concepcin 1700 2013-05-02
COUNT(ciudad)
8
COUNT(DISTINCT ciudad)
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
COUNT(DISTINCT ciudad)
3
GROUP BY
Recuerdan que utilizamos la palabra clave SUM para calcular
las ventas totales para todas los ciudades? Y si quisiramos
calcular el total de ventas para cada ciudad? Entonces,
necesitamos hacer dos cosas: Primero, necesitamos
asegurarnos de que hayamos seleccionado el nombre de la
ciudad as como tambin las ventas totales. Segundo, debemos ciudad as como tambin las ventas totales. Segundo, debemos
asegurarnos de que todas las sumas de las ventas
estn GROUP BY ciudad.
SELECT "nombre1_columna", SUM("nombre2_columna")
FROM "nombre_tabla"
GROUP BY "nombre1-columna"
SELECT ciudad, SUM(ventas) FROM tiendas
GROUP BY ciudad
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
+-------------+-------------+
| ciudad | SUM(ventas) |
+-------------+-------------+
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
+-------------+-------------+
| Chillan | 2400 |
| Concepcion| 3940 |
| Los Angeles| 4360 |
+-------------+-------------+
HAVING
Otra cosa que la gente puede querer hacer es limitar el
resultado segn la suma correspondiente (o cualquier otra
funcin de agregado). Por ejemplo, podramos desear ver slo
los negocios con ventas mayores a 1500 pesos. En vez de
utilizar la clusula WHERE en la instruccin SQL, a pesar de
que necesitemos utilizar la clusula HAVING, que se reserva
para funciones de agregados. La clusula HAVING se coloca
generalmente cerca del fin de la instruccin SQL, y la generalmente cerca del fin de la instruccin SQL, y la
instruccin SQL con la clusula HAVING. puede o no incluir
la clusula GROUP BY
SELECT "nombre1_columna", SUM("nombre2_columna")
FROM "nombre_tabla"
GROUP BY "nombre1_columna"
HAVING (condicin de funcin aritmtica)
SELECT ciudad, SUM(ventas) FROM tiendas
GROUP BY ciudad HAVING SUM(ventas) > 3000
ciudad ventas fecha
Concepcin 1700 2013-05-02
Los Angeles 1560 2013-05-03
+-------------+-------------+
| ciudad | SUM(ventas) |
+-------------+-------------+
Chillan 1300 2013-05-04
Los Angeles 1000 2013-05-05
Los Angeles 1800 2013-05-04
Concepcion 1240 2013-05-05
Chillan 1100 2013-05-04
Concepcion 1000 2013-05-05
+-------------+-------------+
| Concepcion| 3940 |
| Los Angeles| 4360 |
+-------------+-------------+

Vous aimerez peut-être aussi