ESCRIBIENDO SENTENCIAS SELECT SQL BASICAS OBJETIVOS
Después de completar esta lección, estará en la capacidad de hacer lo siguiente: Listar las capacidades de sentencias SELECT SQL. Ejecutar una sentencia SQL básica. Diferenciar entre sentencias SQL y comandos iSQL*Plus
CAPACIDADES DE SENTENCIAS SQL Una sentencia SELECT recupera información desde la base de datos. Usando sentencias SELECT, podemos hacer lo siguiente:
Proyección: Podemos usar la capacidad de proyección en SQL para elegir las columnas en un tabla que queremos retornar par nuestra consulta. Podemos elegir las columnas que sean necesarias.
Selección: podemos usar la capacidad de selección en SQL para elegir las filas en una tabla que queremos retornar en nuestra consulta. Podemos usar varios criterios para restringir las filas que deseamos ver.
Unión (Joining): Podemos usar la capacidad de unión en SQL para traer datos que están almacenados en diferentes tablas creando un enlace entre ellas.
SENTENCIA SELECT BASICA
SELECT * | {[DISTINCT] column | expresión [alias],…} FROM table;
SELECT identifica que columnas
FROM identifica cual tabla
En esta forma simple, una sentencia SELECT debe incluir lo siguiente:
Una cláusula SELECT, la cual especifica las columnas a ser mostradas
Una cláusula FROM, la cual especifica la tabla que contiene las columnas listadas en la cláusula SELECT.
SENTENCIA SELECT BASICA SELECT * | {[DISTINCT] column | expresión [alias],…} FROM table; En la sintaxis:
SELECT
es una lista de una o mas columnas
*
selecciona todas las columnas
DISTINCT
suprime valores duplicados
Column | expresión
seleccionar columnas o expresiones
Alias
da a las columnas seleccionadas diferentes títulos
FROM table
especifica la tabla conteniendo las columnas
SELECCIONANDO TODAS LAS COLUMNAS
SELECT * FROM departments; Podemos mostrar todas las columnas de datos en una tabla poniendo después de las palabra clave SELECT un asterisco (*) También podemos mostrar todas las columnas en la tabla listando todas las columnas después de la palabra clave SELECT.
SELECCIONANDO COLUMNAS ESPECIFICAS
SELECT department_id, location_id FROM departments; Podemos usar la sentencia SELECT para mostrar columnas específicas de la tabla, especificando los nombres de columna separados por comas. En la cláusula SELECT, especificamos las columnas que queremos, en el orden en el cual queremos que ellas aparezcan en la salida.
ESCRIBIENDO SENTENCIAS SQL Usando las siguientes reglas simples, podemos construir sentencias validas que son fáciles de leer y fáciles de editar.
Sentencias SQL no son case sensitive
Sentencias SQL pueden escribirse en una o mas líneas
Palabras claves no pueden ser abreviadas o divididas entre líneas
Las cláusulas son usualmente puestas en líneas separadas
Indentacion es usada para mejorar la lectura de la sentencia y su edición.
Palabras claves típicamente son escritas en letras mayúscula, el resto de palabras, como el nombre de las tablas y columnas, son ingresadas en letras minúsculas.
Ejecutando Sentencias SQL Usando iSQL*Plus, clic en el botón Execute(Ejecutar) para ejecutar el comando o comandos en la ventana de edición.
TITULOS DE COLUMNAS POR DEFECTO
ISQL*Plus : Justificación de títulos por defecto: Centrado
Display de títulos por defecto: Mayúsculas
SQL*Plus: Títulos de columnas de fechas y caracteres son justificadas a la izquierda
Títulos de columnas numéricas son justificadas a la derecha
Display de títulos por defecto: Mayúsculas.
EXPRESIONES ARITMETICAS
Cree expresiones aritméticas con datos numéricos y de fecha, usando operadores aritméticos + * /
Suma Substracción Multiplicación División
Una expresión aritmética puede contener nombres de columnas, constantes numéricas, y operadores aritméticos. Podemos usar los operadores aritméticos en cualquier cláusula de una sentencia SQL, excepto en la cláusula FROM. Oracle ignora los espacios en blanco antes y después de un operador aritmético.
USANDO OPERADORES ARITMETICOS
SELECT last_name, salary, salary +300 FROM employees;
PRECEDENCIA DE OPERADORES
*
/
+
-
Multiplicación y división toman prioridad sobre adición y sustracción Operadores de la misma prioridad son evaluados de derecha a izquierda Paréntesis son usados para forzar la evaluación de prioridad y para clarificar sentencias.
PRECEDENCIA DE OPERADORES
SELECT last_name, salary, 12*salary + 100 FROM employees; USANDO PARENTESIS SELECT last_name, salary, 12*(salary + 100) FROM employees; Podemos anular las reglas de precedencia usando paréntesis para especificar el orden en el cual los operadores son ejecutados.
DEFINIENDO VALORES NULOS
Un nulo(null) es un valor que no esta disponible, no esta asignado, desconocido o inaplicable Un nulo(null) no es lo mismo que cero o un espacio en blanco. Cero es un numero, y un espacio es un carácter SELECT last_name, job_id, salary, commission_pct FROM employees; Si una fila carece de un valor para una columna particular, se dice que este valor es nulo(null) Columnas de algún tipo de dato puede contener nulos. Sin embargo, algunos constraints, NOT NULL y PRIMARY KEY, previenen del uso de valores nulos en una columna
VALORES NULOS EN EXPRESIONES ARITMETICAS Expresiones aritméticas conteniendo un valor nulo (null) se evalúan a nulo (null) SELECT last_name,12*salary*commission_pct FROM employees; Si algún valor de una columna en una expresión aritmética es nulo (null), el resultado es nulo (null) Por ejemplo, si intentamos ejecutar una división con cero, obtenemos un error. Sin embargo, si dividimos un número por null, el resultado es null o desconocido.
DEFINIENDO UN ALIAS DE COLUMNA Un alias de columna:
Renombra el titulo de una columna
Es útil con cálculos
Especificamos el alias después de la columna en la lista SELECT usando un espacio como separador.
Podemos también usar la palabra clave AS ,que es opcional, entre el nombre de la columna y el alias
Requiere comillas dobles (“ “) si este contiene espacios o caracteres especiales (#,$) o es case sensitive.
Cuando mostramos el resultado de una consulta, ISQL*Plus normalmente usa el nombre de la columna seleccionada como el titulo de la columna. Este titulo puede no ser descriptivo y puede ser difícil de entender Podemos cambiar el titulo de una columna usando alias de columnas.
USANDO ALIAS DE COLUMNAS
SELECT last_name AS Nombre, commission_pct comm FROM employees;
SELECT last_name “Nombre”, salary*12 “Salario Anual” FROM employees;
OPERADOR DE CONCATENACION
Un operador de concatenation:
Concatena columnas o cadenas de caracteres a otras columnas
Se representa por dos barras verticales (||)
Crea una columna resultante que es una expresión de caracteres.
Podemos enlazar columnas a otras columnas, expresiones aritméticas, o valores constantes para crear una expresión de caracteres usando el operador de concatenación (||)
USANDO EL OPERADOR DE CONCATENACION
SELECT last_name || job_id AS “Empleados” FROM employees;
LITERALES DE CADENA DE CARACTERES
Un literal es un caracter, un número, o una fecha incluido en la lista SELECT.
Los valores de literales de fechas y caracteres deben ser encerrados entre comillas simples(‘’)
Cada cadena de caracteres es mostrada una vez por cada fila retornada
Un literal es un carácter, un numero, o una fecha que es incluido en la lista SELECT y que no es un nombre de columna o un alias de columna. Es impreso por cada fila retornada.
USANDO LITERALES DE CADENAS DE CARACTERES
SELECT last_name || ‘ es un ‘ || job_id AS “Detalle de Empleado” FROM employees; SELECT last_name || ‘ : 1 mes de salario= ‘ || salary Mensualidad FROM employees;
FILAS DUPLICADAS
Las consultas muestran por defecto todas las filas, incluyendo filas duplicadas SELECT department_id FROM employees; Al menos que indiquemos lo contrario, iSQL*Plus muestra el resultado de una consulta sin eliminar filas duplicadas.
ELIMINANDO FILAS DUPLICADAS Eliminamos filas duplicadas usando la palabra clave DISTINCT en la cláusula SELECT. SELECT DISTINCT department_id FROM employees; Para eliminar filas duplicadas en un resultado, debemos incluir la palabra clave DISTINCT en la cláusula SELECT inmediatamente después de la palabra clave SELECT. Podemos especificar múltiples columnas después del cualificador DISTINCT. El cualificador DISTINCT afecta a todas las columnas seleccionadas, y el resultado es cada distinta combinación de las columnas.