Modele no TOAD e resolva as seguintes consultas

Foi criado um sistema de compra de ingressos em teatros. São armazenados o nome, valor do ingresso e a data em que o espetaculo acontecerá em determinado teatro. Um cliente que queira comprar um ingresso, deve fornecer o seu nome e telefone de contato. O ingresso está associado a uma determinada cadeira do teatro, válida apenas para aquele espetáculo. Ao comprar o ingresso, a cadeira deve ser marcada como ocupada.

Realizar as seguintes consultas.

•	Quais as cadeiras vazias para os espetáculos que começam com a letra 'A',

•	Qual cliente comprou mais ingressos.

•	Que cliente comprou ingressos para cadeiras pares ?

•	Que espetáculos possuem mais cadeiras ocupadas?

/*
Created		13/10/2016
Modified		13/10/2016
Project		
Model			
Company		
Author		
Version		
Database		PostgreSQL 8.1 
*/

/* Create Tables */

Create table cliente
(
	cod_cliente Char(20) NOT NULL,
	nome_cliente Varchar(50),
	telefone_cliente Varchar(10),
 primary key (cod_cliente)
) Without Oids;

Create table espetaculo
(
	cod_espetaculo Integer NOT NULL,
	nome_espetaculo Varchar(50),
	valor_espetaculo Double precision,
	data_espetaculo Date,
 primary key (cod_espetaculo)
) Without Oids;

Create table cadeira
(
	cod_cadeira Integer NOT NULL,
	fila_cadeira Char(1),
	num_cadeira Integer,
 primary key (cod_cadeira)
) Without Oids;

Create table ingresso
(
	cod_espetaculo Integer NOT NULL,
	cod_cliente Char(20),
	cod_cadeira Integer NOT NULL,
	ocupado Boolean,
 primary key (cod_espetaculo,cod_cadeira)
) Without Oids;

/* Create Foreign Keys */

Alter table ingresso add  foreign key (cod_cliente) references cliente (cod_cliente) on update restrict on delete restrict;

Alter table ingresso add  foreign key (cod_espetaculo) references espetaculo (cod_espetaculo) on update restrict on delete restrict;

Alter table ingresso add  foreign key (cod_cadeira) references cadeira (cod_cadeira) on update restrict on delete restrict;

insert into cliente (cod_cliente, nome_cliente,
telefone_cliente) values 
(1, 'Grinaldo','3350-8787'), 
(2,'Emanuel','2345-1213'),
(3, 'Isis', '7654-6565');

insert into espetaculo (cod_espetaculo,
nome_espetaculo, valor_espetaculo, 
data_espetaculo) 
values 
(1,'Peppa', 40.00, '2016/10/01'),
(2,'Patati Patata', 60.00, '2016/10/06'),
(3,'Galinha Pintadinha', 100.00, '2016/10/10');

insert into cadeira (cod_cadeira, fila_cadeira, 
num_cadeira)
values 
(1,'A',1), 
(2,'B',1), 
(3,'C',1); 

insert into ingresso 
select cod_espetaculo, null as cod_cliente, cod_cadeira, 'false'
from espetaculo, cadeira

update ingresso
set cod_cliente = 3, ocupado = 'true'
where cod_espetaculo = 3 and cod_cadeira=3;

select s.cod_cadeira
from espetaculo as e inner join ingresso as s
     on (e.cod_espetaculo = s.cod_espetaculo)
where s.ocupado = 'true' 
and e.nome_espetaculo like 'G%'

select c.nome_cliente, count (*) as qtde
from cliente as c inner join ingresso as i
     on (c.cod_cliente = i.cod_cliente)
group by c.cod_cliente
having count (*) = 
(select max (qtde)
from
(select c.nome_cliente, count (*) as qtde
from cliente as c inner join ingresso as i
     on (c.cod_cliente = i.cod_cliente)
group by c.cod_cliente
order by qtde desc) as tabela)

select nome_espetaculo, count (*) as qtde
from espetaculo as e inner join ingresso as i
    on (e.cod_espetaculo = i.cod_espetaculo)
where i.ocupado = 'true'
group by e.cod_espetaculo
select c.nome_cliente, d.num_cadeira
from cliente as c inner join ingresso as i
     on (c.cod_cliente = i.cod_cliente)
     inner join cadeira as d
     on (i.cod_cadeira = d.cod_cadeira)
where d.num_cadeira % 2 = 1;

select nome_espetaculo, count (*) as qtde
from espetaculo as e inner join ingresso as i
    on (e.cod_espetaculo = i.cod_espetaculo)
where i.ocupado = 'true'
group by e.cod_espetaculo
having count (*) =
(select max (qtde)
from
(select nome_espetaculo, count (*) as qtde
from espetaculo as e inner join ingresso as i
    on (e.cod_espetaculo = i.cod_espetaculo)
where i.ocupado = 'true'
group by e.cod_espetaculo) as tabela)