Objetivos

  • Conocer las capacidades de la sentencia SELECT
  • Ejecutar una sentencia SELECT básica.

Sintaxis

  • SELECT *|{[DISTINCT] column|expresion [alias],…..} FROM table;
  • SELECT Identifica las columnas que serán desplegadas.
  • FROM Identifica la tabla que contiene estas columnas.
  • DISTINCT Suprime los registros duplicados.
  • column|expresion Son los nombres de las columnas o las expresiones
  • Alias Especifica un nombre diferente para los encabezados de las columnas

Seleccionando todas las columnas

Este ejemplo muestra todos los registros de la tabla departments.

SQL> SELECT * FROM DEPARTMENTS;

DEPARTMENT_ID DEPARTMENT_NAME                MANAGER_ID LOCATION_ID
------------- ------------------------------ ---------- -----------
10 Administration                        200        1700
20 Marketing                             201        1800
30 Purchasing                            114        1700
40 Human Resources                       203        2400
50 Shipping                              121        1500
60 IT                                    103        1400
70 Public Relations                      204        2700
80 Sales                                 145        2500
90 Executive                             100        1700
100 Finance                               108        1700
110 Accounting                            205        1700

Podemos seleccionar solo columnas específicas.

SQL> SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM DEPARTMENTS;

DEPARTMENT_ID DEPARTMENT_NAME
------------- ------------------------------
10 Administration
20 Marketing
30 Purchasing
40 Human Resources
50 Shipping
60 IT
70 Public Relations
80 Sales
90 Executive
100 Finance
110 Accounting
 
Operaciones aritméticas, alias y definición de valores nulos.

Podemos usar los operadores (+ – * / ) con los datos numéricos y datos de fechas, estos operadores son útiles para realizar cálculos específicos de acuerdo a nuestras necesidades.Como se muestra a continuación.

SELECT LAST_NAME, 12*SALARY*COMMISION_PCT FROM EMPLOYEES;

Con tipos de datos DATE y TIMESTAMP se usan para almacenar datos tipo FECHA solo puedes usar operaciones de + suma y – resta.

SELECT SYSDATE+1 FROM DUAL; 

En Oracle, SYSDATE se usa para recuperar el día actual y DUAL es una tabla que se usa para recuperar un dato que no se encuentra en una tabla.

En caso de que existan varios operadores en una misma expresión aritmética, el orden de evaluación es de izquierda a derecha, donde la multiplicación y la división tienen prioridad sobre la suma y resta. Para darle mayor claridad puedes usar paréntesis en tus expresiones.Donde se calcula independientemente lo que se encuentre entre los paréntesis.

SELECT 12*(SALARIO+50)*COMMISION_PCT FROM FROM EMPLOYEES;

Con respecto a los alias en las columnas, podemos agregar alias a las columnas de 3 formas primero colocando la clave AS después del nombre de la columna.

SELECT SYSDATE AS FECHA FROM DUAL;

Después del nombre de la columna usando una cadena de caracteres entrecomillas

SELECT SYSDATE “FECHA ACTUAL” FROM DUAL;

Simplemente escribiendo una palabra después del nombre de la columna.

SELECT SYSDATE FECHA FROM DUAL;

Los valores nulos no es lo mismo que cero o espacio en blanco, no tiene un valor asignado, conocido o aplicable a operaciones aritméticas ya que se generaría un error. En este caso habrá que darle un tratamiento especial para lo cual existen funciones especiales para evitar estos errores.

En el siguiente ejemplo, se muestra la selección de datos colocando el alias NOMBRE a la columna LAST_NAME, el alias COMMISION a la columna COMMISION_PCT y el alias “SALARIO ANUAL” a la expresión aritmética SALARY*12.

SQL> SELECT LAST_NAME AS NOMBRE, COMMISSION_PCT COMISION, SALARY*12 "SALARIO ANUAL"FROM EMPLOYEES;

NOMBRE                      COMISION SALARIO ANUAL
------------------------- ---------- -------------
OConnell                                     31200
Grant                                        31200
Whalen                                       52800
Hartstein                                   156000
Fay                                          72000
Mavris                                       78000
Baer                                        120000
Higgins                                     144096
Gietz                                        99600
King                                        288000
Kochhar                                     204000

Concatenación, palabra clave DISTINCT y el comando DESCRIBE

Para concatenar o unir cadenas de caracteres se usa la doble barra vertical || y crea como resultado una sola cadena o una sola columna de caracteres. Se pueden usar cadenas escritas encerradas entre comillas sencillas ‘.

SELECT LAST_NAME||’  es ‘||JOB_ID FROM EMPLOYEES;

Para eliminar los registros duplicados del resultado de una consulta usamos la palabra clave DISTINCT.

SELECT DISTINCT DEPARTMENT_ID FROM EMPLOYEES;

El comando describe se usa para mostrar la estructura de una tabla.

DESCRIBE EMPLOYEES;

SQL> DESC EMPLOYEES
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
EMPLOYEE_ID                               NOT NULL NUMBER(6)
FIRST_NAME                                         VARCHAR2(20)
LAST_NAME                                 NOT NULL VARCHAR2(25)
EMAIL                                     NOT NULL VARCHAR2(25)
PHONE_NUMBER                                       VARCHAR2(20)
HIRE_DATE                                 NOT NULL DATE
JOB_ID                                    NOT NULL VARCHAR2(10)
SALARY                                             NUMBER(8,2)
COMMISSION_PCT                                     NUMBER(2,2)
MANAGER_ID                                         NUMBER(6)
DEPARTMENT_ID                                      NUMBER(4)
 
EL tipo de dato DATE se usa para almacenar las fechas.

El tipo de dato VARCHAR2 se usa para almacenar cadenas de caracteres con la longitud que se defina entre paréntesis.

El tipo de dato NUMBER almacena datos numéricos con o sin decimales según se defina entre paréntesis.

No hay comentarios:

Publicar un comentario