les01 escribiendo sentencias select sql basicas

22
ESCRIBIENDO SENTENCIAS SELECT SQL BASICAS ESCRIBIENDO SENTENCIAS SELECT SQL BASICAS OBJETIVOS OBJETIVOS Después de completar esta lección, estará en Después de completar esta lección, estará en la capacidad de hacer lo siguiente: la capacidad de hacer lo siguiente: Listar las capacidades de sentencias SELECT Listar las capacidades de sentencias SELECT SQL. SQL. Ejecutar una sentencia SQL básica. Ejecutar una sentencia SQL básica. Diferenciar entre sentencias SQL y comandos Diferenciar entre sentencias SQL y comandos iSQL*Plus iSQL*Plus

Upload: arwagedon

Post on 10-Jun-2015

2.503 views

Category:

Documents


2 download

TRANSCRIPT

ESCRIBIENDO SENTENCIAS SELECT SQL BASICAS OBJETIVOS

Despus de completar esta leccin, estar en la capacidad de hacer lo siguiente: Listar las capacidades de sentencias SELECT SQL. Ejecutar una sentencia SQL bsica. Diferenciar entre sentencias SQL y comandos iSQL*Plus

CAPACIDADES DE SENTENCIAS SQLUna sentencia SELECT recupera informacin desde la base de datos. Usando sentencias SELECT, podemos hacer lo siguiente:

Proyeccin: Podemos usar la capacidad de proyeccin en SQL para elegir las columnas en un tabla que queremos retornar par nuestra consulta. Podemos elegir las columnas que sean necesarias.

Seleccin: podemos usar la capacidad de seleccin 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.

Unin (Joining): Podemos usar la capacidad de unin en SQL para traer datos que estn almacenados en diferentes tablas creando un enlace entre ellas.

SENTENCIA SELECT BASICA

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

SELECT identifica que columnas FROM identifica cual tabla

En esta forma simple, una sentencia SELECT debe incluir lo siguiente:

Una clusula SELECT, la cual especifica las columnas a ser mostradas Una clusula FROM, la cual especifica la tabla que contiene las columnas listadas en la clusula SELECT.

SENTENCIA SELECT BASICASELECT * | {[DISTINCT] column | expresin [alias],} FROM table; En la sintaxis:

SELECT * DISTINCT Column | expresin Alias FROM table

es una lista de una o mas columnas selecciona todas las columnas suprime valores duplicados seleccionar columnas o expresiones da a las columnas seleccionadas diferentes ttulos especifica la tabla conteniendo las columnas

SELECCIONANDO TODAS LAS COLUMNAS

SELECT * FROM departments; Podemos mostrar todas las columnas de datos en una tabla poniendo despus de las palabra clave SELECT un asterisco (*) Tambin podemos mostrar todas las columnas en la tabla listando todas las columnas despus de la palabra clave SELECT.

SELECCIONANDO COLUMNAS ESPECIFICAS

SELECT department_id, location_id FROM departments; Podemos usar la sentencia SELECT para mostrar columnas especficas de la tabla, especificando los nombres de columna separados por comas. En la clusula SELECT, especificamos las columnas que queremos, en el orden en el cual queremos que ellas aparezcan en la salida.

ESCRIBIENDO SENTENCIAS SQLUsando las siguientes reglas simples, podemos construir sentencias validas que son fciles de leer y fciles de editar.

Sentencias SQL no son case sensitive Sentencias SQL pueden escribirse en una o mas lneas Palabras claves no pueden ser abreviadas o divididas entre lneas Las clusulas son usualmente puestas en lneas separadas Indentacion es usada para mejorar la lectura de la sentencia y su edicin. Palabras claves tpicamente son escritas en letras mayscula, el resto de palabras, como el nombre de las tablas y columnas, son ingresadas en letras minsculas.

Ejecutando Sentencias SQL Usando iSQL*Plus, clic en el botn Execute(Ejecutar) para ejecutar el comando o comandos en la ventana de edicin.

TITULOS DE COLUMNAS POR DEFECTO

ISQL*Plus : Justificacin de ttulos por defecto: Centrado

Display de ttulos por defecto: Maysculas

SQL*Plus: Ttulos de columnas de fechas y caracteres son justificadas a la izquierda

Ttulos de columnas numricas son justificadas a la derecha Display de ttulos por defecto: Maysculas.

EXPRESIONES ARITMETICAS

Cree expresiones aritmticas con datos numricos y de fecha, usando operadores aritmticos + * / Suma Substraccin Multiplicacin Divisin

Una expresin aritmtica puede contener nombres de columnas, constantes numricas, y operadores aritmticos. Podemos usar los operadores aritmticos en cualquier clusula de una sentencia SQL, excepto en la clusula FROM. Oracle ignora los espacios en blanco antes y despus de un operador aritmtico.

USANDO OPERADORES ARITMETICOS

SELECT last_name, salary, salary +300 FROM employees;

PRECEDENCIA DE OPERADORES

*

/

+

-

Multiplicacin y divisin toman prioridad sobre adicin y sustraccin Operadores de la misma prioridad son evaluados de derecha a izquierda Parntesis son usados para forzar la evaluacin 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 parntesis 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 carcter 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 algn 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 ARITMETICASExpresiones aritmticas conteniendo un valor nulo (null) se evalan a nulo (null) SELECT last_name,12*salary*commission_pct FROM employees; Si algn valor de una columna en una expresin aritmtica es nulo (null), el resultado es nulo (null) Por ejemplo, si intentamos ejecutar una divisin con cero, obtenemos un error. Sin embargo, si dividimos un nmero por null, el resultado es null o desconocido.

DEFINIENDO UN ALIAS DE COLUMNAUn alias de columna:

Renombra el titulo de una columna Es til con clculos Especificamos el alias despus de la columna en la lista SELECT usando un espacio como separador. Podemos tambin 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 difcil 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 expresin de caracteres. Podemos enlazar columnas a otras columnas, expresiones aritmticas, o valores constantes para crear una expresin de caracteres usando el operador de concatenacin (||)

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 nmero, 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 carcter, 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 DUPLICADASEliminamos filas duplicadas usando la palabra clave DISTINCT en la clusula SELECT. SELECT DISTINCT department_id FROM employees; Para eliminar filas duplicadas en un resultado, debemos incluir la palabra clave DISTINCT en la clusula SELECT inmediatamente despus de la palabra clave SELECT. Podemos especificar mltiples columnas despus del cualificador DISTINCT. El cualificador DISTINCT afecta a todas las columnas seleccionadas, y el resultado es cada distinta combinacin de las columnas.