Sei sulla pagina 1di 6

2013/11/15 07:32

1/6

Consultas SQL

Consultas SQL
http://www.maslinux.tk/doku.php?id=cursos:cursobbdd:mysql:tema6-leguaje_sql
Unidad 4 - Realizacin de consultas.
https://sites.google.com/site/josepando/

Clusula SELECT
SELECT [ALL | DISTINCT ]
<nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>|<nombre_vista>
[{,<nombre_tabla>|<nombre_vista>}]
[WHERE <condicion> [{ AND|OR <condicion>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condicion>[{ AND|OR <condicion>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]
[{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]

Significado
SELECT
ALL

Palabra clave que indica que la sentencia de SQL que queremos ejecutar es de seleccin.
Indica que queremos seleccionar todos los valores.Es el valor por defecto y no suele especificarse casi nunca.

DISTINCT Indica que queremos seleccionar slo los valores distintos.


Indica la tabla (o tablas) desde la que queremos recuperar los datos. En el caso de que exista ms de una tabla
se denomina a la consulta consulta combinada o join. En las consultas combinadas es necesario aplicar una
condicin de combinacin a travs de una clusula WHERE.

FROM
WHERE

Especifica una condicin que debe cumplirse para que los datos sean devueltos por la consulta. Admite los
operadores lgicos AND y OR.

GROUP BY Especifica la agrupacin que se da a los datos. Se usa siempre en combinacin con funciones agregadas.
Especifica una condicin que debe cumplirse para los datosEspecifica una condicin que debe cumplirse para
que los datos sean devueltos por la consulta. Su funcionamiento es similar al de WHERE pero aplicado al
HAVING
conjunto de resultados devueltos por la consulta. Debe aplicarse siempre junto a GROUP BY y la condicion debe
estar referida a los campos contenidos en ella.
ORDER BY

Presenta el resultado ordenado por las columnas indicadas. El orden puede expresarse con ASC (orden
ascendente) y DESC (orden descendente). El valor predeterminado es ASC.

Operadores Lgicos
OPERADORES LGICOS
OPERADOR

OPERACIN

EJEMPLO

AND && Operador lgico Y


OR ||

SELECT 0 AND 1, @ab AND 10;

Operador lgico O

SELECT @min OR @max;

XOR

Operador O Exclusivo SELECT 0 XOR 1;

NOT

Operador O Exclusivo SELECT NOT @pagado;

Operadores de comparacin
OPERADOR
=
!=, < >, ^=
<

SIGNIFICADO
Igualdad.
Desigualdad.
<

Desarrollo de Aplicaciones Web - http://daw.xtrweb.com/dokuwiki/

2013/11/15 07:32

2/6

>

Mayor que.

Menor o igual que.

>=

Mayor o igual que.

IN

Igual que cualquiera de los miembros entre parntesis.

NOT IN
BETWEEN

Consultas SQL

Distinto que cualquiera de los miembros entre parntesis.


Entre. Contenido dentro del rango.

NOT BETWEEN

Fuera del rango.

LIKE '_abc%'

Se utiliza sobre todo con textos y permite obtener columnas cuyo valor en un campo cumpla
una condicin textual. Utiliza una cadena que puede contener los smbolos % que
sustituye a un conjunto de caracteres o _ que sustituye a un carcter.

IS [NOT] NULL
GREATEST(value1,value2,)
COALESCE(value,)

expr IN (value,)

expr NOT IN (value,)


ISNULL(expr)

Devuelve verdadero si el valor del campo de la fila que examina es nulo.


Con dos o ms argumentos, retorna el argumento mayor (con valor mayor). Los argumentos
se comparan usando las mismas reglas que para LEAST().
Retorna el primer valore no NULL de la lista.
Retorna 1 si expr es uno de los valores en la lista IN , de lo contrario retorna 0. Si todos los
valores son constantes, se evalan segn el tipo y ordenacin de expr . La bsqueda para
el elemento se hace usando bsqueda binaria. Esto significa que IN es muy rpido si la lista
IN consiste enteramente en constantes. Si expr es una expresin de cadenas de caracteres
sensible a maysculas, la comparacin de cadenas se realiza sensible a maysculas.
Esto es lo mismo que NOT (expr IN (value,)).
Si expr es NULL, ISNULL() retorna 1, sino retorna 0.

INTERVAL(N,N1,N2,N3,)

Retorna 0 if N < N1, 1 si N < N2 y as o -1 si N es NULL. Todos los argumentos se tratan


como enteros. Esto requiere que N1 < N2 < N3 < < Nn para que la funcin funcione
correctamente. Esto es porque se usa una bsqueda binaria (muy rpida).

LEAST(value1,value2,)

Con dos o ms argumentos, retorna el argumento menor (con un valor menor).


- Si el valor retornado se usan en un contexto INTEGER o todos los argumentos son enteros,
se comparan como enteros.
- Si el valor retornado se usa en un contexto REAL o todos los argumentos son reales, se
comparan como reales.
- Si algn argumento es una cadena de caracteres sensible a maysculas, los argumentos se
comparan como cadenas sensibles a maysculas.
- En cualquier otro caso, los argumentos se comparan como cadenas no sensibles a
maysculas.

Precedencia
1.
2.
3.
4.
5.
6.
7.
8.

Se evala la multiplicacin (*) y la divisin (/) al mismo nivel.


A continuacin sumas (+) y restas (-).
Concatenacin (| |).
Todas las comparaciones (<, >, ).
Despus evaluaremos los operadores IS NULL, IN NOT NULL, LIKE, BETWEEN.
NOT.
AND.
OR.

Funciones
Las funciones se pueden incluir en las clusulas SELECT, WHERE y ORDER BY.

http://daw.xtrweb.com/dokuwiki/

Printed on 2013/11/15 07:32

2013/11/15 07:32

3/6

Consultas SQL

Funciones numricas
Funciones numricas
ABS

Calcula el valor absoluto de un nmero n.

EXP

Calcula n , es decir, el exponente en base e del nmero n

CEIL

Calcula el valor entero inmediatamente superior o igual al argumento n.

FLOOR

Calcula el valor entero inmediatamente inferior o igual al parmetro n

MOD(m,n)

Calcula el resto resultante de dividir m entre n

POWER(valor, exponente Eleva el valor al exponente indicado


ROUND(n, decimales)

Redondea el nmero n al siguiente nmero con el nmero de decimales que se indican

SQRT

Calcula la raz cuadrada de n

TRUNC(m,n)

Trunca un nmero a la cantidad de decimales especificada por el segundo argumento. Si se


omite el segundo argumento, se truncan todos los decimales. Si n es negativo, el nmero es
truncado desde la parte entera

SIGN(no)

Si el argumento nes un valor positivo, retorna 1, si es negativo, devuelve -1 y 0 si es 0.

Funciones de cadena
Funciones de cadena
CHR(n)

Devuelve el carcter cuyo valor codificado es n.

ASCII('n')

Devuelve el valor ASCII de n.

CONCAT(cad1, cad2)

Devuelve las dos cadenas unidas. Es equivalente al operador ||

LOWER(cad)

Devuelve la cadena cad con todos sus caracteres en minsculas.

UPPER(cad)

Devuelve la cadena cad con todos sus caracteres en maysculas.

INITCAP(cad)

Devuelve la cadena cad con su primer carcter en mayscula.

LPAD(cad1, n, cad2)

Devuelve cad1 con longitud n, ajustada a la derecha, rellenando por la izquierda con
cad2.

RPAD(cad1, n, cad2)

Devuelve cad1 con longitud n, ajustada a la izquierda, rellenando por la derecha con
cad2.

REPLACE(cad, ant, nue)

Devuelve cad en la que cada ocurrencia de la cadena ant ha sido sustituida por la
cadena nue.

SUBSTR(cad, m, n)

Devuelve la cadena cad compuesta por n caracteres a partir de la posicin m.

LENGTH(cad)

Devuelve la longitud de cad.

TRIM(cad)

Elimina los espacios en blanco a la izquierda y la derecha de cad y los espacios dobles
del interior.

LTRIM(cad)

Elimina los espacios a la izquierda que posea cad.

RTRIM(cad)

Elimina los espacios a la derecha que posea cad

INSTR(cad, cadBuscada [,
posInicial [, nAparicin]])

Obtiene la posicin en la que se encuentra la cadena buscada en la cadena inicial cad.


Se puede comenzar a buscar desde una posicin inicial concreta e incluso indicar el
nmero de aparicin de la cadena buscada. Si no encuentra nada devuelve cero.

Funciones de fechas

Le podemos sumar nmeros y esto se entiende como sumarles das, si ese nmero tiene
decimales se suman das, horas, minutos y segundos.
La diferencia entre dos fechas tambin nos dar un nmero de das.
Funciones de fechas

DATE

almacena fechas concretas incluyendo a veces la hora.

TIMESTAMP

almacena un instante de tiempo ms concreto que puede incluir hasta


fracciones de segundo.

SYSDATE

Devuelve la fecha y hora actuales.

SYSTIMESTAMP

Devuelve la fecha y hora actuales en formato TIMESTAMP.

ADD_MONTHS(fecha, n)

Aade a la fecha el nmero de meses indicado con n.

MONTHS_BETWEEN(fecha1, fecha2) Devuelve el nmero de meses que hay entre fecha1 y fecha2.
Desarrollo de Aplicaciones Web - http://daw.xtrweb.com/dokuwiki/

2013/11/15 07:32

4/6

Consultas SQL

LAST_DAY(fecha)

Devuelve el ltimo da del mes al que pertenece la fecha. El valor devuelto es tipo
DATE.

NEXT_DAY(fecha, d)

Indica el da que corresponde si aadimos a la fecha el da d. El da devuelto puede


ser texto ('Lunes', Martes', ..) o el nmero del da de la semana (1=lunes, 2=martes,
..) dependiendo de la configuracin.

EXTRACT(valor FROM fecha)

Extrae un valor de una fecha concreta. El valor puede ser day, month, year, hours,
etc.

Funciones de conversin

TO_NUMBER(cad, formato) Convierte textos en nmeros. Se suele utilizar para dar un formato
concreto a los nmeros. Los formatos que podemos utilizar son los siguientes:
Formatos para nmeros y su significado.

Smbolo

Significado

Posiciones numricas. Si el nmero que se quiere visualizar contiene menos dgitos de los que se especifican en el
formato, se rellena con blancos.

Visualiza ceros por la izquierda hasta completar la longitud del formato especificado.

Antepone el signo de dlar al nmero.

Coloca en la posicin donde se incluya, el smbolo de la moneda local (se puede configurar en la base de datos
mediante el parmetro NSL_CURRENCY)

Aparecer el smbolo del signo.

Posicin del smbolo decimal, que en espaol es la coma.

Posicin del separador de grupo, que en espaol es el punto.

TO_CHAR(d, formato) Convierte un nmero o fecha d a cadena de caracteres, se utiliza


normalmente para fechas ya que de nmero a texto se hace de forma implcita como hemos visto
antes.
TO_DATE( cad, formato) Convierte textos a fechas. Podemos indicar el formato con el que
queremos que aparezca.

Para las funciones TO_CHAR y TO_DATE, en el caso de fechas, indicamos el formato incluyendo los
siguientes smbolos:
Formatos para fechas y su significado.
Smbolo Significado
YY

Ao en formato de dos cifras

YYYY

Ao en formato de cuatro cifras

MM

Mes en formato de dos cifras

MON

Las tres primeras letras del mes

MONTH

Nombre completo del mes

DY

Da de la semana en tres letras

DAY

Da completo de la semana

DD

Da en formato de dos cifras

Da de la semana del 1 al 7

Semestre

WW

Semana del ao

AM
PM

Indicador a.m. Indicador p.m.

HH12
HH24

Hora de 1 a 12 Hora de 0 a 23

MI

Minutos de 0 a 59

SS
SSSS

Segundos dentro del minuto Segundos dentro desde las 0 horas

http://daw.xtrweb.com/dokuwiki/

Printed on 2013/11/15 07:32

2013/11/15 07:32

5/6

Consultas SQL

Otras
Cualquier operacin que se haga con un valor NULL devuelve un NULL. Por ejemplo, si se intenta
dividir por NULL, no nos aparecer ningn error sino que como resultado obtendremos un NULL (no
se producir ningn error tal y como puede suceder si intentramos dividir por cero).
Funcin

Descripcin

NVL(valor, expr1)

Si valor es NULL, entonces devuelve expr1. Ten en cuenta que expr1 debe ser del
mismo tipo que valor.

Esta funcin evala una expresin expr1, si se cumple la primera condicin (cond1)
DECODE(expr1, cond1, valor1
devuelve el valor1, en caso contrario evala la siguiente condicin y as hasta que
[, cond2, valor2, ],
una de las condiciones se cumpla. Si no se cumple ninguna condicin se devuelve el
default )
valor por defecto que hemos llamado default.

Consultas resumen
Con esta sintaxis
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

Funciones de agregado
Devuelve la suma de los valores de la expresin. Slo puede utilizarse con columnas
SUM([ALL|DISTINCT] expresin) cuyo tipo de dato sea nmero. El resultado ser del mismo tipo aunque puede tener
una precisin mayor.
Cuenta los elementos de un campo. Expresin contiene el nombre del campo que
COUNT([ALL|DISTINCT] expresin) deseamos contar. Los operandos de expresin pueden incluir el nombre del campo,
una constante o una funcin. Puede contar cualquier tipo de datos incluido texto.
Devuelve el valor mnimo de la expresin sin considerar los nulos (NULL). En
MIN ([ALL| DISTINCT] expresin) expresin podemos incluir el nombre de un campo de una tabla, una constante o
una funcin (pero no otras funciones agregadas de SQL).
Devuelve el valor mximo de la expresin sin considerar los nulos (NULL). En
MAX ([ALL| DISTINCT] expresin) expresin podemos incluir el nombre de un campo de una tabla, una constante o
una funcin (pero no otras funciones agregadas de SQL).
Devuelve el promedio de los valores de un grupo, para ello se omiten los valores
nulos (NULL). El grupo de valores ser el que se obtenga como resultado de la
AVG ([ALL| DISTINCT] expresin) expresin y sta puede ser un nombre de columna o una expresin basada en una
columna o varias de la tabla. Se aplica a campos tipo nmero y el tipo de dato del
resultado puede variar segn las necesidades del sistema para representar el valor.
VAR ([ALL| DISTINCT] expresin)

Devuelve la varianza estadstica de todos los valores de la expresin.* Como tipo de


dato admite nicamente columnas numricas. Los valores nulos (NULL) se omiten.

STDEV ([ALL| DISTINCT]


expresin)

Devuelve la desviacin tpica estadstica de todos los valores de la expresin. Como


tipo de dato admite nicamente columnas numricas. Los valores nulos (NULL) se
omiten.

Relaciones con tablas


CROSS JOIN

crear un producto cartesiano de las filas de ambas tablas por lo que podemos olvidarnos de la clusula
WHERE.

detecta automticamente las claves de unin, basndose en el nombre de la columna que coincide en
NATURAL JOIN ambas tablas. Por supuesto, se requerir que las columnas de unin tengan el mismo nombre en cada
tabla. Adems, esta caracterstica funcionar incluso si no estn definidas las claves primarias o ajenas.
Desarrollo de Aplicaciones Web - http://daw.xtrweb.com/dokuwiki/

2013/11/15 07:32

JOIN USING

6/6

Consultas SQL

las tablas pueden tener ms de un campo para relacionar y no siempre queremos que se relacionen por
todos los campos. Esta clusula permite establecer relaciones indicando qu campo o campos comunes se
quieren utilizar para ello.

JOIN ON

se utiliza para unir tablas en la que los nombres de columna no coinciden en ambas tablas o se necesita
establecer asociaciones ms complicadas.

OUTER JOIN

se puede eliminar el uso del signo (+) para composiciones externas utilizando un OUTER JOIN, de este
modo resultar ms fcil de entender.

LEFT OUTER
JOIN

es una composicin externa izquierda, todas las filas de la tabla de la izquierda se devuelven, aunque no
haya ninguna columna correspondiente en las tablas combinadas.

RIGTH OUTER es una composicin externa derecha, todas las filas de la tabla de la derecha se devuelven, aunque no
JOIN
haya ninguna columna correspondiente en las tablas combinadas.
FULL OUTER
JOIN

es una composicin externa en la que se devolvern todas las filas de los campos no relacionados de
ambas tablas.

Consulatas multitablas
UNIN

SELECT NombreCia, Ciudad FROM PROVEEDORES WHERE Pais = 'Alemania'


UNION
SELECT NombreCia, Ciudad FROM CLIENTES WHERE Pais = 'Alemania';
SELECT nombre, domicilio FROM ingles INTERSECT

INTERSECCIN SELECT nombre, domicilio FROM frances INTERSECT


SELECT nombre, domicilio FROM portugues;

DIFERENCIA

SELECT nombre, domicilio FROM INGLES


MINUS
SELECT nombre,domicilio FROM PORTUGUES;

Subconsultas
ANY

Compara con cualquier fila de la consulta. La instruccin es vlida si hay un registro en la subconsulta que permite
que la comparacin sea cierta.

ALL

Compara con todas las filas de la consulta. La instruccin resultar cierta si es cierta toda la comparacin con los
registros de la subconsulta.

IN

No utiliza comparador, lo que hace es comprobar si el valor se encuentra en el resultado de la subconsulta.

NOT IN Comprueba si un valor no se encuentra en una subconsulta.

From:
Mauricio Segura Ario
http://daw.xtrweb.com/dokuwiki/ - Desarrollo de Aplicaciones Web
Last update: 2013/11/13 16:53

http://daw.xtrweb.com/dokuwiki/

Printed on 2013/11/15 07:32

Potrebbero piacerti anche