consulta de datoscursos.iplacex.cl/ced/cdd2008/s1/me_1.pdf · consultas. actualidad de mi base de...

43
www.iplacex.cl CONSULTA DE DATOS UNIDAD Nº I Construyendo Consultas Simples

Upload: others

Post on 25-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl

CONSULTA DE DATOS UNIDAD Nº I

Construyendo Consultas Simples

Page 2: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 2

Desarrollo

En este módulo vamos a iniciar los primeros pasos de entendimiento a mi base de datos

y cuál es la forma que me puedo comunicar con él.

¿Existe alguien que cuida de la Base de datos?

¿Alguna vez has creado un documento, agregado información en él y luego organizar en

qué carpeta de tu computador debería estar? Si la información y los documentos se

encuentran bien organizados en tu computador, significa que será más fácil acceder a la

información que busques la próxima vez. A esta simple acción se le conoce como

administrar.

Esa misma acción es lo que hace un administrador de base de datos o también conocido

como DBA, quien tiene como rol principal cuidar la integridad y las buenas prácticas con

respecto a la base de datos.

Pero recuerda que cada usuario puede trabajar con la información que almacena en

dichas carpetas.

Las principales funciones de un DBA:

-Crear y configurar una base de datos relacional.

-Ser responsable de la integridad de los datos y su disponibilidad.

-Diseñar, desplegar y monitorear los servidores de la base de datos.

Como tenemos claro su importante rol en la base de datos, recuerda que cada vez que

tengamos problemas con la base de datos de una empresa en la que estamos

trabajando, debemos contactar con él para que nos pueda ayudar.

¿Cómo hacer una búsqueda?

Para realizar la búsqueda en mi base de datos vamos a hacer el siguiente ejercicio

para entender cómo trabaja “MI BASE DE DATOS”.

Una base de datos consta de un conjunto de información que se encuentra

almacenada en una estructura de fichero.

SEMANA 1

Page 3: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 3

Para realizar una búsqueda, debes hacer click en el ícono de lupa del escritorio de tu

computador (en la parte inferior izquierda de la imagen) e ingresar el nombre de lo que

deseas buscar.

Observa que el computador filtra entre todos sus archivos, y encuentra lo que estás

buscando. Recuerda que cuando quieres hacer una búsqueda, debe existir un lenguaje

en común con el que puedas comunicarte con el computador. En este caso, usamos el

lenguaje español.

Lenguaje específico

Mi Base de Datos tiene un lenguaje específico para que podamos interactuar con él.

Ese lenguaje se le conoce como:

SQL (Structured Query Language) o también llamado como lenguaje de consultas

estructuradas.

Page 4: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 4

SQL

Para entender mejor el concepto de SQL, explicaremos en que consiste.

SQL es un lenguaje estándar e interactivo de acceso a base de datos relacionales que

nos permite especificar diversos tipos de operaciones en ellas, gracias a la utilización de

álgebra y de cálculos relacionales, SQL brinda la posibilidad de realizar consultas con el

objetivo de recuperar información de las base de datos de manera sencilla y efectiva.

Las consultas toman la forma de un lenguaje de comandos que permite eliminar,

seleccionar, insertar y actualizar datos. Cabe destacar que para efectuar esos comandos

debemos averiguar la ubicación en donde se encuentra esos datos.

Donde inicia Mi Base de Datos

Todo nació hace muchos años…

Todo este concepto nace en una biblioteca antigua donde ya existían millones de

registros almacenados en libros. Esos libros contaban con datos sobre algunas cosechas

y censos de la población.

Lamentablemente su búsqueda era lenta y se demoraba más de lo que ellos pensaban.

Por estos motivos se vio la necesidad de almacenar gran cantidad de información y con

la aparición de los primeros computadores se vio la necesidad crear una base de datos.

Les presento al señor Herman Hollerith fue el creador de la

máquina automática de tarjetas perforadas, también creó la

máquina censadora.

En los años 50’, se crea las citas magnéticas que automatizaban

la información y ofrecían posibilidad de hacer respaldos.

Su desventaja

Solo se podía hacer de forma secuencial, es decir, uno a uno.

En los años 60’, se dio inicio a las primeras bases de datos

llamadas en red y jerárquicas.

Page 5: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 5

Larry Ellison: Desarrolló el Relational Software System que hoy en día se conoce como

Oracle Corporation, gracias a esta compañía nació el Sistema de Gestión de Base de

Datos Relacionales (SGBDR o RDBMS).

Cabe destacar que Oracle es uno de los Sistema de Gestión de Base de Datos más

completos que existen, aunque son de uso corporativo.

Edgar Frank Codd: En los años 70’s se definió el modelo relacional en donde su creador

Edgar Frank Codd publicó una serie de reglas para los sistemas de datos relacionales.

Donald D. Chamberlin: El señor Donald D. Chamberlin fue uno de los principales

diseñadores de la especificación del lenguaje de SQL.

Page 6: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 6

En los años 80’ SQL empezó a ser estándar en

otros Sistema de Gestión de Base de Datos, ya que

su programación era sencilla.

En los años 90’. Aparece una nueva generación del

Sistema de Gestión de Base de Datos. En esta

década aparecen otros tipos de base de datos,

también se presenta la posibilidad de mezclar los

lenguajes SQL y XML para realizar consultas.

Actualidad de mi Base de Datos

Hoy en día, los Sistemas de Gestión de Bases de Datos Relacionales han sido liderados

por grandes, como IBM, Oracle y Microsoft.

Page 7: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 7

Conociendo mi entorno de trabajo

Vamos a conocer el ambiente de trabajo en consultas de datos. Empezaremos instalando

y configurando el Sistema Gestor de Bases de Datos Oracle.

Instalaremos la versión 11g Express Edition, versión gratuita.

El objetivo de esta versión es proporcionar un gestor de base de datos (con ciertas limitaciones) para un uso más bien “amateur”, si necesitas algo más potente existen versiones empresariales de pago.

Características de esta versión:

Se puede distribuir de forma gratuita. Una base de datos por máquina. Puede usar hasta 11 GB de memoria para almacenar datos. Por lo tanto su

tamaño es limitado. La cantidad máxima de RAM que puede utilizar es de 1 GB. Disponible para Windows y Linux. El soporte funciona a través de foros y comunidades, algunas supervisadas por

gente que trabaja en Oracle y por expertos.

Proceso de Instalación

1. Abre tu navegador:

Page 8: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 8

2. Ingresa a la página:

https://www.oracle.com/database/technologies/xe-prior-releases.html

3. Haz click en la versión de Oracle 11g que corresponda al sistema operativo y

arquitectura de tu equipo:

Page 9: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 9

4. Acepta los términos y condiciones:

5. Debes tener una cuenta de Oracle.

Page 10: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 10

6. Al iniciar la sesión, comenzará la descarga:

7. Luego de descargar y guardar el archivo, inicia la instalación. Extrae el archivo

que se ha descargado:

Page 11: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 11

8. Abre el instalador haciendo click en setup.exe:

9. Sigue los pasos de instalación:

Page 12: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 12

10. Debes ingresar una contraseña. Debes escoger una password que te sea fácil

recordar, ya que se requerirá para configurar la cuenta administrador (Usuario

SYSTEM) más adelante. Luego continúa con los pasos hasta que finalice la

instalación:

11. El ícono del programa aparecerá en tu escritorio al finalizar la instalación:

Page 13: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 13

Conociendo mi entorno de trabajo

Descargaremos e instalaremos SQL Developer, esta herramienta nos permitirá trabajar

con la base de datos instalada anteriormente.

1. Abre tu navegador e ingresa a la página

https://www.oracle.com/database/technologies/

2. Ingresa a Database Services, Solutions and Features. Luego selecciona

Application Development.

Page 14: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 14

3. Haz click en donde dice SQL Developer:

4. Haz click en la versión de SQL Developer que corresponda al sistema operativo y

arquitectura de tu equipo:

Page 15: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 15

5. Abre Acepta los términos y condiciones:

6. Abre la carpeta extraída y ejecuta sqldeveloper.exe

Page 16: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 16

Esta es la página inicial de Oracle SQL Developer.

1. Lo primero que haremos será crear una conexión. Para eso, haz click en el

símbolo + que se encuentra en la parte superior izquierda:

Page 17: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 17

2. Deberás ingresar un nombre para la conexión, usuario y una contraseña:

- Nombre de la conexión: Nombre con que figura en el panel de conexiones

(panel izquierdo).

- Nombre de Usuario: Nombre del usuario con el cual nos conectaremos a la

base de datos. En este caso conectaremos con una cuenta de administrador

(SYSTEM).

- Contraseña: Usaremos la contraseña que dimos al momento de instalar Oracle

11g Express Edition.

Page 18: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 18

3. En esta asignatura trabajaremos con el usuario HR (Human Resources), un

usuario de prueba de Oracle que posee datos ficticios que nos permitirán practicar

nuestras sentencias SQL. Por defecto, este usuario no posee contraseña y por

ende, su cuenta se encuentra bloqueada.

Así que una vez conectados como SYSTEM, ingresaremos los siguientes

comandos en la Hoja de Trabajo SQL (Hoja blanca central):

Con el comando ALTER USER HR IDENTIFIED BY iplacex;

Estamos modificando una cuenta de usuario existente (HR) y asignando una

contraseña (iplacex –> reemplazar por la contraseña que desees, pero debes

recordarla con facilidad). Luego, seleccionamos la línea de comando y apretamos

el botón ejecutar (símbolo play de color verde). Se desplegará una ventana inferior

con el mensaje:

User HR alterado.

Vamos por buen camino…

Page 19: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 19

4. Ya que se ha modificado HR, debemos crear una nueva conexión. Haz click en el

símbolo + que se encuentra en la parte superior izquierda:

5. Debes volver a colocar Nombre de Conexión, Nombre de Usuario y Contraseña.

6. Por último, nos encontramos en el ambiente de trabajo de la cuenta HR:

Page 20: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 20

Conceptos:

SQL está compuesto por comandos, cláusulas, operadores y funciones de

agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y

manipular las bases de datos.

Estructuras de SQL

DDL: Data Definition Language, que permite crear y definir nuevas bases de datos,

campos, etc.

DCL: Data Control Language, que se encarga de definir los permisos sobre los datos.

DML: Data Manipulation Language, permite generar consultas para ordenar, filtrar y

extraer datos de la base de datos.

Data Manipulation Language

El DML o también conocido como Data Manipulation Language, permite la

manipulación de los datos contenidos en las tablas de una base de datos.

INSERT: Inserción de nuevos elementos.

DELETE: Borrando elementos existentes.

UPDATE: Actualizar elementos existentes.

SELECT: Consultar datos dentro de tablas.

Oracle 11G

Ahora que ya sabemos algunos conceptos básicos, vamos a trabajar ingresando

comandos en la base de datos ORACLE 11g.

Page 21: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 21

Lenguaje de Manipulación de Datos (DML)

Se ejecuta una sentencia DML cuando:

Se agregan filas a una tabla.

Se modifican las filas de una tabla.

Se eliminan filas de una tabla

• Transacciones: conjunto de sentencias DML que se ejecutan en la Base de Datos.

• Estas sentencias retornan el número de filas afectadas.

Agregando una Nueva Fila a una Tabla

Utilizar INSERT para agregar filas a una tabla.

Sintaxis:

INSERT INTO tabla [(columna [, columna...])]

VALUES (valor [, valor...]);

Donde:

• tabla: es el nombre de la tabla en la cual se desean insertar las nuevas filas.

• columna: es el nombre de la columna en la tabla donde se desea ingresar el nuevo

dato.

• valor: es el nuevo valor para la columna.

La nueva fila a insertar debe contener los valores para cada columna de la tabla.

Se deben enumerar o insertar los valores en el orden por defecto de las columnas de la

tabla.

Dado que la nueva fila a insertar en la tabla debe contener los valores para cada columna

se puede omitir listar las columnas en la cláusula INSERT. En este caso, los valores a

insertar deben ser listados de acuerdo al orden que tengan las columnas en la tabla y se

deben asignar todos los valores para las columnas.

Los valores de caracteres y de fecha se deben escribir entre comillas simples.

Page 22: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 22

Ejemplo:

INSERT INTO DEPARTMENTS (department_id, department_name, manager_id,

location_id) VALUES (70, 'Public Relations', 100, 1700);

INSERT INTO DEPARTMENTS VALUES (70, 'Public Relations', 100, 1700);

En el ejemplo, ambas sentencias insertan una nueva fila a la tabla DEPARTMENTS con

el departamento 70. En la primera sentencia se indica en la cláusula INSERT cada

columna de la tabla en donde se insertarán los nuevos valores especificados en la

cláusula VALUES. En la segunda sentencia, sólo se indican los valores a insertar por lo

tanto, se insertarán en el orden por defecto que las columnas tengan en la tabla.

Page 23: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 23

Actualizando Datos en una Tabla

Utilice UPDATE para actualizar datos en las tablas de la Base de Datos.

Sintaxis:

UPDATE tabla

SET columna = valor [, columna = valor, ...]

[WHERE condición];

Donde:

• tabla: es el nombre de la tabla que se desea actualiza.

• columna: es el nombre de la(s) columna(s) de la tabla que se desea actualizar.

• valor: es el valor con el que se actualizará la columna. Puede ser un valor literal,

el nombre de una columna o una subconsulta.

• condición: permite identificar las filas que se desean actualizar. Está compuesta

por nombre de columnas, expresiones, constantes, subconsultas y operadores de

comparación.

Se puede actualizar más de una fila y/o una columna (si es necesario). Si se omite la

cláusula WHERE se actualizan todas las filas.

Ejemplo: Actualización de filas que cumplan con una condición

UPDATE employees

SET salary = salary *1.25

WHERE salary < 5000;

En el primer ejemplo, la sentencia actualiza el salario actual de los empleados en 25%

más del valor que posee. La actualización se efectuará para los empleados cuyo salario

sea menos a 5000.

Page 24: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 24

Ejemplo: Actualización de todas las filas de la tabla

UPDATE employees

SET hire_date = SYSDATE – 2, salary = salary – (salary * 0.085);

En el segundo ejemplo, la sentencia actualiza la fecha de contrato y el salario de TODOS

los empleados. La fecha de contrato se actualiza en dos días menos a la fecha del

sistema y el salario en 8,5% menos del salario actual.

Ejemplo: Actualización de filas que cumplan con una condición

UPDATE employees

SET department_id = 110

WHERE employee_id IN (103, 104);

En el tercer ejemplo se incluye la cláusula WHERE, esto significa que las filas que

cumplen con la condición serán modificadas. La sentencia actualizará el departamento

con el valor 110 para los empleados con identificación 103 o 104.

Page 25: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 25

Eliminando Filas de una Tabla

Utilice DELETE para eliminar filas desde las tablas de la Base de Datos.

Sintaxis:

DELETE [FROM] tabla

[WHERE condición];

Donde:

• tabla: es la tabla que se desea actualizar.

• condición: permite identificar las columnas que se desean eliminar. Está

compuesta de nombre de columnas, constantes, subconsultas y operadores de

comparación.

Si se desean eliminar algunas filas de la tabla se debe incluir la cláusula WHERE.

Ejemplo: eliminando todas las filas de la tabla.

DELETE

FROM EMPLOYEES;

Eliminando todas las filas de la tabla: si se omite la cláusula WHERE se eliminan todas

las filas de la tabla. En el ejemplo, se elimina todas las filas de la tabla EMPLOYEES.

Ejemplo: eliminando filas específicas de la tabla.

DELETE FROM DEPARTMENTS

WHERE department_name = 'Finance';

DELETE EMPLOYEES

WHERE salary BETWEEN 2000 AND 5000;

En el primer ejemplo, se elimina desde tabla DEPARTMENTS la(s) fila(s) cuyo nombre

de departamento sea Finance.

En el segundo ejemplo, se elimina desde tabla EMPLOYEES las filas de los empleados

cuyo salario esté entre los 2000 y 5000.

Page 26: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 26

Seleccionando Todas las Columnas

Utilice SELECT permite mostrar los datos de las columnas de las tablas.

Sintaxis:

SELECT * | { [ DISTINCT ] columna|expresión [alias],...}

FROM tabla

[WHERE condición]

[ORDER BY criterio_orden];

Donde:

• SELECT es la cláusula que especifica una o más columnas que se desean

mostrar.

• *: selecciona todas las columnas.

• DISTINCT: permite que los valores duplicados de las columnas se muestren una

vez.

• columna|expresión : selecciona el nombre de la columna o expresión.

• alias: da un nombre de salida a la columna seleccionada (nombre lógico).

• FROM tabla : especifica la tabla que contiene las columnas que se desean

mostrar.

• WHERE condición : permite mostrar las filas que cumplan con la condición.

• ORDER BY criterio_orden : permite mostrar la información ordenada según el

criterio de orden especificado.

Page 27: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 27

Ejemplo:

SELECT *

FROM DEPARTMENTS;

Se pueden seleccionar todas las columnas de datos de una tabla usando un asterisco

(*) a continuación de la palabra SELECT.

Se pueden seleccionar todas las columnas de datos de una tabla usando un asterisco

(*) a continuación de la palabra SELECT.

.… ………………… ..… ..….

.… ………………… ..… ..….

Page 28: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 28

Ejemplo:

SELECT department_id, location_id

FROM DEPARTMENTS;

Ejemplo:

SELECT location_id, department_id

FROM DEPARTMENTS;

En la cláusula 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.

..… …….

..… ……

..…. ..…

..…. ..…

Page 29: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 29

Usando Operadores Aritméticos

Para efectuar cálculos con los datos de las tablas se deben usar expresiones aritméticas.

Una expresión aritmética puede contener nombre de columnas, constantes de valores

numéricos y operadores aritméticos.

Los operadores aritméticos se pueden usar en cualquier cláusula de una sentencia DML

excepto en la cláusula FROM.

Los operadores que se pueden utilizar en una sentencia SQL son:

OPERADOR DESCRIPCIÓN

+ Suma

- Resta

* Multiplicación

/ División

El orden de prioridad de los operadores es la siguiente:

La multiplicación y la división 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 paréntesis; el interior de los

paréntesis es lo que se ejecuta primero.

Page 30: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 30

Ejemplo:

SELECT last_name, salary, salary + 300

FROM EMPLOYEES;

En el ejemplo, la sentencia muestra el apellido paterno, salario y salario más 300 dólares,

de todos los empleados que existen el tabla EMPLOYEES.

………… …… …….

………… …… …….

Page 31: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 31

Ejemplo:

SELECT last_name, salary, 12*salary+100

FROM EMPLOYEES;

En 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 multiplicación sumarle

100. Por orden de prioridad de los operadores aritméticos primero se resuelve la

multiplicación y posteriormente la suma.

Ejemplo:

SELECT last_name, salary, 12*(salary+100)

FROM employees;

………… …..… ..…….

………… …..… ..…….

Page 32: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 32

SELECT

Para cambiar el orden de prioridad en que se resuelven los operados, se deben utilizar

paréntesis. 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 más 100.

Definiendo Columnas Alias

Un Alias renombra 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 efectúan cálculos. Va inmediatamente a

continuación 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.

………… …..… ..…….

………… …..… ..…….

Page 33: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 33

Ejemplo:

SELECT last_name AS nombre, commission_pct comm

FROM EMPLOYEES;

……..…… …….

………..… …….

……..…… …….

…..……… …….

Page 34: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 34

En 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 ese dato en la tabla

EMPLOYEES (last_name) sino que aparecerá NOMBRE. Además la sentencia muestra

el porcentaje de comisión que tienen los empleados (columna commission_pct) con el

nombre COMM. Como ve, el uso de la palabra AS es opcional.

Ejemplo:

SELECT last_name, salary "Salario" , salary* 1.25 "Salario Aumentado en 25%"

FROM EMPLOYEES;

La sentencia del ejemplo muestra el apellido, el salario y el salario aumentado en 25%

para cada empleado. Como cabecera en el informe aparecerá el nombre de la columna

last_name, para el salario aparecerá Salario y para el resultado de la expresión que

calcula el salario aumentado en 25% aparecerá con el nombre Salario Aumentado en

25%.

………… …….…. …………

………… ……….. ……….

Page 35: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 35

Usando Operador de Concatenación

El operador de concatenación || (dos barras verticales) une columnas y/o cadena de

caracteres literales en otra columna. Esta columna resultante es una EXPRESIÓN de

tipo caracter.

Un literal es un caracter (letra, espacio en blanco o símbolo especial), un Número 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.

Ejemplo:

SELECT last_name || ' pertenece al departamento ' || department_id "Detalle de

Empleados"

FROM EMPLOYEES;

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 identificación

del departamento de cada empleado. La expresión que se obtiene de la concatenación

se visualizará con el alias Detalle de Empleados.

…………………..…………………..……

………………………………..…………..

Page 36: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 36

Ejemplo:

SELECT 'El salario mensual del empleado ' || last_name || ' es de $ ' || salary AS

salarios

FROM EMPLOYEES;

La sentencia del ejemplo muestra el Literal El salario mensual del empleado unido al

apellido de los empleados seguido del literal es de $ unido al salario de cada empleado.

La expresión que se obtiene de la concatenación será mostrada con el nombre de

encabezado (alias) SALARIOS.

…………………..………..……………………………….…

………………………………..……………………….……..

Page 37: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 37

Valores Duplicados en las Columnas

Por defecto cuando en las consultas 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 después de la palabra SELECT.

Por ejemplo, en la tabla EMPLOYEES un mismo código de departamento se puede

repetir varias veces ya que en ese departamento pueden trabajar varios empleados. Por

ello, en una sentencia SELECT normal si queremos mostrar solo los departamentos

existentes se mostrarán todos los departamentos que existen en la tabla incluyendo los

duplicados. Utilizando DISTINCT como parte de la sentencia SELECT se mostrarán una

sola vez aquellos códigos de departamentos que se repiten en la tabla.

Ejemplo:

En el ejemplo, la sentencia de la izquierda se muestra TODOS los códigos de

departamentos existentes en la tabla EMPLOYEES. En la sentencia de la derecha,

utilizando DISTINCT se muestran los DIFERENTES códigos de departamentos

existentes en la tabla EMPLOYEES, los departamentos que se repiten se muestran una

sola vez.

Page 38: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 38

Ordenando las Filas Recuperadas

El orden de las filas recuperadas en una consulta es indefinido. Para ordenar las filas

recuperadas se debe usar la cláusula ORDER BY.

• ASC: ordena en forma ascendente (defecto).

• DESC: ordena en forma descendente.

La cláusula ORDER BY debe ir al final de la sentencia SELECT. Como condición de

ordenamiento se puede especificar una expresión, un alias o una columna.

Ejemplo:

En el ejemplo, las sentencias muestran el apellido, identificación del trabajo y fecha de

contrato de los empleados ordena por fecha de contrato. La sentencia de la izquierda

muestra la información ordenada en forma ascendente y la sentencia de la derecha la

muestra ordenada en forma descendente.

Page 39: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 39

Ejemplo:

SELECT employee_id, last_name, salary*12 "Salario Anual"

FROM EMPLOYEES

ORDER BY "Salario Anual" ;

La sentencia del ejemplo muestra la identificación, apellido y el salario multiplicado por

12 de cada empleado. Al resultado de la expresión de multiplicar el salario por 12 se le

da el alias Salario Anual. La información se muestra ordenada en forma ascendente por

el resultado de la multiplicación usando el alias.

Limitando las Filas que son Seleccionadas

…. …..…….…… ……...

.… ………….… ….…..

Page 40: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 40

¿Qué se debe hacer si quisiéramos mostrar la identificación del empleado, su apellido,

identificación del trabajo e identificación del trabajo pero sólo de aquellos empleados que

trabajan en el departamento 90?

Para restringir o limitar las filas que deben cumplir con una cierta condición para ser

procesadas por una sentencia SQL (Select, Update, Delete), se debe utilizar la cláusula

WHERE.

Una cláusula WHERE contiene una condición que debe ser evaluada y encontrada.

La cláusula WHERE va a continuación de la cláusula FROM de la sentencia Select o

Delete y a continuación de la cláusula SET de la sentencia Update .

La cláusula WHERE puede comparar valores entre columnas, valores literal, expresiones

aritméticas o funciones.

Sintaxis:

SELECT * | { [DISTINCT] columna | expresión [alias],...}

FROM tabla

[WHERE condición(es)_comparacion];

Sintaxis:

WHERE: restringe la consulta a las filas que deben cumplir con la condición.

condición(es)_comparación: está compuesta de nombre de columnas,

expresiones, constantes y un operador de comparación.

Donde:

La comparación consiste de tres elementos:

• Nombre de columna que servirá como restricción.

• Condición de comparación.

• Nombre de columna, constante o lista de valores con la que se desea comparar.

Page 41: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 41

Ejemplo:

SELECT employee_id, last_name, job_id, department_id

FROM EMPLOYEES

WHERE department_id = 90;

En el ejemplo y basados en la pregunta que se efectuó al comienzo, la sentencia muestra

la identificación del empleado, su apellido, identificación del trabajo e identificación del

trabajo de los empleados que trabajan en el departamento 90.

Ejemplo:

SELECT last_name, job_id, department_id

FROM employees

WHERE last_name = 'Whalen';

Page 42: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 42

Ejemplo:

SELECT last_name, hire_date

FROM employees

WHERE hire_date > '01/03/2000';

En la condición de comparación se puede usar también cadena de caracteres y fechas

literales:

• Las cadenas de caracteres y fechas literales deben ir entre comillas simples.

• Los valores caracteres son case-sensitive.

• Los valores fechas son format-sensitive.

En los ejemplos, la primera sentencia muestra el apellido e identificación del

departamento del o los empleados cuyo apellido sea igual a Whalen.

La segunda sentencia muestra el apellido y fecha de contrato del o los empleados cuya

fecha de contrato sea mayor al 01 de Marzo del 2000.

Page 43: CONSULTA DE DATOScursos.iplacex.cl/CED/CDD2008/S1/ME_1.pdf · consultas. Actualidad de mi Base de Datos Hoy en día, los Sistemas de Gestión de Bases de Datos relacionales han sido

www.iplacex.cl 43