viernes, 16 de diciembre de 2011

"ESTUDIAR LAS SIGUIENTES INSTRUCCIONES"

INSERT
CONSTRAINT
SELECT
DELETE = ELIMINAR LOS REGISTROS
DML "data manipulation language" /DDL "data definition language"
NULL = es un valor especial para los atributos que nunca han tenido un contenido
DROP = ELIMINAR LA TABLA
IN
DUAL
GROUP
DISTINCT
TRIM
CREATE TABLE
CREATE SEQUENCE
LIKE
WHERE
COUNT/MAX/MIN/AVG
ORDER BY
RPUND
DESC
BETWEEN
UPPER / LOWER

--------------------------------------
EJEMPLO INSERT
TABLA T1 (
A INT PRIMARY KEY,
B VARCHAR (2)
);

INSERT INTO T1 VALUES (1,'...')

--------------------------------------
PK_T1

--------------------------------------

EJERCICIOS
--LISTAR LAS PROPIEDADES QUE TIENE UN CLIENTE (NOMBRE,APELLIDO,NUMPROP,F.INICIO ARRIENDO)

--FORMA MAS FACIL DE HACER UN JOIN

SELECT C.nombre, C.apellido, A.numPropiedad, A.inicioRenta
FROM CLIENTE C, ARRIENDO A
WHERE C.NumCliente = A.NumCliente
AND C.nombre = 'Jhon'
AND C.apellido = 'Perez'


--LISTAR EL NUMERO DE TODAS LAS OFICINAS QUE SE ENCUENTRAN EN VALDIVIA

SELECT numOficina
FROM OFICINA
WHERE CIUDAD = 'Valdivia'

--listar todos los empleaods que trabajan en la oficina de Valdivia

SELECT numEmpleado,Nombre,Apellido
FROM Empleado
Where numOficina IN ('B115','B015');

SELECT numEmpleado,Nombre,Apellido
FROM Empleado
Where numOficina IN (SELECT numOficina
FROM OFICINA
WHERE CIUDAD = 'Valdivia');

--que es lo que entrega el max

SELECT MAX (salario)
FROM Empleado
WHERE sexo = 'F';

--sequence

CREATE SEQUENCE seqt1
START WITH 10
INCREMENT BY 10;

--uso de la secuencia

SELECT seqt1.NEXTVAL FROM dual;
INSERT INTO T1 VALUES (seqT1.NEXTVAL,'1');

CREATE TABLE T1 (
A INT PRIMARY KEY,
B VARCHAR (2)
);

--calcular el salario mostrar nombre,apellido,salario,promedio y la diferencia

SELECT Nombre,Apellido,Salario,(SELECT AVG(Salario) FROM EMPLEADO) AS Promedio,
Salario - (SELECT AVG(Salario) FROM EMPLEADO) AS DIFERENCIA
FROM EMPLEADO

--numero de la oficina, cantidad de empleados(contar), sueldo promedio por oficina(promedio)

SELECT numOficina,count(*) AS CUENTA,AVG(Salario) AS SALARIO, MAX(Salario), MIN(Salario)
FROM Empleado
GROUP BY numOficina

SELECT O.ciudad,O.numOficina,count(*) AS CUENTA,AVG(Salario) AS SALARIO, MAX(Salario), MIN(Salario)
FROM Empleado E, Oficina O
WHERE E.numOficina = O.numOficina
GROUP BY O.ciudad, O.numOficina

--cantidad de oficinas por ciudad
SELECT O.ciudad,O.numOficina,count(*) AS CUENTA,AVG(Salario) AS SALARIO, MAX(Salario) AS MAXIMO, MIN(Salario) AS MINIMO
FROM Empleado E, Oficina O
WHERE E.numOficina = O.numOficina
GROUP BY O.ciudad, O.numOficina
ORDER BY O.Ciudad

SELECT ciudad,count(*) AS CUENTA,AVG(Salario) AS SALARIO, MAX(Salario), MIN(Salario)
FROM Oficina
GROUP BY ciudad

-- Listar las oficina que tiene el salario promedio más ALTO

SELECT numOficina,AVG (Salario) AS SALARIO --MAX(Salario) AS MAXIMO
FROM Empleado
GROUP BY numOficina
HAVING AVG(Salario) = (SELECT MAX(AVG(Salario)) FROM Empleado
GROUP BY numOficina)

--Listar las ciudades que tengan màs de 2 oficinas

SELECT Ciudad,count (numOficina)
FROM Oficina
GROUP BY Ciudad
HAVING count(numOficina) > 2

No hay comentarios: