Вы находитесь на странице: 1из 27

UNIVERSIDAD ABIERTA Y A DISTANCIA UNAD

UNIDAD 3: FASE 8 SQL LENGUAJE ESTNDAR DE CONSULTA

SISTEMAS OPERATIVOS
301402A_360

TUTOR
DILSA ENITH TRIANA

MARIA REBECA MARTINEZ VILLALBA


COD. 39.580.039

INGENIERIA DE SISTEMAS
GIRARDOT
2017
Paso 1: Vaya al entorno de Informacin, en el foro de novedades, descargue el
mdulo de Bases de datos bsicos y haga la lectura de toda la unidad 3.

Paso 2: Estudiar las sentencias DDL (Lenguaje de Definicin de Datos)


captulos 8de la unidad 3.
Paso 3: Utilizar las sentencias Create, para crear la base de datos con sus
tablas, campos, campos claves y llaves forneas.

1. Insertar filas en una tabla

INSERT INTO PROVEEDORES


(VNRO,VNOMBRE,CIUDAD,SITUACION)
VALUES(P01,Arturo Seplveda,Cartagena);
2. Actualizar un dato en una o varias fila, segn la condicin.

Vamos a actualizar la ciudad de los proveedores que se encuentran en la


ciudad de Venecia, lo colocamos Bogot.
UPDATE PROVEEDORES
SET CIUDAD = Bogota
WHERE CIUDAD = Venecia:
Aqu es conveniente hacer varias precisiones. La clusula WHERE, es
opcional, si es as, entonces todas las ciudades de los proveedores
quedan con Bogot, cosa que no es comn que ocurra. En cambio, con
la clusula WHERE, solo quedan con Bogot, aquellos proveedores cuya
ciudad es Venecia. Viendo as las cosas, podemos decir que la clusula
WHERE en la prctica, no es tan opcional.
2. Borrar Filas

Vamos a borrar todas las filas de la tabla de proveedores que se


encuentran en la ciudad de Armenia.

DELETE FROM PROVEEDORES


WHERE CIUDAD = Armenia;

Aqu vale la pena hacer la misma aclaracin que hicimos con UPDATE, y
es que la clusula WHERE es opcional. De tal forma, que si no se coloca,
entonces BORRA TODOS LOS DATOS DE LA TABLA, pero no la
estructura.
4. Consultas de datos

Para mirar toda la potencialidad de la sentencia SELECT, hemos organizado las consultas
de menor a mayor grado de dificultad, por cuestiones pedaggicas. Comenzaremos con
consultas sobre una sola tabla hasta finalizar con subconsultas, donde intervienen ms de
una tabla. Miremos la sentencia general
SELECT Campo1[,Campo 2, R..]
FROM Tabla 1[,Tabla 2, RR]
WHERE Condicin 1 [AND Condicin 2][OR Condicin 2][RR.]
ORDER BY Campo 1 [,Campo 2, R.]
GROUP BY Campo 1 [,Campo 2, R.]
HAVING Condicin de Grupo [AND Condicin 2][OR Condicin 2][RR.]
1. Consultas Simples
Consulta de un determinado campo. Consultar el nombre del proveedor con
su respectiva ciudad.

SELECT PROVEEDORE,CIUDAD
FROM PROVEEDORES;
Consultas de todos los campos. Consultar todos los datos
de las partes.
SELECT *
FROM PARTES;

Consultas con DISTINCT. Consultar el nmero de


proveedores que han suministrado partes en algn
proyecto.

SELECT DISTINCT VNRO


FROM SUMINISTROS;.
Consultas de valores calculados. Consultar el nombre de
las partes con sus respectivos pesos aumentados en un
10%.

SELECT PARTES, Peso aumentado en 10%,PESO*1.1


FROM PARTES;

Consultas con campos cualificados. Consultar el nmero y nombre del proyecto


SELECT PROYECTOS.YNRO,PROYECTOS.PROYECTO
FROM PROYECTOS;
Consultas con condicin. Consultar el nmero del
proveedor que ha suministrado partes a los proyectos Y1 y
`Y2.

SELECT DISTINCT VNRO


FROM SUMINISTROS
WHERE YNRO=Y1 OR YNRO= Y2;

Consultas con ordenamiento. Consultar el nmero de


proveedores y el nmero de proyectos que le han
suministrado, organizado por proyectos.

SELECT DISTINCT VNRO,YNRO


FROM SUMINISTROS
ORDER BY YNRO;

2. Consultas Avanzadas.

Consultas con el operador LIKE. Consultar los


proveedores cuyo nombre empiezan con la letra A.

SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE A%
Consultas avanzadas (comenzadas por A)
(Comenzadas por I)

a. Consultar los proveedores cuya segunda letra sea l.

SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE _A% ;
a. Consultar los proveedores cuya ltima letra sea igual a E.

SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE %E ;

(terminadas por E)
a. Consultar los proveedores que tengan en el nombre la letra S.

SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE %S%
(contenga la S)
a. Subconsultas. Consultar los proveedores que no han suministrado
partes.

SELECT *
FROM PROVEEDORES
WHERE VNRO NOT IN
(SELECT VNRO
FROM SUMINISTROS) ;

Subconsultas

Nota: Esta consulta se puede realizar tambin utilizando el EXISTS

SELECT *
FROM PROVEEDORES
WHERE NOT EXISTS
(SELECT VNRO
FROM SUMINISTROS
WHERE SUMINISTROS.VNRO=PROVEEDORES.VNRO)

Consulta con EXISTS

a.
1. Otras Operaciones

Crear tablas temporales con INSERT INTO. Crear una tabla temporal
llamada TEMP_PROV, que contenga el nombre del proveedor, la
ciudad y la cantidad total suministrada por partes.

SELECT PROVEEDOR,CIUDAD,SUM(CANT) AS TOT_CANT


INTO TEMP_PROV
FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO
GROUP BY PROVEEDOR,CIUDAD;

Otras operaciones
CREACION DE TABLA

a. Crear una vista con CREATE VIEW. Crear una vista con todas las
partes y su respectivo numero total de proyectos que han suministrado
y cantidad total suministrada.

CREATE VIEW VISTA_PARTES AS


(SELECT PARTE,COUNT(YNRO),SUM(CANT)
FROM PARTES,SUMINISTROS
WHERE PARTES.PNRO=SUMINISTROS.PNRO
GROUP BY PARTE);

Creamos una vista

a. Consultar sobre una tabla temporal. Consultar la mayor cantidad


suministrada

SELECT MAX(TOT_CANT)
FROM TEMP_PROV;

a. Reunin simple. Consultar el nombre de los proveedores que


han suministrado partes a algn proyecto.

SELECT DISTINCT PROVEEDORES


FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO;

Nota: Obsrvese que se utiliza el distinct para que no salgan repetidos el


nombre del proveedor. Si desea qutele el distinct y observe el resultado.
Consultas de reunin (1) 1.A

b. Reunin con condicin. Consultar el nombre del proveedor, el nombre


de las partes y el nombre del proyecto, con sus respectivas cantidas
suministradas, solo para los proyectos de MONITOR y CONSOLA.

SELECT PROVEEDOR,PARTE,PROYECTO
FROM PROVEEDORES,PARTES,PROYECTOS,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO AND
PARTES.PNRO=SUMINISTROS.PNRO AND
PROYECTOR.YNRO=SUMINISTROS.YNRO AND (PROYECTO=MONITOR OR
PROYECTO=CONSOLA);

Crear tabla proyecto (no exista)


a. Reunin de una tabla consigo misma. Consultar las parejas de nmeros
de proveedor y la ciudad, que se encuentran en la misma ciudad.

SELECT PRIMERA.VNRO,SEGUNDA.VNRO
FROM PROVEEDORES PRIMERA,PROVEEDORES SEGUNDA
WHERE PRIMERA.VNRO<SEGUNDA.VNRO AND
PRIMERA.CIUDAD=SEGUNDA.CIUDAD;

Nota: Obsrvese que el JOIN, es decir, la IGUALACIN, se esta realizando por el campo
de CIUDAD y no por el campo llave VNRO. Adems, se utilizan alias en el nombre de las
tablas, con el fin de poder combinar la tabla consigo misma.
PRIMARY KEY (PNRO));

1.B
3. Consultas con Funciones Agregadas.

COUNT(*): Cuenta los registros de una tabla


COUNTO(Campo): Cuenta los registros por un campo determinado. Si el campo tiene un
valor nulo, no lo cuenta.
SUM(Campo): Suma todos los valores del campo. No suma nulos. el campo debe ser
numrico.
AVG(Campo): Promedia el campo. No tiene en cuenta los nulos y el campo debe ser
numrico.
MAX(Campo): Selecciona el valor mximo del campo. No cuenta el valor nulo.
MIN(Campo): Selecciona el valor mnimo del campo. No cuenta el valor nulo.
1.C

MIN(Campo): Selecciona el valor mnimo del campo. No cuenta el valor nulo.

CONSULTAS CON FUNCIONES AGREGADAS (2)


2.A
a. Consultas para contar final con condicin. Obtener la cantidad total de
proveedores que se encuentran en la ciudad de LONDRES.

SELECT COUNT(VNRO)
FROM PROVEEDORES
WHERE CIUDAD=LONDRES ;

2.B
a. Consultas con agrupacin. Obtener el nmero total de proyectos por
proveedor

SELECT VNRO,COUNT(YNRO)
FROM SUMINISTROS
GROUP BY VNRO;
2.C

a. Consultas con agrupacin y reunin de tablas. Consultar el nombre del


proveedor con su respectivo nmero total de proyectos.

SELECT PROVEEDOR,COUNT(YNRO)
FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO
GROUP BY PROVEEDOR;
2.D

a. Consultas con condicin de agrupacin. Consultar el nombre del


proveedor, con su respectiva cantidad total suministrada; solo aquellos
proveedores que han suministrado cantidades mayores a 800.

SELECT PROVEEDOR,SUM(CANT)
FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO
GROUP BY PROVEEDOR
HAVING SUM(CANT)>800;
a. Consultas con condicin y agrupamiento varios. Consultar el nombre del
proveedor, y el nombre de las partes, con su respectiva cantidad suministrada.
Solo los proveedores de la ciudad de LONDRES Y PARIS, y que hayan
suministrado mas de 500.

SELECT PROVEEDOR,PARTE,SUM(CANT)
FROM PROVEEDORES,PARTES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO AND
PARTES.PNRO=SUMINISTROS.PNRO AND (PROVEEDORES.CIUDAD=LONDRES
OR PROVEEDORES.CIUDAD=PARIS)
GROUP BY PROVEEDOR,PARTE
HAVING SUM(CANT)>500;

2.E