martes, 29 de julio de 2014

Operador de concatenación


Un operador de concatenación:
a)      Enlaces de columnas o caracteres strings con otras columnas.
b)      Es representado por dos barras verticales ( || )
c)       La columna resultante es una expresión carácter.
Si quisiéramos concatenar el nombre y el salario de un empleado, podríamos realizar o ejecutar el siguientes script o sentencia sql:

SELECT
    last_name || salary AS nombre_y_salario_concatenado
FROM hr.employees;

Y obtendríamos el siguiente resultado:



Con un alias de columna “AS nombre_y_salario_concatenado” nombramos la cabecera de la columna para identificar el campo.

Se pueden  string específicos, como un espacio en blanco o una cadena de caracteres:
SELECT
    last_name || ' tiene un salario de ' ||salary AS nombre_y_salario_concatenado
FROM hr.employees;


Para concatenar columnas, debemos tener en cuenta que los valores nulos (null) generan un null, si concatenas una columna que contenga un valor nulo, el resultado de esa concatenación será un null.
Digamos, vamos a concatenar el nombre, el salario, y la comisión:
SELECT
    last_name || ' tiene un salario de ' ||salary|| ' y tienes un % de comision: ' || commission_pct  AS nombre_y_salario_concatenado
FROM hr.employees;




El resultado es un string con el nombre, la cadena ' tiene un salario de ', salario y la cadena || ' y tienes un % de comision: ', los valores que no están nulos en la comisión, los muestra, pero los que están en null quedan en blanco.

lunes, 28 de julio de 2014

Definiendo alias de columnas

Los alias para las columnas:
a)      Renombran el encabezado de las columnas.
b)      A las operaciones realizadas se puede dar un nombre específico para que no se muestre  el cálculo realizado.
c)       Inmediatamente después del nombre de la columna podemos usar o no la cláusula alias AS para luego escribir el alias que tendrá esa columna o calculo.
d)      Requiere comillas dobles para definir si el alias de esa columna tiene espacios, es case sensitive o contiene caracteres especiales.
La consulta:
SELECT
    last_name
   ,job_id AS "id"
   ,salary  AS "Salary"
   ,commission_pct "Porcentaje  Comision"
   ,10*salary*commission_pct comision_calculada
FROM hr.employees;

Tiene como resultado


Se detallamos cada uno de los campos con sus alias encontramos que:
a)      last_name no tiene alias y muestra en el encabezado el nombre del campo real y en mayúscula.
b)      job_id tiene alias y su encabezado está  en minúscula.
c)       salary tiene alias y su encabezado  describe la primera letra en mayúscula, las demás en minúscula.
d)      commission_pct tiene alias y su encabezado describe la primera letra de cada palabra está en mayúsculas, adicional, este alias tiene un espacio.
e)      El cálculo de comisión 10*salary*commission_pct tiene alias y su encabezado describe un alias sin comillas dobles y sin algún tipo de característica especial para el alias, adicional, no tiene la cláusula alias AS.

Las operaciones aritméticas con valores nulos


Las operaciones aritméticas con valores nulos (null), retornan nulos (null)
La siguiente consulta (query) muestra como los cálculos con valores nulos retornan valores nulos:
SELECT 
   last_name, job_id, salary, commission_pct, 10*salary*commission_pct
FROM hr.employees;




Si se efectúa una división por cero, genera error pero si realiza una división por nulo (null) el valor devuelto es nulo (null).

Defiendo un valor nulo





Un valor nulo (null)  es un valor no disponible, no asignado, no conocido o inaplicable
Nulo (null) no es equivalente a cero, no es equivalente a espacio en blanco o vacío
En la consulta:
SELECT
   last_name, job_id, salary, commission_pct
FROM hr.employees; 




Cualquier tipo de dato puede contener nulo (null), en la columna commission_pct de la tabla empleados (hr.employees) existen valores nulos (null) y valores no nulos.
Es recomendable no usar valores nulos en constraints o llaves primarias, generalmente las llaves primarias (primary key) son NOT NULL.


jueves, 24 de julio de 2014

Expresiones aritméticas


Crear expresiones con números y fechas mediante el uso de operadores aritméticos
Quizás se requiera modificar la forma que se está mostrando la data (Información),  o quizás se requiera realizar cálculos con la información, o solo quiera ver escenarios hipotéticos, todo esto es posible con las expresiones aritméticas.
 
En una expresión aritmética existen nombre de columna, valores constantes y operadores aritméticos.

Los operadores aritméticos  validos en SQL son la suma, resta, multiplicación, división. Se puede usar operadores aritméticos en cualquier cláusula de una sentencia SQL  a excepción de la cláusula FROM.

La consulta
SELECT
   employee_id
  ,first_name
  ,hire_date
  ,salary
  ,salary + 1000
FROM hr.employees;
Tiene como resultado:




Precedencia de Operadores
Los operadores aritméticos tienen un orden de ejecución en una expresión aritmética, si la expresión aritmética tiene más de un operador diferente, debemos tener en cuenta las reglas de precedencia de los operadores aritméticos
a)      La multiplicación y división ocurren antes de una suma o una resta.
b)      Los operadores de la misma prioridad se evalúan dependiendo de la posición donde estén, izquierda o derecha.
c)       Los paréntesis son usados  para sobrescribir la regla de precedencia de los operadores aritméticos.

d)      Recuerde, lo que está en paréntesis se evalúa primero.

Encabezados o títulos de columnas por defecto


En SQL Developer:
a)      Alineación del encabezado por defecto: Alineado a la izquierda.
b)      Por defecto el encabezado de cada columna se muestra en mayúscula.

SQL Plus:
a)      Los encabezados o títulos de los tipos de datos Carácter y Fecha están alineados a la izquierda.
b)      El encabezado o título del tipo de dato numérico está alineado a la derecha.
c)       Por defecto el encabezado de cada columna se muestra en mayúscula.
La consulta en SQL Developer
SELECT
   employee_id
  ,first_name
  ,hire_date
  ,salary
FROM hr.employees;
Tiene como resultado:



Notemos la alineación de los encabezados, siempre está a la izquierda y en mayúscula.
Para los encabezados o títulos de cada columna, existe la posibilidad de cambiar o modificar con alias, mostrarlos o hacer que se vean en minúsculas, mayúsculas o mayúscula-minúscula.


miércoles, 23 de julio de 2014

Escribiendo una sentencia SQL

Para escribir o editar una sentencia SQL debemos tener en cuenta los siguientes puntos:
Las sentencias SQL no son case sensitive
Se pueden digitar en una o varias líneas
Las palabras clave no se pueden abreviar o dividir en líneas
Las clausulas (SELECT, FROM WHERE GROUP BY, ORDER BY) generalmente son separadas en líneas.
La sangría se utiliza para mejor la lectura de la sentencia.
Usando SQL Developer, en sentencias SQL, es opcional terminar  la sentencia con punto y coma (;), si tiene varias sentencias en una hoja de trabajo, es requerido terminarlas con punto y coma (;).
En SQL Plus es requerido terminar las sentencias SQL con  punto y coma (;)
En SQL Developer se pueden ejecutar los scripts o sentencias SQL seleccionando el script y pulsar la tecla F5 o si está manejando el punto y coma (;)y tiene varias sentencias en la misma hoja de trabajo, se puede posicionar sobre el segmento  del script que desea ejecutar  y pulsar F9.

En SQL Plus las sentencias se ejecutan cuando se termina la sentencia usando al final punto y coma (;), al utilizar o pulsar Enter se ejecuta.