Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Tamanho: px
Começar a partir da página:

Download "Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011"

Transcrição

1 Banco de Dados I Aula 14 - Prof. Bruno Moreno 11/10/2011

2 Plano de Aula INSERT UPDATE SELECT-FROM-WHERE Uso de ALIASES SELECT com * DISTINCT Operações de Conjuntos Comparação entre substrings Operadores aritméticos em consultas Operador BETWEEN Ordenação de resultado de consultas 09:30

3 Considere o esquema... 08:30

4 Considere o esquema... 08:30

5 Construindo tabelas... create table funcionario ( pnome varchar(30), minicial varchar(30), unome varchar(30), cpf varchar(11), datanasc date, endereco varchar(100), sexo char, salario decimal(10,2), cpf_supervisor varchar(11), dnr integer, primary key(cpf) ); 08:30 create table departamento ( dnome varchar(30), dnumero integer, cpf_gerente varchar(11), data_inicio_gerente date, primary key(dnumero) ); create table dependente ( fcpf varchar(11), nome_dependente varchar(50), sexo char, datanasc date, parentesco varchar(50), primary key(fcpf, nome_dependente) );

6 Construindo tabelas... create table projeto ( projnome varchar(50), projnumero integer, projlocal varchar(50), dnum integer, primary key(projnumero) ); create table trabalha_em ( fcpf varchar(11), pnr integer, horas decimal(5,1), primary key(fcpf, pnr) ); create table localizacao_dep ( dnumero integer, dlocal varchar(50), primary key(dnumero, dlocal) ); 08:30

7 Adicionando restrições alter table funcionario add constraint dep_func_fk foreign key(dnr) references departamento(dnumero); alter table funcionario add constraint superv_func_fk foreign key(cpf_supervisor) references funcionario(cpf); alter table departamento add constraint ger_dep_fk foreign key(cpf_gerente) references funcionario(cpf); alter table dependente add constraint func_depen_fk foreign key(fcpf) references funcionario(cpf); alter table projeto add constraint dep_proj_fk foreign key(dnum) references departamento(dnumero); alter table localizacao_dep add constraint dep_localizacao_fk foreign key(dnumero) references departamento(dnumero); alter table trabalha_em add constraint func_trabalha_em_fk foreign key(fcpf) references funcionario(cpf); alter table trabalha_em add constraint projeto_trabalha_em_fk foreign key(pnr) references projeto(projnumero); 08:30

8 Comando de INSERÇÃO INSERT Valores devem ser relacionados na mesma ordem em que os atributos foram especificados no CREATE TABLE create table departamento ( dnome varchar(30), dnumero integer, cpf_gerente varchar(11), data_inicio_gerente date, primary key(dnumero) ); INSERT INTO DEPARTAMENTO VALUES ( Pesquisa', 5, null, null); INSERT INTO DEPARTAMENTO (dnome, dnumero) VALUES ('Administracao', 4); INSERT INTO DEPARTAMENTO (dnumero, dnome) VALUES (1, 'Matriz'); 08:30

9 Comando de INSERÇÃO create table funcionario ( pnome varchar(30), minicial varchar(30), unome varchar(30), cpf varchar(11), datanasc date, endereco varchar(100), sexo char, salario decimal(10,2), cpf_supervisor varchar(11), dnr integer, primary key(cpf) ); INSERT INTO FUNCIONARIO VALUES ('Jorge', 'E', 'Brito', ' ', ' ', 'Rua do Horto, 35, Sao Paulo, SP', 'M', 55000, null, 1); INSERT INTO FUNCIONARIO VALUES ('Jennifer', 'S', 'Souza', ' ', ' ', 'Av. Arthur de Lima, 54, Santo Andre, SP', 'F', 43000, ' ', 4); INSERT INTO FUNCIONARIO VALUES ('Fernando', 'T', 'Wong', ' ', ' ', 'Rua da Lapa, 34, Sao Paulo, SP', 'M', 40000, ' ', 5); INSERT INTO FUNCIONARIO VALUES ('Joao', 'B', 'Silva', ' ', ' ','Rua das Flores, 751, Sao Paulo, SP', 'M', 30000, ' ', 5); 08:30

10 Comando de INSERÇÃO create table funcionario ( pnome varchar(30), minicial varchar(30), unome varchar(30), cpf varchar(11), datanasc date, endereco varchar(100), sexo char, salario decimal(10,2), cpf_supervisor varchar(11), dnr integer, primary key(cpf) ); INSERT INTO FUNCIONARIO VALUES ('Ronaldo', 'K', 'Lima', ' ', ' ','Rua Rebouças, 65, Piracicaba, SP', 'M', 38000, ' ', 5); INSERT INTO FUNCIONARIO VALUES ('Joice', 'A', 'Leite', ' ', ' ','Av. Lucas Obes, 74, São Paulo, SP', 'F', 25000, ' ', 5); INSERT INTO FUNCIONARIO VALUES ('Alice', 'J', 'Zelaia', ' ', ' ','Rua Souza Lima, 35, Curitiba, PR', 'F', 25000, ' ', 4); INSERT INTO FUNCIONARIO VALUES ('Andre', 'V', 'Pereira', ' ', ' ','Rua Timbira, 35, São Paulo, SP', 'M', 25000, ' ', 4); 08:36

11 Comando de INSERÇÃO Ao inserir em DEPARTAMENTO, não foram definidos os gerentes create table departamento ( dnome varchar(30), dnumero integer, cpf_gerente varchar(11), data_inicio_gerente date, primary key(dnumero) ); INSERT INTO DEPARTAMENTO VALUES ( Pesquisa', 5, null, null); INSERT INTO DEPARTAMENTO (dnome, dnumero) VALUES ('Administração', 4); INSERT INTO DEPARTAMENTO (dnumero, dnome) VALUES (1, 'Matriz'); Comando de ATUALIZAÇÃO 08:36

12 Comando de ATUALIZAÇÃO UPDATE Utilizado para modificar valores de atributos de uma ou mais tuplas Cláusula WHERE seleciona as tuplas que serão modificadas UPDATE SET WHERE <RELAÇÃO> <ATUALIZAÇÃO> <CONDIÇÃO> 08:36

13 Comando de ATUALIZAÇÃO UPDATE UPDATE DEPARTAMENTO SET CPF_GERENTE = ' ' WHERE DNUMERO = 5; 08:38

14 Comando de ATUALIZAÇÃO UPDATE UPDATE DEPARTAMENTO SET CPF_GERENTE = ' ' WHERE DNUMERO = 5; 08:38

15 Comando de ATUALIZAÇÃO UPDATE UPDATE DEPARTAMENTO SET DATA_INICIO_GERENTE = ' WHERE DNUMERO = 5; 08:38

16 Comando de ATUALIZAÇÃO UPDATE UPDATE DEPARTAMENTO SET DATA_INICIO_GERENTE = ' WHERE DNUMERO = 5; 08:38

17 Comando de ATUALIZAÇÃO UPDATE UPDATE DEPARTAMENTO SET CPF_GERENTE = ' ', DATA_INICIO_GERENTE = ' ' WHERE DNUMERO = 4; 08:38

18 Comando de ATUALIZAÇÃO UPDATE UPDATE DEPARTAMENTO SET CPF_GERENTE = ' ', DATA_INICIO_GERENTE = ' ' WHERE DNUMERO = 4; 08:39

19 Comando de ATUALIZAÇÃO UPDATE UPDATE DEPARTAMENTO SET CPF_GERENTE = ' ', DATA_INICIO_GERENTE = ' ' WHERE DNUMERO = 1; 08:39

20 Comando de ATUALIZAÇÃO UPDATE UPDATE DEPARTAMENTO SET CPF_GERENTE = ' ', DATA_INICIO_GERENTE = ' ' WHERE DNUMERO = 1; 08:39

21 Continuando com os INSERTs INSERT em PROJETO (1) INSERT INTO PROJETO VALUES ('ProdutoX', 1, 'Santo André', 5); (2) INSERT INTO PROJETO VALUES ('ProdutoY', 2, 'Itu', 5); (3) INSERT INTO PROJETO VALUES ('ProdutoZ', 3, 'São Paulo', 5); 08:42

22 Continuando com os INSERTs INSERT em PROJETO (4) INSERT INTO PROJETO VALUES ('Informatização', 10, 'Mauá', 4); (5) INSERT INTO PROJETO VALUES ('Reorganização', 20, 'São Paulo', 1); (6) INSERT INTO PROJETO VALUES ('Novosbenefícios', 30, 'Mauá', 4); 08:42

23 Continuando com os INSERTs INSERT em DEPENDENTE (1) INSERT INTO DEPENDENTE VALUES (' ', 'Alicia', 'F', ' ', 'Filha'); (2) INSERT INTO DEPENDENTE VALUES (' ', 'Tiago', 'M', ' ', 'Filho'); 08:42

24 Continuando com os INSERTs INSERT em DEPENDENTE (3) INSERT INTO DEPENDENTE VALUES (' ', 'Janaina', 'F', ' ', 'Esposa'); (4)INSERT INTO DEPENDENTE VALUES (' ', 'Antonio', 'M', ' ', 'Marido'); 08:43

25 Continuando com os INSERTs INSERT em DEPENDENTE (5)INSERT INTO DEPENDENTE VALUES (' ', 'Michael', 'M', ' ', 'Filho'); (6) INSERT INTO DEPENDENTE VALUES (' ', 'Alicia', 'F', ' ', 'Filha'); (7)INSERT INTO DEPENDENTE VALUES (' ', 'Elizabeth', 'F', ' ', 'Esposa'); 08:43

26 Continuando com os INSERTs INSERT em LOCALIZACAO_DEP (1) INSERT INTO LOCALIZACAO_DEP VALUES (1, 'São Paulo'); (2) INSERT INTO LOCALIZACAO_DEP VALUES (4, 'Mauá'); (3) INSERT INTO LOCALIZACAO_DEP VALUES (5, 'Santo André'); (4) INSERT INTO LOCALIZACAO_DEP VALUES (5, Itu'); (5) INSERT INTO LOCALIZACAO_DEP VALUES (5, 'São Paulo'); 08:43

27 Continuando com os INSERTs INSERT em TRABALHA_EM (1) INSERT INTO TRABALHA_EM VALUES (' ', 1, 32.5); (2) INSERT INTO TRABALHA_EM VALUES (' ', 2, 7.5); (3) INSERT INTO TRABALHA_EM VALUES (' ', 3, 40.0); (4) INSERT INTO TRABALHA_EM VALUES (' ', 1, 20.0); (5) INSERT INTO TRABALHA_EM VALUES (' ', 2, 20.0); (6) INSERT INTO TRABALHA_EM VALUES (' ', 2, 10.0); (7) INSERT INTO TRABALHA_EM VALUES (' ', 3, 10.0); (8) INSERT INTO TRABALHA_EM VALUES (' ', 10, 10.0); (9) INSERT INTO TRABALHA_EM VALUES (' ', 20, 10.0); (10) INSERT INTO TRABALHA_EM VALUES (' ', 30, 30.0); (11) INSERT INTO TRABALHA_EM VALUES (' ', 10, 10.0); (12) INSERT INTO TRABALHA_EM VALUES (' ', 10, 35.0); (13) INSERT INTO TRABALHA_EM VALUES (' ', 30, 5.0); (14) INSERT INTO TRABALHA_EM VALUES (' ', 30, 20.0); (15) INSERT INTO TRABALHA_EM VALUES (' ', 20, 15.0); (16) INSERT INTO TRABALHA_EM VALUES (' ', 20, null); 08:46

28 SELECT-FROM-WHERE Forma mais básica da declaração SELECT SELECT <lista de atributos> FROM <lista de trabelas> WHERE <condição>; Operadores mais comumente utilizados... =, <, <=, >, >= e <> 08:46

29 SELECT-FROM-WHERE Exemplo (1): Recupere o aniversário e o endereço dos empregados cujo nome seja João Silva. SELECT FROM DATANASC, ENDERECO FUNCIONARIO WHERE PNOME = 'João' AND UNOME = 'Silva' Qual expressão em álgebra relacional é semelhante a consulta acima? 08:52

30 SELECT-FROM-WHERE Uma consulta SELECT da SQL não é igual a consulta SELECT da álgebra relacional 08:52 SELECT é similar a um par de operações SELEÇÃO- PROJEÇÃO SELECT determina os atributos da PROJEÇÃO WHERE determina a condição da SELEÇÃO Em SQL é permitido a duplicação de tuplas. Palavra Chave DISTINCT

31 SELECT-FROM-WHERE Exemplo (2): Recupere o nome e o endereço de todos os empregados que trabalham no departamento Pesquisa SELECT FROM PNOME, UNOME, ENDERECO FUNCIONARIO, DEPARTAMENTO WHERE DNOME = 'Pesquisa' AND DNUMERO = DNR 08:54

32 SELECT-FROM-WHERE Exemplo (2): Recupere o nome e o endereço de todos os empregados que trabalham no departamento Pesquisa SELECT FROM PNOME, UNOME, ENDERECO FUNCIONARIO, DEPARTAMENTO WHERE DNOME = 'Pesquisa' AND DNUMERO = DNR SELECT-PROJECT-JOIN 08:55

33 SELECT-FROM-WHERE Exemplo (2): Recupere o nome e o endereço de todos os empregados que trabalham no departamento Pesquisa SELECT FROM PNOME, UNOME, ENDERECO FUNCIONARIO, DEPARTAMENTO WHERE DNOME = 'Pesquisa' AND DNUMERO = DNR SELECT-PROJECT-JOIN 08:55

34 SELECT-FROM-WHERE Exemplo (2): Recupere o nome e o endereço de todos os empregados que trabalham no departamento Pesquisa SELECT FROM PNOME, UNOME, ENDERECO FUNCIONARIO, DEPARTAMENTO WHERE DNOME = 'Pesquisa' AND DNUMERO = DNR SELECT-PROJECT-JOIN 08:56

35 SELECT-FROM-WHERE Exemplo (2): Recupere o nome e o endereço de todos os empregados que trabalham no departamento Pesquisa SELECT FROM PNOME, UNOME, ENDERECO FUNCIONARIO, DEPARTAMENTO WHERE DNOME = 'Pesquisa' AND DNUMERO = DNR SELECT-PROJECT-JOIN 08:56

36 SELECT-FROM-WHERE Exemplo (3): Para cada projeto localizado em São Paulo, relacione o número do projeto, o número do departamento responsável e o último nome do gerente do departamento, seu endereço e data de aniversário 08:58 SELECT PROJNUMERO, DNUM, UNOME, ENDERECO, DATANASC FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND PROJLOCAL = 'São Paulo' SELECT-PROJECT-JOIN

37 SELECT-FROM-WHERE Exemplo (3): Para cada projeto localizado em São Paulo, relacione o número do projeto, o número do departamento responsável e o último nome do gerente do departamento, seu endereço e data de aniversário 08:58 SELECT PROJNUMERO, DNUM, UNOME, ENDERECO, DATANASC FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND PROJLOCAL = São Paulo SELECT-PROJECT-JOIN

38 SELECT-FROM-WHERE Exemplo (3): Para cada projeto localizado em São Paulo, relacione o número do projeto, o número do departamento responsável e o último nome do gerente do departamento, seu endereço e data de aniversário 08:58 SELECT PROJNUMERO, DNUM, UNOME, ENDERECO, DATANASC FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND PROJLOCAL = São Paulo SELECT-PROJECT-JOIN

39 SELECT-FROM-WHERE Exemplo (3): Para cada projeto localizado em São Paulo, relacione o número do projeto, o número do departamento responsável e o último nome do gerente do departamento, seu endereço e data de aniversário SELECT PROJNUMERO, DNUM, UNOME, ENDERECO, DATANASC FROM DNUM DNUMERO 08:58 PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF PROJETO DEPARTAMENTO AND PROJLOCAL = São Paulo SELECT-PROJECT-JOIN

40 SELECT-FROM-WHERE Exemplo (3): Para cada projeto localizado em São Paulo, relacione o número do projeto, o número do departamento responsável e o último nome do gerente do departamento, seu endereço e data de aniversário 08:58 SELECT PROJNUMERO, DNUM, UNOME, ENDERECO, DATANASC FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF CPF_GERENTE CPF DEPARTAMENTO FUNCIONARIO AND PROJLOCAL = São Paulo SELECT-PROJECT-JOIN

41 Aliases Palavra chave AS SELECT F.PNOME, F.UNOME, S.PNOME, S.UNOME FROM FUNCIONARIO AS F, FUNCIONARIO AS S WHERE F.CPF_SUPERVISOR = S.CPF 08:59

42 Aliases Sem a palavra chave AS SELECT F.PNOME, F.UNOME, S.PNOME, S.UNOME FROM FUNCIONARIO F, FUNCIONARIO S WHERE F.CPF_SUPERVISOR = S.CPF 08:59

43 Aliases Exemplo (2-B) Melhor compreensão da consulta SELECT FROM WHERE PNOME, UNOME, ENDERECO FUNCIONARIO F, DEPARTAMENTO D D.DNOME = 'Pesquisa' AND D.DNUMERO = F.DNR 09:00

44 SELECT sem WHERE Ausência do WHERE indica que não há condições para seleção de tuplas 09:04 Todas as tuplas das relações especificadas no FROM irão aparecer na relação resultante Exemplos (1) SELECT CPF FROM FUNCIONARIO; (2) SELECT CPF, DNOME FROM FUNCIONARIO, DEPARTAMENTO Ausência do WHERE com um FROM e mais do que uma relação: PRODUTO CARTESIANO

45 Uso do * Especifica que devem ser recuperados todos os atributos das relações especificadas Exemplo (1): SELECT * FROM FUNCIONARIO WHERE DNR = 5 09:04

46 Uso do * Especifica que devem ser recuperados todos os atributos das relações especificadas Exemplo (2): SELECT * FROM FUNCIONARIO, DEPARTAMENTO 09:06

47 Uso do * Especifica que devem ser recuperados todos os atributos das relações especificadas Exemplo (3): SELECT * FROM FUNCIONARIO, DEPARTAMENTO WHERE DNOME = 'Pesquisa' AND DNR = DNUMERO; 09:06

48 Palavra chave DISTINCT SQL não trata uma relação como um conjunto Multiconjunto Tuplas repetidas podem aparecer mais de uma vez Não elimina automaticamente tuplas repetidas nos resultados de operações Motivos Eliminação das tuplas repetidas é uma operação dispendiosa Pode ser do interesse do usuário ver tuplas repetidas em determinado resultado Ao usar funções de agregação em SQL geralmente não deseja-se eliminar as tuplas repetidas 09:06

49 Palavra chave DISTINCT Para eliminar as tuplas repetidas: DISTINCT Explicitar que deseja-se tuplas repetidas: ALL Exemplos SELECT ALL SALARIO FROM FUNCIONARIO; SELECT DISTINCT SALARIO FROM FUNCIONARIO; 09:09

50 Palavra chave DISTINCT Para eliminar as tuplas repetidas: DISTINCT Explicitar que deseja-se tuplas repetidas: ALL Exemplos SELECT ALL SALARIO FROM FUNCIONARIO; Iguais! SELECT SALARIO FROM FUNCIONARIO; SELECT DISTINCT SALARIO FROM FUNCIONARIO; 09:09

51 Operações de conjuntos SQL incorporou UNION, EXCEPT (MINUS) e INTERSECT Exemplo (1): (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:09

52 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:09

53 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:12

54 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:12

55 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:13

56 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:13

57 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:14

58 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:14

59 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:14

60 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:14

61 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:15

62 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:15

63 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:15

64 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:15

65 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:15

66 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:15

67 (SELECT DISTINCT PROJNUMERO FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE DNUM = DNUMERO AND CPF_GERENTE = CPF AND UNOME = Wong ) UNION (SELECT DISTINCT PROJNUMERO FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE PROJNUMERO = PNR AND FCPF = CPF AND UNOME = Wong ) 09:15 Como foi utilizada uma operação de conjuntos, as repetições são eliminadas Para não eliminá-las (operação de um multiconjunto), basta utilizar a palavra-chave ALL UNION ALL EXCEPT ALL, INTERSECT ALL

68 09:15 UNION ALL?

69 Comparações entre substrings Uso do operador LIKE e % ou _ (1) SELECT PNOME, UNOME FROM FUNCIONARIO WHERE ENDERECO LIKE '%São Paulo, SP%' 09:16

70 Operadores Aritméticos Adição (+), subtração (-), multiplicação (*) e divisão (/) Exemplo: Mostre o salário de todos os funcionários que trabalham no projeto ProdutoX com aumento de 10% SELECT FROM WHERE PNOME, UNOME, 1.1*SALARIO AS AUMENTO_SAL FUNCIONARIO, TRABALHA_EM, PROJETO CPF = FCPF AND PNR = PROJNUMERO AND PROJNOME = 'ProdutoX' 09:22

71 Operadores Aritméticos Adição (+) e subtração (-) podem ser utilizados para dados do tipo data DATE, TIME, TIMESTAMP SELECT F.PNOME ' ' F.UNOME AS NOME_FUNC, F.DATANASC AS NASC_FUNC, D.NOME_DEPENDENTE, D.DATANASC AS NASC_DEP, D.PARENTESCO, D.DATANASC-F.DATANASC AS DIF_DATANASC FROM FUNCIONARIO F, DEPENDENTE D WHERE F.CPF = D.FCPF 09:29

72 Operadores Aritméticos Adição (+) e subtração (-) podem ser utilizados para dados do tipo data DATE, TIME, TIMESTAMP SELECT F.PNOME ' ' F.UNOME AS NOME_FUNC, F.DATANASC AS NASC_FUNC, D.NOME_DEPENDENTE, D.DATANASC AS NASC_DEP, D.PARENTESCO, D.DATANASC-F.DATANASC AS DIF_DATANASC FROM FUNCIONARIO F, DEPENDENTE D WHERE F.CPF = D.FCPF 09:29

73 Operador BETWEEN Igual a <= e >= utilizados em conjunto Exemplo: Recupere todos os funcionários do departamento 5 que ganham entre 30 mil e 40 mil SELECT * FROM FUNCIONARIO WHERE (SALARIO >= AND SALARIO <= 40000) AND DNR = 5 09:29

74 Operador BETWEEN Igual a <= e >= utilizados em conjunto Exemplo: Recupere todos os funcionários do departamento 5 que ganham entre 30 mil e 40 mil SELECT * FROM FUNCIONARIO WHERE (SALARIO BETWEEN AND 40000) AND DNR = 5 09:30

75 Ordenação de resultado de consultas Palavra chave: ORDER BY Permite a ordenação de resultados de consultas pelos valores de um ou mais atributos Exemplo: SELECT DNOME AS DEP_NOME, UNOME, PNOME, PROJNOME FROM DEPARTAMENTO, FUNCIONARIO, TRABALHA_EM, PROJETO WHERE DNUMERO = DNR AND CPF = FCPF AND PNR = PROJNUMERO ORDER BY DEP_NOME, UNOME, PNOME 09:33

76 Ordenação de resultado de consultas ORDER BY: por default é ordem ascendente Pode ser explicitado por ASC Para ordem descendente: DESC Exemplo: SELECT DNOME AS DEP_NOME, UNOME, PNOME, PROJNOME FROM DEPARTAMENTO, FUNCIONARIO, TRABALHA_EM, PROJETO WHERE DNUMERO = DNR AND CPF = FCPF AND PNR = PROJNUMERO ORDER BY DEP_NOME DESC, UNOME ASC, PNOME ASC 09:33

77 Próxima aula PRÁTICA! 14/10/2011

78 Esquema Lógico 18/10/2011

79 Freqüência! Aula 14 - Prof. Bruno Moreno 11/10/2011

Consultas SQL. Andre Noel

Consultas SQL. Andre Noel Consultas SQL Andre Noel Introdução Introdução Uma distinção entre SQL e o modelo relacional: SQL permite que uma tabela tenha duas ou mais tuplas iguais Introdução Uma distinção entre SQL e o modelo relacional:

Leia mais

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos para

Leia mais

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011 Banco de Dados I Aula 16 - Prof. Bruno Moreno 04/11/2011 Plano de Aula O comando DELETE Cláusula CHECK Comparações utilizando NULL Funções agregadas Junções de tabelas em SQL Visões Comando DELETE DELETE

Leia mais

A Linguagem SQL. Introdução a Banco de Dados DCC 011

A Linguagem SQL. Introdução a Banco de Dados DCC 011 A Linguagem SQL Introdução Originalmente proposta para o System R desenvolvido nos laboratórios da IBM na década de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforço de padronização coordenado

Leia mais

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos para

Leia mais

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Forma geral: SELECT FROM [WHERE ] [GROUP BY ]

Leia mais

Roteiro. SQL(Structured Query Language) BCC321 - Banco de Dados I. Introdução. Ementa. Posicionamento. Introdução

Roteiro. SQL(Structured Query Language) BCC321 - Banco de Dados I. Introdução. Ementa. Posicionamento. Introdução Roteiro SQL(Structured Query Language) Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Posicionamento Introdução

Leia mais

SQL-99: Esquema de BD EMPRESA

SQL-99: Esquema de BD EMPRESA SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 1 Consultas externa, aninhada e correlacionada para cada tupla da consulta externa, a consulta aninhada devolve o atributo solicitado

Leia mais

SQL. Profa. Msc. Fernanda Lígia Rodrigues Lopes. Disciplina: Fundamentos de Banco de Dados

SQL. Profa. Msc. Fernanda Lígia Rodrigues Lopes. Disciplina: Fundamentos de Banco de Dados SQL Profa. Msc. Fernanda Lígia Rodrigues Lopes Disciplina: Fundamentos de Banco de Dados Roteiro O que é SQL? Breve Histórico da SQL Usos da SQL Comandos SQL DDL Comandos SQL DML Comandos para consultas

Leia mais

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

- Um query block permite a implementação das operações de selecção, projecção e junção da álgebra relacional. 2.3 Linguagens relacionais (continuação) SQL Structured Query Language 1) "Query block" Select From Where - Um "query block" permite a implementação

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

Leia mais

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013 Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação Criar um banco de dados denominado Escola ; Criar a tabela, como especificado abaixo: # RA Numeric(8) Nome Serie Turma

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 SQL Structured Query Language SQL Desenvolvida pela IBM Structured English Query Language Sequel Linguagem de consulta para o sistema R Primeiro

Leia mais

SQL-99: Definição de esquema, restrições básicas e consultas

SQL-99: Definição de esquema, restrições básicas e consultas SQL-99: Definição de esquema, restrições básicas e consultas A linguagem SQL é uma das maiores razões para o sucesso dos BD relacionais no mundo comercial Este capítulo apresenta as principais funcionalidades

Leia mais

SQL PostgreSQL. I Criação de Tabelas. Disciplina: Banco de Dados e suas Aplicações Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL PostgreSQL. I Criação de Tabelas. Disciplina: Banco de Dados e suas Aplicações Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: Banco de Dados e suas Aplicações Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos

Leia mais

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

SQL. Prof. Roger Cristhian Gomes

SQL. Prof. Roger Cristhian Gomes SQL Prof. Roger Cristhian Gomes SQL SQL - Structured Query Language Linguagem de acesso e manipulação de sistemas de base de dados computacionais que segue o padrão ANSI Existem diferenças entre as versões

Leia mais

SQL Básica. Andre Noel

SQL Básica. Andre Noel SQL Básica Andre Noel Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Se tornou

Leia mais

Introdução ao Banco de Dados. Banco de Dados

Introdução ao Banco de Dados. Banco de Dados Introdução ao Banco de Dados Prof. Tiago Garcia de Senna Carneiro UFOP Prof. Técnicas de Programação II 2006 PARTE 1: Conceitos Básicos Banco de Dados SGDB: Sistema Gerenciador de Banco de Dados Definição:

Leia mais

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018 Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação criar tabela Criar um novo arquivo de banco de dados chamado Escola Criar a tabela, como especificado abaixo: Create table

Leia mais

Bancos (Bases) de Dados

Bancos (Bases) de Dados Bancos (Bases) de Dados Aula #8 SQL Prof. Eduardo R. Hruschka * Slides baseados no material elaborado pelas professoras: Cristina D. A. Ciferri Elaine P. M. de Souza SQL (Structured Query Language) Linguagem

Leia mais

Banco de Dados. Professora: Luciana Faria

Banco de Dados. Professora: Luciana Faria Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai Banco de Dados SQL João Eduardo Ferreira Osvaldo Kotaro Takai Introdução SQL - Structured Query Language Linguagem declarativa não-procedimental Desenvolvida e implementada pelo laboratório de pesquisa

Leia mais

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Gerenciamento de Dados e Informação

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Gerenciamento de Dados e Informação Introdução Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta,

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger Banco de Dados Álgebra Relacional João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger Tópicos Apresentação Seleção Projeção Renomeio de Atributos União, Subtração e operações de conjuntos Junção:

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM Página

Leia mais

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Programa Introdução Conceitos

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

'%'! $!0 $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,/)!)+,/)% *! +,0''% * %$!*!$$ #!%&%'%'%$! 94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31? MODELAGEM FÍSICA Capítulo 3! " # $ $!%%%& '$! $% $$%"%' ) ' *'!%'!$ $ $ $% +, %#!!" '$*'#%! $ $$%" % '$%!!% $% * % $ *-! %$% $!* '% $!$$.!'% & $%!% $ $ ' %/!$ 0 $*' $% *0 )#%!$0% 1&$$$%+#!*22,"$% )'%$$%%&

Leia mais

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação SQL Básica DML Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 22 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 1 / 16 1 Introdução 2 SQL DML INSERT SELECT UPDATE

Leia mais

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011 Banco de Dados Aula 8 - Prof. Bruno Moreno 16/09/2011 Plano de Aula Operações Unárias Seleção Projeção Operações de seleção e projeção seqüenciadas Operação Rebatizar Operações Binárias União Interseção

Leia mais

SQL (Tópicos) Structured Query Language

SQL (Tópicos) Structured Query Language SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir

Leia mais

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka Aula de SQL Comandos DDL André Luiz de Oliveira Eduardo Raul Hruschka E-mail: andre_luiz@icmc.usp.br erh@icmc.usp.br Agenda Instalação do MySQL e Workbench Comandos DDL Data Definition Language Criação

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

Bancos de Dados. 8. Structured Query Language (SQL)

Bancos de Dados. 8. Structured Query Language (SQL) Bancos de Dados 8. Structured Query Language (SQL) Introdução A padronização ao redor de SQL é uma das principais razões para o sucesso dos bancos de dados relacionais A migração entre SGBDs é facilitada,

Leia mais

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina Banco de Dados SQL Fernando Fonseca Ana Carolina Introdução SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta, permitindo definição (DDL)

Leia mais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais Linguagem de Consulta SQL Profa. Carla A. Lima Reis SQL Agenda Introdução Histórico BD relacionais Linguagem SQL Definição de BD Manipulação de BD com SQL Consultas SQL Consultas com várias tabelas Subconsultas

Leia mais

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO... Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@facom.ufu.br Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

Leia mais

Utilizando o Postgres - comandos SQL para a manipulação de dados

Utilizando o Postgres - comandos SQL para a manipulação de dados Utilizando o Postgres - comandos SQL para a manipulação de dados SELECT A declaração SELECT é utilizada para selecionar os dados de um banco de dados. SELECT nome FROM clientes WHERE A cláusula WHERE é

Leia mais

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DML Frederico D. Bortoloti freddb@ltc.ufes.br SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,

Leia mais

Banco de Dados I Introdução SQL

Banco de Dados I Introdução SQL Banco de Dados I Introdução SQL Frederico Queiroga fredericoqueiroga@gmail.com https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

Leia mais

Manipulando a base de dados

Manipulando a base de dados Manipulando a base de dados Uma base de dados pode ser manipulada com quatro operações básicas: Incluir, Apagar, Alterar e Pesquisar. Vale lembrar que como toda linguagem para computadores, o MySQL tem

Leia mais

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

Leia mais

L Q S m e g a u g n Li A

L Q S m e g a u g n Li A A Linguagem SQL Introdução Originalmente proposta para o System R desenvolvido nos laboratórios da IBM na década de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforço de padronização coordenado

Leia mais

Marcelo Henrique dos Santos

Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Marketing e Vendas (em andamento) Especialista em games Bacharel em Sistema de Informação Email: marcelosantos@outlook.com AULA 03 SQL (Structure Query Language)

Leia mais

A linguagem SQL

A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

Linguagem SQL. Comandos Básicos

Linguagem SQL. Comandos Básicos Linguagem SQL Comandos Básicos Caetano Traina Júnior Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.sc.usp.br Comando

Leia mais

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki PROGRAMA 3.SQL Básico 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação 1 3.SQL Básico A linguagem SQL foi desenvolvida para o ambiente relacional, podendo ser adaptada a ambientes

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 6.1 Revisão de Banco de Dados (SQL e acesso via aplicativo)

Leia mais

Banco de Dados. Cálculo Relacional de Tuplas. João Eduardo Ferreira Osvaldo Kotaro Takai

Banco de Dados. Cálculo Relacional de Tuplas. João Eduardo Ferreira Osvaldo Kotaro Takai Banco de Dados Cálculo Relacional de Tuplas João Eduardo Ferreira Osvaldo Kotaro Takai Introdução O Cálculo Relacional de Tuplas (CRT) é uma alternativa à Álgebra Relacional (AR). A AR é procedimental,

Leia mais

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010 Sumário SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 1 Introdução 2 Tabelas 3 Colunas 4 5 Modificação de Tabelas 6 Domínios André Restivo (FEUP)

Leia mais

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Banco de Dados Álgebra Relacional João Eduardo Ferreira Osvaldo Kotaro Takai Introdução A Álgebra Relacional contempla um conjunto de operações que permitem especificar consultas sob relações. As operações

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Bases de Dados. Parte V: A Linguagem SQL. Parte V

Bases de Dados. Parte V: A Linguagem SQL. Parte V Bases de Dados Parte V A Linguagem SQL Ricardo Rocha DCC-FCUP 1 SQL Structured Query Language O SQL é uma poderosa linguagem declarativa que permite definir, questionar e manipular bases de dados. Para

Leia mais

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome> 1. Manuseio do banco de dados MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS As seguintes instruções manuseiam o banco de dados: cria o banco mostra os bancos

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) SQL SQL (Structured Query Language), ou Linguagem de Consulta Estruturada. Usada em Bancos de Dados Relacionais. É padronizada (SQL ANSI). ANSI (American National

Leia mais

Definida pelo American National Standard Institute (ANSI) em 1986

Definida pelo American National Standard Institute (ANSI) em 1986 2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional

Leia mais

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer SQL BÁSICO Luiz Antônio Vivacqua Corrêa Meyer SQL (Structured Query Language) Início na década de 70 pela IBM com o nome de SEQUEL. Em 1980 o produto mudou seu nome para SQL. American National Standards

Leia mais

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD. Definição do esquema da base de dados o esquema da BD é composto pelas definições de todas as tabelas da BD. existem outros elementos (views, índices, triggers) que também fazem parte do esquema e que

Leia mais

Apresentação Modelo e SQL. André Luiz Montevecchi

Apresentação Modelo e SQL. André Luiz Montevecchi Apresentação Modelo e SQL André Luiz Montevecchi andreluiz@unipacbomdespacho.com.br Conceitos básicos de um modelo de dados Primary Key Foreign Key Padronização Modelo Sist. Odontológico Revisão SQL -

Leia mais

MySql. Introdução a MySQL. Andréa Garcia Trindade

MySql. Introdução a MySQL. Andréa Garcia Trindade MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo

Leia mais

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A BANCO DE DADOS GERENCIAL 1 A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A CONCEITOS LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML) A linguagem

Leia mais

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes Escola Secundária de Albufeira Comandos MySQL (Páginas Web Dinâmicas: PHP e MySQL) (csmnunes@gmail.com) 2009/2010 Criar Base de Dados CREATE DATABASE basededados; Apagar Base de Dados DROP DATABASE basededados;

Leia mais

IMPLEMENTAÇÃO DE BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

SIG: Sistemas de Informações Geográficas. Adaptado de Gilberto Câmara

SIG: Sistemas de Informações Geográficas. Adaptado de Gilberto Câmara SIG: Sistemas de Informações Geográficas Adaptado de Gilberto Câmara Banco de Dados Geográficos Comandos SQL Adaptado de Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto

Leia mais

BANCO DE DADOS II CONVENIÊNCIA

BANCO DE DADOS II CONVENIÊNCIA BANCO DE DADOS II CONVENIÊNCIA Carolina Pedrosa 1380168 Rômulo Vitor 1380371 SITUAÇÃO PROBLEMA Conveniência Uma conveniência terá um sistema que cadastrará clientes que terá como atributo nome, CPF, telefone

Leia mais

Disciplina: Banco de Dados Tema: SQL Parte 2

Disciplina: Banco de Dados Tema: SQL Parte 2 Disciplina: Banco de Dados Tema: SQL Parte 2 PROFESSOR: DANILO MONTEIRO EMAIL: PROF.DANILO.MONTEIRO@GMAIL.COM O que foi visto na aula passada? create database Drop database Create table Drop table PROF.DANILO.MONTEIRO@GMAIL.COM

Leia mais

Objetos Persistentes. Objetos Persistentes: são objetos que requerem armazenamento persistente.

Objetos Persistentes. Objetos Persistentes: são objetos que requerem armazenamento persistente. Banco de Dados Objetos Persistentes ì Objetos Persistentes: são objetos que requerem armazenamento persistente. Exemplo: Instâncias da classe Descrição Produto devem ser armazenadas em uma base de dados.

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe A Linguagem SQL Tecnologia de Base de Dados MSc. Eugénio. Macumbe A Linguagem SQL As raízes da linguagem SQL remontam a 1974, altura em que na IBM corp. se desenvolvia o protótipo de um sistema relacional

Leia mais

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução 1 Banco de Dados Prof. Dr. Joel da Silva SQL - Introdução 2 SQL - Introdução SQL-Structured Query Language (Linguagem de Consulta Estruturada) Apesar do QUERY, não é apenas de consulta (inclusão, alteração,...)

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

SQL. SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL. SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL Banco de Dados I Prof. Guilherme Tavares de Assis Universidade

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

Leia mais

Programação em Banco de dados

Programação em Banco de dados Programação em Banco de dados CREATE DATABASE A03; GO USE A03; GO -- Cria a tabela para armazenar PRODUTO CREATE TABLE PRODUTO( CDPRODUTO INT NOT NULL, NOMEPRODUTO VARCHAR(255), CONSTRAINT PK_PRODUTO PRIMARY

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 17 Escola Politécnica da Universidade de São Paulo 1 SQL STRUCTURED QUERY LANGUAGE Manipulação de dados operações de modificam o estado das tabelas:

Leia mais

Revisão de Bancos de Dados

Revisão de Bancos de Dados Revisão de Bancos de Dados Conceitos Básicos 1. Defina o que é um banco de dados e o que é um sistema gerenciador de bancos de dados (SGBD). 2. Defina as arquiteturas de software em duas camadas (cliente/servidor)

Leia mais

GBC043 Sistemas de Banco de Dados

GBC043 Sistemas de Banco de Dados Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 Avisos Vista da prova 1 com

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Linguagem SQL: Introdução; Construção/Definição de tabelas. 2 Linguagem SQL SQL - Structured Query Language;

Leia mais

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g Pedro F. Carvalho OCP Oracle 2008.2 10g SQL Avançado Atualização e Inserção de Dados Comando INSERT Sumário Inclusão simples, inclusão de dados com SELECT Comando UPDATE Alteração simples, alteração usando

Leia mais

Manipulação de Dados com SQL

Manipulação de Dados com SQL Manipulação de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I manipulação de dados com SQL 2 Structured Query Language

Leia mais

mod._1_teoria_sistemas de bancos de dados.doc

mod._1_teoria_sistemas de bancos de dados.doc SISTEMAS DE BANCOS DE DADOS Os Sistemas de Bancos de Dados apareceram para acabar com os problemas e desvantagens dos tradicionais Sistemas de Processamento de Arquivos, onde os registros permanentes eram

Leia mais

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT 2) Componentes do Select: - DISTINCT - WHERE - AND e OR - ORDER BY 2) Visão Geral - A SQL é dividida em

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

Esquema Empresa. departamento (num, nome, identger, dataini) PK=(num) dependente (identemp, nome, sexo, datanasc, parentesco) PK=(identemp, nome)

Esquema Empresa. departamento (num, nome, identger, dataini) PK=(num) dependente (identemp, nome, sexo, datanasc, parentesco) PK=(identemp, nome) Esquema Empresa departamento (num, nome, identger, dataini PK=(num dependente (identemp, nome, sexo, datanasc, parentesco PK=(identemp, nome deploc (depnum, local PK=(depnum, local empregado (ident, nome,

Leia mais

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação Enfoques de SQL Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Valeria Times Bernadette Loscio Linguagem interativa de consulta (ad-hoc): usuários podem definir consultas independente

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

Discussão exercício aula 18. SQL Linguagem de Manipulação de Dados. Discussão exercício aula 18. Discussão exercício aula 18 SQL.

Discussão exercício aula 18. SQL Linguagem de Manipulação de Dados. Discussão exercício aula 18. Discussão exercício aula 18 SQL. Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Discussão exercício aula 18 Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137

Leia mais