Pulse para guardar enlace y compartir esta web. Ayuda para Oracle en Twitter Pulse para guardar enlace y compartir esta web. Ayuda para Oracle en Facebook Pulse para guardar enlace y compartir esta web. Búscanos en Google+ Pulse para guardar enlace y compartir esta web Pulse para generar codigo QR del enlace y compartir esta web

Sentencia SELECT

La selección sobre una tabla consiste en elegir un subconjunto de filas que cumplan (o no) algunas condiciones determinadas. La sintaxis de una sentencia de este tipo es la siguiente:

SELECT */ columna1, columna2,....
FROM nombre-tabla
[WHERE condición]
[GROUP BY columna1, columna2.... ]
[HAVING condición-selección-grupos ]
[ORDER BY columna1 [DESC], columna2 [DESC]... ]
Si ejecutamos:

SELECT * FROM T_PEDIDOS; 
Nos da la salida:
COD_PEDIDO    NOMBRE    ESTADO     
-------------------------------------------------
1             JUAN      0
2             ANTONIO   1
3             PEPE      0
...
* / columna1, columna2,.... Si se escribe *, selecciona todas las columnas. Si se desea seleccionar sólo algunas columnas de la tabla, se debe poner los nombres de cada una de ellas, separadas por una coma.

nombre-tabla Nombre de la(s) tabla(s) de la(s) cual(es) se van a seleccionar los valores.

GROUP BY columna1, columna2....

Se utiliza para agrupar resultados por una determinada columna, específicamente cuando se utilizan funciones de columna y los resultados se desean obtener por grupos (SQL lanza un sort para generar los grupos).

HAVING condición-selección-grupos

Se utiliza con la cláusula “GROUP BY”, cuando se quiere poner condiciones al resultado de un grupo.

ORDER BY colum1 [DESC], colum2 [DESC...]

Sirve para ordenar el resultado. Todas las columnas por las que se desee realizar el orden tienen que encontrarse en la sentencia “Select” de la consulta. El orden de las columnas puede ser ascendente, (por omisión, ASC), o descendente, (DESC).

SENTENCIA SELECT (JOIN)

Consiste en la unión de campos de dos o más tablas. Dichas tablas tendrán por lo menos una columna común que sirva de nexo del join.

SELECT columna1, columna2,...
FROM nombre-tabla1, nombre-tabla2
columna1, columna2,... Para diferenciar las columnas con el mismo nombre se antepondrá el nombre de la tabla a la que pertenecen, utilizando el punto como separador. Por ejemplo:

SELECT Tabla1.Columna2, Tabla2.Columna2, Columna3.....
FROM Tabla1, Tabla2
WHERE Tabla1.Columna1 = Tabla2.Columna1
La Columna1 de cada una de las tablas respectivas son las columnas de nexo o columnas de join.

SENTENCIA SELECT DISTINCT

Recupera las filas de una tabla eliminando los valores de la columna duplicados.

SELECT DISTINCT columna1, columna2,....
FROM nombre-tabla1, nombre-tabla2
[GROUP BY columna1, columna2....]
[HAVING condición-selección-grupos]
[ORDER BY columna1 [DESC], columna2 [DESC]...

SENTENCIA SELECT TOP N FILAS DE UNA TABLA

En Oracle8i podemos usar la sintaxis siguiente, con una cláusula ORDER BY, para elegir filas con los valores máximos o mínimos de un campo:

SELECT *
FROM (SELECT * FROM my_table ORDER BY col_name_1 DESC)
WHERE ROWNUM < 10;

FUNCIONES SOBRE COLUMNAS

COUNT. Indica el número de filas que cumplen una determinada condición, o el número de valores diferentes que posee una columna.

COUNT(*) o COUNT(DISTINCT columna)
SUM. Suma los valores de una columna.

SUM(columna)
AVG. Entrega la media de los valores de una columna.

AVG(columna)
MIN. Entrega el valor mínimo de una columna.

MIN(columna)
MAX. Entrega el valor máximo de una columna.

MAX(columna)

SUBSELECTS

Permite realizar comparaciones con valores obtenidos en otra sentencia select anidada, a la que se denomina “Subselect” o “Subselect interna”.

SELECT columna1>, columna2,....
FROM nombre-tabla1, nombre-tabla2
WHERE columna1 = (SELECT columna1
FROM nombre-tabla1, nombre-tabla2
WHERE condición)

(Cuando en la condición se pone el operador =, la subselect deberá recuperar un sólo registro).