Documentos de Académico
Documentos de Profesional
Documentos de Cultura
// Se crea datos para Empresa, se excluye emp_cod porque es de tipo SERIAL, el programa ya se
encarga de enumerar 1,2,3,4...
insert into empresa(emp_nombre, emp_fechacreacion) values('MICROSOFT COLOMBIA','1999-12-
30');
insert into empresa(emp_nombre, emp_fechacreacion) values('ORACLE CO','2010-06-03');
//Se crea datos para Trabajador, como aquí no hay tipo SERIAL, no hay que especificar las
columnas o atributos como arriba
insert into trabajador values(3001,'CC','PEDRO',3,'1995-03-01',2000000,7);
insert into trabajador values(3002,'CE','JUAN',5,'1970-03-20',1300000,4);
FILTROS
select * from trabajador where tra_doc=3000;
select * from trabajador where tra_estrato between 2 and 3;
select * from trabajador where tra_estrato=2 or tra_estrato=3;
select * from productos where prod_pro_id=1 and prod_nombre like 'C%';
select * from productos where prod_precio between 500 and 2000 and prod_existencias<=30;
select * from empleados where emp_sexo='F' and emp_sueldo between 500000 and 650000;
delete from empleados where emp_sexo='F' and emp_sueldo between 500000 and 650000; -->
eliminar según filtro
8- Listar los trabajadores de trabajadores de la empresa Alpina que sean estrato 3 y que hayan
nacido en los años 90.
select * from trabajador where tra_emp_cod=4 and tra_fechanac between '1990-01-01' and
'1999-12-31' and tra_estrato=3;
9- Selecionar todos los trabajadores cuyo nombre empiece con la letra M, termine con la letra
A y que el salario sea mayor al salarío mínimo actual
select * from trabajador where tra_nombres like 'M%' and tra_nombres like '%A' and
tra_salario>812000;
10- Listar los trabajadores que hayan nacido en el mes de Marzo de cualquier año.
select * from trabajador where to_char(tra_fechanac,'mm')='03';
11- Listar los trabajadores que hayan nacido en los primeros 15 días en el primer semestre de
cualquier año.
11)select * from trabajador where to_char(tra_fechanac,'dd')between '01' and '15' and
to_char(tra_fechanac,'mm')between '01' and '06';
11)select * from trabajador where to_char(tra_fechanac,'dd') in ('01','02','03','04','05','06');
12- Listar los trabajadores que hayan nacido en el año 1994 o en el año 1970
select * from trabajador where to_char(tra_fechanac,'yyyy') in('1970','1994');
select avg(emp_sueldo) from empleados where emp_nombre1 like '%A%' and emp_nombre1
Like '%E%' and emp_nombre1 like '%R%';
//Sumar los sueldos de los empleados que no sean casados ni solteros y que hayan nacido en
la década de los años 70.
select sum(emp_sueldo) from empleados where emp_estado not in('SOLTERO','CASADO') and
to_char(emp_fecha_nac,'yyyy') between '1980' and '1989';
--Aumentar el sueldo a 900.000 a todas las mujeres que hayan nacido en 1965
update empleados set emp_sueldo=900000 where emp_sexo='F' and
to_char(emp_fecha_nac,'yyyy')='1965';
--Actualizar todos los empleados que cuyo descuento sea igual a 0 colocando en el descuento
el 24% de lo que gana actualmente, además la bonificación debe ser el 10% de lo que gana
actualmente
update empleados set emp_descuentos=emp_sueldo * 0.24,emp_bonificacion=emp_sueldo *
0.1 where emp_descuentos=0;
FUNCIONES TRIM
Ltrim(campo)-->quita el espacio a la izq
Rtrim(campo)-->quita el espacio a la der
Trim(campo)-->quita espacio de ambas partes
EJEMPLO
select * from empleados where emp_nombre1='NATIVIDAD ';
update empleados set emp_nombre1=trim(emp_nombre1);
update empleados set emp_nombre2=trim(emp_nombre2);
EJERCICIOS DE LO ANTERIOR
update empleados set emp_estado=upper(emp_estado);
--mostrar la informacion de todos los empleados cuyo nombre1 o nombre2 sea menor a 5
caracteres.
select * from empleados where length(emp_nombre1)<5 or length(emp_nombre2)<5;
Forma Andrés:
UPDATE empleados SET emp_sueldo = emp_sueldo + (emp_sueldo * 0.1),emp_bonificacion =
emp_bonificacion + (emp_bonificacion * 0.05)
WHERE emp_estado = 'CASADO'AND TO_CHAR(emp_fecha_nac,'mm')='02' AND emp_bonificacion
<= (emp_sueldo * 0.2);
FUNCIÓN CONCATENAR
concat--> concatenar (unir)
select emp_apellido1 || ' ' || emp_nombre1 from empleados;--> forma para mostrar datos, en
medio de la comilla sencilla va un espacio para que no muestre los datos pegados.
select concat(emp_apellido1,' ',emp_nombre1) from empleados;--> 2 forma """""""""""
--abril 11, como aparece a continuación 2 clases se coloca una después de from, no importa el
orden, para que se coloque un join deben tener una relación entre sí, con su llave primaria y la
foranea.
select ped_id,ped_fechapedido,cli_nombre,cli_ciudad from pedidos
join clientes
on cli_cedula=ped_cli_cedula
where cli_ciudad in('GIRON','LEBRIJA')and to_char(ped_fechapedido,'mm')='06';
--Mostrar el número de pedido, la fecha de pedido, el nombre del cliente, la ciudad del cliente, el
nombre y apellido concatenado del empleado y colocar un alias, la fecha de nacimiento del
empleado, (join 3 tablas) donde la fecha del pedido haya sido en el año 96 o 98 que no sean de la
ciudad de lebrija, que el nombre del empleado contenga la letra M y que no empiece con la letra
A, que la fecha de nacimiento del empleado esté entre el 1 de junio de 1980 y el 31 diciembre de
1999 pero que el pedido no haya sido comprado en el mes de julio de cualquier año