# data[].attributes.attachment_link.title
Lista de exercicios Resolvido 01 - MC - 6 folhas

# data[].attributes.attachment_link.readable_text
CREATE DATABASE IF NOT EXISTS livraria2;
USE `livraria2`;

/*Table structure for table `autor` */
DROP TABLE IF EXISTS `autor`;
CREATE TABLE `autor` (
`idautor` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(100) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
PRIMARY KEY (`idautor`)
);

/*Data for the table `autor` */
insert into `autor`(`idautor`,`nome`,`email`) values
(default,'J.K.Rowling','jk@hp.com'),
(default,'J.R.R.Tolkein','jrr@ceu.com'),
(default,'Jorge Amado','ja@ceu.com'),
(default,'Machado de Assis','ma@cemiterio.com'),
(default,'Suzanne Collins','sc@legal.com'), 
(default, 'Edi lopes', 'edi@amo.com');

/*Table structure for table `cliente` */
DROP TABLE IF EXISTS `cliente`;
CREATE TABLE `cliente` (
`idcliente` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(100) NOT NULL,
`telefone` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idcliente`)
);

/*Data for the table `cliente` */
insert into `cliente`(`idcliente`,`nome`,`telefone`) values 
(default,'Joao Silva','1111'),
(default,'Maria Cunha','2222'),
(default,'Pedro Aguiar','8888'),
(default,'Elaine Luciana','9374'),
(default,'Antonio Pereira','3764');

/*Table structure for table `genero` */
DROP TABLE IF EXISTS `genero`;
CREATE TABLE `genero` (
`idgenero` int(11) NOT NULL AUTO_INCREMENT,
`descricao` varchar(100) NOT NULL,
PRIMARY KEY (`idgenero`)
);

/*Data for the table `genero` */
insert into `genero`(`idgenero`,`descricao`) values 
(null,'Aventura'),
(null,'Fic����o'),
(null,'Suspense'),
(null,'Romance'),
(null,'Infantil'),
(null,'Auto-Ajuda');

/*Table structure for table `escreve` */
DROP TABLE IF EXISTS `livro`;
CREATE TABLE `livro` (
`idlivro` int(11) NOT NULL AUTO_INCREMENT,
`titulo` varchar(100) NOT NULL,
`preco` float DEFAULT NULL,
`estoque` int(11) DEFAULT '0',
`idgenero` int(11) NOT NULL,
PRIMARY KEY (`idlivro`),
foreign key (idgenero) references genero(idgenero)
) ;

/*Data for the table `livro` */
insert into `livro`(`idlivro`,`titulo`,`preco`,`estoque`,`idgenero`) 
values 
(default,'Jogos Vorazes',25,10,1),
(default,'A Esperen��a',35,5,1),
(default,'Em Chamas',40,8,1),
(default,'Harry Potter e a Pedra Filosofal',20,12,5),
(default,'Harry Potter e o Prisioneiro de Azkaban',25,3,5),
(default, 'Bichos Monstruosos', 50, 0, 6);

DROP TABLE IF EXISTS `escreve`;
CREATE TABLE `escreve` (
`idlivro` int(11) NOT NULL,
`idautor` int(11) NOT NULL,
 foreign key (idlivro) references livro(idlivro),
foreign key (idautor) references autor(idautor)
) ;

/*Data for the table `escreve` */
insert into `escreve`(`idlivro`,`idautor`) values 
(1,5),
(2,5),
(3,5),
(4,1),
(5,1), 
(6,6);

/*Table structure for table `itens_da_venda` */
DROP TABLE IF EXISTS `venda`;
CREATE TABLE `venda` (
`idvenda` int(11) NOT NULL AUTO_INCREMENT,
`data` date DEFAULT NULL,
`total` float DEFAULT '0',
`idcliente` int(11) NOT NULL,
PRIMARY KEY (`idvenda`),
foreign key (idcliente) references cliente(idcliente)
) ;

/*Data for the table `venda` */
insert into `venda`(`idvenda`,`data`,`total`,`idcliente`) values 
(default,'2012-08-14',0,1),
(default,'2012-07-10',0,2),
(default,'2012-08-02',0,1),
(default,'2012-05-30',0,4),
(default,'2011-09-10',0,5),
(default,'2011-08-15',0,5),
(default,'0000-00-00',0,2),
(default,NULL,0,3),
(default,NULL,0,4),
(default,NULL,0,1), 
(default,null,10,5), 
(default,null,12,4);

DROP TABLE IF EXISTS `itens_da_venda`;
CREATE TABLE `itens_da_venda` (
`idvenda` int(11) NOT NULL,
`idlivro` int(11) NOT NULL,
`qtd` int(11) DEFAULT NULL,
`subtotal` varchar(45) DEFAULT NULL,

foreign key (idvenda) references venda(idvenda),
foreign key (idlivro) references livro(idlivro)
) ;

/*Data for the table `itens_da_venda` */
/*Table structure for table `venda` */

insert into `itens_da_venda`(`idvenda`,`idlivro`,`qtd`,`subtotal`) values 
(1,1,1,NULL),
(2,1,1,NULL),
(3,3,1,NULL),
(3,2,1,NULL),
(4,4,1,NULL),
(5,1,1,NULL),
(6,3,1,NULL),
(7,5,1,NULL),
(8,2,1,NULL),
(8,1,1,NULL),
(9,4,1,NULL),
(10,5,2,NULL),
(12,6,1,32);



-- E X E R C I C I O  1 
select autor.nome 
from autor
inner join escreve on escreve.idautor = autor.idautor
inner join livro on livro.idlivro = escreve.idlivro
where livro.estoque = 0;

-- OU ------

SELECT nome
FROM autor a 
INNER JOIN escreve e on a.idautor = e.idautor
INNER JOIN livro l on l.idlivro = e.idlivro 
where estoque = 5;
-- ---------------------


-- E X E R C I C I O  2

SELECT cliente.nome
FROM cliente
INNER JOIN venda on venda.idcliente = cliente.idcliente
INNER JOIN itens_da_venda on venda.idvenda = itens_da_venda.idvenda
INNER JOIN livro on livro.idlivro = itens_da_venda.idlivro
where livro.titulo = 'Bichos monstruosos';
-- ---------------------


 -- E X E R C I C I O  3


SELECT descricao
FROM genero
INNER JOIN livro ON genero.idgenero = livro.idgenero 
INNER JOIN escreve ON livro.idlivro = escreve.idlivro 
INNER JOIN autor ON autor.idautor = escreve.idautor
WHERE nome = 'Robson Lopes';

-- T O D A S    A S    C O L U N A S -------- 

SELECT *
FROM genero
INNER JOIN livro ON genero.idgenero = livro.idgenero 
INNER JOIN escreve ON livro.idlivro = escreve.idlivro 
INNER JOIN autor ON autor.idautor = escreve.idautor;
-- -------------------------------------------------


-- E X E R C I C I O   4

SELECT cliente.nome
FROM cliente
INNER JOIN venda ON venda.idcliente = cliente.idcliente
INNER JOIN itens_da_venda ON venda.idvenda = itens_da_venda.idvenda 
INNER JOIN livro ON livro.idlivro = itens_da_venda.idlivro
INNER JOIN escreve ON livro.idlivro = escreve.idlivro 
INNER JOIN autor ON autor.idautor = escreve.idautor 
WHERE autor.nome = 'Machado de Assis';

--

SELECT * from autor;
SELECT * from genero;
SELECT * from descricao;

SELECT * FROM

-- --------- consultas de aleatorias da aula

select * from livro;

select * from autor; 

select * from escreve where idautor = 6 and livro = 0;

# data[].attributes.attachment_link.readable_text
create database facebook;
use facebook;

-- criar tabela
create table if not exists cliente (
  id int auto_increment not null,
  nome varchar(255) not null,
  data_nascimento date not null,

);

insert into cliente values (default, 'Jo��o da Viola', '1982-11-26');
insert into cliente(data_nascimento, nome) values ('1960-12-24', 'Lamartine Barros');
insert into cliente(data_nascimento, nome) values ('1989-08-24', 'Claudio do Esp��rito Santo');
insert into cliente(data_nascimento, nome) values ('2016-01-10', 'Z�� Ruela');

insert into cliente(data_nascimento, nome) values 
('2016-12-24', 'Jo��o Pedro'),
('2016-10-01', 'Tristonho'),
('2010-11-24', 'Feliz');

select id, nome from cliente;
select * from cliente where nome like 'J%';
select nome, data_nascimento from cliente;
select * from cliente where nome like '%a';
select * from cliente where nome = 'Feliz';

-- atualizar
update cliente set nome = 'Filipe' where id = 7;
update cliente set nome = 'Claudio do Capeto' where id = 3;

-- excluir
delete from cliente where id = 2;
delete from cliente where id in(3,4);
delete from cliente where id = 5 or id = 7;


insert into cliente(data_nascimento, nome) values ('1974-11-16', 'Marcia');
insert into cliente(data_nascimento, nome) values ('1870-11-07', 'Filipe');
insert into cliente(data_nascimento, nome) values ('1998-09-01', 'Tiago');

select * from cliente where id >= 6;
select * from cliente where id >= 1 and nome like 'J%��o%';
select * from cliente where data_nascimento  > '1982-11-26';


create table if not exists endereco (
id int auto_increment not null,
logradouro varchar(100) not null,
numero int not null,
complemento varchar(15) null,
bairro varchar(100) not null,
cidade varchar(100) not null,
estado varchar(2) not null,
cep varchar(8) not null,
cliente_id int, -- chave estrangeira, chamando o cliente--
primary key(id),
foreign key (cliente_id) REFERENCES cliente(id)
);


select * from cliente;


insert into endereco values(
	default, 'Rua. Camburiu', 371, null, 'Sao Tome', 'Viamao', 'RS', 94460263, 10
)


select c.id , nome, e.logradouro 
from  cliente c , endereco e 
where c.id = e.cliente_id;

select * from  cliente, endereco where cliente.id = endereco.cliente_id;

select c.id , nome, e.* from  cliente c , endereco e where c.id = e.cliente_id;


select * from cliente c inner join endereco on c.id = cliente_id; 



create table if not exists setor (
id int auto_increment not null,
nome varchar(50),
primary key(id)
);

create table if not exists cargo(
id int auto_increment not null,
nome varchar(50),
setor_id int, -- chave estreangeira 
primary key(id),
foreign key(setor_id) REFERENCES setor(id)
);



ALTER TABLE `facebook`.`cliente` 
CHANGE COLUMN `cargo_id` `cargo_id` INT(11) NULL ; -- tirar o not null 

ALTER TABLE `facebook`.`cliente` 
CHANGE COLUMN `cargo_id` `cargo_id` INT(11) NOT NULL ;-- colocar o not null


ALTER TABLE `facebook`.`cliente` 
ADD COLUMN `cargo_id` INT NULL AFTER `data_nascimento`, 
COMMENT = '	' ; -- adicionando o campo sem not null 


ALTER TABLE `facebook`.`cliente` 
ADD INDEX `cargo_id_idx` (`cargo_id` ASC);
ALTER TABLE `facebook`.`cliente` 
ADD CONSTRAINT `cargo_id`
  FOREIGN KEY (`cargo_id`)
  REFERENCES `facebook`.`cargo` (`id`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION; -- colocando a foreign key 