Baixe o app para aproveitar ainda mais
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
Compartilhar