Download (Microsoft PowerPoint - R\341pido Repaso de SQL)

Document related concepts

SQL wikipedia , lookup

Cursor (base de datos) wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

PL/SQL wikipedia , lookup

Lenguaje de manipulación de datos wikipedia , lookup

Transcript
Rápido repaso de SQL
Antes de sumergirnos en los detalles de SQL, es
buena idea desarrollar una perspectiva global del
lenguaje y de cómo funciona. Este capítulo
contiene un rápido repaso de SQL que ilustra
sus características y funciones más importantes.
Una base de datos sencilla
• Pequeña base de datos de una empresa de
distribución. La base de datos, mostrada en
la siguiente página, almacena la información
necesaria para implementar una pequeña
aplicación de procesamiento de pedidos.
– Los clientes,
clientes que compran los productos de la
empresa;
– Los pedidos remitidos por esos clientes;
– Los vendedores que venden los productos a los
clientes; y
– Las oficinas de ventas donde trabajan los
vendedores.
• Esta base de datos,
datos como la mayoría de las
demás, es un modelo del <<mundo real>>
real>>.
>>.
• Los datos almacenados en la base de datos
representan entidades reales: clientes,
pedidos, vendedores y oficinas.
oficinas.
• Hay una tabla separada de datos para cada
clase diferente de entidad.
• Las peticiones de base de datos que usted
hace utilizando el lenguaje SQL se
corresponden con actividades del mundo
real,
real tales como emisión, cancelación y
cambio de pedidos por parte de los clientes,
contratación y despido de vendedores, etc.
Veamos como se puede utilizar SQL para
manipular los datos.
Recuperación de datos
• Primero, listemos las oficinas de ventas,
ventas
mostrando la ciudad donde está
localizada cada una de ellas, así como
sus ventas anuales hasta la fecha. La
sentencia SQL que recupera datos de la
base de datos se denomina SELECT.
• Esta sentencia recupera datos que se
desean:
SELECT CIUDAD, OFICINA, VENTAS
FROM OFICINAS
CIUDAD
Denver
New York
Chicago
Atlanta
Los Ángeles
OFICINA
22
11
12
13
21
VENTAS
186,042.00
92,637.00
735,042.00
367,911.00
835,015.00
•
La sentencia SELECT solicita tres datos (la ciudad, el número de oficina y
las ventas por cada oficina).
•
También especifica que los datos proviene de la Tabla OFICINAS,
OFICINAS que
almacena datos acerca delas oficinas de ventas.
•
Los resultados de la consulta aparecen,
inmediatamente después de la solicitud
en
forma
tabular,
• La sentencia SELECT es utilizada por
todas las consultas SQL.
SQL Por ejemplo, a
continuación se muestra una consulta que
lista los nombres y las ventas anuales hasta
la fecha para cada vendedor de la base de
datos.
• También muestra la cuota (objetivo de
ventas) y el número de la oficina donde
trabaja cada persona. En este caso, los
datos provienen de la Tabla REPVENTAS:
REPVENTAS
SELECT NOMBRE, OFICINA_REP, VENTAS, COUTA
FROM REPVENTAS
• SQL también permite solicitar el
cálculo de resultados. Por ejemplo, se
puede solicitar a SQL que calcule la
cuantía en la cual cada vendedor está
por encima o por debajo de su cuota:
SELECT NOMBRE, VENTAS, COUTA, (VENTAS-COUTA)
FROM REPVENTAS
• Los datos solicitados (incluyendo la diferencia
calculada entre las ventas y la cuota de cada
vendedor) aparecen una vez más en la fila/columna de
una tabla. Quizá preferiría centrarse en el vendedor
cuyas ventas son inferiores a sus cuotas. SQL permite
recuperar esta clase de información selectiva muy
fácilmente, añadiendo una comparación matemática a
la petición previa:
SELECT NOMBRE, VENTAS, CUOTA, (VENTAS-CUOTA)
FROM REPVENTAS
WHERE VENTAS < COUTA
Rob Smith; 142,594.00; 200,000.00; -57,406.00
Nancy Angelli; 186,054.00; 300,000.00; -113,958.00
• Se puede utilizar la misma técnica para
listar grandes pedidos en la base de datos
y para hallar qué cliente remitió el
pedido, qué producto fue pedido y en
qué cantidad. También se puede solicitar
a SQL que ordene los pedidos basándose
en su importe:
SELECT NUM_PEDIDO, CLIE, PRODUCTO, CANT, IMPORTE
FROM PEDIDOS
WHERE IMPORTE > 25000.00
ORDER BY IMPORTE
Realización de resúmenes
• SQL no solamente recupera datos de la
base de datos, también puede ser utilizado
para resumir los contenidos de la base de
datos. ¿Cuál es el tamaño medio de un
pedido en la base de datos? Esta petición
solicita a SQL que examine todos los
pedidos y encuentre el importe medio:
SELECT AVG(IMPORTE)
FROM PEDIDOS
AVG(IMPORTE): 8,256.37
• También puede solicitarse el importe
medio de todos los pedidos de todos los
pedidos remitidos por un cliente
particular:
SELECT AVG(IMPORTE)
FROM PEDIDOS
WHERE CLIE = 2013
AVG(IMPORTE): 8,895.50
• Finalmente, hallemos el importe total
de los pedidos remitidos por cada
cliente. Para hacer esto, se puede
solicitar a SQL que agrupe los pedidos
por número de cliente, y que luego
totalice los pedidos de cada cliente:
SELECT CLIE, SUM(IMPORTE)
FROM PEDIDOS
GROUP BY CLIE
CLIE
2101
2102
2103
….
….
….
2124
SUM(IMPORTE)
1,458.00
3,978.00
35,582.00
3,082.00
Introducción de datos en la Base
de Datos
SQL también se utiliza para añadir nuevos datos a la base de datos. Por
ejemplo, supongamos que se acaba de abrir una nueva oficina de
ventas en la región Oeste en Dallas, con un objetivo de ventas de
275.000. He aquí la sentencia INSERT que añade la nueva oficina a la
base de datos, con el número de oficina 23:
INSERT INTO OFICINAS (CIUDAD, REGION,OBJETIVO,VENTAS,OFICINA)
VALUES (‘DALLAS’, ‘Oeste’,’27500.00’,0.00,23)
1 fila insertada.
Análogamente, si Mary Jones (número de empleado 109) firma un contrato con un
nuevo cliente, Acme Industries, esta sentencia INSERT añade el cliente a la base
de datos con el número 2.125 y un límite de crédito de 25.000:
INSERT INTO CLIENTES (EMPRESA, REP CLIE, NUM_CLIE,LIMITE-CREDITO)
VALUES (‘Acme Industries’, 109, 2125, 25000.00)
1 fila insertada.
Borrado de datos
•
Del mismo modo que la sentencia INSERT añade nuevos datos a
la base de datos, la sentencia DELETE borra datos de la base de
datos. Si Acme Industries decide unos pocos días más tarde
pasarse a la competencia, usted puede eliminarla de la base de
datos con esta sentencia:
DELETE FROM CLIENTES
WHERE EMPRESA=‘Acme Industries’
1 fila suprimida
•
Y si usted decide despedir a todos los vendedores cuyas ventas
sean inferiores a sus cuotas, puede eliminarlos de la base de datos
con esta sentencia DELETE:
DETELE FROM REPVENTAS
WHERE VENTAS < COUTA
2 filas suprimidas
Actualización de la base de
datos
• El lenguaje SQL se utiliza también para
modificar
datos
que
ya
están
almacenados en la base de datos. Por
ejemplo, para incrementar el limite de
crédito de First Corp. a 75.000 se
utilizará la sentencia UPDATE:
UPDATE CLIENTES
SET LIMITE_CREDITO = 7500.00
WHERE EMPRESA = ‘First Corp.’
1 fila actualizada.