La declaración SQL SELECT
Recuperar datos mediante la instrucción Select de SQL
SQL es un lenguaje de base de datos completo. SQL, que se pronuncia Sequel o simplemente SQL, es un lenguaje de programación de computadoras que se utiliza para consultar bases de datos relacionales siguiendo un enfoque sin procedimientos. Cuando extrae información de una base de datos utilizando SQL, esto se denomina consultar la base de datos.
Una base de datos relacional se implementa mediante el uso de un sistema de gestión de bases de datos relacionales (RDBMS). Un RDBMS realiza todas las funciones básicas del software DBMS mencionado anteriormente junto con una multitud de otras funciones que hacen que el modelo relacional sea más fácil de entender e implementar. Los usuarios de RDBMS manipulan datos mediante el uso de un lenguaje de manipulación de datos especial. Las estructuras de la base de datos se definen mediante el uso de un lenguaje de definición de datos. Los comandos que ejecutan los usuarios del sistema para almacenar y recuperar datos se pueden ingresar en un terminal con una interfaz RDBMS escribiendo los comandos, o ingresados mediante el uso de algún tipo de interfaz gráfica. El DBMS luego procesa los comandos.
Capacidades de la declaración SELECT
La recuperación de datos de la base de datos se realiza mediante el uso apropiado y eficiente de SQL. Tres conceptos de la teoría relacional abarcan la capacidad de la declaración SELECT: proyección, selección y unión.
Proyección: una operación de proyecto selecciona solo ciertas columnas (campos) de una tabla. La tabla de resultados tiene un subconjunto de las columnas disponibles y puede incluir cualquier cosa, desde una sola columna hasta todas las columnas disponibles.
Selección: una operación de selección selecciona un subconjunto de filas (registros) en una tabla (relación) que satisfacen una condición de selección. La capacidad de seleccionar filas del conjunto de resultados completo se denomina Selección. Implica filtrado condicional y puesta en escena de datos. El subconjunto puede variar desde ninguna fila, si ninguna de las filas satisface la condición de selección, hasta todas las filas de una tabla.
Unión: una operación de combinación combina datos de dos o más tablas en función de uno o más valores de columna comunes. Una operación de unión permite a un usuario del sistema de información procesar las relaciones que existen entre tablas. La operación de unión es muy poderosa porque permite a los usuarios del sistema investigar las relaciones entre los elementos de datos que podrían no anticiparse al momento de diseñar una base de datos.
Considere las estructuras de tablas anteriores. Obtener el nombre del nombre, el ID del departamento y el salario de un solo empleado de la tabla EMPLOYEES es Proyección. La obtención de detalles de empleados cuyo salario es inferior a 5000, de la tabla EMPLOYEES es Selección. Obtener el nombre del empleado, el nombre del departamento al unirse a EMPLOYEES and DEPARTMENTS es unirse.
Sentencia SELECT básica
La sintaxis básica de una instrucción SELECT se presenta a continuación.
SELECT [DISTINCT | ALL] {* | select_list}
FROM {table_name [alias] | view_name}
[{table_name [alias] | view_name}]...
[WHERE condition]
[GROUP BY condition_list]
[HAVING condition]
[ORDER BY {column_name | column_# [ ASC | DESC ] } ...
La cláusula SELECT es obligatoria y realiza la operación del proyecto relacional.
La cláusula FROM también es obligatoria. Identifica una o más tablas y / o vistas desde las que recuperar los datos de columna mostrados en una tabla de resultados.
La cláusula WHERE es opcional y realiza la operación de selección relacional. Especifica qué filas se seleccionarán.
La cláusula GROUP BY es opcional. Organiza los datos en grupos por uno o más nombres de columna enumerados en la cláusula SELECT.
La cláusula opcional HAVING establece condiciones con respecto a qué grupos incluir en una tabla de resultados. Los grupos están especificados por la cláusula GROUP BY.
La cláusula ORDER BY es opcional. Ordena los resultados de la consulta por una o más columnas en orden ascendente o descendente.
Expresiones aritméticas y valores NULL en la instrucción SELECT
Se puede crear una expresión aritmética usando los nombres de columna, operadores y valores constantes para incrustar una expresión en una instrucción SELECT. El operador aplicable a una columna depende del tipo de datos de la columna. Por ejemplo, los operadores aritméticos no se ajustarán a valores literales de caracteres. Por ejemplo,
SELECT employee_id, sal * 12 ANNUAL_SAL
FROM employees;
La consulta anterior contiene la expresión aritmética (sal * 12) para calcular el salario anual de cada empleado.
Operadores aritméticos
Los operadores actúan sobre las columnas (conocidas como operandos) para dar como resultado un resultado diferente. En caso de que haya varios operadores en una expresión, el orden de evaluación lo decide la precedencia del operador. Aquí están las reglas elementales de precedencia:
La multiplicación y la división ocurren antes que la suma y la resta.
Los operadores con la misma prioridad se evalúan de izquierda a derecha.
Utilice paréntesis para anular el comportamiento predeterminado de los operadores.
La siguiente tabla muestra la precedencia de los operadores, en tales casos. Operación del símbolo del operador del nivel de precedencia
Description Operator Precedence
Addition + Lowest
Subtraction - Lowest
Multiplication * Medium
Division / Medium
Brackets ( ) Highest
Examine las siguientes consultas (a), (b) y (c)
SQL> SELECT 2*35 FROM DUAL;
SQL> SELECT salary + 1500 FROM employees;
SQL> SELECT first_name, salary, salary + (commission_pct* salary) FROM employees;
La consulta (a) multiplica dos números, mientras que (b) muestra la suma de $ 1500 a los salarios de todos los empleados. La consulta (c) muestra la adición del componente de comisión al salario del empleado. Según la precedencia, la primera comisión se calcularía sobre el salario y luego se agregaría al salario.
Alias de columna
Se utiliza un alias para cambiar el nombre de una columna o expresión durante la visualización. El alias de una columna o expresión aparece como encabezado en la salida de una consulta. Es útil para proporcionar un encabezado significativo a expresiones largas en la consulta SELECT. De forma predeterminada, el alias aparece en mayúsculas en el resultado de la consulta sin espacios. Para anular este comportamiento, el alias debe estar entre comillas dobles para preservar el caso y los espacios en el nombre del alias.
SELECT price * 2 as DOUBLE_PRICE, price * 10 "Double Price"
FROM products;
DOUBLE_PRICE Double Price
------------ ------------
39.9 39.9
60 60
51.98 51.98
Operadores de concatenación
El operador de concatenación se puede utilizar para unir dos valores de cadena o expresiones en una consulta SELECT. El símbolo de doble barra vertical se utiliza como operador de concatenación de cadenas. Es aplicable solo para valores de columna de caracteres y cadenas que dan como resultado una nueva expresión de carácter. Ejemplo
SQL> SELECT 'ORACLE'||' CERTIFICATION' FROM dual;
La consulta anterior muestra la concatenación de valores literales de dos caracteres.
Literales
Cualquier valor codificado de forma rígida, que no se almacena en la base de datos, en la cláusula SELECT, se conoce como literal. Puede ser un valor numérico, de carácter o de fecha. Los valores de caracteres y fechas deben ir entre comillas. Considere las siguientes consultas SQL. Ejemplos de uso de literales de diferentes tipos de datos en consultas SQL.
La consulta a continuación usa dos caracteres literales para unirlos.
SQL> SELECT 'ORACLE'||' CERTIFICATION' FROM DUAL
La consulta a continuación utiliza caracteres literales para imprimir de forma bonita el salario del empleado.
SQL> SELECT first_name ||'earns'|| salary||' as of '|||sysdate
FROM employees
Operador de cotización
El operador de comillas se utiliza para especificar su propio delimitador de comillas. Puede elegir un delimitador conveniente, dependiendo de los datos.
SELECT department_name|| ' Department' ||q'['s Manager Id: ]'|| manager_id
FROM departments;
NULO
Si una columna no tiene un valor definido, se considera NULL. El valor NULL indica desconocido o no disponible. No es cero para valores numéricos, ni espacio en blanco para valores de caracteres.
Las columnas con valor NULL se pueden seleccionar en una consulta SELECT y pueden ser parte de una expresión aritmética. Cualquier expresión aritmética que utilice valores NULL da como resultado NULL. Por esta razón, las columnas con valor NULL deben manejarse de manera diferente especificando sus valores alternativos utilizando funciones proporcionadas por Oracle como NVL o NULLIF.
SQL> SELECT NULL + 1000 NUM
FROM DUAL;
NUM
--------
Palabra clave DISTINCT
Si se espera que los datos tengan resultados duplicados, use la palabra clave DISTINCT para eliminar los duplicados y mostrar solo los resultados únicos en la salida de la consulta. Solo las columnas seleccionadas se validan para la duplicación y las filas se eliminarán lógicamente de la salida de la consulta. Cabe señalar que la palabra clave DISTINCT debe aparecer justo después de la cláusula SELECT.
La consulta simple a continuación demuestra el uso de DISTINCT para mostrar ID de departamento únicos de la tabla EMPLOYEES.
SQL> SELECT DISTINCT DEPARTMENT_ID
FROM employees;
DEPARTMENT_ID
---------------
10
20
30
40
Comando DESCRIBE
Los metadatos estructurales de una tabla se pueden obtener consultando en la base de datos la lista de columnas que la componen mediante el comando DESCRIBE. Enumerará los nombres de columna utilizados, su propiedad nula y el tipo de datos.
Syntax:
DESC[RIBE] [SCHEMA].object name
Por ejemplo,
DESC EMPLOYEE
mostrará la estructura de la tabla EMPLOYEE, es decir, columnas, sus tipos de datos, precisión y propiedad anulable.