Usando Sentencia Select Para Recuperar Datos Desde Las Tablas

23
 DD2201 MODEL AMIENTO DE BASE DE DA T  DD2201 MODEL AMIENTO DE BASE DE DA T sando Sentencia SELECT para ecuperar Datos desde las Talas Escuela de In!or"#tica $ Teleco"unicaciones

description

usando sentencias

Transcript of Usando Sentencia Select Para Recuperar Datos Desde Las Tablas

Presentacin de PowerPoint

MDD2201 MODELAMIENTO DE BASE DE DATOSUsando Sentencia SELECT para Recuperar Datos desde las TablasEscuela de Informtica y Telecomunicaciones1Unidad de Aprendizaje N3Implementacin del modelo en una Base de Datos

Aprendizaje Esperado :CONSTRUYE SENTENCIAS EN LENGUAJE SQL PARA VISUALIZAR INFORMACIN ALMACENADA EN LAS TABLAS DE LA BASE DE DATOS.

Objetivos de la ClaseUtilizar sentencia SELECT bsica para mostrar datos desde las Tablas de la Base de Datos.Utilizar operadores matemticos y de concatenacin en una sentencia SELECT.Utilizar Alias para asignar nombres lgicos a las columnas y expresiones obtenidas en una sentencia Select.Mostrar la informacin en un orden especfico.

Capacidades de las Sentencias SELECTPROYECCINSELECCINJOIN Tabla 1 Tabla 1Tabla 1 Tabla 2

Capacidades de las Sentencias SELECTUna sentencia SELECT recupera (muestra) informacin desde la Base de Datos. Con una sentencia SELECT se pueden:Elegir las columnas de la tabla que retornar la consulta o query (Proyeccin).Elegir las filas de la tabla que retornar la query (Seleccin). Elegir los datos que estn almacenados en diferentes tablas especificando la unin entre ellas, generalmente ser por las columnas de tipo Claves Forneas (Join).

4Seleccionando Todas las ColumnasSELECT permite mostrar una o ms de las tablasSintaxis:SELECT * | { [ DISTINCT ] columna|expresin [alias],...}FROM tabla[WHERE condicin][ORDER BY criterio_orden];

Seleccionando Todas las ColumnasSintaxis:SELECT es la clusula que especifica una o ms columnas que se desean mostrar.*: selecciona todas las columnas.DISTINCT: permite que los valores duplicados de las columnas se muestren una vez.columna|expresin : selecciona el nombre de la columna o expresin.alias: da un nombre de salida a la columna seleccionada (nombre lgico).FROM tabla : especifica la tabla que contiene las columnas que se desean mostrar.WHERE condicin : permite mostrar las filas que cumplan con la condicin.ORDER BY criterio_orden : permite mostrar la informacin ordenada segn el criterio de orden especificado.

5Seleccionando Todas las ColumnasEjemplo: . .. ... . .. ...

SELECT * FROM departments;

Seleccionando Todas las ColumnasSe pueden seleccionar todas las columnas de datos de una tabla usando un asterisco (*) a continuacin de la palabra SELECT.

6Seleccionando Columnas EspecficasEjemplo.. ... ... ..... ..

SELECT department_id, location_idFROM departments;

SELECT location_id, department_id FROM departments;

Seleccionando Columnas EspecficasSe puede usar la sentencias SELECT para mostrar ciertas columnas de una tabla especificando el nombre de las columnas separadas por coma.En la clusula SELECT se especifica las columnas que contienen los datos que se desean mostrar y en el orden que se desea que aparezcan en la salida.

7Usando Operadores AritmticosPara efectuar clculos con los datos de las tablas se debe usar expresiones aritmticas.Una expresin aritmtica puede contener nombre de columnas, constantes de valores numricos y operadores aritmticos.Los operadores aritmticos se pueden usar en cualquier clusula de una sentencia DML excepto en la clusula FROM.Los operadores que se pueden utilizar en una sentencia SQL son:OPERADORDESCRIPCIN+Suma-Resta*Multiplicacin/Divisin

Usando Operadores AritmticosSi se desean efectuar clculos con los datos almacenados en las tablas se debe usar expresiones aritmticas.Una expresin aritmtica puede contener nombre de columnas, constantes de valores numricos y operadores aritmticos.Se puede utilizar operadores aritmticos en cualquier clusula de una sentencia DML excepto en la clusula FROM.Con las columnas que poseen tipos de datos DATE y TIMESTAMP slo se pueden usar los operador de suma y resta.

8Usando Operadores AritmticosEl orden de prioridad de los operadores es la siguiente:

La multiplicacin y la divisin se ejecutan antes que la suma y resta.En los operadores con igual prioridad se ejecutan desde izquierda a derecha.Se puede evitar cumplir esa prioridad usando parntesis; el interior de los parntesis es lo que se ejecuta primero.Cuando una expresin aritmtica se calcula sobre valores NULOS (NULL) el resultado de la expresin es siempre NULO (NULL).

9Usando Operadores AritmticosEjemplo . .

SELECT last_name, salary, salary + 300FROM employees;

Usando Operadores AritmticosEn el ejemplos, la sentencia muestra el apellido paterno, salario y salario ms 300 de todos los empleados que existen el tabla EMPLOYEES.

10Usando Operadores AritmticosEjemplo .. ... .. ...

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

Usando Operadores AritmticosEn el ejemplo, la sentencia muestra el apellido paterno, salario y el resultado de multiplicar el valor del salario por 12 y al valor obtenido de esa multiplicacin sumarle 100. Por orden de prioridad de los operadores aritmticos primero se resuelve la multiplicacin y posteriormente la suma.

11Usando Operadores AritmticosEjemplo .. ... .. ...

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

Usando Operadores AritmticosPara cambiar el orden de prioridad en que se resuelven los operados, se deben utilizar parntesis. Por lo tanto en este ejemplo, la sentencia muestra el apellido paterno, salario y el resultado de multiplicar por 12 el valor obtenido de la suma del salario ms 100.

12Operaciones con valores NULOSEjemplo .. ... .. ...

.. ... .. ...SELECT last_name, salary, commission_pct , 12*salary*commission_pctFROM employees;

Operaciones con valores NULOSUn Nulo en un valor no asignado, desconocido. Un Nulo no es lo mismo que un cero o espacio, ya que el cero es un valor y el espacio es uncarcter.Si el valor de cualquier columna en una expresin aritmtica es Nulo el resultado es Nulo tal como se muestra en el ejemplo.

13Definiendo Columnas AliasDebe ir entre doble comillas si posee espacios, caracteres especiales o es case-sensitiveRenombra una columnaVa a continuacin del nombre de columna o expresintil cuando se efectan clculosSe muestran en lugar del nombre real de la columna o expresinCOLUMNAS ALIASDefiniendo Columnas AliasUn Alias renombre una columna (su nombre) seleccionada cuando es mostrada. En otras palabras, ya no saldr como cabecera, en el informe de salida, el nombre real de la columna que se est seleccionando sino que se mostrar como nombre el Alias dado a la columna real.Es til cuando en una sentencia SQL se efectan clculos. Va inmediatamente a continuacin del nombre de columna de la tabla.Opcionalmente se puede usar la palabra reservada AS entre el nombre de la columna y su Alias.Se requiere utilizar doble comilla si el Alias contiene espacios, caracteres especiales o si debe ser case-sensitive.14Definiendo Columnas AliasEjemplo

.. . .. .

.. . .. . SELECT last_name AS nombre , commission_pct commFROM employees;

Definiendo Columnas AliasEn el ejemplo, la sentencia muestra el apellido del empleado pero como cabecera en el informe ya no aparecer el nombre de la columna que contiene esedato en la tabla EMPLOYEES (last_name) sino que aparecer NOMBRE. Adems la sentencia muestra el porcentaje de comisin que tienen los empleados(columna commission_pct) con el nombre COMM.

15Definiendo Columnas AliasEjemplo:

.. .. . SELECT last_name, salary "Salario" , salary* 1.25 "Salario Aumentado en 25%"FROM employees;

Definiendo Columnas AliasLa sentencia del ejemplo muestra el apellido, el salario y el salario aumentado en 25% para cada empleado. Como cabecera en el informe aparecer elnombre de la columna last_name, para el salario aparecer Salario y para el resultado de la expresin que calcula el salario aumentado en 25% aparecercon el nombre Salario Aumentado en 25%.

16Usando Operador de ConcatenacinEjemplo:

........

SELECT last_name || ' pertenece al departamento ' || department_id "Detalle de Empleados"FROM employees;

Usando Operador de ConcatenacinEl operador de concatenacin || (dos barras verticales) une columnas y/o cadena de caracteres literales en otra columna. Esta columna resultante es una EXPRESIN de tipo caracter.Un literal es un Caracter (letra, espacio en blanco o smbolo especial), un Nmero o Fecha que est incluida en la sentencia SELECT.Las fechas y los literales de tipo caracteres que se desean concatenar deben ser escritos entre comillas simples.Cada cadena de caracteres es una salida por cada fila recuperada de la tabla.En el ejemplo, la sentencia muestra el apellido de los empleados unido al literal pertenece al departamento (incluidos espacios en blancos al comienzo y final) y a la identificacin del departamento de cada empleado. La expresin que se obtiene de la concatenacin se visualizar con el alias Detalle de Empleados.

17Usando Operador de ConcatenacinEjemplo:

..........

SELECT 'El salario mensual del empleado ' || last_name || ' es de $ ' || salary salariosFROM employees;

Usando Operador de ConcatenacinLa sentencia del ejemplo muestra el Literal El salario mensual del empleado unido al apellido de los empleados seguido del literal es de $ unido alsalario de cada empleado. La expresin que se obtiene de la concatenacin ser mostrada con el nombre de encabezado (alias) SALARIOS.18Valores Duplicados en las ColumnasEjemplo:

......

SELECT department_idFROM employees;

SELECT DISTINCT department_idFROM employees;

Valores Duplicados en las ColumnasPor defecto cuando en las queries se obtienen los valores de las columnas que NO forman parte de la clave primaria se visualizan todas las filas incluyendo las duplicadas. Para eliminar las filas duplicadas en el resultado de la sentencia SELECT se debe incluir la palabra DISTINCT inmediatamente despus de la palabra SELECT.Por ejemplo, en la tabla EMPLOYEES un mismo cdigo de departamento se puede repetir varias veces ya que en ese departamento pueden trabajar variosempleados. Por ello, en una sentencia SELECT normal si queremos mostrar solo los departamentos existentes se mostrarn todos los departamentos queexisten en la tabla incluyendo los duplicados. Utilizando DISTINCT como parte de la sentencia SELECT se mostrarn una sola vez aquellos cdigosde departamentos que se repiten en la tabla.En el ejemplo, la sentencia de la izquierda se muestra TODOS los cdigos de departamentos existentes en la tabla EMPLOYEES. En la sentencia de la derecha, utilizando DISTINCT se mostran los DIFERENTES cdigos de departamentos existentes en la tabla EMPLOYEES, los departamentos que se repiten se muestran una sola vez.

19Ordenando las Filas RecuperadasEjemplo .. .. .. ..

.... .... ....

SELECT last_name, job_id, hire_dateFROM employeesORDER BY hire_date;

SELECT last_name, job_id, hire_dateFROM employeesORDER BY hire_date DESC;

Ordenando las Filas RecuperadasEl orden de las filas recuperadas en una query es indefinido. Para ordenar las filas recuperadas se debe usar la clusula ORDER BY.ASC: ordena en forma ascendente (defecto).DESC: ordena en forma descendente.La clusula ORDER BY debe ir al final de la sentencia SELECT. Como condicin de ordenamiento se puede especificar una expresin, un alias o una columna.En el ejemplo, las sentencias muestran el apellido, identificacin del trabajo y fecha de contrato de los empleados ordena por fecha de contrato. La sentencia de la izquierda muestra la informacin ordenada en forma ascendente y la sentencia de la derecha la muestra ordenada en forma descendente.

20Ordenando las Filas RecuperadasEjemplo. ... ... . . ...

SELECT employee_id, last_name, salary*12 "Salario Anual"FROM employeesORDER BY "Salario Anual" ;

Ordenando las Filas RecuperadasLa sentencia del ejemplo muestra la identificacin, apellido y el salario multiplicado por 12 de cada empleado. Al resultado de la expresin de multiplicar el salario por 12 se le da el alias Salario Anual. La informacin se muestra ordenada en forma ascendente por el resultado de la multiplicacin usando el alias.

21Ordenando las Filas RecuperadasEjemplo . ... . ...

SELECT last_name, department_id, salaryFROM employeesORDER BY department_id, salary DESC;

Ordenando las Filas RecuperadasEn el ejemplo, la sentencia muestra el apellido, identificacin del departamento y salario de cada empleado. La informacin se mostrar ordenada enforma ascendente por departamento y por cada departamento se ordenar en forma descendente por salario.22Resumen de la ClaseSe explic cmo utilizar la sentencia SELECT bsica para mostrar datos desde las Tablas de la Base de Datos.Se explic el uso de los operadores aritmticos y de concatenacin en una sentencia SELECT.Se explic cmo utilizar Alias para asignar nombres lgicos a las columnas y expresiones obtenidas en una sentencia Select.Cmo mostrar la informacin en un orden especfico.