2. Instrucciones SQL El Lenguaje de Consulta Estructurado (SQL

Anuncio
2. Instrucciones SQL
El Lenguaje de Consulta Estructurado (SQL) es un lenguaje Standard que
funciona para interactuar con las Bases de Datos. Si usted aprende SQL lo podrá
aplicar en cualquier lenguaje que soporte tales instrucciones.
Nos centraremos especialmente en las siguientes Instrucciones SQL:




SELECT
UPDATE
INSERT
DELETE
SELECT
SELECT es la instrucción por excelencia del SQL, ya permite Consultar datos
determinados de la Base de Datos.
Sintaxis Básica:
SELECT
FROM
WHERE
ORDER BY
<campos>
<tablas>
<condición>
<campos>
UPDATE
UPDATE sirve para actualizar datos en una tabla.
Sintaxis Básica:
UPDATE
SET
WHERE
<tabla>
<campo1> = <valor1>
<campo1> = <valor>
<condición>
INSERT
INSERT es para insertar registros a una tabla.
Sintaxis Básica:
INSERT INTO
VALUES
<tabla>
( campo1, campo2... )
(valor1, valor2.... )
DELETE
DELETE sirve para borrar registros a una tabla.
Sintaxis Básica:
DELETE FROM
<tabla>
WHERE
<condición>
Crear una Consulta en Microsoft Access
1. Abrir la Base de Datos
2. Ubicarse en la ficha Consultas y luego presionar Nuevo.
2. Presione el
botón de
Nuevo
1. Seleccione Consultas
2. En el siguiente cuadro de selección, escoja Vista Diseño.
Seleccione
Vista Diseño y
Luego presione
el botón de
Aceptar
3. Luego le aparecerá la ventana de Mostrar Tablas. No agregue ninguna tabla y
presione el botón de Cerrar.
Presione el
Botón
Cerrar
4. Seleccione el Menú de Ver y escoja la opción Vista SQL
Seleccione
Vista SQL
5. En la Vista SQL, usted puede digitar la instrucción SQL:
Digite la
instrucción SQL
6. Para Ejecutar la instrucción SQL presione el Botón Ejecutar (!) de la Barra de
Herramientas
Presione el botón de
Ejecutar para ver el
resultado del comando
SQL.
Resultado de la instrucción SQL SELECT.
7. Para regresar a la Vista SQL, seleccione el menú Ver y luego Vista SQL.
SQL CON UNA TABLA
Seleccionar las regiones que comiencen con la letra A
select nombre
from
s_region
where nombre LIKE 'A*'
Seleccionar los departamentos que pertenezcan a la región No. sea igual a 1 (uno)
select *
from
s_dept
where region_id = 1
Seleccionar el No. depto, apellido, salario y cargo para los empleados que ganen
mas de 100 y el departamento este en 41, 10 y 50
select dept_id,
nombre,
salary,
cargo
from
s_emp
where salary > 100
and
dept_id IN (41,10,50)
Seleccionar los clientes que pertenezcan a la región 3.
select *
from
s_customer
where region_id = 3
Seleccionar los empleados que su fecha de ingreso este entre 01/01/1990 y
31/12/1990.
select *
from
s_emp
where fec_ing Between #01/01/1990# And #31/12/1990#
Seleccionar las ordenes que pertenezcan al código del cliente (customer_id) igual
a 208.
select *
from
s_ord
where customer_id = 208
Seleccionar los productos ordenados por nombre descendentemente
select nombre
from
s_product
order by nombre DESC
SQL CON MAS DE UNA TABLA
Seleccionar el nombre del departamento, y el nombre de la región a la que
pertenece el departamento, ordenado por nombre de región
select
a.nombre
AS region,
b.nombre
AS depto
from
s_region
a,
s_dept
b
where a.id = b.region_id
order by 1
Seleccionar el nombre del empleado, id_depto, y el nombre del dpto. al que
pertenece el empleado.
select
from
where
b.nombre
AS empleado,
a.id,
a.nombre
AS depto
s_dept a,
s_emp b
a.id = b.dept_id
Seleccionar el nombre del empleado, nombre del depto. y el nombre de la región
al que pertenece el empleado
select
a.nombre
AS region,
b.nombre
AS depto,
c.nombre
AS empleado
from
s_region a,
s_dept
b,
s_emp
c
where a.id = b.region_id
and
b.id = c.dept_id
Seleccionar el apellido del empleado, no. del depto, el nombre del depto para los
depto que estén entre 20 y 50 sin incluirlos.
select a.nombre
AS empleado,
b.id,
b.nombre
AS depto
from
s_dept a,
s_emp b
where a.id = b.dept_id
and
b.id > 20 and b.id < 50
Seleccionar los clientes (customer) y la región a la que pertenece ordenado por
region Ascendentemente
select a.nombre
AS region,
b.nombre
AS cliente
from
s_region a,
s_customer b
where a.id = b.region_id
order by 1
SQL CON SUB QUERYS
Seleccionar las regiones que no tengan departamentos
select nombre
AS region
from
s_region
where id
NOT IN ( SELECT region_id
FROM
s_dept
)
Seleccionar los empleados que no tienen clientes
select nombre
AS empleado
from
s_emp
where id
NOT IN ( SELECT DISTINCT emp_id
FROM
s_customer
)
Seleccionar los productos que no se han facturado
select nombre
AS producto
from
s_product
where id
NOT IN ( SELECT DISTINCT product_id
FROM
s_item
)
Seleccionar los productos que se han facturado
select nombre
AS producto
from
s_product
where id
IN ( SELECT DISTINCT product_id
FROM
s_item
)
Seleccionar los clientes que han hecho órdenes
select nombre
AS cliente
from
s_customer
where id
IN ( SELECT DISTINCT customer_id
FROM
s_ord
)
SQL CON MAS DE UNA TABLA Y AGRUPACIONES
Suma de salarios por departamento
select
from
where
group
a.nombre
AS depto,
SUM(b.salary) AS suma_salario
s_dept
a,
s_emp
b
a.id = b.dept_id
by a.nombre
Suma de salarios por region
select
from
where
and
group
a.nombre
AS region,
SUM(c.salary) AS suma_salario
s_region a,
s_dept
b,
s_emp
c
a.id = b.region_id
b.id = c.dept_id
by a.nombre
Cantidad de departamentos por cada región
select
from
where
group
a.nombre
AS region,
COUNT(*)
AS No_deptos
s_region
a,
s_dept
b
a.id = b.region_id
by a.nombre
Cantidad de clientes por cada empleado
select
from
where
group
a.nombre
AS empleado,
COUNT(*)
AS No_ordenes
s_emp
a,
s_customer
b
a.id = b.emp_id
by a.nombre
Cantidad de ordenes por clientes
select
from
a.nombre
COUNT(*)
s_customer
s_ord
AS cliente,
AS No_cliente
a,
b
where
group
a.id = b.customer_id
by a.nombre
Total de ventas por cliente
select
from
where
group
a.nombre
AS cliente,
SUM(b.total) AS Total
s_customer
a,
s_ord
b
a.id = b.customer_id
by a.nombre
Total de ventas por empleado
select
from
where
and
group
a.nombre
AS empleado,
SUM(c.total) AS Total
s_emp
a,
s_customer
b,
s_ord
c
a.id = b.emp_id
b.id = c.customer_id
by a.nombre
Total de ventas por region
select
from
where
and
group
a.nombre
AS region,
SUM(c.total) AS Total
s_region
a,
s_customer
b,
s_ord
c
a.id = b.region_id
b.id = c.customer_id
by a.nombre
Total de Productos Facturados
select
from
where
group
order
a.nombre
AS producto,
SUM(b.cantidad) AS Total
s_product
a,
s_item
b
a.id = b.product_id
by a.nombre
by 2
Suma de salarios, maximo, minimo, promedio por departamento
select
from
where
group
a.nombre
AS
SUM(b.salary) AS
MAX(b.salary) AS
MIN(b.salary) AS
AVG(b.salary) AS
s_dept
a,
s_emp
b
a.id = b.dept_id
by a.nombre
depto,
suma_salario,
max_salario,
min_salario,
Prom_salario
Descargar