Modos de seleccionar datos de columnas

Hay disponibles varias técnicas para seleccionar columnas de una base de datos para las tablas de resultados.

Existen varias maneras de seleccionar datos de las columnas de la tabla, pero debe seguir las prácticas recomendadas para las sentencias SELECT a fin de garantizar un buen rendimiento. Para obtener mejores resultados al escribir una instrucción SELECT, seleccione solo las filas y columnas que su programa necesita, lo que reduce la carga de la CPU y el uso de memoria.

Selección de algunas columnas

Seleccione las columnas que desea especificando el nombre de cada columna. Todas las columnas aparecen en el orden que se especifica, no en el orden que tienen en la tabla.

Iniciar la información de la interfaz de programación de uso general.

Ejemplo

Observe que la tabla DEPT contiene la columna DEPTNO antes de la columna MGRNO. Consideremos la consulta siguiente:

SELECT MGRNO, DEPTNO
	FROM DSN8D10.DEPT
	WHERE ADMRDEPT = 'A00';

La tabla de resultados es similar al ejemplo siguiente:

MGRNO   DEPTNO
======  ======
000010  A00
000020  B01
000030  C01
------  D01
000050  E01

Esta sentencia SELECT recupera datos contenidos en las dos columnas especificadas de cada fila de la tabla DEPT. Puede seleccionar datos de hasta 750 columnas con una única sentencia SELECT.

Finalizar la información de la interfaz de programación de uso general.

Selección de todas las columnas

No es necesario que conozca los nombres de columna para seleccionar datos de Db2. Utilice un asterisco (*) en la cláusula SELECT para recuperar todas las columnas de cada fila seleccionada de la tabla especificada. Db2 selecciona las columnas en el orden en que se declaran las columnas en esa tabla. Las columnas ocultas como, por ejemplo, columnas ROWID y columnas de ID de documento XML, no se incluyen en el resultado de la sentencia SELECT *.

Iniciar la información de la interfaz de programación de uso general.

Ejemplo

Considere esta consulta:

SELECT * 
	FROM DSN8A10.DEPT
	WHERE ADMRDEPT = 'A00';

La tabla de resultados es similar al ejemplo siguiente:

DEPTNO  DEPTNAME                              MGRNO   ADMRDEPT  LOCATION
======  ========                              =====   ========  ========
A00     SPIFFY COMPUTER SERVICE DIV.          000010  A00
B01     PLANNING                              000020  A00
C01     INFORMATION CENTER                    000030  A00
D01     DEVELOPMENT CENTER                    ------  A00
E01     SUPPORT SERVICES                      000050  A00

Esta sentencia SELECT recupera datos de cada columna de cada fila recuperada de la tabla DEPT. Debido a que el ejemplo no especifica ninguna cláusula WHERE, la sentencia recupera datos de todas las filas.

En este ejemplo, la quinta fila contiene un valor nulo debido a que no se identifica ningún director para este departamento. Los valores nulos se visualizan como guiones.

Finalizar la información de la interfaz de programación de uso general.

La sentencia " SELECT * " es más apropiada cuando se utiliza con SQL dinámico y definiciones de vistas. Evite usar SELECT * en SQL estático. Se escriben aplicaciones de SQL estático cuando se conoce el número de columnas que devuelve la aplicación. Este número puede cambiar fuera de la aplicación. Si se produce un cambio en la tabla, debe actualizar la aplicación para reflejar el número de columnas cambiada de la tabla.

Utilice la sentencia " SELECT * " solo cuando sea necesario recuperar todas las columnas de cada fila recuperada de su tabla. La selección de columnas específicas ofrece a la consulta un filtro superior que puede recuperar los resultados más eficazmente.

Eliminación de filas duplicadas

La palabra clave DISTINCT elimina las filas duplicadas redundantes de la tabla de resultados para que cada fila contenga datos exclusivos.

Ejemplo

La consulta siguiente utiliza la palabra clave DISTINCT para listar los números de los distintos departamentos administrativos:

Iniciar la información de la interfaz de programación de uso general.
SELECT DISTINCT ADMRDEPT
  FROM DSN8D10.DEPT;

La tabla de resultados es similar al ejemplo siguiente:

ADMRDEPT
========
A00
D11
E01
Finalizar la información de la interfaz de programación de uso general.

Puede utilizar más de una palabra clave DISTINCT en una única consulta.

Selección de columnas derivadas y denominación de las columnas resultantes

Puede seleccionar columnas que deriven de una constante, una expresión o una función. Con la cláusula AS, puede nombrar las columnas resultantes. Esta palabra clave es útil para una columna que se deriva de una expresión o función.

Ejemplo

Iniciar la información de la interfaz de programación de uso general.

En la consulta siguiente, la expresión SALARY+COMM se denomina TOTAL_SAL:

SELECT EMPNO, (SALARY + COMM) AS TOTAL_SAL
	FROM DSN8D10.EMP;

La tabla de resultados es similar al ejemplo siguiente:

EMPNO      TOTAL_SAL
======     =========
000290      16567.00
000310      17172.00
200310      17172.00
000260      18630.00
000300      19170.00
000210      19732.00
⋮

Esta consulta selecciona datos de todas las filas de la tabla EMP, calcula el resultado de la expresión y devuelve las columnas en el orden en que indica la sentencia SELECT. En la tabla de resultados, las columnas derivadas, como (SALARY + COMM) en este ejemplo, no tienen nombres. Puede utilizar la cláusula AS para proporcionar nombres a las columnas sin nombre.

Para ordenar las filas de la tabla de resultados según los valores de una columna derivada, especifique un nombre para la columna utilizando la cláusula AS y utilice este nombre en la cláusula ORDER BY.

Finalizar la información de la interfaz de programación de uso general.