sql Ejercicio de consultas en oracle 11g express
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql Ejercicio de consultas en oracle 11g express相关的知识,希望对你有一定的参考价值。
1. Crear la tabla ciudad con un código de ciudad y un nombre.
create table ciudad
(
idciudad int,
nombre varchar2(20)
);
2. Crear la tabla comuna con un código de comuna, nombre, y código de ciudad
create table comuna
(
idcomuna int,
nombre varchar2(20),
idciudad int
);
3. Crear la tabla cliente con código de cliente, Rut, nombre, fecha de nacimiento, código comuna.
create table cliente
(
idcliente int,
rut int,
nombre varchar2(20),
fechanac date,
deuda int,
estadocivil varchar2(1),
sexo varchar2(1),
idcomuna int
);
4. Agregar la restricción primary key al campo cod_ciu de la tabla ciudad.
alter table ciudad
add constraint pk_ciudad
primary key(idciudad);
desc ciudad;
5. Agregar la restricción primary key al campo cod_com de la tabla comuna.
alter table comuna
add constraint pk_comuna
primary key(idcomuna);
desc comuna;
6. Agregar la restricción forein key al campo cod_ciu de la tabla comuna.
alter table comuna
add constraint fk_ciudad
foreign key(idciudad) references ciudad(idciudad);
7. Agregar la restricción primary key al campo cod_cli de la tabla cliente.
alter table cliente
add constraint pk_cliente
primary key(idcliente);
desc cliente;
8. Agregar la restricción forein key al campo cod_com de la tabla cliente.
alter table cliente
add constraint fk_comuna
foreign key(idcomuna) references comuna(idcomuna);
9. Crear la secuencia para la tabla ciudad, comuna y cliente
create sequence secCiudad
start with 1
increment by 1
maxvalue 100
minvalue 1
nocycle;
create sequence secComuna
start with 1
increment by 1
maxvalue 100
minvalue 1
nocycle;
create sequence secCliente
start with 1
increment by 1
maxvalue 100
minvalue 1
nocycle;
10. Poblar la tabla ciudad, comuna y cliente con 10 registros
insert into ciudad values(1,'Santiago');
insert into comuna values(1,'La Granja',1);
insert into comuna values(6,'Independencia',1);
insert into comuna values(5,'San Bernardo',1);
insert into comuna values(4,'Maipu',1);
insert into comuna values(3,'San Ramon',1);
insert into comuna values(2,'La Florida',1);
insert into cliente values(5, 555,'German','11/09/1970',999,'c','f', 2);
insert into cliente values(4, 444,'Matias','08/15/1940',1050100,'s','m', 2);
insert into cliente values(3, 333,'Josue','12/05/1950',999999,'c','m', 6);
insert into cliente values(2, 222,'JotaGay','01/30/1990',20000,'s','f', 3);
insert into cliente values(1, 111,'Fabian','09/28/1989',10000,'s','m', 1);
11. Agregar el campo dirección a la tabla de los clientes
alter table cliente add direccion varchar2(20)
12. Crear una vista materializada con los clientes de la comuna de la florida
create materialized view VistaConsulta
as
(
select cl.nombre, co.nombre
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna
where co.nombre = 'La Florida')
;
13. Crear una vista de los clientes de Ñuñoa y San Ramón pero de solo lectura
create view Vista
as
(
select cl.nombre
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna
where co.nombre = 'La Granja' or co.nombre = 'San Ramon'
)
with read only;
14. Crear una vista de los clientes de San Bernardo y Maipu que al insertar datos solo acepte datos de esas comunas
create view Vista2
as
(
select cl.nombre
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna
where co.nombre = 'San Bernardo' or co.nombre = 'Maipu'
)
with check option;
15. Mostrar el nombre y el año (no la fecha)de nacimiento de los clientes que son de la florida
select cl.nombre, extract(year from cl.fechanac)
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna
where co.nombre = 'La Florida'
16. Mostrar todos los clientes que nacieron después del año 1990
desc cliente
insert into cliente values(7, 777,'Yeremy','09/09/1998',999,'s','m', 2, 'la gayja 321');
insert into cliente values(6, 666,'Carlitos','11/09/1995',4999,'c','m', 2, 'internet 7676');
select * from cliente
where extract(year from fechanac) > 1990;
17. Mostrar que clientes están hoy de cumpleaños.
insert into cliente values(8, 888,'Esteban Aguila','05/07/1945',10000,'s','m', 1, 'Catorce oriente 123');
insert into cliente values(9, 999,'Luis Aguila','02/07/1961',10000,'c','m', 1, 'Castro chiloe 1233');
update cliente set fechanac = '05/25/1980' where idcliente = 8;
update cliente set fechanac = '05/25/1940' where idcliente = 9;
select * from cliente
where extract(day from fechanac) = extract(day from sysdate)
and extract(month from fechanac) = extract(month from sysdate);
18. Mostrar cuantos clientes son mayores de 50 años
select * from cliente
where fechanac <= '05/25/1965'
19. Eliminar el campo fecha de nacimiento de la tabla de los clientes
ALTER TABLE cliente
DROP COLUMN fechanac;
20. Mostrar los clientes que son de la ciudad de Rancagua.
INSERT INTO ciudad VALUES(2,'Rancagua');
INSERT INTO comuna VALUES(7,'Rancagua',2);
update cliente set idcomuna = 7 where idcliente = 8;
update cliente set idcomuna = 7 where idcliente = 9;
select cl.rut, cl.nombre, ci.nombre
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna inner join
ciudad ci on co.idciudad = ci.idciudad
where ci.nombre = 'Rancagua';
21. Modificar el tamaño del nombre de la columna nombre del cliente a 35 caracteres.
alter table cliente
modify nombre varchar2(35);
desc cliente;
22. Mostrar cual es el promedio de deudas que tienen los clientes de la ciudad de Santiago
select avg(cl.deuda)
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna
inner join ciudad ci on
co.idciudad = ci.idciudad
where ci.nombre = 'Santiago'
select cl.deuda
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna
inner join ciudad ci on
co.idciudad = ci.idciudad
where ci.nombre = 'Santiago'
23. Mostrar cual es el promedio de deudas por cada comuna
select co.nombre, avg(cl.deuda)
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna
group by co.nombre
select co.nombre, cl.deuda
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna
24. Mostrar cuantas personas mantienen deudas de más de 500.000 pesos
select count(nombre) from cliente
where deuda > 500000
25. Mostrar cuantas mujeres deben más de 300.000 pesos
select count(sexo) from cliente
where deuda > 300000 and sexo = 'f';
select * from cliente
insert into cliente values(10,1000, 'maria', 350000, 'c' , 'f' , 3,'jepues 1212');
26. Mostrar cuantos clientes están casados por ciudad
select count(cl.nombre), ci.nombre
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna inner join
ciudad ci on co.idciudad = ci.idciudad
where cl.estadocivil = 'c'
group by ci.nombre;
select * from cliente;
27. Mostrar cuantos hombres solteros existen sin deuda
insert into cliente values(11,1000, 'Juan', 0, 's' , 'm' , 2,'hola 123');
insert into cliente values(12,1111, 'Mario', 0, 's' , 'm' , 5,'campo 3434');
select count(idcliente)
from cliente
where deuda = 0 and sexo = 'm';
28. Mostrar cuantos clientes son mujeres por ciudad
insert into cliente values(13,1222, 'maria jose', 200000, 's' , 'f' , 7,'hola 123');
select count(cl.idcliente), ci.nombre
from cliente cl inner join comuna co
on cl.idcomuna = co.idcomuna inner join
ciudad ci on co.idciudad = ci.idciudad
where cl.sexo = 'f'
group by ci.nombre;
29. Mostrar cual es la suma de lo adeudado por los hombres
select sum(deuda)
from cliente
where sexo = 'm'
30. Mostrar cual es el promedio adeudado por mujer
select avg(deuda)
from cliente
where sexo = 'f'
31. Mostrar cual es la persona que debe más dinero en todo chile
select *
from cliente
where deuda =
(
select max(deuda) from cliente
)
select * from cliente
32. Mostrar cual es la mujer que debe más en todo chile
select *
from cliente
where deuda =
(
select max(deuda) from cliente
where sexo ='f'
)
以上是关于sql Ejercicio de consultas en oracle 11g express的主要内容,如果未能解决你的问题,请参考以下文章
sql BIT / IAM-1792 - Se adicionaelparámetroidPlantela la consulta de aulas disponibles parafi
vbscript Iterar registros de una consulta SELECT en ASP CLASSIC
php Usar la clase Db en Laravel para hacer consultas a la base de datos