La empresa sostenible: Principales Características, Barreras para su Avance y...
Tarea Querys Sql de Wilmer Alcivar
1. 1.- Mostrar todas las ciudades sin repetirse de la tabla employee, y
Muéstrelas en orden ascendente.
SELECT DISTINCT city
from "employee"
ORDER BY city
2.- Mostrar el primer y segundo nombre concatenados de todos los
Empleados de sexo femenino de la tabla employee
SELECT emp_fname + ' ' + emp_lname AS empleado
FROM "employee"
where sex = 'F'
3.- Mostrar el primer y segundo nombre junto con el 8% del salario de
Todos los empleados de la tabla employee
SELECT emp_fname,emp_lname,salary*0.08
FROM "employee"
4.- Mostrar la dirección, la ciudad y el estado (provincia) de cada
Empleado, concatene estos 3 campos y llame a este nuevo campo
Dirección completa, y muéstrelos por estado.
SELECT street + ' ' + city + ' ' + state AS Direccion_Completa
FROM "employee"
order by state
5.- Contar cuantas ciudades hay en la tabla employee y que no estén
Considerando empleados que tengan salarios entre 40000 y 50000
SELECT DISTINCT salary, COUNT(city) AS myCity
FROM "employee"
where salary NOT BETWEEN '40000' AND '50000'
GROUP BY salary
6.- Indique cuantos empleados hay por ciudad y cual es el salario promedio de
cada ciudad agrupado por ciudad
SELECT DISTINCT city, AVG(salary) AS prom_sala_city, COUNT(emp_id) AS
num_Empleado
FROM "employee"
group by city
order by city
7.- Especifique el valor mínimo, máximo, promedio y la suma total del salario por
estado siempre y cuando el promedio del estado sea mayor a 30000
SELECT DISTINCT state, MIN(salary) AS min_salary, MAX(salary) AS max_salary,
AVG(salary) AS prom_salary, SUM(salary) AS sum_salary
2. FROM "employee"
group by state
having AVG(salary)>30000
order by state
8.- Usando la cláusula IN en el WHERE, indique cuales son los empleados que
están en el estado de NY, UT y GA
SELECT emp_fname,emp_lname,state
FROM "employee"
where state IN('NY','UT','GA')
9.- Cuantos empleados comienzan el nombre con la letra A y tengan 4 o 5
caracteres
SELECT distinct emp_fname,COUNT(emp_id) AS num_empleado
FROM "employee"
where emp_fname LIKE 'A___' or emp_fname LIKE 'A____'
group by emp_fname
order by emp_fname
10.- Revise la tabla employee e indique cual es la forma de escribir el WHERE
para saber en la columna “termination_date” por NULL
SELECT *
FROM "employee"
where termination_date IS NULL
11.- Cuales son los empleados que su sueldo sea menor que el promedio del salario
SELECT emp_fname, emp_lname,salary
FROM "employee"
where salary < (select AVG(salary)
from "employee")
12.- Indique los nombres de los empleados que trabajan en el departamento “R &
D”
SELECT emp_fname, emp_lname
FROM "employee"
where dept_id = (select dept_id
from "department"
where dept_name='R & D')
3. 13.- Determinar todos los empleados que su salario sea superior a los que viven en
la ciudad “Milton”
SELECT emp_fname, emp_lname, salary
FROM "employee"
where salary > some(select salary
from "employee"
where city = 'Milton')
14.- Saber todos los empleados que su salario sea superior a todos los salarios de
los empleados que viven en “Milton”
SELECT emp_fname, emp_lname, salary
FROM "employee"
where salary > ALL(select salary
from "employee"
where city = 'Milton')
15.- Determine el nombre de los productos que han sido comprados por un cliente
SELECT DISTINCT cus.fname, cus.lname, pro.name
FROM "customer" cus, "sales_order" sal, "product" pro
where cus.id = sal.cust_id
group by cus.fname, cus.lname, pro.name
order by cus.fname
16- Indique cual es el salario total por departamento
SELECT Distinct dep.dept_name, SUM(emp.salary) AS total
FROM "employee" emp, "department" dep
where emp.dept_id = dep.dept_id
group by dep.dept_name
17- Cual es la expresión equivalente para el “SUM” y el “ALL”
SELECT
18.- Mostrar los nombres de todos los empleados si existe alguien que gane más de
80000 y que viva en la ciudad de “Milton”
SELECT emp_fname, emp_lname, salary
FROM "employee"
where exists (select emp_fname, emp_lname
from "employee"
where salary > 80000 and city = 'Milton')
4. 19.- Unir el nombre de los empleados y el nombre de los customer
SELECT emp_fname, emp_lname
FROM "employee"
union (select fname,lname
from "customer")
20.- Cuales son las ciudades comunes entre estas 2 entidades
SELECT city
FROM "employee"
intersect (select city
from "contact")
21.- Cuales son las ciudades que tienen los empleados y no los contactos
SELECT city
FROM "employee"
except (select city
from "contact")
22.- Crear una tabla llamada “Contact_Copy” y llenarla con los datos de la tabla
Contact
INSERT INTO contact_Copy
(SELECT *
FROM contact)
23.- Inserte un nuevo registro que no este en la tabla Contact
INSERT INTO contact_Copy
(id,last_name,first_name,title,street,state,city,zip,phone,fax)
VALUES(100,'alcivar','wilmer','pd','qweasdq','guayaquil','gu','1234','5675675','1231231'
)
24.- Borre los registros de la tabla Contact_Copy
delete
from contact_Copy
25.- Haga el Quero 22 otra vez y borre los contactos de las ciudades que comienzan
con N, L y K
delete from contact_Copy
where city like 'N%' or city like 'L%' or city like 'K%'
5. 26.- Crear una tabla llamada “Employee_Copy” y llenarla con los datos de la tabla
Employee
INSERT INTO employee_copy
(SELECT *
FROM employee)
27.- Borre en la tabla Employee_Copy aquellos que su salario sea < a la mitad del
promedio
delete from employee_copy
where salary < (select avg(salary)
from employee_copy)
28.- Actualice los salarios en un 20% de la tabla Employee_Copy
update employee_copy
set salary = salary + salary*0.20
29.- Actualice los salarios en un 10% solo a los de genero femenino y reste 1000 a
los salarios que sea > al promedio
update employee_copy
set salary = salary + salary*0.10
where sex = 'F'
update employee_copy
set salary = salary-10000
where salary > (select avg(salary)
from employee_copy)
30.- Presentar el nombre del empleado y su jefe (select recursivo)
select emp.emp_fname, man.emp_fname
from "employee" emp, "employee" man
where emp.manager_id = man.emp_id
31.- Querys DDL del negocio GUITAR’S HOUSE
CREATE TABLE TB_BODEGA
( id_bodega char(30) not null ,
nombre char(30) not null ,
capacidad char(30) ,
descripcion char(30),
PRIMARY KEY (id_bodega)
)
6. CREATE TABLE "TB_CATEGORIA"
( "id_categoria" char(30) NOT NULL ,
"nombre" char(30),
"descripcion" char(30),
PRIMARY KEY ("id_categoria")
)
CREATE TABLE "TB_CLIENTE"
( "cedula" char(30) NOT NULL,
"nombre" char(30) NOT NULL,
"apellidos" char(30) NOT NULL,
"telefono1" char(30),
"telefono2" char(30),
"direccion" char(30),
"email" char(30),
PRIMARY KEY ("cedula")
)
CREATE TABLE "TB_DETALLE_ABASTECIMIENTO"
( "id_det_abas" char(30) NOT NULL,
"descripcion" char(30) ,
"cantidad" char(30),
"id_item" char(30),
"id_abastecimiento" char(30),
PRIMARY KEY ("id_det_abas"),
)
CREATE TABLE "TB_DETALLE_ENTREGA"
( "id_detalle_entrega" char(30) NOT NULL,
"cantidad" char(30) NOT NULL,
"precio_unitario" char(30) NOT NULL,
"total" char(30) NOT NULL,
"id_entrega" char(30) NOT NULL,
"id_item" char(30) NOT NULL,
PRIMARY KEY ("id_detalle_entrega"),
)
CREATE TABLE "TB_DETALLE_FACTURA"
( "id_detalle_factura" char(30) NOT NULL,
"cantidad" char(30) NOT NULL,
"precio_unitario" char(30) NOT NULL,
"total" char(30) NOT NULL,
"id_item" char(30) NOT NULL,
"id_factura" char(30) NOT NULL,
PRIMARY KEY ("id_detalle_factura")
)
7. CREATE TABLE "TB_DETALLE_PEDIDO"
( "id_detalle_pedido" char(30) NOT NULL ,
"cantidad" char(30) NOT NULL,
"precio_unitario" char(30) NOT NULL,
"total" char(30) NOT NULL,
"id_item" char(30) NOT NULL,
"id_pedido" char(30) NOT NULL,
PRIMARY KEY ("id_detalle_pedido")
)
CREATE TABLE "TB_EMPLEADO"
( "cedula" char(30) NOT NULL,
"nombre" char(30) NOT NULL,
"apellidos" char(30) NOT NULL,
"telefono1" char(30),
"telefono2" char(30),
"direccion" char(30),
"email" char(30),
"cargo" char(30),
"id_jefe" char(30) NOT NULL,
"usuario" char(30) NOT NULL,
PRIMARY KEY ("cedula")
)
CREATE TABLE "TB_ENTREGA"
( "id_entrega" char(30) NOT NULL ,
"fecha_entrega" char(30) NOT NULL,
"hora_entrega" char(30) NOT NULL,
"cantidad" char(30) NOT NULL,
"id_cliente" char(30) NOT NULL,
"id_empleado" char(30) NOT NULL,
PRIMARY KEY ("id_entrega")
)
CREATE TABLE "TB_FACTURA"
( "id_factura" char(30) NOT NULL ,
"tipo_pago" char(30) NOT NULL,
"hora_pago" char(30) NOT NULL,
"fecha_pago" char(30) NOT NULL,
"sub_total" char(30) NOT NULL,
"iva" char(30) NOT NULL,
"total_a_pagar" char(30) NOT NULL,
"id_cliente" char(30) NOT NULL,
"id_empleado" char(30) NOT NULL,
PRIMARY KEY ("id_factura")
)
8. CREATE TABLE "TB_ITEM"
( "id_item" char(30) NOT NULL ,
"nombre" char(30) NOT NULL,
"descripcion" char(30) NOT NULL,
"stock" char(30) NOT NULL,
"precio_cliente" char(30) NOT NULL,
"precio_proveedor" char(30) NOT NULL,
"id_categoria" char(30) NOT NULL,
"id_bodega" char(30) NOT NULL,
PRIMARY KEY ("id_item")
)
CREATE TABLE "TB_PEDIDO"
( "id_pedido" char(30) NOT NULL ,
"fecha_pedido" char(30) NOT NULL,
"hora_pedido" char(30) NOT NULL,
"id_cliente" char(30) NOT NULL,
"id_empleado" char(30) NOT NULL,
PRIMARY KEY ("id_pedido")
)
CREATE TABLE "TB_PROVEEDOR"
( "ruc" char(30) NOT NULL,
"nombre" char(30) NOT NULL,
"direccion" char(30) NOT NULL,
"telefono1" char(30),
"telefono2" char(30),
"email" char(30),
"descripcion" char(30),
PRIMARY KEY ("ruc")
)
CREATE TABLE "TB_USER"
( "usuario" char(30) NOT NULL ,
"contrasenia" char(30) NOT NULL,
PRIMARY KEY ("usuario")
)
ALTER TABLE TB_EMPLEADO ADD FOREIGN KEY ("id_jefe") REFERENCES
TB_EMPLEADO("cedula")
ALTER TABLE TB_ENTREGA ADD FOREIGN KEY (ID_CLIENTE)
REFERENCES TB_CLIENTE(cedula)
ALTER TABLE TB_ENTREGA ADD FOREIGN KEY (ID_EMPLEADO)
REFERENCES TB_EMPLEADO(cedula)
ALTER TABLE TB_ITEM ADD FOREIGN KEY (ID_BODEGA) REFERENCES
TB_BODEGA(ID_BODEGA)
9. ALTER TABLE TB_ITEM ADD FOREIGN KEY (ID_CATEGORIA) REFERENCES
TB_CATEGORIA(ID_CATEGORIA)
ALTER TABLE TB_FACTURA ADD FOREIGN KEY (ID_CLIENTE)
REFERENCES TB_CLIENTE(cedula)
ALTER TABLE TB_FACTURA ADD FOREIGN KEY (ID_EMPLEADO)
REFERENCES TB_EMPLEADO(cedula)
ALTER TABLE TB_DETALLE_FACTURA ADD FOREIGN KEY
(ID_DETALLE_FACTURA) REFERENCES TB_FACTURA(ID_FACTURA)
ALTER TABLE TB_DETALLE_FACTURA ADD FOREIGN KEY (ID_ITEM)
REFERENCES TB_ITEM(ID_ITEM)
ALTER TABLE TB_EMPLEADO ADD FOREIGN KEY (USUARIO) REFERENCES
TB_USER(USUARIO)
ALTER TABLE TB_PEDIDO ADD FOREIGN KEY (ID_CLIENTE) REFERENCES
TB_CLIENTE(cedula)
ALTER TABLE TB_PEDIDO ADD FOREIGN KEY (ID_EMPLEADO)
REFERENCES TB_EMPLEADO(cedula)
ALTER TABLE TB_DETALLE_PEDIDO ADD FOREIGN KEY (ID_ITEM)
REFERENCES TB_ITEM(ID_ITEM)
ALTER TABLE TB_DETALLE_PEDIDO ADD FOREIGN KEY (ID_PEDIDO)
REFERENCES TB_PEDIDO(ID_PEDIDO)
ALTER TABLE TB_DETALLE_ENTREGA ADD FOREIGN KEY (ID_ITEM)
REFERENCES TB_ITEM(ID_ITEM)
ALTER TABLE TB_DETALLE_ENTREGA ADD FOREIGN KEY (ID_ENTREGA)
REFERENCES TB_ENTREGA(ID_ENTREGA)
32.- Crear 2 tablas cada una con su (pk) y que ambas pk viajen de una tabla a otra,
la (fk) en la primera tabla tiene que ser no null, y la (fk) en la seguna tabla tiene
que ser null.
CREATE TABLE "T_A"
( "a1" char(30) NOT NULL ,
"a2" char(30) NOT NULL,
"a3" char(30) NOT NULL,
"a4" char(30) NOT NULL,
PRIMARY KEY ("a1")
)
10. CREATE TABLE "T_B"
( "b1" char(30) NOT NULL ,
"b2" char(30) NOT NULL,
"b3" char(30) NOT NULL,
PRIMARY KEY ("b1")
)
ALTER TABLE T_A ADD(b1 integer not null)
ALTER TABLE T_B ADD(a1 integer)
33.- Crear 1 tabla con 3 columnas y 10 registros, la primera será la (pk), y luego
eliminar una columna que no sea pk sin usar la sentencia “DROP COLUM”.
CREATE TABLE "T_A2"
( "a1" char(30) NOT NULL ,
"a2" char(30) NOT NULL,
"a3" char(30) NOT NULL,
PRIMARY KEY ("a1")
)
INSERT INTO T_A2 (a1,a2,a3)VALUES('100','wilmer','pd')
INSERT INTO T_A2 (a1,a2,a3)VALUES('101','pepe','pa')
INSERT INTO T_A2 (a1,a2,a3)VALUES('102','manuel','pb')
INSERT INTO T_A2 (a1,a2,a3)VALUES('103','luis','pc')
INSERT INTO T_A2 (a1,a2,a3)VALUES('104','nahun','pf')
INSERT INTO T_A2 (a1,a2,a3)VALUES('105','roberto','pg')
INSERT INTO T_A2 (a1,a2,a3)VALUES('106','miguel','ph')
INSERT INTO T_A2 (a1,a2,a3)VALUES('107','julio','pi')
INSERT INTO T_A2 (a1,a2,a3)VALUES('108','mauricio','pj')
INSERT INTO T_A2 (a1,a2,a3)VALUES('109','efren','pk')*/
CREATE TABLE "copy_T_A2"
( "a1" char(30) NOT NULL ,
"a2" char(30) NOT NULL,
PRIMARY KEY ("a1")
)
INSERT INTO copy_T_A2
(SELECT a1,a2
FROM T_A2)
drop table T_A2
alter table copy_T_A2 RENAME T_A2
34.- Crear 1 tabla con 3 columnas, y 10 registros, la primera será la (pk), y luego
adherir una columna y hacerla (pk) junto con la otra (pk), es decir una clave
compuesta.
CREATE TABLE "T_A3"
( "a1" char(30) NOT NULL ,
11. "a2" char(30) NOT NULL,
"a3" char(30) NOT NULL,
PRIMARY KEY ("a1")
)
INSERT INTO T_A3 (a1,a2,a3)VALUES('100','wilmer','pd')
INSERT INTO T_A3 (a1,a2,a3)VALUES('101','pepe','pa')
INSERT INTO T_A3 (a1,a2,a3)VALUES('102','manuel','pb')
INSERT INTO T_A3 (a1,a2,a3)VALUES('103','luis','pc')
INSERT INTO T_A3 (a1,a2,a3)VALUES('104','nahun','pf')
INSERT INTO T_A3 (a1,a2,a3)VALUES('105','roberto','pg')
INSERT INTO T_A3 (a1,a2,a3)VALUES('106','miguel','ph')
INSERT INTO T_A3 (a1,a2,a3)VALUES('107','julio','pi')
INSERT INTO T_A3 (a1,a2,a3)VALUES('108','mauricio','pj')
INSERT INTO T_A3 (a1,a2,a3)VALUES('109','efren','pk')
CREATE TABLE "copy_T_A3"
( "a1" char(30) NOT NULL ,
"a4" char(30) NOT NULL ,
"a2" char(30) NOT NULL,
"a3" char(30) NOT NULL,
PRIMARY KEY ("a1", "a4")
)
INSERT INTO copy_T_A3
(SELECT a1,'200',a2,a3
FROM T_A3)
drop table T_A3
alter table copy_T_A3 RENAME T_A3