ADF

Consulta de Tablas I

Para seleccionar Datos es importante conocer la palabra: SELECT


SELECT

La sentencia SELECT permite consultar los datos almacenados en la tabla deseada de la base de datos con la que se trabaja.
La sintaxis es simple:
SELECT  <nombre_campos>  FROM <nombre_tabla> WHERE <condicion>

Sin embargo para aquellos que ya conozcan un poco de sintaxis SQL pueden tomar como base esta sentencia mas completa:

SELECT [ALL | DISTINCT ][ TOP expression [ PERCENT ] [ WITH TIES ] ] 
<nombre_campos>
FROM <nombre_tabla>
[ INNER | LEFT [OUTER]| RIGHT [OUTER] | CROSS][JOIN ] <nombre_tabla> ON <condicion_join>[ AND|OR <condicion>][WHERE <condicion> [ AND|OR <condicion>]][GROUP BY <nombre_campos>][HAVING <condicion>[ AND|OR <condicion>]][ORDER BY <nombre_campo> [ASC | DESC]La cláusula WHERE



Poco a poco iremos viendo cada una de estas sentencias, mientras solo veremos la primera forma.

El ejemplo a continuación muestra una consulta sencilla y simple de selección de datos (todas las filas existentes) de una tabla llamada CURSOS, obtendremos el código y el nombre del curso.


SELECT COD_CURSO, NOM_CURSO FROM CURSO


Podemos también modificar los nombres de los campos por el uso de un asterisco, el uso del asterisco indica que queremos que la consulta devuelva todos los campos que existen en la tabla (ojo todas las columnas no todas las filas).


SELECT * FROM  CURSO 


INNER JOIN

Ahora seleccionaremos no solo el curso sino también el profesor y la sede


SELECT *
FROM CURSO
INNER JOIN PROFESOR
ON  PROFESOR .COD_PROFESOR = CURSO.COD_PROFESOR 
INNER JOIN SEDES
ON  SEDES .COD_SEDE=  CURSO .COD_SEDE


La combinación se realiza a través de la clausula INNER JOIN, que es una clasula exclusiva, es decir los cursos que no tengan profesores y sedes asociadas no se devolverán.

LEFT JOIN

Si queremos realizar la consulta para que no sea exclusiva, tenemos que utilizar LEFT JOIN. El uso de la palabra reservada OUTER es opcional.



SELECT *
FROM CURSO
LEFT OUTER  JOIN PROFESOR
ON  PROFESOR .COD_PROFESOR = CURSO.COD_PROFESOR 
LEFT JOIN SEDES
ON  SEDES .COD_SEDE=  CURSO .COD_SEDE



Los registros que no tengan datos relacionados en una consulta LEFT JOIN devolveran en valor null en los campos que correspondan a las tablas en las que no tienen dato.


CROSS JOIN



También podemos forzar un producto cartesiano (todos con todos) a través de CROSS JOIN.


SELECT * FROM CURSO
CROSS JOIN PROFESOR


WHERE

Gracias a la clausula WHERE podemos filtrar los resultados de nuestro query, veamos su uso.


SELECT COD_CURSO, NOM_CURSO FROM CURSO WHERE  COD_CURSO = 1


Podemos especificar varias condiciones para el WHERE:


SELECT COD_CURSO, NOM_CURSO 
FROM CURSO 
WHERE  COD_CURSO = 1 OR COD_CURSO = 2



La clausula WHERE se puede utilizar conjuntamente con INNER JOIN, LEFT JOIN ...



SELECT *
FROM CURSO
INNER JOIN PROFESOR
ON  PROFESOR .COD_PROFESOR = CURSO.COD_PROFESOR 
WHERE  CURSO . COD_CURSO   > 1


Siempre que incluyamos un valor alfanumerico para un campo en la condición WHERE este debe ir entre comillas simples:



SELECT *
FROM CURSO
WHERE  NOM_CURSO = 'CURSO 1'

IN

Gracias al IN es posible consultar varios valores en una sola condicion.


SELECT * FROM CURSO WHERE  COD_CURSO IN (1,2)


LIKE


Otra herramienta muy buena es la clausula LIKE que sirve para consultar campos alfanuméricos no exactos sino por aproximación.




SELECT * FROM  CURSO  WHERE NOM_CURSO LIKE 'CURSO %'


Los comodines que podemos utilizar en son los siguientes:
% , representa cualquier cadena de texto de cero o más caracteres de cualquier longitud.
_ , representa un caracter.
[a-d], representa cualquier caracter del intervalo a-d.
[abcd], representa cualquier caracter del grupo abcd.
[^a-d], representa cualquier caracter diferente del intervalo a-d.
[^abcd], representa cualquier caracter distinto del grupo abcd.


DISTINCT

También podemos obtener los valores distintos utilizando DISTINCT.


SELECT DISTINCT  NOM_CURSO   FROM CURSO 


Devuelve los distintos nombres de Curso (no se repiten)


TOP

Podemos limitar el número de registros que devuelve la consulta a través de la clausula TOP. La clausula TOP admite como parámetros un valor numérico entero o un porcentaje (sólo a partir de la version 2005)




SELECT TOP 10 * FROM CURSO  


Devuelve 10 registros


SELECT TOP 50 PERCENT * FROM CURSO  


Devuelve el 50% de los registros


La clausula TOP se puede combinar con WITH TIES en consultas agregadas.




ORDER BY

Podemos especificar el orden en el que serán devueltos los datos a través de la cláusula ORDER BY.


SELECT COD_ CURSO, NOM_CURSO
FROM CURSO  
ORDER BY  NOM_CURSO DESC


También podemos indicar el índice del campo en la lista de selección en lugar de su nombre :



SELECT COD_ CURSO, NOM_CURSO FROM CURSO  ORDER BY  2 DESC



Ordena por nombre de Curso, porque en la selección es la columna numero 2.

0 Response to "Consulta de Tablas I"

Publicar un comentario

Popular Posts

Labels

AVG (1) Base de Datos (1) Campos (1) Constraint (1) Consulta (1) Count (1) DCL (1) DDL (1) delete (1) DISTINCT (1) DML (1) EXCEPT (1) Group By (1) HAVING (1) IN (1) Indice (1) insert (1) INTERSECT (1) JOIN (1) LIKE (1) Max (1) Min (1) Modificar (1) ORDER BY (1) registros (1) Select (1) SQL (4) SUM (1) Tipos de Datos (1) truncate (1) UNION (1) Update (1) WHERE (1)

Teste Teste Teste

Popular Posts

Teste Teste Teste