•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;
Expresiones Aritméticas
/*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.
FROM table;
En la sintaxis:
- SELECT: Selecciona la lista de columnas a consultar.
- *: Se usa para que en la consulta se muestren todos los campos/columnas de la tabla.
- DISTINCT : suprime los duplicados(omite registros duplicado).
- column|expression: Columnas o expresiones a mostrar en la consulta.
- alias: Nombre personalizado que se le quiere asignar al campo o columna.
- FROM: Especifica la o las tablas que contienen las columnas a mostrar en la consulta.
- table: Es la tabla que se esta consultando.
- |: Es equivalente a 'o', eje: esto o aquello = esto | aquello.
- {}: Agrupa objetos similares.
- []: Todo lo que esta entre corchetes es Opcional.
SELECT *
FROM departments;
/*se muestran todos los campos o columnas de la tabla en cuestión(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/*Aquí solo enumeré 2 columnas de la tabla*/
_____________________________________________________________________________________
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*/
/*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+100)
FROM employees;
/*muestra el apellido, salario y el salario más 300 por 12*/
/*muestra el apellido, salario y el salario más 300 por 12*/
---
OJO: El uso de paréntesis es muy importante, este 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 NULL o PRIMARY 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*/
/*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*/
/*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 o expresiones enlazadas se 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 consultas una tabla que tiene registros con columnas con el mismo valor(campos sin restricciones como UNIQUE o 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.*/
/*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.*/
/*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
Link con un Archivo de ejercicios de práctica!!!
_____________________________________________________________________________________
Fuente: Base de Datos Oracle 10g: Conceptos Fundamentales de SQL 1