Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS - CLEBERSON - AV1.pdf Detalhes Avaliação: CCT0199_AV1_201001483171 Tipo de Avaliação: AV1 Aluno: 201001483171 - CLEBERSON VARGAS CASADIO Professor: ADRIANA APARICIO SICSU A DO NASCIMENTO Turma: 9001/AA Nota da Prova: 8,0 de 8,0 Nota do Trabalho: Nota de Participação: 2 Data: 30/06/2012 1.) SQL 4a sem. Pontos: 0,5 / 0,5 Na linguagem SQL, para totalizarmos os valores de uma coluna usamos o comando: AVG COUNT EQUAL GROUP BY SUM 2.) MODELO RELACIONAL 2a sem. Pontos: 0,5 / 0,5 (CONSULPLAN - 2012) Nos SGBDs existem alguns tipos de integridade, dos quais o mais elementar funciona ao nível da coluna do banco de dados. O valor do campo deve obedecer ao tipo de dados e às restrições de valores admitidos para essa coluna. É o tipo conhecido por integridade de: Tabela. Entidade. Atributo. Referência. Domínio. 3.) SQL - CONCEITOS 3a sem. Pontos: 0,5 / 0,5 A linguagem SQL pode ter vários enfoques, EXCETO: Linguagem de administração de banco de dados Linguagem de consulta em ambiente cliente/servidor Linguagem para acesso às bases de dados Linguagem interativa de consulta (query AdHoc) Linguagem para a programação de sistemas de informação 4.) MODELO RELACIONAL 1a sem. Pontos: 0,5 / 0,5 BDQ Prova http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_his... 1 de 4 20/08/2012 21:04 Os atributos de uma tabela constituem: As tuplas da tabela. Os índices da tabela. As colunas da tabela. Os nomes das tabelas. As linhas da tabela. 5.) SQL - CONCEITOS 3a sem. Pontos: 1,0 / 1,0 O comando SELECT FROM WHERE corresponde as seguintes operações da álgebra relacional: Seleção e Projeção Seleção e Junção União e Interseção Seleção e Diferença Projeção e União 6.) SQL - CONCEITOS 3a sem. Pontos: 1,0 / 1,0 O comando SELECT FROM corresponde a seguinte operação da álgebra relacional: Seleção Interseção União Projeção Junção 7.) SQL 4a sem. Pontos: 1,0 / 1,0 (ENADE 2011 - Adaptado) CREATE TABLE PECAS (CODIGO NUMERIC(5) NOT NULL, DESCRICAO VARCHAR(20) NOT NULL, ESTOQUE NUMERIC(5) NOT NULL, PRIMARY KEY(CODIGO)); CREATE TABLE FORNECEDORES (COD_FORN NUMERIC(3) NOT NULL, NOME VARCHAR(30) NOT NULL, PRIMARY KEY(COD_FORN)); CREATE TABLE FORNECIMENTOS (COD_PECA NUMERIC(5) NOT NULL, COD_FORN NUMERIC(3) NOT NULL, QUANTIDADE NUMERIC(4) NOT NULL, PRIMARY KEY(COD_PECA, COD_FORN), FOREIGN KEY (COD_PECA) REFERENCES PECAS, FOREIGN KEY (COD_FORN) REFERENCES FORNECEDORES); A partir desse script, assinale a opção que apresenta o comando SQL que permite obter uma lista que contenha o nome de cada fornecedor: BDQ Prova http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_his... 2 de 4 20/08/2012 21:04 SELECT * FROM FORNECEDOR; SELECT NOME FROM FORNECEDORES; SELECT NOME_FORNECEDOR FROM FORNECEDORES; SELECT NOME FROM FORNECEDOR; SELECT * FROM FORNECEDORES; 8.) SQL PARTE 3 - FUNÇÕES DE GRUPO E ORDENAÇÃO 5a sem. Pontos: 1,0 / 1,0 De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para: Apresentar os Ids e os nomes dos Departamentos ordenados por nome de forma Decrescente. SELECT ID, NOME FROM DEPARTAMENTO ORDER BY DESC NOME; SELECT ID, NOME FROM DEPARTAMENTO ORDER BY NOME ASC; SELECT ID, NOME FROM DEPARTAMENTO ORDER BY NOME DESC; SELECT ID, NOME FROM DEPARTAMENTO ORDER BY ASC NOME; SELECT ID, NOME FROM DEPARTAMENTO ORDER BY NOME; 9.) SQL 5a sem. Pontos: 1,0 / 1,0 Considere a relação abaixo: AUTOMÓVEL (placa, fabricante, modelo, cor, data_de_fabricação) A consulta SQL que responde a questão "Liste todos os automóveis (placa, modelo, cor) fabricados pela VW ou pela Fiat" é: SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE IS ('VW', 'FIAT'); Nenhuma das resposta acima. SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE BETWEEN 'VW AND 'FIAT'; SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE IN ('VW', 'FIAT'); SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE = 'VW' AND FABRICANTE = 'FIAT'; 10.) SQL PARTE 3 - FUNÇÕES DE GRUPO E ORDENAÇÃO 5a sem. Pontos: 1,0 / 1,0 De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL BDQ Prova http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_his... 3 de 4 20/08/2012 21:04 adequada para: Apresentar os primeiros nomes, o salário e a data de admissão dos Empregados que ganham acima de R$ 1.000,00 em ordem Crescente de Salário e de Data de Admissão. SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY SALARIO, DT_ADMISSAO; SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY ASC SALARIO, ASC DT_ADMISSAO; SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY ASC SALARIO, DESC DT_ADMISSAO; SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY DESC SALARIO, ASC DT_ADMISSAO; SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY SALARIO DESC, DT_ADMISSAO DESC; BDQ Prova http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_his... 4 de 4 20/08/2012 21:04 CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS - CLEBERSON - AV2.pdf Detalhes Avaliação: CCT0199_AV2_201001483171 Tipo de Avaliação: AV2 Aluno: 201001483171 - CLEBERSON VARGAS CASADIO Professor: ADRIANA APARICIO SICSU A DO NASCIMENTO Turma: 9001/AA Nota da Prova: 6,0 de 8,0 Nota do Trabalho: Nota de Participação: 2 Data: 25/08/2012 1.) SQL PARTE 3 5a sem. Pontos: 0,5 / 1,5 Baseado nas tabelas empregado e dependente ilustradas na figura abaixo, escreva uma consulta SQL que recupere o(s) nome(s) do(s) empregado(s) que possui(em) mais de um dependente. Resposta: SELECT E.NOME FROM EMPREGADO E, DEPENDENTE D WHERE E.CODIGO_EMPREGADO = D.CODIGO_EMPREGADO 2.) SQL PARTE 3 5a sem. Pontos: 1,5 / 1,5 Escreva uma consulta SQL que recupere a cor e a quantidade de peças existentes, agrupadas por sua cor. A tabela pecas está ilustrada na figura a seguir. BDQ Prova http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_his... 1 de 4 05/09/2012 09:46 Resposta: SELECT COR, COUNT* FROM PECAS GROUP BY COR 3.) SQL 6a sem. Pontos: 1,0 / 1,0 Qual das consultas abaixo retorna o nome e a placa de todos os veículos? SELECT c.nome FROM Veiculo v INNER JOIN Cliente c ON cpf = cpf; SELECT v.placa, c.nome FROM Cliente INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf; SELECT placa FROM Veiculo INNER JOIN Cliente ON Cliente_cpf = cpf; SELECT v.placa, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf; SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa; 4.) SQL PARTE 5 - SUBCONSULTA E OPERADORES DE CONJUNTO 7a sem. Pontos: 1,0 / 1,0 Qual dos operadores de conjunto a seguir, devemos tomar cuidado na hora de colocarmos a ordem das tabelas, pois retorna diferentes resultados ao se inverter a ordem das tabelas? UNION BDQ Prova http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_his... 2 de 4 05/09/2012 09:46 MINUS UNION ALL INTERSECT MINUS ALL 5.) SQL 8a sem. Pontos: 0,5 / 0,5 1. ______________ são objetos que apresentam auto-incremento. 2. ______________ uma pseudocoluna utilizada para extrair valores de uma sequence qualquer, sempre que for referenciada. 3. ______________ uma pseudocoluna utilizada para informar o último valor gerado por uma sequence. É sempre incrementada após um ______________ 4. Nextval e currval ___________ ser usados na cláusula VALUES de um comando INSERT 5. Nextval e currval ___________ ser usados dentro de uma subconsulta. As palavras que preenchem as lacunas corretamente estão representadas em: (1) sequences (2) nextval (3) currval e nextval (4) podem (5) podem (1) sequences (2) nextval (3) currval e nextval (4) podem (5) não podem (1) sequences (2) currval (3) nextval e nextval (4) não podem (5) não podem (1) indices (2) nextval (3) currval e nextval (4) podem (5) não podem (1) sequences (2) currval - (3) nextval e nextval (4) não podem (5) podem 6.) TRANSAÇÕES 9a sem. Pontos: 0,0 / 0,5 Dentre os estados de transação, em qual estado se encontra uma transação após a execução da última operação? Abortada Efetivada Em efetivação parcial Ativa Em falha 7.) EXECUÇÃO DE COMANDOS E OTIMIZAÇÃO 10a sem. Pontos: 0,0 / 0,5 Para gerar estatísticas em uma tabela cada SGBD disponibiliza comandos. Dentre os tipos de estatísticas apresentados identifique aquele que NÃO é considerado como tal: de sistema: utilização típica de I/O e de CPU. de linhas: número de linhas distintas, histograma de linhas de tabelas: número de linhas, blocos, tamanho de registro médio de índices: número de folhas, níveis, clustering. de colunas: número de valores distintos, número de NULLs, histograma de valores 8.) SQL 5a sem. Pontos: 0,5 / 0,5 BDQ Prova http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_his... 3 de 4 05/09/2012 09:46 Considere a relação abaixo: CLIENTE (cpf, nome, endereço, telefone) A consulta SQL que responde a pergunta "Quais os clientes (cpf e nome) que não possuem endereço cadastrado" é: SELECT * FROM CLIENTE WHERE ENDERECO IS NULL; SELECT CPF, NOME FROM CLIENTE WHERE ENDERECO IS NULL; SELECT CPF, NOME FROM CLIENTE; Nenhuma das respostas acima. SELECT CPF, NOME FROM CLIENTE WHERE ENDERECO IS NOT NULL; 9.) SQL 4a sem. Pontos: 0,5 / 0,5 O comando SQL que apaga um tabela é: INSERT INTO DROP TABLE REMOVE TABLE UPDATE DELETE TABLE 10.) SQL PARTE 1 - CREATE TABLE E DML 3a sem. Pontos: 0,5 / 0,5 Partindo da tabela a seguir, considerando que a mesma já foi criada de acordo com essa ordem de atributos, como ficaria o comando SQL para inserir um registro na tabela? INSERT INTO X_PROD VALUES ('TV Led 40 polegadas', 20, 400, 3000); INSERT INTO X_PROD VALUES ( TV Led 40 polegadas, 20, 400, 3000); INSERT INTO X_PROD VALUES ('20', 'TV Led 40 polegadas', '400', '3000'); INSERT INTO X_PROD VALUES ( 20, 'TV Led 40 polegadas', 400, 3000); INSERT INTO X_PROD VALUES (20, TV Led 40 polegadas, 400, 3000); BDQ Prova http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_his... 4 de 4 05/09/2012 09:46 CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS - RAYANE - AV1.pdf 16/11/12 Estácio 1/1bquestoes.estacio.br/entrada.asp?p0=143486640&p1=201207092151&p2=1506466&p3=CCT0199… Avaliação: CCT0199_AV1_201207092151 » IMPLEMENTAÇÃO DE BANCO DE DADOS Tipo de Avaliação: AV1 Aluno: 201207092151 - RAYANE OLIVER LIMA DOS SANTOS Professor: PATRICIA FIUZA DE CASTRO Turma: 9002/AB Nota da Prova: 6,0 de 8,0 Nota do Trabalho: 0 Nota de Participação: 1 Data: 15/09/2012 1 a Questão (Cód.: 107759) Pontos: 0,0 / 0,5 Qual comando SQL é utilizado para obter um conjunto de dados em uma tabela em um banco de dados? UPDATE INSERT SELECT GET JOIN 2 a Questão (Cód.: 107242) Pontos: 0,5 / 0,5 Em relação a álgebra relacional, o operador de _____________ permite combinar seleções e um produto cartesiano em uma só operação. União Projeção Interseção CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS - XXXX - AV1.pdf Disciplina: CCT0199 - IMPL. BANCO DE DADOS Período Acad.: 2012.3-EAD (G) / AV1 Matrícula: Turma: 9001/AA É responsável por garantir a Integridade Referencial: (Cód.: 106915) Chave Estrangeira Chave Primária Chave Candidata Chave Secundária Chave de Atributo Considere o texto a seguir e complete as lacunas, com as expressões constantes nas alternativas, respeitando a correlação sequencial em que estão dispostas. (Cód.: 106376) Uma ..................... é uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais, dentro de uma tabela. Uma ...................... é uma coluna ou uma combinação de colunas cujos valores aparecem, necessariamente, na ........................ de uma tabela. Em alguns casos, mais de uma coluna ou combinações de colunas podem servir para distinguir uma linha das demais. Uma das colunas (ou combinação de colunas) é escolhida como ..................... As demais colunas ou combinações são denominadas ........................ A seqüência correta encontra-se apenas em: Chave primária; chave primária; chave primária; super-chave; chaves secundárias. Chave primária; chave estrangeira; chave primária; chave secundária; chaves alternativas. Chave primária; chave estrangeira; chave primária; chave primária; chaves alternativas. Chave primária; super-chave; chave primária; chave candidata; chaves secundárias. Chave primária; chave estrangeira; chave primária; chave primária; chaves estrangeiras. É uma vantagem de uso da linguagem SQL: (Cód.: 106750) Alto custo de treinamento Dependência de fabricante Definição dinâmica dos dados Dependência de plataforma Visão única dos dados O comando SELECT * FROM [tabela] WHERE [condições] : (Cód.: 106753) Lista tanto as linhas quanto as colunas de uma tabela Lista todas as linhas de uma tabela Não é um comando da linguagem SQL Lista todas as colunas de uma tabela Nenhuma das respostas acima Considere a relação: (Cód.: 107076) ALUNO (matrícula, nome, endereço, estado, cidade, cep, datadeingresso, coeficiente_de_rendimento). A consulta SQL para listar os alunos com maior e menor coefiente de rendimento nos estado de SP, RJ e MG é: Nenhuma das respostas acima SELECT MAX(COEFICIENTE_DE_RENDIMENTO), MIN(COEFICIENTE_DE_RENDIMENTO) FROM ALUNO WHERE ESTADO = 'SP' AND ESTADO = 'RJ' AND ESTADO = 'MG'; SELECT MAX(COEFICIENTE_DE_RENDIMENTO), MIN(COEFICIENTE_DE_RENDIMENTO) FROM ALUNO; SELECT MAX, MIN(COEFICIENTE_DE_RENDIMENTO) FROM ALUNO WHERE ESTADO = 'SP' OR ESTADO = 'RJ' OR ESTADO = 'MG'; SELECT MAX(COEFICIENTE_DE_RENDIMENTO), MIN(COEFICIENTE_DE_RENDIMENTO) FROM ALUNO WHERE ESTADO = 'SP' OR ESTADO = 'RJ' OR ESTADO = 'MG'; O comando SELECT FROM WHERE corresponde as seguintes operações da álgebra relacional: (Cód.: 106752) Seleção e Projeção União e Interseção Projeção e União Seleção e Junção Seleção e Diferença O comando SELECT FROM corresponde a seguinte operação da álgebra relacional: (Cód.: 106751) Interseção Junção Projeção União Seleção Considere a relação abaixo: (Cód.: 107047) CLIENTE (cpf, nome, endereço, telefone) A consulta SQL que responde a pergunta "Quais os clientes (cpf e nome) que não possuem endereço cadastrado" é: SELECT CPF, NOME FROM CLIENTE WHERE ENDERECO IS NOT NULL; SELECT CPF, NOME FROM CLIENTE WHERE ENDERECO IS NULL; SELECT CPF, NOME FROM CLIENTE; Nenhuma das respostas acima. SELECT * FROM CLIENTE WHERE ENDERECO IS NULL; Como ficaria o comando SQL para criar a tabela a seguir? (Cód.: 106979) TABELA COLUNA TIPO TAMANHO OBSERVAÇÃO X-PROD CÓDIGO NUMÉRICO 5 Chave Primária DESCRICAO CARACTER 40 Único e Obrigatório UNIDADE NUMÉRICO 8 VALOR_UNIT NUMÉRICO 9,2 CREATE TABLE X_PROD ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_PROD ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_EMPR ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_EMPR ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_PROD ( CODIGO VARCHAR2(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) Considere a relação: (Cód.: 107062) FUNCIONARIO (matrícula, cargo, salario, admissao) A consulta SQL que mostra o total dos salários dos funcionários é: SELECT * FROM FUNCIONARIO WHERE SUM (SALARIO); SELECT SUM (SALARIO) FROM FUNCIONARIO WHERE SALARIO; Nenhuma das repostas acima SELECT SALARIO FROM FUNCIONARIO WHERE SUM (SALARIO); SELECT SUM (SALARIO) FROM FUNCIONARIO; CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS - XXXX - AV2.pdf Detalhes Avaliação: CCT0199_AV2_201001029518 Tipo de Avaliação: AV2 Aluno: 201001029518 - ANTONIO RICARDO DE SOUZA CIRIO Professor: PATRICIA FIUZA DE CASTRO Turma: 9001/AA Nota da Prova: 3,5 de 8,0 Nota do Trabalho: Nota de Participação: 2 Data: 16/06/2012 1.) SQL PARTE 3 115579 / 5a sem. Pontos:0,0 / 1,5 Baseado nas tabelas emprestimo e agencia ilustradas na figura a seguir, escreva uma consulta SQL que encontre o nome de todas as agências e a quantidade de empréstimos que cada agência forneceu agrupados pelo nome da agência. Nomeie este resultado por qde_emprestimos. Resposta: 2.) SQL PARTE 3 115534 / 5a sem. Pontos: / 1,5 Baseado nas tabelas empregado e dependente ilustradas na figura abaixo, escreva uma consulta SQL que recupere o(s) nome(s) do(s) empregado(s) que possui(em) mais de um dependente. Página 1 de 5BDQ Prova 20/06/2012http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_hist_prova=1941393&tipo_prova=... MARINA Textbox Resposta: 3.) SQL 119979 / 6a sem. Pontos:1,0 / 1,0 Página 2 de 5BDQ Prova 20/06/2012http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_hist_prova=1941393&tipo_prova=... Listar placa, o ano do veículo e a descrição de seu modelo, se ele possuir ano a partir de 2010 Nenhuma das respostas acima. SELECT v.placa, v.ano, m.descricao FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = m.codMod WHERE ano > 2010; SELECT v.placa, v.veiculo, m.modelo FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = m.codMod WHERE ano >= 2010; SELECT v.placa, v.ano, m.descricao FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = m.codMod WHERE ano >= 2010; SELECT v.placa, m.descricao FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = m.codMod WHERE ano = 2010; 4.) SQL PARTE 5 - SUBCONSULTA E OPERADORES DE CONJUNTO 124208 / 7a sem. Pontos:1,0 / 1,0 Qual dos operadores de comparação de consultas Multi-Linhas a seguir NÃO é válido? <> ALL = > ALL < ALL = ANY 5.) SQL 120920 / 8a sem. Pontos:0,0 / 0,5 1. ______________ são objetos que apresentam auto-incremento. 2. ______________ uma pseudocoluna utilizada para extrair valores de uma sequence qualquer, sempre que for referenciada. 3. ______________ uma pseudocoluna utilizada para informar o último valor gerado por uma sequence. É sempre incrementada após um ______________ 4. Nextval e currval ___________ ser usados na cláusula VALUES de um comando INSERT 5. Nextval e currval ___________ ser usados dentro de uma subconsulta. As palavras que preenchem as lacunas corretamente estão representadas em: (1) indices (2) nextval (3) currval e nextval (4) podem (5) não podem (1) sequences (2) nextval (3) currval e nextval (4) podem (5) não podem (1) sequences (2) nextval (3) currval e nextval (4) podem (5) podem (1) sequences (2) currval - (3) nextval e nextval (4) não podem (5) podem (1) sequences (2) currval (3) nextval e nextval (4) não podem (5) não podem 6.) TRANSAÇÕES 124230 / 9a sem. Pontos:0,0 / 0,5 Para iniciar uma transação no Oracle, basta usarmos um comando SQL executável e para encerrar, podemos usar qualquer dos comandos abaixo, com Exceção de: COMMIT CREATE SELECT GRANT ROLLBACK Página 3 de 5BDQ Prova 20/06/2012http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_hist_prova=1941393&tipo_prova=... 7.) OTIMIZAÇÃO DE CONSULTAS 121650 / 10a sem. Pontos:0,5 / 0,5 (CESGRANRIO - 2010 - IBGE - Analista de Sistemas - Desenvolvimento de Aplicações) Algumas regras de heurísticas vinculadas à álgebra relacional, como "execute as operações de seleção o mais cedo possível", "execute antes as projeções" e "evite os produtos cartesianos", são usualmente empregadas em sistemas gerenciadores de bancos de dados para a implementação de chaves primárias e estrangeiras. recuperação de dados após falhas. otimização de consultas. índices do tipo bit map. controle de concorrência. 8.) SQL PARTE 3 - FUNÇÕES DE GRUPO E ORDENAÇÃO 107156 / 5a sem. Pontos:0,5 / 0,5 De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para: Apresentar os primeiros nomes, o salário e a data de admissão dos Empregados que ganham acima de R$ 1.000,00 em ordem Crescente de Salário e de Data de Admissão. SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY DESC SALARIO, ASC DT_ADMISSAO; SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY SALARIO, DT_ADMISSAO; SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY SALARIO DESC, DT_ADMISSAO DESC; SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY ASC SALARIO, ASC DT_ADMISSAO; SELECT PRIM_NOME, SALARIO, DT_ADMISSAO FROM EMPREGADO WHERE SALARIO > 1000 ORDER BY ASC SALARIO, DESC DT_ADMISSAO; 9.) SQL 107101 / 4a sem. Pontos:0,0 / 0,5 O comando SQL que apaga um tabela é: DROP TABLE DELETE TABLE INSERT INTO UPDATE REMOVE TABLE Página 4 de 5BDQ Prova 20/06/2012http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_hist_prova=1941393&tipo_prova=... 10.) SQL PARTE 1 - CREATE TABLE E DML 106993 / 3a sem. Pontos:0,5 / 0,5 Partindo da tabela a seguir, considerando que a mesma já foi criada de acordo com essa ordem de atributos, como ficaria o comando SQL para inserir um registro na tabela? INSERT INTO X_PROD VALUES ('TV Led 40 polegadas', 20, 400, 3000); INSERT INTO X_PROD VALUES ('20', 'TV Led 40 polegadas', '400', '3000'); INSERT INTO X_PROD VALUES (20, TV Led 40 polegadas, 400, 3000); INSERT INTO X_PROD VALUES ( 20, 'TV Led 40 polegadas', 400, 3000); INSERT INTO X_PROD VALUES ( TV Led 40 polegadas, 20, 400, 3000); Página 5 de 5BDQ Prova 20/06/2012http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_hist_prova=1941393&tipo_prova=... CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS - XXXX - AV3.pdf Disciplina: CCT0199 - IMPL. BANCO DE DADOS Período Acad.: 2012.1-EAD (G) / AV3 Aluno: Matrícula: Professor: Turma: 9001/AA (CONSULPLAN - 2012) Nos SGBDs existem alguns tipos de integridade, dos quais o mais elementar funciona ao nível da coluna do banco de dados. O valor do campo deve obedecer ao tipo de dados e às restrições de valores admitidos para essa coluna. É o tipo conhecido por integridade de: (Cód.: 110396) Atributo. Domínio. Entidade. Tabela. Referência. Na sintaxe ANSI da junção Interior, na sua forma padrão é: (Cód.: 124195) select [colunas] from tabela1 LEFT JOIN tabela2 ON ; select * from tabela1 CROSS JOIN tabela2; select * from tabela1 LEFT JOIN tabela2; select [colunas] from tabela1 INNER JOIN tabela2 ON ; select [colunas] from tabela1 RIGHT JOIN tabela2 ON ; Qual dos tipos de sub-consulta que faz referência a uma coluna da tabela da consulta externa? (Cód.: 124204) Sub-Consulta Principal Sub-Consulta Simple Sub-Consulta Multi-Linhas Sub-Consulta Correlata Sub-Consulta Multi-Valorada Analise as seguintes afirmações: (Cód.: 106402) "(1) A restrição de integridade referencial diz que chave primária em uma relação não pode ter seu valor nulo PORQUE (2) esta chave identifica as tuplas da relação" Podemos afirmar: As duas afirmações são falsas. As duas afirmações são verdadeiras e a primeira não justifica a segunda. As duas afirmações são verdadeiras e a primeira justifica a segunda. A primeira afirmação é verdadeira e a segunda é falsa. A primeira afirmação é falsa e a segunda é verdadeira. Considere a relação: (Cód.: 106427) FILME (nome, diretor, tempoduracao, genero, ano) A consulta em álgebra relacional que retorna o nome e o ano de todos os filmes de ação com tempo de duração entre 120 e 180 minutos. nome, ano ((genero = "ação" AND tempoduracao >= 120 AND tempoduracao <= 180) (FILME) ) nome, ano ((genero = "ação" AND tempoduracao = 120) (FILME) ) nome, ano ((genero = "ação" AND tempoduracao >= 120 OR tempoduracao <= 180) (FILME) ) nome, ano ((genero = "ação" OR tempoduracao >= 120 AND tempoduracao <= 180) (FILME) ) nome, ano ((genero = "ação" AND tempoduracao >= 120 AND tempoduracao <= 180) (FILME) ) Sejam as relações: (Cód.: 106425) T1 = nome ((sexo="FEMININO") and (salário>1500) (EMPREGADO)) T2 = nome (dept=5 (EMPREGADO)) A relação T3 = T1 - T2 conterá: Nome de todas mulheres que ganham mais do que 1500 ou estão lotadas no departamento 5. Nome de todas mulheres que ganham mais do 1500 Nome de todas mulheres que ganham mais do que 1500 e não estão lotadas no departamento 5. Nome de todas mulheres que ganham 1500 e estão lotados no departamento 5. Nome de todas mulheres que ganham mais do que 1500 e estão lotadas no departamento 5. Considere a relação: (Cód.: 107122) FUNCIONARIO (matrícula, cargo, salario, admissao) A consulta SQL que mostra média dos salários dos funcionários é: SELECT SUM(SALARIO) FROM FUNCIONARIO; SELECT AVG(SALARIO) FROM FUNCIONARIO; SELECT SALARIO FROM FUNCIONARIO AVG; SELECT MEDIA(SALARIO) FROM FUNCIONARIO; Nenhuma das respostas acima. Considere as relações: (Cód.: 106430) PROFESSOR (matriculaprf, nomeprf, titulacao, anoadmissao) MINISTRA (matricula, codigo) matricula REFERENCIA matriculaprf em PROFESSOR codigo REFERENCIA codigodisciplina em DISCIPLINA DISCIPLINA (codigodisciplina, nomedisciplina, creditos) A consulta em álgebra relacional que responde a questão "Quem são os professores (nome e matrícula) que ministram a disciplina Implementação de Bancos de Dados" está corretamente representada em: matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈matricula (nomedisciplina = "Implementação de Bancos de Dados" (DISCIPLINA)) matriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈ matricula MINISTRA) Não existe consulta que responda a esta questão. matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈ matricula (MINISTRAcodigo = ⋈ codigodisciplina (DISCIPLINA))) De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para: (Cód.: 107126) SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO WHERE UPPER(CARGO) LIKE '%VENDA%' ; SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO WHERE CARGO LIKE '%VENDA%' ; SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE UPPER(CARGO) LIKE '%venda%' ; SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE UPPER(CARGO) LIKE '%VENDA%' ; SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE CARGO LIKE '%VENDA%' ; Como ficaria o comando SQL para criar a tabela a seguir? (Cód.: 106979) CREATE TABLE X_PROD ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_PROD ( CODIGO VARCHAR2(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_EMPR ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_PROD ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_EMPR ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS/Aula_01.ppt IMPLEMENTAÇÃO DE BANCO DE DADOS Aula 1-Modelo Relacional Conteúdo Programático desta aula Conhecer as principais características de um Sistema de Banco de Dados; Definir modelo de dados; Conceituar Relação; Identificar os componentes do modelo relacional; Conceituar integridade referencial; MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Dados X Informação Dados Informação fatos em sua forma primária Conhecimento produzido MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Importância dos Banco de Dados MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS O que é um banco de dados? MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS O que é um banco de dados? conjunto de dados que se relacionam. Propriedades: coleção lógica e coerente de dados com um significado inerente; projetado, construído e populado com dados para um propósito específico; possui um conjunto pré definido de usuários e aplicações; representa algum aspecto do mundo real - “mini-mundo” e qualquer alteração efetuada neste mini-mundo é automaticamente refletida no banco de dados. MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS EVOLUÇÃO DOS SISTEMAS Sistemas Tradicionais Sistemas de Banco de Dados Baseados em Arquivos Baseados em SGBD MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sistemas Tradicionais MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sistemas de Banco de Dados MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Benefícios de uso de um SBD Implementação do Conceito de transação Controle de Concorrência Mecanismo de acesso aos dados Mecanismo de recuperação (Tolerância a falhas) Maior Segurança MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Evolução dos Bancos de Dados Bancos de Dados Centralizados MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Evolução dos Bancos de Dados Bancos de Dados Cliente – Servidor (com servidor de Banco de Dados) MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Evolução dos Bancos de Dados MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Evolução dos Bancos de Dados MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Evolução dos Bancos de Dados MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Estrutura Geral de um Sistema de Banco de Dados MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Esquema Esquema é um termo utilizado na área de Banco de Dados com a mesma conotação de modelo (como produto final da atividade de modelagem). O Esquema de um Banco de Dados é a especificação da estrutura do Banco de Dados. De um modo geral se utiliza o termo esquema apenas para os modelos referentes ao aspecto estrutural do mundo real. PESSOA CPF NOME COD_DEP DEPART COD_DEP NOME LOCAL MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Instância É o conjunto de ocorrências dos objetos de dados de um esquema em um dado momento do tempo (Estado do BD num momento do tempo). PESSOA CPF NOME COD_DEP 123 A D-10 456 B D-10 789 C D-20 DEPART COD_DEP NOME LOCAL D-10 DEPART-10 L1 D-20 DEPART-20 L2 D-30 DEPART-30 L3 ESQUEMA INSTÂNCIA MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Arquitetura 3 Esquemas MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Projeto de Banco de Dados É o processo de: · determinar a organização de um banco de dados, incluindo sua estrutura, conteúdo e aplicações; · desenvolver a estrutura de um banco de dados; · projetar a estrutura lógica e física de um ou mais bancos de dados com a finalidade de acomodar as informações necessárias aos usuários de uma organização, para um definido conjunto de aplicações. MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Projeto de Banco de Dados Fase 1 – Projeto Conceitual de Banco de Dados: Elaboração de um modelo abstrato do mini mundo – totalmente independente de qualquer tecnologia da informação. MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Projeto de Banco de Dados Fase 2 – Projeto Lógico de Banco de Dados Elaboração de um modelo implementável durante a qual endereçamos uma classe de tecnologia da informação (Ex: Bancos de Dados Relacionais). ELABORAÇÃO DE UM MODELO IMPLEMENTÁVEL A PARTIR DO MODELO ABSTRATO MODELO ABSTRATO TECNOLOGIA DA INFORMAÇÃO MODELO IMPLEMENTÁVEL CLASSE MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Projeto de Banco de Dados Fase 3 – Projeto Físico de Banco de Dados Elaboração de um modelo processável, durante a qual endereçamos uma tecnologia da informação específica (Ex: Bancos de Dados Relacional ORACLE versão 11g). ELABORAÇÃO DE UM MODELO PROCESSÁVEL A PARTIR DO MODELO IMPLEMENTÁVEL TECNOLOGIA DA INFORMAÇÃO MODELO PROCESSÁVEL EFETIVA MODELO IMPLEMENTÁVEL MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Ferramentas de Projeto MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Modelo Relacional Foi proposto por Edgar Codd em 1970 Modelo Dominante nos SGBD Comerciais Possui uma extensão denominada Objeto Relacional MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Relação = Tabela MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Atributo = Coluna MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Valores dos Atributos = Domínio MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Conjunto de Atributo = Esquema MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Tupla = Linha MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Conjunto de Tuplas = Instância MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Campo = Encontro de Linha e Coluna MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Conteúdo do Campo = Valor MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Campos sem Conteúdo = Nulo MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Primaria MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Primaria = Atributo Único Integridade de Chave Primária MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Primaria = Atributo Único Integridade de Chave Primária MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Primaria = Atributo Obrigatório Integridade de Entidade MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Primaria = Atributo Obrigatório Integridade de Entidade MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Primaria Simples MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Primaria Composta MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Candidata MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Estrangeira MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Componente do Modelo Relacional Chave Estrangeira -> Integridade Referencial Chave Estrangeira MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Próxima Aula Apresentar a Álgebra Relaciona; - Exemplificar as principais operações da Álgebra; Relacional. - Realizar exercícios de Álgebra Relacional. MODELO RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS ���������������������������������������������������� Quais são as PARTES (ATIVIDADES DO PROCESSO) ??? Como elas se RELACIONAM ??? Quais são os seus PRODUTOS ??? CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS/Aula_02.ppt IMPLEMENTAÇÃO DE BANCO DE DADOS Aula 2- Álgebra Relacional Conteúdo Programático desta aula Conceituar Álgebra Relacional Conhecer as Operações da Álgebra Relacional Utilizar Operadores de Conjunto Escrever expressões utilizando operadores de tabelas Analisar expressões de Álgebra relacional ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Conceitos Envolvidos a) Relação: representada por uma tabela de duas dimensões (linhas e colunas); b) Tupla: corresponde a uma linha da relação; c) Atributo: corresponde às colunas da relação; d) Chave primária: conjunto de atributos que identificam univocamente cada tupla da relação; e) Chave extrangeira: atributo de uma relação que é chave primária de outra relação. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Conceitos Envolvidos ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Manipulação de Dados Duas categorias de linguagens – formais • álgebra relacional e cálculo relacional – comerciais (baseadas nas linguagens formais) • SQL Linguagens formais - Características – orientadas a conjuntos – fechamento • resultados de consultas são relações ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Álgebra Relacional Conjunto de operações sobre modelos relacionais de dados. As principais operações da álgebra relacional são: Seleção Projeção Produto Cartesiano Junção Operações de Conjunto : (União, Intersecção, Diferença) Divisão ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Seleção A operação Seleção é utilizada para selecionar um subconjunto de tuplas de uma relação, sendo que estas tuplas devem satisfazer uma condição de seleção. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Seleção A forma geral de uma operação Seleção é: <condição de seleção> ( <nome da relação> ) Onde: A letra grega é utilizada para representar a operação de seleção; <condição de seleção> é uma expressão booleana aplicada sobre os atributos da relação ; <nome da relação> é o nome da relação sobre a qual será aplicada a operação Seleção. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Seleção Dada a relação dos empregados da empresa selecionar aqueles que trabalham no departamento 10: ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Seleção A expressão que atende ao pedido é: id_Depto = 10 (Empregado) ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Seleção Dada a relação dos empregados da empresa selecionar aqueles que trabalham no departamento 10 e que ganhem salario > 1500. : ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Seleção A expressão que atende ao pedido é: id_Depto = 10 E Salario > 1500 (Empregado) ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Projeção A operação Projeção seleciona um conjunto determinado de colunas de uma relação. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Projeção A forma geral de uma operação Projeção é: <lista de atributos> (<nome da relação>) Onde: A letra grega é utilizada para representar a operação de seleção <lista de atributos> representa a lista de atributos que o usuário deseja selecionar e <nome da relação> representa a relação sobre a qual a operação projeção será aplicada. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Projeção Dada a relação de empregados da empresa, projetar as colunas ID, NOME E SALARIO: ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Projeção A expressão que atende ao pedido é: Id, Nome, Salario (Empregado) ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sequencialidade de Operações A Projeção e a Seleção podem ser combinadas, de forma que apenas algumas linhas e algumas colunas retornem na operação. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sequencialidade de Operações A forma geral da operação Projeção : <lista de atributos> (<condição de seleção> (<nome da relação>)) Onde representa a operação de projeção <lista de atributos> representa a lista de atributos que o usuário deseja selecionar representa a operação de seleção <condição de seleção> é a condição que a linha deve atender para ser selecionada e <nome da relação> é o nome da relação sobre a qual será aplicada a operação de Seleção e Projeção ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sequencialidade de Operações Dada a relação de empregados da empresa, projetar as colunas ID, NOME E SALARIO PARA OS EMPREGADOS DO DEPARTAMENTO 10: ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sequencialidade de Operações A expressão que atende ao pedido é: Id,Nome, Salario ( Id_Depto = 10 (Empregado)) Realizada em Dois Passos ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sequencialidade de Operações A expressão que atende ao pedido é: Id,Nome, Salario ( Id_Depto = 10 (Empregado)) Passos 1 - Seleção ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sequencialidade de Operações A expressão que atende ao pedido é: Id,Nome, Salario ( Id_Depto = 10 (Empregado)) Passos 2 - Projeção ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sequencialidade de Operações Sempre na ordem Seleção -> Projeção? Id_Depto = 10 ( Id,Nome, Salario (Empregado)) ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Sequencialidade de Operações Id_Depto = 10 ( Id,Nome, Salario (Empregado)) Projeção não tem todas as colunas utilizadas na seleção ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Produto Cartesiano O produto cartesiano é uma operação binária que combina todas as tuplas de duas tabelas. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Produto Cartesiano A forma geral do Produto Cartesiano é: A X B Onde: X representa a operação de produto cartesiano A e B representam as relações sobre as quais a operação será aplicada. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Produto Cartesiano - Exemplo Departamento X Região A operação ira justapor as colunas e combinar todas as linhas. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Produto Cartesiano ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Junção Atua de forma similar á operação produto cartesiano, porém, a tabela resultante conterá apenas as combinações das tuplas que se relacionam de acordo com uma determinada condição de junção. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Junção A forma geral de uma operação Seleção é: R ⋈ <condição de junção> S Onde: ⋈ representa a operação de junção; <condição de junção> é uma expressão relacional, normalmente utilizando o operador =, que determina qual coluna da tabela R deve ser comparada com qual coluna da tabela S ( normalmente PK e FK); R e S representam as relações sobre as quais a operação será aplicada. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Junção - Exemplo Departamento ⋈ Id_Regiao = Id Região ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Junção - Exemplo Departamento ⋈ Id_Regiao = Id Região A operação ira justapor as colunas e combinar as linhas que se relacionam. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Junção Exemplo ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Operações de Conjunto Operações União Interseção Diferença Redundância de Tuplas Compatibilidade quanto a união ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Redundancia de Tupla ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Compatibilidade quanto a União ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS União O resultado desta operação entre duas relações consiste no conjunto de todas as linhas das duas relações . ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS União A forma geral da União é: A U B Onde: U representa a operação de União A e B representam as relações sobre as quais a operação será aplicada. A operação de União é Comutativa -> A U B = B U A ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS União - Exemplo Empregado U Acionista ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS União - Exemplo Empregado U Acionista ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Interseção O resultado desta operação entre duas relações consiste no conjunto de todas as linhas que existem em comum nas duas relações . ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Interseção A forma geral da Interseção é: A ∩ B Onde: ∩ representa a operação de Interseção A e B representam as relações sobre as quais a operação será aplicada. A operação de Interseção é Comutativa -> A ∩ B = B ∩ A ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Interseção - Exemplo Empregado ∩ Acionista ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Interseção - Exemplo Empregado ∩ Acionista ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Diferença O resultado desta operação entre duas relações consiste no conjunto de todas as linhas que existem em uma tabela e não existe na outra . ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Diferença A forma geral da Diferença é: A - B Onde: - representa a operação de Interseção A e B representam as relações sobre as quais a operação será aplicada. A Diferença não é Comutativa -> A - B <> B - A ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Diferença - Exemplo Empregado – Acionista ou Acionista – Empregado ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Diferença - Exemplo – Empregado – Acionista ou Acionista – Empregado ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Operações de Conjunto em consultas - 1 – T1 = Id,Nome ( Id_Depto = 10 (Empregado)) ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Operações de Conjunto em consultas - 1 – T1 = Id,Nome ( Id_Depto = 10 (Empregado)) ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Operações de Conjunto em consultas - 2 – T2 = Id,Nome ( Salario >= 1500 (Empregado)) ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Operações de Conjunto em consultas - 2 – T2 = Id,Nome ( Salario >= 1500 (Empregado)) ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Operações de Conjunto em consultas - 3 – T1 U T2 ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Divisão É uma operação adicional que produz como resultado a projeção de todos os elementos da primeira relação que se relacionam com todos os elementos da segunda relação. É utilizada para consultas do tipo todos os eleitores que participaram de todas as votações, os sócios que pagaram todas as mensalidades e outras do mesmo tipo. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Divisão A forma geral da Diferença é: A / B Onde: / representa a operação de Interseção A e B representam as relações sobre as quais a operação será aplicada. ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Divisão - Exemplo ID dos Funcionários que Trabalham em todos os Projetos ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Divisão - Exemplo ID dos Funcionários que Trabalham em todos os Projetos ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Divisão – Exemplo – Passo 1 – T1 = Id_Proj (Projeto) ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Divisão – Exemplo – Passo 2 – Funcionario_Projeto / T1 ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS Próxima Aula Apresentar a Linguagem SQL Instalar e Configurar um SGBD. Criar Tabelas. Manipular Dados ÁLGEBRA RELACIONAL IMPLEMENTAÇÃO DE BANCO DE DADOS CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS/Aula_03.ppt IMPLEMENTAÇÃO DE BANCO DE DADOS Aula 3- Sql Parte 1 Conteúdo Programático desta aula Conhecer a Linguagem SQL Instalar e Configurar um SGBD. Criar Tabelas. Manipular Dados LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Todos o exemplos mostrados em nossas aulas serão feitos no Oracle 10G Express Recomendo que instalem o Oracle na Máquina de vocês e acompanhem a aula Link para download do Oracle: Download Oracle http://www.oracle.com/technetwork/database/express-edition/database10gxe-459378.html LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Download Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Download Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Download Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Instalação Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Testando o Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Testando o Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Testando o Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Comando LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Comando LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Comando LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Comando Digite o comando: GRANT CONNECT, RESOURCE TO AULABD DEPOIS CLIQUE EM EXECUTAR MENSAGEM DE CONFIRMAÇÃO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Interface LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Interface LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Interface LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Interface LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Interface LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Comando LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Comando CLIQUE PARA FAZER UM NOVO LOGIN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando Usuário – Via Interface LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Testando o Oracle FAÇA UM NOVO LOGIN COM O USUARIO CRIADO NOME USUÁRIO: AULABD SENHA : SENHA LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Testando o Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Testando o Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Testando o Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Linguagem SQL SQL quer dizer Structured Query Language e é o padrão mundial de acesso às bases de dados relacionais. A Linguagem SQL é dividida nas seguintes partes: DDL - Create, Alter, Drop, Rename, Truncate: Permitem a criação e definição de objetos como tabelas, views e outros objetos no banco de dados. DRL -Select: É o comando mais comum do SQL. Utilizado amplamente para recuperação dos dados de uma base. DML - Insert, Delete, Update: Comandos de manipulação dos dados. Usados nas aplicações que mantém a base de informações com inserções, atualizações e deleções de dados. DCL - Grant, Revoke: São utilizados para atribuir ou remover direitos de acesso a objetos do banco de dados e suas estruturas. LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DDL – CRIAÇÃO DE TABELAS Elementos que Compõem uma Tabela A tabela é a forma básica de armazenamento de informações em um sistema gerenciador de banco de dados relacional e por isso deve conter um conjunto de elementos, alguns opcionais, na sua composição e que são: Nome Colunas Tipos de Dados Restrições (Constraints) LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DDL – CRIAÇÃO DE TABELAS TIPOS DE DADOS Cada coluna de uma tabela, tem que ter um tipo de dado definido e único, obedecendo a lista de tipos definidos pelo RDBMS. No Oracle existe uma diversidade bastante grande de tipos e alguns são descritos na tabela abaixo: LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DDL – CRIAÇÃO DE TABELAS A estrutura básica do comando é de criação de tabela é: CREATE TABLE nome_da_tabela (nome_col1 tipo_col1 [restri_col1] [, nome_col2 tipo_col2 [ restri_col2 ] [, nome_col3 tipo_col3 [restri_col3] ]]... [, restri_tab1 [,restri_tab2] ); LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DDL – CRIAÇÃO DE TABELAS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DDL – CRIAÇÃO DE TABELAS Exemplos: CREATE TABLE DEPARTAMENTO ( ID NUMBER(7) PRIMARY KEY, NOME VARCHAR2(40) NOT NULL) CREATE TABLE EMPREGADO ( ID NUMBER(7) PRIMARY KEY, ULT_NOME VARCHAR2(20) NOT NULL, PRIM_NOME VARCHAR2(20) NOT NULL, CARGO VARCHAR2(30), SALARIO NUMBER(7,2), DT_ADMISSAO DATE, CPF CHAR(11) UNIQUE, ID_DEPTO NUMBER(7) REFERENCES DEPARTAMENTO(ID), ID_GERENTE NUMBER(7) REFERENCES EMPREGADO(ID)) LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DDL – CRIAÇÃO DE TABELAS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DDL – CRIAÇÃO DE TABELAS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DML Comando Insert O comando INSERT insere linhas em uma tabela. A forma mais simples do comando INSERT insere somente uma linha , dados os valores conforme a sintaxe abaixo: insert into <nome_tabela> (coluna1, coluna2, ..., colunan) values (valor1, valor2, ..., valorn); LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS INSERT SEM REFERENCIAR COLUNAS INSERT INTO DEPARTAMENTO VALUES ( 10, ‘Financeiro’) LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS INSERT REFERECIANDO COLUNAS INSERT INTO DEPARTAMENTO (ID,NOME) VALUES ( 20, ‘Vendas’) LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Conferindo Inserção SELECT * FROM DEPARTAMENTO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DML Comando Update Para alterarmos dados já existentes em nossas tabelas utilizaremos o comando UPDATE. Veja a sintaxe do comando abaixo: UPDATE [schema. ] nome_tabela SET coluna1 = expressão I subquery [, colunan = ... ] WHERE condição LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS SELECT * FROM DEPARTAMENTO UPDATE SOMAR 100 AO ID DOS DEPARTAMENTOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UPDATE UPDATE DEPARTAMENTO SET ID = ID + 100 Clique executar LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CONFERINDO UPDATE ALTEROU OS ID DOS DEPARTAMENTOS SELECT * FROM DEPARTAMENTO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UPDATE COM CONDIÇÃO UPDATE DEPARTAMENTO SET ID = ID + 1000 WHERE ID = 110 LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CONFERINDO UPDATE ALTEROU O ID DE 110 PARA 1110 SELECT * FROM DEPARTAMENTO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DML Comando Delete Para excluirmos linhas em uma tabela utilizamos o comando DELETE. Veja a sintaxe do comando abaixo: DELETE [FROM] [schema.]nome_tabela WHERE condição LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DELETE APAGAR A LINHA DO DEPARTAMENTO DE ID 120 DESMARCAR COMMIT AUTOMATICO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DELETE DELETE DEPARTAMENTO COMMIT DESMARCADO SEM FROM, NO ORACLE FROM É OPCIONAL APAGOU AS 2 LINHAS???? LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DELETE SELECT * FROM DEPARTAMENTO DELETE SEM WHERE APAGA TODAS AS LINHAS E AGORA? LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DELETE ROLLBACK COMMIT DESMARCADO CANCELA A TRANSAÇÃO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DELETE VOLTARAM AS LINHAS SELECT * FROM DEPARTAMENTO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DELETE COM WHERE DELETE FROM DEPARTAMENTO WHERE ID = 120 COMMIT DESMARCADO AGORA COM FROM E WHERE SO A LINHA DE ID 120 APAGADA COMO TORNAR A ALTERAÇÃO DEFINITIVA? LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS DELETE COMMIT FECHOU A TRANSAÇÃO IMPORTANTE DEPOIS DO COMMIT NÃO ADIANTA DAR ROLLBACK LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CONFERINDO DELETE LINHA DE ID 120 FOI APAGADA SELECT * FROM DEPARTAMENTO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ELIMANDO TABELAS Para excluirmos uma tabela existente devemos usar o comando DROP TABLE. A sua forma geral é: DROP TABLE <nome_tabela>; onde: <nome_tabela> dever ser substituído pelo nome da tabela a ser excluída. LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ELIMANDO TABELAS DROP TABLE EMPREGADO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Próxima Aula Aprender a rodar um Script no Oracle Conhecer o Comando Select Recuperar dados de uma tabela LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS/Aula_04.ppt IMPLEMENTAÇÃO DE BANCO DE DADOS Aula 4- Sql Parte 2 Conteúdo Programático desta aula Conhecer o comando Select Executar um script no Oracle. Recuperar dados de uma tabela. LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Rodando Script LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Rodando Script LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Rodando Script LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Rodando Script LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Rodando Script LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Modelo de Dados LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando modelo CREATE TABLE DEPARTAMENTO ( ID NUMBER(7) PRIMARY KEY, NOME VARCHAR2(40) NOT NULL) INSERT INTO DEPARTAMENTO VALUES ( 10, 'Financeiro'); INSERT INTO DEPARTAMENTO VALUES ( 20, 'Vendas'); INSERT INTO DEPARTAMENTO VALUES ( 30, 'Administrativo'); COMMIT; LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando modelo CREATE TABLE EMPREGADO ( ID NUMBER(7) PRIMARY KEY, ULT_NOME VARCHAR2(20) NOT NULL, PRIM_NOME VARCHAR2(20) NOT NULL, CARGO VARCHAR2(30), SALARIO NUMBER(7,2), DT_ADMISSAO DATE, CPF CHAR(11) UNIQUE, ID_DEPTO NUMBER(7) REFERENCES DEPARTAMENTO(ID), ID_GERENTE NUMBER(7) REFERENCES EMPREGADO(ID)); LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando modelo INSERT INTO EMPREGADO VALUES( 1, 'Velasquez', 'Carmen','Presidente',25000, '08/04/2008','12345678901',30,null); INSERT INTO EMPREGADO VALUES( 2, 'Neves', 'Lauro', 'Diretor de Vendas',19500, '07/03/2009','23456789012',20, 1); INSERT INTO EMPREGADO VALUES( 3, 'Nogueira', 'Mário','Diretor Financeiro', 18000, '07/04/2010','34567890123',10,1); INSERT INTO EMPREGADO VALUES( 4, 'Queiroz', 'Mark','Gerente de Vendas',8000, '07/11/2010','12345432123',20,2); INSERT INTO EMPREGADO VALUES( 5, 'Rodrigues', 'Alberto', 'Vendedor',4000, '10/1/2008', '87965432123', 20, 4); INSERT INTO EMPREGADO VALUES( 6, 'Ugarte', 'Marlene', 'Vendedor', 3500,'23/11/2009', '87654345678',20,4); COMMIT; LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Criando modelo CREATE TABLE CLIENTE ( ID NUMBER(7) PRIMARY KEY, NOME VARCHAR2(40) NOT NULL, VENDEDOR NUMBER(7) REFERENCES EMPREGADO(ID)); INSERT INTO CLIENTE VALUES ( 110, 'Ponto Quente',5); INSERT INTO CLIENTE VALUES ( 120, 'Casa Supimpa',6); INSERT INTO CLIENTE VALUES ( 130, 'Coisas e Tralhas',5); INSERT INTO CLIENTE VALUES ( 140, 'Casa Desconto',null); COMMIT; LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CONSULTANDO TABELAS Comando Select É o comando SQL para recuperação dos dados de uma ou mais tabelas. Pode referenciar todas ou parte das colunas de uma ou mais tabelas, além de poder restringir as linhas que serão recuperadas. Como é orientado a conjuntos, um único comando pode retornar nenhuma ou várias linhas de uma combinação de tabelas desde que satisfaçam restrições impostas. LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CONSULTANDO TABELAS Os componentes básicos do comando são: A Cláusula SELECT Lista as colunas que serão recuperadas Se utilizarmos o artifício do * (asterisco) na cláusula SELECT, estaremos definindo que todas as colunas serão recuperadas. A Cláusula FROM Define a tabela que será recuperada SELECT nome-col1, nome_col2, nome coln FROM nome_da_ tabela; OU SELECT * FROM nome_da_tabela ; LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CONSULTANDO TABELAS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CONSULTANDO TABELAS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ESCREVENDO EXPRESSÕES LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ESCREVENDO EXPRESSÕES LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ALIAS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE Gerando Restrições nas consultas Ao selecionar os dados para visualização ou outra necessidade podemos, além de ordená-los, restringir o meu espectro de visualização utilizando a cláusula WHERE. A cláusula Where estabelece uma condição que a linha deverá obdecer para que faça parte do conjunto resposta da consulta. No caso apenas retornam as linhas cujo deste da condição de como resposta verdadeiro. Veja o exemplo abaixo onde desejamos que retornem apenas a linhas dos empregados com ID > 3: SELECT * FROM EMPREGADO WHERE ID > 3 LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE – CASE SENSITIVE SELECT * FROM EMPREGADO SELECIONAR O EMPREGADO DE NOME Ugarte LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE – CASE SENSITIVE SELECT prim_nome,cargo FROM c_empr WHERE ult_nome = ' UGARTE' LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE – CASE SENSITIVE SELECT prim_nome,cargo FROM c_empr WHERE ult_nome = ' Ugarte' LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE – DATAS SELECT * FROM EMPREGADO SELECIONAR O EMPREGADO CONTRATADO EM 07/04/10 LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE – DATA SELECT ULT_NOME, DT_ADMISSAO FROM EMPREGADO WHERE DT_ADMISSAO = '7/4/2010'; LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE – DATA SELECT ULT_NOME, DT_ADMISSAO FROM EMPREGADO WHERE DT_ADMISSAO = '7/ABR/2010' ou SELECT ULT_NOME, DT_ADMISSAO FROM EMPREGADO WHERE DT_ADMISSAO = '7/ABRIL/2010' LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES LOGICOS SELECT * FROM EMPREGADO SELECIONAR OS EMPREGADOS CONTRATADOS DEPOIS DE 2008 E QUE GANHEM MAIS DE 10000 LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES LOGICOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES LOGICOS SELECT * FROM EMPREGADO SELECIONAR OS EMPREGADOS CONTRATADOS DEPOIS DE 2008 OU QUE GANHEM MAIS DE 10000 LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES LOGICOS DATA MAIOR QUE 1/1/2009 SELECT * FROM EMPREGADO WHERE DT_ADMISSAO > ‘1/1/2009’ OR SALARIO > 10000 USO OR LIGANDO DUAS CONDIÇÕES SALARIO MAIOR QUE 10000 BASTA UMA SER VERDADEIRA LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS - IN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS - IN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – NOT IN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – BETWEEN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – BETWEEN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – NOT BETWEEN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – BETWEEN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – BETWEEN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – NOT LIKE SELECT * FROM EMPREGADO WHERE DT_ADMISSAO NOT LIKE ' %/04/%' NÃO FORAM CONTRATADOS NO MÊS 4 LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – IS NULL LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – IS NULL LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – IS NOT NULL LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Próxima Aula Aprender funções de grupo Recuperar dados agregados de uma tabela LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS/Aula_05.ppt IMPLEMENTAÇÃO DE BANCO DE DADOS Aula 5- Sql Parte 3 Conteúdo Programático desta aula Aprender a ordenar o resultado de uma consulta Aprender funções de grupo Recuperar dados agregados de uma tabela LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Rodando Script LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CONSULTANDO TABELAS Os componentes básicos do comando são: A Cláusula SELECT Lista as colunas que serão recuperadas Se utilizarmos o artifício do * (asterisco) na cláusula SELECT, estaremos definindo que todas as colunas serão recuperadas. A Cláusula FROM Define a tabela que será recuperada SELECT nome-col1, nome_col2, nome coln FROM nome_da_ tabela; OU SELECT * FROM nome_da_tabela ; LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CONSULTANDO TABELAS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ESCREVENDO EXPRESSÕES LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ALIAS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE – CASE SENSITIVE SELECT prim_nome,cargo FROM c_empr WHERE ult_nome = ' Ugarte' LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS UTILIZANDO WHERE – DATA SELECT ULT_NOME, DT_ADMISSAO FROM EMPREGADO WHERE DT_ADMISSAO = '7/ABR/2010' ou SELECT ULT_NOME, DT_ADMISSAO FROM EMPREGADO WHERE DT_ADMISSAO = '7/ABRIL/2010' LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES LOGICOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS - IN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – BETWEEN LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – LIKE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS OPERADORES RELACIONAIS – IS NULL LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Modelo de Dados LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ORDENANDO RESULTADOS Para permitir a ordenação o SQL nos fornece a clausula ORDER BY. SELECT { * | nome da coluna [, nome da coluna ...]} FROM nome da tabela WHERE condição {AND | OR} condição ORDER BY nome da coluna [ ASC | DESC ] [, nome da coluna [ ASC | DESC] ... ] Onde: ASC ordena as linhas de forma ascendente; é a ordenação default. DESC ordena as linhas de forma descendente. LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ORDENANDO RESULTADOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ORDENANDO RESULTADOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ORDENANDO RESULTADOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ORDENANDO RESULTADOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ORDENAÇÃO MULTIPLA LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ORDENAÇÃO MULTIPLA LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ORDENAÇÃO PELA POSIÇÃO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ORDENAÇÃO PELA POSIÇÃO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ELIMINANDO DUPLICADOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS ELIMINANDO DUPLICADOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO Funções de grupo operam sobre conjuntos de linhas. Elas retornam resultados baseados sobre um grupo de linhas, antes que um resultado por linha tenha retornado como uma função de linha única. Como padrão todas as linhas de um tabela são trilhadas como um grupo. A clausula GROUP BY da declaração do SELECT é usada para agrupar as linhas em menores grupos. LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO AVG (x) Retorna o valor médio da coluna x. Exemplo: AVG (salario) Ignora os valores nulos. MAX (x) Retorna o valor máximo da coluna x. Exemplo: MAX (salario) Ignora os valores nulos. MIN (x) Retorna o valor mínimo da coluna x. Exemplo: MIN (salario) Ignora os valores nulos. LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO SUM (x) Retorna a soma da coluna x. Exemplo: SUM (salario) Ignora os valores nulos. COUNT (x) Retorna o número de valores não nulos da coluna x. Exemplo: COUNT (perc_comissao) COUNT (* ) Retorna o número de linhas de uma tabela. Exemplo: COUNT (*) Considera os valores nulos. LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO - DISTINCT LISTAR A QUANTIDADE DE CARGOS E DE ID_DEPTOS DIFERENTES LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FUNÇÕES DE GRUPO - DISTINCT LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CRIANDO GRUPOS Outro recurso do comando SELECT é a possibilidade de agruparmos nossos dados, utilizando a cláusula GROUP BY. Sintaxe: SELECT nome da coluna [ , nome da coluna] FROM nome da tabela WHERE condição GROUP BY expressão onde expressão especifica as colunas cujos valores determinam a base para o grupo de linhas; GROUP BY produz uma linha sumarizada para cada grupo de linhas selecionado. LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CRIANDO GRUPOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CRIANDO GRUPOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CRIANDO GRUPOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS GRUPOS EM GRUPOS LISTAR A QUANTIDADE DE EMPREGADOS, SALARIO MEDIO E SOMA DOS SALARIOS DOS EMPREGADOS DE CADA DEPARTAMENTO E DENTRO DO DEPARTAMENTO PARA CADA CARGO LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS GRUPOS EM GRUPOS LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CRIANDO GRUPOS - WHERE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CRIANDO GRUPOS - WHERE LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FILTRANDO GRUPOS - HAVING LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FILTRANDO GRUPOS - HAVING LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS FILTRANDO GRUPOS - HAVING LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Próxima Aula Faremos uma revisão para a AV1 LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS av1,2e3/CCT0199 - IMPLEMENTAÇÃO DE BANCO DE DADOS/Aula_06.ppt IMPLEMENTAÇÃO DE BANCO DE DADOS Aula 6- Sql Parte 4 Conteúdo Programático desta aula Aprender os comandos de junção Conhecer as diferentes sintaxes de junção LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Modelo de Dados LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS Configurando Oracle LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS JUNÇÃO Um comando SELECT pode fazer uma consulta que traz dados de duas ou mais tabelas. Esse é um processo chamado de junção [join]. As tabelas têm uma coluna em comum que é usado para fazer as junções. Sintaxe da Junção Sintaxe ANSI Sintaxe tradicional (não ANSI) Tipos Junção: Junção Cruzada ou Irrestrita (Produto Cartesiano) Junção Interior Junção Exterior Auto-Junção LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS JUNÇÃO CRUZADA Uma junção cruzada [cross join] de tabelas, também chamada junção irrestrita de duas tabelas gera um resultado formado por todas as combinações possíveis de uma linha da primeira tabela com uma linha da segunda. Não existe uma condição de junção. Esse resultado é chamado produto cartesiano das duas tabelas. Na sintaxe ANSI, junções cruzadas são indicadas com CROSS JOIN, por exemplo: select * from empregado cross join departamento; Na sintaxe Tradicional: select * from empregado , departamento; LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS JUNÇÃO CRUZADA LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS JUNÇÃO CRUZADA LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS JUNÇÃO CRUZADA RETORNANDO TODAS AS COLUNAS DAS DUAS TABELAS E COMBINANDO TODAS AS LINHAS SELECT * FROM EMPREGADO CROSS JOIN DEPARTAMENTO, LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS JUNÇÃO CRUZADA LINGUAGEM SQL IMPLEMENTAÇÃO DE BANCO DE DADOS JUNÇÃO INTERIOR Esse tipo de junção conecta as duas tabelas e retorna apenas as linhas que satisfazem a condição de junção. Na sintaxe ANSI, junções interiores são indicadas com INNER JOIN: select <colunas> from tabela1 INNER JOIN tabela2 ON <condição de junção>; Na sintaxe Tradicional: select <colunas> from tabela1
Compartilhar