Buscar

Exercicio SQL Relacionamentos

Prévia do material em texto

Disciplina: Banco de Dados Turma: ___ Data:23/11/16
Relacionamentos em SQL
Múltiplas Tabelas : uma das grandes características de um sistema de banco de dados relacional é a capacidade de interagir com múltiplas tabelas, como se elas fossem apenas uma. Paras exemplificar este tipo de operação, é necessário criar um novo banco de dados denominado departamento De Cobrança, o qual possuirá duas tabelas: uma denominada Cliente e a outra denominada Venda, que serão posteriormente relacionadas.
Tabela Cliente: será utilizada para armazenar os dados dos clientes que efetuarão compras a prazo. Ela deve ser criada de acordo com a seguinte estrutura:
CREATE TABLE CLIENTE
(CODIGO CHAR(3) NOT NULL PRIMARY KEY,
NOME CHAR(40) NOT NULL,
ENDERECO CHAR(50) NOT NULL,
CIDADE CHAR(20) NOT NULL,
ESTADO CHAR(2) NOT NULL,
CEP CHAR(9) NOT NULL);
Assim que a tabela estiver criada será necessário informar os dados dos clientes(13 registros). Para tanto utilize o comando INSERT INTO entre os dados indicados logo em seguida.
 1)Código:250
Nome: Banco Barca S/A
Endereço: R. Vito, 34
Cidade: São Benedito
Estado: CE
CEP: 62380-000
 2)Código:820
Nome: Mecânica São Paulo
Endereço: R. do macuco, 99
Cidade: Santo Antonio
Estado: ES
CEP: 29810-020
 3)Código:170
Nome: Posto Brasil Ltda
Endereço: Av. Império,85
Cidade: Guagirus
Estado: BA
CEP: 42837-000
 7)Código:860
Nome: Assis Contábil S/A Ltda
Endereço: R. do Monumento,550
Cidade: Santo Amaro
Estado: BA
CEP: 44200-090
 8)Código:230
Nome: Supermercado Botagofo
Endereço: R. da Lagoa,999
Cidade: Rio das Ostras
Estado: RJ
CEP: 28890-540
 9)Código:150
Nome: Marcondes e Irmão Ltda. 
Endereço: R. do Oratório,66
Cidade: Oeste
Estado: MT
CEP: 78470-010
 10)Código:800
Nome: Doceira Pão de Açúcar
Endereço: R. Martins Pena,200
Cidade: Santo André
Estado: SP
CEP: 09190-700
****************************************************************************************
Tabela VENDA:
CREATE TABLE VENDA
(DUPLIC CHAR (6) NOT NULL PRIMARY KEY,
VALOR MONEY NOT NULL,
VENCTO DATE NOT NULL,
CODCLI CHAR (3) NOT NULL);
Assim que a tabela estiver criada, será necessário informar os dados sobre os registros de venda (60 registros). 
Deve ser cadastrado:
Duplic:230001
Valor:1300.00
Vencto:10/06/2001
CodCli:340
Duplic:23009
Valor:1000.00
Vencto:10/02/2002
CodCli:820
Duplic:997818
Valor:3000.00
Vencto:11/11/1999
CodCli:170
Duplic:202550
Valor:9518.55
Vencto:21/11/2002
CodCli:750
Duplic:113340
Valor:2002.00
Vencto:25/11/2001
CodCli:230
Duplic:900450
Valor:1200.00
Vencto:09/09/2002
CodCli:340
Duplic:202020
Valor:2390.00
Vencto:11/11/2001
CodCli:550
Duplic:100200
Valor:3500.00
Vencto:11/10/2002
CodCli:230
Duplic:345611
Valor:5090.67
Vencto:12/12/2002
CodCli:550
Duplic:900855
Valor:2356.00
Vencto:10/10/2001
CodCli:340
Duplic:444888
Valor:6700.99
Vencto:31/05/2002
CodCli:300
Duplic:111999
Valor:125.12
Vencto:06/05/2002
CodCli:990
Duplic:888001
Valor:5000.00
Vencto:03/10/2002
CodCli:340
Duplic:888002
Valor:5000.00
Vencto:03/11/2002
CodCli:340
Duplic:888003
Valor:5000.00
Vencto:03/12/2002
CodCli:340
Duplic:555555
Valor:3000.00
Vencto:12/06/2002
CodCli:100
Duplic:333222
Valor:567.89
Vencto:12/12/2002
CodCli:750
Duplic:303030
Valor:1200.00
Vencto:14/12/2002
CodCli:750
Duplic:300999
Valor:2002.00
Vencto:12/11/2002
CodCli:860
Relacionamentos de Tabelas:Para determinar o relacionamento entre tabelas, é necessário ter no mínimo duas tabelas que possuam entre si algum campo em comum. No exemplo das tabelas Cliente e Venda, existe o campo de Código do cliente (código na tabela Cliente e CodCLi na tabela Venda) como campo comum, pois apesar de os nomes serem diferentes, a estrutura e o tipo são iguais( o que basta para definir um relacionamento entre as tabelas).
 
A obtenção de informação existente em tabelas relacionadas é conseguida com o comando SELECT, o qual fará uso da seguinte sintaxe (será considerada a extração de informação de duas tabelas):
SELECT < tabela. Campo>, <Tabela.campo>
 FROM <TABELA1>,<Tabela2>
 WHERE < condição>;
Dentro do conceito exposto, imagine a necessidade de obter uma relação (listagem) das duplicatas (tabela venda)existente em cobrança e o nome(tabela cliente) dos clientes que estão com estas duplicatas.
SELECT cliente.nome, venda.duplic
 FROM cliente, venda
 WHERE cliente.código = venda.codcli;
Outro exemplo de extração relacionada pode ser a apresentação de uma listagem ordenada por nomes de clientes, mostrando a relação de duplicatas que cada um possui em carteira( a pagar) e seus respectivos valores.
SELECT cliente.nome, venda.duplic, venda.valor
 FROM cliente, venda
 WHERE cliente.código = venda.codcli
 ORDER BY cliente.nome;
Imagine a necessidade de efetuar a extração de uma listagem que apresenta as duplicatas existentes em carteira do cliente PCTEC – Microcomputadores S/S. na listagem deve conter o nome do cliente , o n° da duplicata e seu valor correspondente.
SELECT cliente.nome, venda.duplic
 FROM cliente, venda
 WHERE cliente.código = venda.codcli
 AND cliente.nome LIKE ‘PCTEC*’;
Relacionamentos de Tabelas:Para determinar o relacionamento entre tabelas, é necessário ter no mínimo duas tabelas que possuam entre si algum campo em comum. No exemplo das tabelas Cliente e Venda, existe o campo de Código do cliente (código na tabela Cliente e CodCLi na tabela Venda) como campo comum, pois apesar de os nomes serem diferentes, a estrutura e o tipo são iguais( o que basta para definir um relacionamento entre as tabelas).
 
A obtenção de informação existente em tabelas relacionadas é conseguida com o comando SELECT, o qual fará uso da seguinte sintaxe (será considerada a extração de informação de duas tabelas):
SELECT < tabela. Campo>, <Tabela.campo>
 FROM <TABELA1>,<Tabela2>
 WHERE < condição>;
Dentro do conceito exposto, imagine a necessidade de obter uma relação (listagem) das duplicatas (tabela venda)existente em cobrança e o nome(tabela cliente) dos clientes que estão com estas duplicatas.
SELECT cliente.nome, venda.duplic
 FROM cliente, venda
 WHERE cliente.código = venda.codcli;
Outro exemplo de extração relacionada pode ser a apresentação de uma listagem ordenada por nomes de clientes, mostrando a relação de duplicatas que cada um possui em carteira( a pagar) e seus respectivos valores.
SELECT cliente.nome, venda.duplic, venda.valor
 FROM cliente, venda
 WHERE cliente.código = venda.codcli
 ORDER BY cliente.nome;
Imagine a necessidade de efetuar a extração de uma listagem que apresenta as duplicatas existentes em carteira do cliente PCTEC – Microcomputadores S/S. na listagem deve conter o nome do cliente , o n° da duplicata e seu valor correspondente.
SELECT cliente.nome, venda.duplic
 FROM cliente, venda
 WHERE cliente.código = venda.codcli
 AND cliente.nome LIKE ‘PCTEC*’;
 4)Código:340
Nome: Transp. Carga Esada Ltda
Endereço: Av. dos Autonomistas,100
Cidade: Osasco
Estado: SP
CEP: 06020-010
 5)Código:100
Nome: Micro Informática S/A
Endereço: R. das Palmeiras,4 – Loja 2
Cidade: São Paulo
Estado: SP
CEP: 01226-010
 6)Código:750
Nome: Imobiliária Pavão
Endereço: Av. Brasil, 105
Cidade: Rio do Prado
Estado: MG
CEP: 39940-111
 11)Código:990
Nome: Metalúrgica Fogo e ferro
Endereço: Artur Bernardes, 3500
Cidade: Santo André
Estado: SP
CEP: 09193-41012)Código:500
Nome: Jose Dantas e filhos S/A Ltda.
Endereço: Av. Ipiranga , 1000
Cidade: Lucrecia 
Estado: RN
CEP: 59805-010
 13)Código:300
Nome: PCTEC- microcomputadores S/A
Endereço: R.Cais do Porto, Armazém 3
Cidade: Santos
Estado: SP
CEP: 11000-005
Duplic:250013
Valor:2002.00
Vencto:10/03/2002
CodCli:820
Duplic:451300
Valor:1750.00
Vencto:22/05/1999
CodCli:800
Duplic:400400
Valor:6000.00
Vencto:15/03/1999
CodCli:340
Duplic:210001
Valor:6000.00
Vencto:12/04/1999
CodCli:100
Duplic:500005
Valor:5060.88
Vencto:15/05/1999
CodCli:990
Duplic:100000
Valor:5060.88
Vencto:15/05/1999
CodCli:300
Duplic:100010
Valor:5060.88
Vencto:15/06/1999
CodCli:300
Duplic:100020
Valor:5060.88
Vencto:15/07/1999
CodCli:300
Duplic:230001
Valor:1300.00
Vencto:10/06/2000
CodCli:340
Duplic:950888
Valor:2002.00
Vencto:10/09/2000
CodCli:550
Duplic:100333
Valor:4300.44
Vencto:15/05/1999
CodCli:990
Duplic:460460
Valor:1300.00
Vencto:28/04/1999
CodCli:100
Duplic:121212
Valor:3340.50
Vencto:23/05/2001
CodCli:340
Duplic:340001
Valor:4500.00
Vencto:12/11/2000
CodCli:300
Duplic:888000
Valor:1000.00
Vencto:01/06/2002
CodCli:990
Duplic:777888
Valor:2300.55
Vencto:19/05/2002
CodCli:550
Duplic:222111
Valor:6000.00
Vencto:31/07/2002
CodCli:550
Duplic:456987
Valor:1200.00
Vencto:12/02/2002
CodCli:800
Duplic:999111
Valor:5500.00
Vencto:15/06/2002
CodCli:340
Duplic:277333
Valor:3300.50
Vencto:21/05/2002
CodCli:550
Duplic:888666
 Valor:3000.00
 Vencto:10/09/2002
 CodCli:150
Duplic:177662
 Valor:234.00
 Vencto:11/11/2000
 CodCli:230
Duplic:500543
 Valor:760.00
 Vencto:10/07/2002
 CodCli:820
Duplic:100052
 Valor:2600.00
 Vencto:10/10/2002
 CodCli:860
Duplic:400465
 Valor:1234.00
 Vencto:10/10/2000
 CodCli:820
Duplic:777333
 Valor:3400.00
 Vencto:12/11/1999
 CodCli:150
Duplic:300200
 Valor:1000.00
 Vencto:02/05/2002
 CodCli:750
Duplic:888555
 Valor:8700.00
 Vencto:10/09/2002
 CodCli:150
Duplic:909909
 Valor:2500.00
 Vencto:15/07/2002
 CodCli:750
Duplic:556677
 Valor:2500.00
 Vencto:02/10/2002
 CodCli:230
Duplic:900999
 Valor:3456.00
 Vencto:11/11/1999
 CodCli:170
Duplic:500555
 Valor:1500.00
 Vencto:13/12/2002
 CodCli:250
Duplic:222333
 Valor:1000.00
 Vencto:05/07/2002
 CodCli:150
Duplic:222334
 Valor:967.00
 Vencto:10/08/2002
 CodCli:150
Duplic:222334
 Valor:967.00
 Vencto:10/08/2002
 CodCli:150
Duplic:500545
 Valor:2500.00
 Vencto:03/08/2002
 CodCli:230
Duplic:545600
 Valor:1750.86
 Vencto:03/09/2002
 CodCli:230
Duplic:100050
 Valor:3545.00
 Vencto:01/09/2002
 CodCli:860

Continue navegando