SHARE
TWEET

Untitled

a guest Jun 18th, 2019 68 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*exercicio1*/
  2.  
  3. create table categorias
  4. (codCategoria integer auto_increment not null,
  5. nome varchar(45) not null,
  6. descricao varchar(45) not null,
  7. PRIMARY KEY(codCategoria));
  8.  
  9. create table Produtos
  10. (codProduto integer auto_increment not null,
  11. codCategoria integer not null,
  12. nome varchar(45) not null,
  13. preco double(4,4) not null,
  14. PRIMARY KEY(codProduto),
  15. FOREIGN KEY (codCategoria) references categorias(codCategoria));
  16.  
  17. create table Clientes
  18. (codCliente integer auto_increment not null,
  19. nome varchar(45) not null,
  20. telefone varchar(45) not null,
  21. limiteCredito double (4,0) not null,
  22. PRIMARY KEY(codCliente));
  23.  
  24. create table Pedidos
  25. (numPedido integer auto_increment not null,
  26. codCliente integer not null,
  27. data date not null,
  28. PRIMARY KEY(numPedido),
  29. foreign key (codCliente) references clientes(codCliente));
  30.  
  31. create table ProdutoPedido
  32. (numPedido integer not null,
  33. codCliente integer not null,
  34. dataa date not null,
  35. quantidade integer not null,
  36. PRIMARY KEY(codCliente, numPedido),
  37. foreign key(codCliente) references clientes(codCliente),
  38. foreign key(numPedido) references pedidos(codCliente));
  39.  
  40. /*bd_publicacoes*/ 
  41.  
  42. CREATE DATABASE publicacoes;
  43.  
  44. USE publicacoes;
  45.  
  46. create table Autores
  47. (codAutor integer AUTO_INCREMENT NOT NULL,
  48. nome varchar(45) not null,
  49. dataNascimento date,
  50. PRIMARY KEY(codAutor));
  51.  
  52. DESCRIBE livros;
  53.  
  54. create tablE editoras
  55. (codEditora integer AUTO_INCREMENT NOT NULL,
  56. razaoSocial varchar(45) not null,
  57. CNPJ varchar(14) not null,
  58. endereco varchar(80),
  59. PRIMARY KEY (codEditora),
  60. UNIQUE KEY (CNPJ));
  61.  
  62. CREATE TABLE livros
  63. (titulo varchar(45) not null,
  64. codAutor integer not null,
  65. codEditora integer not null,
  66. valor float not null,
  67. edicao integer,
  68. PRIMARY KEY (titulo, codAutor),
  69. foreign key (codAutor) references autores(codAutor),
  70. foreign key (codEditora) references editoras(codEditora));
  71.  
  72. alter table autores
  73. add nacionalidade varchar(45);
  74.  
  75. alter table autores
  76. modify column nome varchar(60);
  77.  
  78. describe autores;
  79.  
  80. INSERT INTO autores(nome,dataNascimento)
  81. values ('Autora do harry pote', '1839-06-21');
  82.  
  83. select * from autores;
  84.  
  85. insert into editoras(razaoSocial,CNPJ, endereco)
  86. values('Livraria Garnier', '11111111111', 'Rua Brasil, 180');
  87.  
  88. insert into livros (titulo,codAutor, codEditora, valor, edicao)
  89. values('Dom Casmuro', '1','1','30.0',1);
  90.  
  91. UPDATE autores
  92. SET nome = 'joaquim maria machado de assis'
  93. WHERE codAutor = 2;
  94.  
  95. select * from autores order by nome DESC;
  96.  
  97. select * FROM autores where nome in ('Mauricio de Souza');
  98.  
  99. select * from autores where nome like 'a%';
  100.  
  101. select * from editoras where endereco is null;
  102.  
  103. select codAutor AS ID FROM autores;
  104.  
  105. select distinct valor from livros;
  106.  
  107. /*CREATE DATABASE livraria_prof;*/
  108.  
  109. USE livraria_prof;
  110.  
  111. CREATE TABLE IF NOT EXISTS editoras (
  112.     codEditora int AUTO_INCREMENT PRIMARY KEY,
  113.     nome varchar(80)
  114. );
  115.  
  116. CREATE TABLE IF NOT EXISTS assuntos (
  117.     sigla char PRIMARY KEY,
  118.     descricao varchar(50) NOT NULL
  119. );
  120.  
  121. CREATE TABLE IF NOT EXISTS autores (
  122.     matricula int PRIMARY KEY,
  123.     nome varchar(80) NOT NULL,
  124.     CPF character(11) NOT NULL,
  125.     endereco varchar(100) NOT NULL,
  126.     dataNascimento date NOT NULL,
  127.     nacionalidade varchar(30) NOT NULL
  128. );
  129.  
  130. CREATE TABLE IF NOT EXISTS livros (
  131.     codLivro int AUTO_INCREMENT PRIMARY KEY,
  132.     titulo varchar(80) NOT NULL,
  133.     preco float,
  134.     lancamento date,
  135.     assunto char NOT NULL,
  136.     editora int NOT NULL,
  137.     FOREIGN KEY (assunto) REFERENCES assuntos(sigla),
  138.     FOREIGN KEY (editora) REFERENCES editoras(codEditora)
  139. );
  140.  
  141. CREATE TABLE IF NOT EXISTS autores_livros (
  142.     codLivro int NOT NULL,
  143.     matriculaAutor int NOT NULL,
  144.     PRIMARY KEY (codLivro, matriculaAutor),
  145.     FOREIGN KEY (codLivro) REFERENCES livros(codLivro),
  146.     FOREIGN KEY (matriculaAutor) REFERENCES autores(matricula)
  147. );
  148.  
  149.  
  150. INSERT INTO editoras(nome) VALUES
  151. ('Mirandela Editora'),
  152. ('Editora Via-Norte'),
  153. ('Editora Ilhas Tijucas'),
  154. ('MJ Editora');
  155.  
  156. INSERT INTO assuntos(sigla, descricao) VALUES
  157. ('B', 'Banco de Dados'),
  158. ('P', 'Programação'),
  159. ('R', 'Redes'),
  160. ('S', 'Sistemas Operacionais');
  161.  
  162. INSERT INTO livros(titulo, preco, lancamento, assunto, editora) VALUES
  163. ('Banco de Dados para a Web', 131.2, '2015-01-10', 'B', 1),
  164. ('Programando em Linguagem C', 130, '2007-10-01', 'P', 1),
  165. ('Programando em Linguagem C++', 110.5, '2002-11-01', 'P', 3),
  166. ('Bancos de Dados na Bioinformática', 90, 'null', 'B', 2),
  167. ('Redes de Computadores', 72, '2011-03-07', 'R', 2);
  168.  
  169.  
  170. INSERT INTO autores(matricula, nome, CPF, endereco, dataNascimento, nacionalidade) VALUES
  171. (123, 'John Smith', '11111111111', 'Rua Brasil', '1963-04-03', 'Canadense'),
  172. (456, 'Adam Silva', '22222222222', 'Rua Canadá', '1983-06-13', 'Brasileira'),
  173. (789, 'Matias Rodriguez', '33333333333', 'Rua Argentina', '1976-08-06', 'Argentina');
  174.  
  175. INSERT INTO autores_livros(codLivro, matriculaAutor) VALUES
  176. (1, 456),
  177. (1, 789),
  178. (2, 123),
  179. (3, 123),
  180. (4, 456),
  181. (5, 789);
  182.  
  183. select * from editoras;
  184. select * from assuntos;
  185. select * from autores;
  186.  
  187. select titulo, descricao  /*inner join, não aparece o nulo */
  188. from livros
  189. inner join assuntos
  190. on assunto = sigla
  191. where lancamento is not null;
  192.  
  193. select titulo, nome, descricao
  194. from livros
  195. inner join editoras E
  196. on editora = E.codEditora
  197. inner join assuntos
  198. on assunto = sigla;
  199.  
  200. /*select pnome,unome from funcionarios SILVA
  201. WHERE .pnome = 'joao' and F.unome = 'silva';
  202.  
  203.  
  204. SELECT pnr from funcionarios F,TRABALHA_EM T
  205. WHERE F.pnome = 'joao' and F.unome = 'silva' and T.fcpf = F.cpf ;*/
  206.  
  207. select nome, titulo
  208. from editoras  E
  209. inner join livros
  210. on editora = E.codEditora
  211. where lancamento is not null
  212. order by nome, titulo;
  213.  
  214. /*junção externa*/
  215. select nome, titulo
  216. from editoras E
  217. left outer join livros
  218. on editora = E.codEditora
  219. order by nome, titulo;
  220.  
  221. select descricao, titulo
  222. from assuntos
  223. left outer join livros
  224. on sigla = assunto
  225. order by descricao;
  226.  
  227. /*junção externa a direita*/
  228. select descricao, titulo
  229. from livros
  230. right outer join assuntos
  231. on sigla = assunto
  232. order by descricao;
  233.  
  234. /*junção externa completa*/
  235. select titulo, nome
  236. from livros
  237. full join editoras
  238. on editoras.codEditora = editora
  239. order by titulo;
  240.  
  241. /*Letra A*/
  242. select titulo, preco ,nome
  243. from livros inner join editoras E
  244. on E.codEditora = livros.editora
  245. where livros.preco < 100 ;
  246.  
  247. /*Letra B*/
  248. select nome as NomeAutor, titulo as Título
  249. from autores A inner join autores_livros L on
  250. A.matricula = L.matriculaAutor
  251. inner join livros Li on
  252. Li.codLivro = L.codLivro
  253. order by NomeAutor;
  254.  
  255. /*Letra C*/
  256. select E.nome AS Nome_Editora from editoras E
  257. inner join autores_livros AL
  258. inner join livros L
  259. inner join autores A
  260. on AL.codLivro = L.codLivro and AL.matriculaAutor = A.matricula and L.editora = E.codEditora
  261. where A.nome = 'Adam Silva';
  262.  
  263. /*Letra D*/
  264. select count(A.nome) as quantidade_smith from livros L
  265. INNER JOIN autores_livros AL on AL.codLivro = L.codLivro
  266. inner join autores A on AL.matriculaAutor = A.matricula
  267. where A.nome like '%Smith%';
  268.  
  269. /*Letra E*/
  270. select max(L.preco) as livro_mais_caro_mirandela from livros L
  271. inner join editoras E on E.codEditora = L.editora
  272. inner join assuntos A on L.assunto = A.sigla
  273. where E.nome = 'Mirandela Editora' and A.sigla = 'P';
  274.  
  275. /*Letra F*/
  276. select nome NOME from editoras
  277. left join livros L on codEditora = L.editora where L.editora is null;
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top