Viernes, 12 Junio 2020 03:50

Sentencia Select, SQL

Rate this item
(0 votes)

Objetivos: 

  • Enumerar las capacidades de las sentencias SELECT de SQL.
  • Ejecutar una sentencia SELECT básica.

NOTA: Usamos como ejemplo la base de datos: ORCL, la cual viene por defecto en cualquier versión de ORACLE.


SINTAXIS:

SELECT *|{[DISTINCT] column|expression [alias],...} 
FROM table;

En la sintaxis:

  1. SELECTSelecciona la lista de columnas a consultar.
  2. *: Se usa para que en la consulta se muestren todos los campos/columnas de la tabla.
  3. DISTINCT : suprime los duplicados(omite registros duplicado).
  4. column|expression:  Columnas o expresiones a mostrar en la consulta.
  5. alias:  Nombre personalizado que se le quiere asignar  al campo o columna.
  6. FROM: Especifica la o las tablas que contienen las columnas a mostrar en la consulta.
  7. table: Es la tabla que se esta consultando.
  8. |: Es equivalente a 'o', eje: esto aquello = esto | aquello.
  9. {}: Agrupa objetos similares.
  10. []: Todo lo que esta entre corchetes es Opcional.

Ejemplos:

SELECT  *
FROM departments;

 /*se muestran todos los campos o columnas de la tabla en cuestión(departments)*/

 

SELECT  department_id,
        department_name,
        manager_id,
        location_id
FROM departments;

/*Este Query muestra el mismo resultado que el anterior, la diferencia es que aquí yo enumeré todas las columnas de la tabla*/

 

SELECT  department_id, 
        department_name
FROM departments;

/*Aquí solo enumeré 2 columnas de la tabla*/


Directrices de las Sentencias SQL

Mediante las sencillas reglas que se detallan a continuación, puede crear sentencias válidas que resulten fáciles de leer y de editar:

  • Las sentencias SQL no son sensibles a mayúsculas/minúsculas. (a menos que se indique que lo sean).
  • Las sentencias SQL se pueden introducir en una o en varias líneas.
  • Las palabras clave no se pueden dividir en líneas ni se pueden abreviar.
  • Las cláusulas se suelen colocar en líneas aparte para facilitar su lectura y su edición.
  • Se deben utilizar sangrados para facilitar la lectura del código.
  • Las palabras clave se suelen introducir en mayúsculas; el resto de palabras, como nombres y columnas, se introduce en minúsculas.

Expresiones Aritméticas

Todo esto es posible mediante expresiones aritméticas. Una expresión aritmética puede contener nombres de columna, valores numéricos constantes e los operadores aritméticos y son de gran ayuda para modificar la manera en la que se muestran los datos.

Operador

Descripción

+

Suma

-

Resta

*

Multiplicación

/

División

Operadores Aritméticos 

El cuadro muestra los operadores aritméticos disponibles en SQL. Puede utilizar operadores aritméticos en cualquier cláusula de una sentencia SQL (excepto en la cláusula FROM). 

 

Nota: Con los tipos de datos DATE y TIMESTAMP, puede utilizar únicamente los operadores de suma y de resta.

Ejemplos:

SELECT last_name, salary, salary+ 300 
FROM employees;

/*muestra el apellido, salario y el salario más 300*/

 

SELECT last_name, salary, 12*salary+100
FROM   employees;

 /*muestra el apellido, salario y el salario por 12 más 100*/

 

SELECT last_name, salary, 12*(salary+300)
FROM   employees;

/*muestra el apellido, salario y el salario más 300 por 12*/

 

 Nota: Me limité a hacer ejemplos con estos Operadores pero cualquiera de los ya mencionados puede ser usado siempre y cuando la situación lo requiera.

OJO: El uso de paréntesis es muy importante, el siguiente Query lo muestra claramente: 

SELECT last_name, salary, 12*salary+100, 12*(salary+100)
FROM   employees;

Valor Nulo(NULL)

  • Un valor nulo es aquel que no está disponible, no está asignado, es desconocido o no es aplicable. 
  • Un valor nulo no es lo mismo que un cero o un espacio en blanco.
  • Si faltan valores en una fila para una columna, se dice que el valor es nulo.
  • Las columnas de cualquier tipo de datos pueden contener valores nulos. A menos que tengan      restricciones (NOT NULLPRIMARY KEY) los cuales impiden el uso de valores nulos en las  columnas.
  • Las expresiones aritméticas que contienen un valor nulo se evalúan como nulas.

Nota: usaremos como ejemplo la columna: commission_pct ya que la misma contiene valores nulos debido a que solo las posiciones de directores de ventas o representantes de ventas reciben comisiones.

Ejemplos:

SELECT last_name, salary, commission_pct
FROM   employees; 

/*muestra registros con valores nulos en la columna: commission_pct*/

 

SELECT last_name, 12*salary*commission_pct 
FROM   employees; 

/*el cálculo no se realiza en los registros con este campo nulos*/


Alias de la Columna

  • Cambia el nombre de una cabecera de columna.
  • Es útil para los cálculos.
  • Sigue inmediatamente al nombre de columna o puede usarse la palabra clave AS (opcional) entre el nombre de la columna y el alias para más claridad.
  • Requiere comillas dobles: "" si contiene espacios o caracteres especiales, o si es sensible a mayúsculas/minúsculas.

Ejemplos:

SELECT last_name as Nombre, salary salario,
    phone_number "Numero de Telefono"
FROM   employees;
SELECT last_name apellido, salary as "Sal", phone_number as "telefono"
FROM   employees;

/*como muestra el ejemplo, cualquier forma que se use es válida, pero si se quiere mostrar el nombre de columna con un formato especifico o con espacios entonces dicho alias debe estar entre comillas dobles: ""*/


Operador de Concatenación

  • Enlaza columnas o cadenas de caracteres con otras columnas,expresiones aritméticas o valores constantes.
  • Se representa mediante dos barras verticales (||).
  • Las columnas oexpresiones enlazadasse combinan y crean una única columna de salida.
  • Si se concatena una columna no nula con una nula es resultado seria la columna no nula.

Ejemplos:

SELECT first_name,last_name, first_name||last_name
FROM   employees;
SELECT last_name||'hola', first_name||360
FROM   employees;
SELECT hire_Date||commission_pct
FROM   employees;

Cadenas de Literales

  • Un literal es un carácter, un número o una fecha que se ha incluido en la sentencia SELECT.
  • Un literal no es un nombre de columna ni un alias de columna.
  • Los valores de literales de caracteres y fecha deben ir entre comillas simples (' '); los literales de números no es necesario que las tengas.
  • Las cadenas de literales se incluyen en cada fila devuelta.

Ejemplos:

SELECT last_name ||' is a '||job_id 
       AS "Employee Details"
FROM   employees;
SELECT first_name ||' gana '||salary 
       AS "Salary by Employee"
FROM   employees;
SELECT 'El Empleado numero: '||employee_id||' fue contratado el '||hire_date 
       AS "Fecha de Contratación por Emp"
FROM   employees;

Filas Duplicadas

  • Si consultasuna tabla que tiene registros con columnas con el mismo valor(campos sin restriccionescomo UNIQUE PRIMARY KEY) dichos registros se mostraran duplicados. Para evitar esto debes incluir la palabra clave DISTINCT  después de SELECT pero antes de las columnas a mostrar.

Ejemplos:

SELECT department_id
FROM   employees; 
SELECT department_id, job_id
FROM   employees; 

/*En los dos ejemplos anteriores se muestran algunos valores duplicados.*/

 

SELECT DISTINCT department_id 
FROM   employees; 
SELECT DISTINCT department_id, job_id
FROM   employees;

/*En los dos últimos ejemplos vemos registros únicos por pila.*/


Link con un Archivo de ejercicios de práctica!!!


Fuente: Base de Datos Oracle 10g: Conceptos Fundamentales de SQL 1

Read 447 times Last modified on Sábado, 22 Agosto 2020 01:44

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.

Magic PL/SQL

Blog orientado al desarrollo de PL/SQL en el "Maravilloso Mundo ORACLE". Cursos Online y Tutoriales Gratis.