Reviews

BDII SQL DML Revisão 8

Description
exatasfepi.com.br BDII SQL DML Revisão 8 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef 6:2,3) SQL
Categories
Published
of 135
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
exatasfepi.com.br BDII SQL DML Revisão 8 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef 6:2,3) SQL Introdução Manipulação de dados Consultas básicas 2 SQL Introdução Manipulação de dados Consultas básicas 3 Introdução A DML (Data Manipulation Language) é a parte (módulo) do SQL usado para realizar: Inclusão Exclusão Alteração Consultas 4 SQL Introdução Manipulação de dados Consultas básicas 5 Manipulação de dados A SQL possui uma parte denominada DML que possui comandos para: inserir, atualizar e remover dados em tuplas nas tabelas INSERT UPDATE DELETE 6 Modelo a ser trabalhado 7 Comando INSERT A inserção pode ser realizada de duas formas: Sem indicar o nome dos atributos Indicando o nome dos atributos 8 Comando INSERT Sem indicar os nomes dos atributos Devemos informar o nome da relação e uma lista de valores relacionados ao tipo de cada atributo na ordem em que foram criados na tabela Nesta forma, devemos informar valores para todos os atributos INSERT INTO tabela VALUES ( lista_de_valores ); 9 Inserindo cliente INSERT INTO pessoa VALUES( , 'MG123456', 'Mariana', 'de Souza', 'Duarte', ' ', , 'Rua A, nº 35, Morro Chic', 'Itajubá', 'MG', 'F', '950.00' ); 10 Exercício Insira os seguinte clientes: CPF RG NOME ENDEREÇO SEXO SALARIO MG Jussara L Gonçalves Duarte RJ Lucas L Duarte MG98734 Davi L Duarte SP12888 Samuel L Duarte Rua C, 87, Itajubá MG Rua L, 807, Maria da Fé MG Rua C, 87, Itajubá MG Rua Coronel, 87, Rio de Janeiro RJ F M M M Visualizando o resultado Para vermos o resultado dos comandos anteriores usaremos o comando SELECT que será detalhado mais adiante SELECT * FROM cliente; 12 Inserindo conta INSERT INTO conta VALUES( 1, 1, 'ABC123', 500 ); 13 Dados do banco Tipos de conta 1 Conta Corrente 2 Poupança Tipos de transação 1 Crédito DEP (depósito) SAL (salário) REN (rendimentos) 2 Débito SAQ (saque) TRN (transferência) PAG (pagamento) 14 Exercício Insira mais quatro contas com limites: Poupança CC CC Poupança Comando INSERT Podemos fazer uma inserção na tabela pessoaconta usando o comando insert INSERT INTO pessoaconta VALUES( , 1, ' ', '13:00:00' ); 16 Comando INSERT Podemos fazer uma inserção na tabela pessoaconta usando o comando insert INSERT INTO pessoaconta VALUES( , 1, ' ', '13:00:00' ); Porque ocorreu um erro neste comando? 17 Comando INSERT O comando violou a integridade referencial que existe na tabela clienteconta O cpf deve existir em cliente para que o comando possa ser executado INSERT INTO pessoaconta VALUES( , 1, ' ', '13:00:00' ); 18 Exercício de fixação Ligue os demais clientes às suas respectivas contas 19 Comando INSERT Indicando o(s) nome(s) do(s) atributo(s) Devemos informar o nome da relação, a lista de atributos e uma lista de valores relacionados ao tipo de cada atributo na ordem em que foram indicados Nessa forma, podemos omitir valores para os atributos com null permitido e valor default configurado INSERT INTO tabela ( lista_de_atributos ) VALUES( lista_de_valores ); 20 Comando INSERT INSERT INTO pessoa(cpf, rg, pnome, unome, nascimento, salario) VALUES( , 'SP ', 'José', 'Santos', ' ', 1000 ); 21 MySQL Podemos automatizar a inserção de data e hora no MySQL 1. Remova os campos dataabertura e horaabertura da tabela pessoaconta 2. Crie um campo chamado abertura do tipo timestamp e na cláusula DEFAULT adicione o valor CURRENT_TIMESTAMP 3. Realize uma inserção sem informar dados para este novo campo 22 Populando o banco de dados Quando queremos realizar testes em um banco é muito comum desejarmos popular esta base com valores aleatórios Podemos criar scripts ou programas para fazer este serviço para nós, outra forma muito interessante é usamos serviços na internet Para isso podemos procurar por sites que ofereçam serviço de random data generator 23 Populando o banco de dados 1. Configure o serviço para gerar dados clientes gerentes contas 2. Ligar pessoas as contas 1. ± 600 individuais 2. ± 200 conjuntas 24 Populando o banco de dados 1. Salve como script SQL, se for possível 2. Salve o arquivo na pasta de script SQL 3. Execute com o comando source do MySQL Obs1.: execute uma linha do arquivo gerado para ver se a sintaxe está correta, caso esteja, execute todo o arquivo Obs2.: caso apresente erro no source, copie e cole os comandos no prompt 25 MySQL Em várias situações é importante fazer backup do banco de dados, não somente para armazenar uma cópia mas também Realizar testes de desempenho Realizar testes de alterações Realizar consultas complexas que demandaria muito processamento da máquina onde o banco está etc 26 MySQL Fazendo dump para arquivo path mysqldump --opt [nome_banco] [nome_arquivo.sql] -h [host] -u [usuário] -p [senha] c:\ path \mysql\bin\mysqldump -C banco c:\sql\bkpbanco.sql -h localhost -u root -p 27 MySQL Restaurando backup feito com dump mysql --opt [nome_do_banco] path [nome_arquivo_dump] mysql -u root -p banco c:\sql\bkpbanco.sql 28 Exercícios de Fixação Crie scripts de inserção para todas as outras tabelas, realize os ajustes caso seja necessário Obs3.: tente manter as colunas com a mesma quantidade de dígitos para facilitar a cópia por coluna 29 Exercícios de Fixação 1. Configure o serviço para gerar dados clientes gerentes contas 4. 5 agências 5. ± transações 2. Ligar pessoas as contas 1. ± 600 individuais 2. ± 200 conjuntas 3. Ligar as contas aos gerentes 4. Ligar as contas às agências 5. Ligar as contas às transações 30 Exercício de fixação Realize o backup do schema banco de sua máquina Remova o schema com o comando drop shchema database Crie o schema banco novamente Certifique-se de que ele está vazio (show tables) Levante a base com o arquivo de backup criado 31 Comando UPDATE O comando UPDATE pode ser usado para alterar valores de uma única tupla individualmente ou pode alterar vários valores usando a cláusula WHERE Uma atualização na chave primária pode gerar uma alteração em cascata dependendo do comando DDL usado para a construção das restrições 32 Alterando valores UPDATE nome_tabela SET nome_atributo = valor WHERE condicao A cláusula WHERE executa uma seleção na tabela (σ nome = André ) e aplica a alteração em todas as tuplas que satisfaçam a condição dada 33 Alterando valores Dica: Sempre antes de realizar um comando UPDATE, execute o comando SELECT com a condição desejada para ver quais tuplas serão alteradas UPDATE pessoa SET mnome = 'Luiza'; Obs.: SELECT * FROM pessoa para ver o resultado 34 Alterando valores UPDATE pessoa SET salario = salario * 1.10 WHERE salario 1000; Para alterarmos várias relações precisamos criar vários comandos UPDATE Obs.: SELECT * FROM pessoa para ver o resultado 35 Exercícios de fixação Altere os salários dos clientes acrescentando R$ 100,00 para cada um Altere todos os s para o valor Altere todas as senhas de todas as contas poupança para '***' Existem varias cidades com unidade federativa errado, corrija essas linhas 36 Comando DELETE O comando DELETE é usado para remover tupla(s) de uma relação Se usado sem a cláusula WHERE, o comando DELETE remove todas as tuplas da relação Se usada a cláusula WHERE, somente as tuplas que satisfazem a condição serão removidas 37 Comando DELETE DELETE FROM nome_tabela WHERE condição A cláusula WHERE executa uma seleção na tabela (σ salario 1000 ) e remove as tuplas que satisfaçam a condição dada 38 Comando DELETE DELETE FROM contaagencia WHERE numeroa = 2; DELETE FROM contaagencia; Dica: sempre antes de realizar um comando DELETE execute o comando SELECT correspondente para ver quais tuplas serão removidas Obs.: SELECT * FROM pessoa para ver o resultado 39 Exercícios de fixação Remova todos os clientes do sexo feminino Remova todos os cliente que possuem salário entre 9000 e Remova todos os clientes de Itajubá Remova todos os clientes Remova todas as contas Levante o banco novamente 40 SQL Introdução Definição de dados Restrições básicas Alteração de esquemas Manipulação de dados Consultas básicas 41 Consultas básicas A SQL possui um comando básico para recuperação de informação em banco de dados O comando usado para recuperar dados, além de outras coisas, é o comando SELECT o comando SELECT pode ser usado com ou sem condições de seleção cláusula WHERE, mas sempre deve ser acompanhado da cláusula FROM 42 Consultas básicas A ausência da cláusula WHERE indica que não há nenhuma condição para a seleção das tuplas Isso significa que todas as tuplas da relação especificada na cláusula FROM estão qualificadas e fazem parte do conjunto reposta 43 SELECT A forma básica para uma consulta em SQL é: SELECT lista de atributos FROM lista de tabelas Exemplo: SELECT cpf, rg, pnome, unome, salario FROM pessoa; 44 SELECT lista de atributos é uma lista dos nomes dos atributos cujos valores serão recuperados e exibidos (Projeção) lista de tabelas é uma lista com os nomes das relações necessárias para processar a consulta 45 Lista de atributos Podemos listar todos os atributos que queremos que apareçam nos resultados da consulta Quando desejarmos que todos os atributos sejam mostrados podemos usar o asterisco (*) A presença do * no comando SELECT indica que queremos que todas as colunas (atributos) sejam exibidas 46 SELECT Uso do asterisco: SELECT * FROM lista de tabelas Exemplo: SELECT * FROM conta; 47 Consultas básicas O comando SELECT está relacionada à projeção da álgebra relacional e não à seleção A cláusula WHERE é responsável por avaliar condição, portanto, está relacionada à seleção da Álgebra Relacional 48 Cláusula WHERE É usada para filtrar os resultados obtidos pelo comando SELECT A cláusula WHERE extrai do resultado obtido pelo comando SELECT, as linhas que satisfaçam a condição de filtragem especificada 49 SELECT WHERE A forma básica para uma consulta em SQL é: SELECT lista de atributos FROM lista de tabelas WHERE condição ; condição é uma expressão condicional que identifica as tuplas que serão recuperadas pela consulta 50 Exemplo SELECT * FROM cliente WHERE cpf = ; SELECT * FROM gerente WHERE registro = 41; SELECT * FROM conta WHERE tipo = 2; SELECT * FROM transacao WHERE observação = 'andré'; 51 Cláusula WHERE Operadores relacionais usados em SQL , , =, =, = e Operadores lógicos NOT, AND e OR Outros operadores podem ser usado para comparar atributos com atributos ou atributos com valores e serão abordados adiante 52 Exercício de fixação Selecione todos os clientes que moram em Maria da Fé e nasceram nos anos 80 Selecione todas as pessoas que nasceram depois de 1990 e que não são do sexo masculino Selecione todas as contas que são Conta Corrente Selecione todas as transações que são crédito e não sejam saque 53 Projeção A projeção na álgebra relacional, foi usada para indicarmos qual(is) coluna(s) desejamos ver no resultado No SQL, basta colocarmos na lista de atributos os atributos (colunas) que desejamos ver na resposta ao invés de usar o * (todas as colunas) 54 Exemplo SELECT pnome, unome, nascimento FROM pessoa; SELECT registro, salario FROM gerente WHERE salario 10000; SELECT tipo FROM conta; 55 MySQL O MySQL possui uma cláusula chamada LIMIT que limita o número de linhas a serem exibidas após um comando SELECT Se informarmos dois parâmetros na cláusula LIMIT temos: offset Indica o deslocamento para a primeira linha a ser mostrada maxrow Indica quantidade máxima de linhas a serem exibidas 56 MySQL Exemplo: SELECT * FROM pessoa LIMIT 10; Exibe as 10 primeiras linhas SELECT * FROM pessoa LIMIT 5, 3; Exibe 3 linhas a partir da 5ª linha Obs.: Esse comando recupera todos os clientes, mas somente as 10 primeiras linhas do resultado serão exibidas 57 DISTINCT A cláusula DISTINCT é usada no comando SELECT para recuperar valores sem repetições Quando tabelas possuírem campos com valores duplicados, a cláusula DISTINCT remove as repetições e retorna uma lista com valores únicos 58 DISTINCT Sintaxe: SELECT DISTINCT lista de atributos FROM lista de tabelas WHERE condição ; 59 Exemplo SELECT abreviacao FROM transacao; O comando gera muitas repetições, imagine que queremos ver quais os tipos de contas existentes SELECT DISTINCT abreviacao FROM transacao; 60 Exercícios de fixação Mostre quais cidades possuem agencia deste banco Quais os tipos de transações já foram realizadas e suas respectivas abreviações Alguém pagou conta de luz e registrou observação para isso? Quais cidades são naturalidade de pessoas? Quantos endereços diferentes existem? 61 Operador BETWEEN Operador usado pelo SQL para verificar se os valores de um determinado campo estão dentro de um intervalo definido Pode ser usado para verificar intervalo Numérico Texto Data Tempo 62 BETWEEN Sintaxe: SELECT lista de atributos FROM lista de tabelas WHERE nome atributo BETWEEN valor1 AND valor2 ; 63 Exemplo SELECT pnome FROM pessoa WHERE pnome BETWEEN 'Amanda' AND 'Carol'; SELECT numero, tipo, valor FROM transacao WHERE valor BETWEEN AND ; 64 Exercícios de fixação Mostre quais os tipos de transações foram realizadas com valores entre 1450 e 1500 Mostre o cpf e nome completo dos cliente que possuem salario entre 9900 e Mostre quais gerentes foram admitidos entre 01/02/2015 e 31/03/2015 Mostre as pessoas que tenham o primeiro nome entre Aaron e Ashley ou Samuel e Susan 65 Comparações entre substrings O operador LIKE é usado para realizar comparações entre partes de uma cadeia de caractere O operador LIKE busca pelo padrão passado como base para as comparações As partes de cadeias podem ser especificadas usando caracteres reservados como (%) e (_) 66 Comparações entre substrings Caractere % substitui um número arbitrário entre 0 ou mais caracteres na string passada como padrão de busca Caractere _ substitui um único caractere na string passada como padrão de busca 67 Comparações entre substrings Exemplo encontre todos clientes que tenham seu primeiro nome iniciado com a letra V : SELECT * FROM pessoa WHERE pnome LIKE 'V%'; 68 Comparações entre substrings Podemos usar o operador LIKE em buscas por datas Exemplo: Procure todos os clientes que nasceram nos anos 60 no mês de fevereiro SELECT * FROM pessoa WHERE nascimento LIKE ' 6_-02- '; 69 Comparações entre substrings Quando precisarmos usar o caractere % como padrão de busca, devemos usar um caractere de escape (\) Exemplo: Selecione todas as transações que possuem o caractere % no campo observação SELECT * FROM transacao WHERE obs LIKE '%\%%'; 70 Comparações entre substrings Se precisarmos buscar substrings que possuam caracteres como,,,, etc devemos proceder da mesma forma usando o caractere de escape (\) Se o caractere de escape fizer parte da string, o mesmo princípio deve ser seguido 71 Exercícios de fixação Encontre todas as agências que possuem um caractere r no seu nome Encontre todas as contas que possuam na senha alfabética a sequência: um caractere Q seguido de qualquer outro caractere, seguido de um caractere M Encontre todas as pessoa que possuam a sequência Wi... no primeiro nome ou no nome do meio ou no último nome Selecione todas as pessoas que possuam governamental Selecione todas as pessoa que possuem com domínio w3 72 Operadores aritméticos Podemos usar os operadores aritméticos para realizar operações sobre valores numéricos ou atributos com domínios numéricos Exemplo: Mostre o resultado do aumento de 10% sobre os salários dos gerentes que nasceram no mês de fevereiro e o valor real do aumento dado 73 Operadores aritméticos SELECT cpf, salario, 1.1 * salario, 1.1 * salario salario FROM gerente WHERE admissao LIKE '%-02-%'; 74 Concatenação de cadeias O operador ( ) é usado para concatenar cadeias no padrão SQL O operador também pode ser usado para concatenas data, horário e timestamp Exemplo: SELECT pnome ' ' unome FROM pessoa LIMIT 10; 75 MySQL A concatenação é feita através do comando concat() Exemplo: listar os aniversariantes do mês de agosto SELECT concat(pnome, ' ', unome) FROM pessoa WHERE nascimento LIKE ' -09- '; 76 Exercício de fixação Mostre o nome completo e o valor de 10% do salário das pessoas onde 10% seja maior do que 1990 Mostre o número, abreviação e tipo da transação concatenados em um único campo, o valor total e o valor de uma taxa de 0,1% que será cobrada sobre as transações com valor superior a Funções de agregação O MySQL possui várias funções de agregação. As principais são: COUNT() SUM() AVG() MAX() MIN() 78 COUNT() Podemos realizar contagens específicas usando o comando COUNT() O comando conta a quantidade de linhas presentes em um resultado Exemplo: SELECT COUNT(*) FROM pessoa; 79 Exercícios de fixação Mostre a quantidade de transações que foram realizadas com valores entre 1000 e 2000 Exiba a quantidade de contas que existem com limite entre 200 e 800 Quantas agências desse banco existem? Quantos clientes são do sexo masculino? Quantos cliente são maior de idade? 80 SUM() Podemos realizar a soma de todos os valores de um campo numérico usando a função SUM() A função SUM() soma todos os valores de um campo retornando um único valor Exemplo: SELECT SUM(salario) FROM pessoa; 81 Exercícios de fixação Calcule a soma de todos os depósitos realizados acima de Calcule a soma de todos os salários dos gerentes admitidos em fevereiro Calcule a soma de todas os saques realizados Calcule a soma de todos os salários dos clientes que têm o primeiro nome começando com a sequencia An... 82 AVG() Podemos realizar a média de todos os valores de um campo numérico usando a função AVG() A função AVG() retornando um único valor que representa a média aritmética entre os valores Exemplo: SELECT AVG(salario) FROM pessoa; 83 Exercícios de fixação Calcule o salário médio dos gerentes Calcule o salário médio dos clientes do sexo feminino Calcule o valor médio de depósitos Calcule o valor médio de saques Calcule o valor médio de pagamentos 84 MAX() Podemos identificar o maior valor entre todos os valores de um campo numérico usando a função MAX() A função MAX() retorna um único valor que representa o maior valor em um conjunto de valores Exemplo: SELECT MAX(salario) FROM pessoa; 85 MIN() Podemos identificar o menor valor entre todos os valores de um campo numérico usando a função MIN() A função MIN() retorna um único valor que representa o menor valor em um conjunto de valores Exemplo: SELECT MIN(salario) FROM pessoa; 86 Exercício de fixação Exiba o maior e o menor salário dos clientes homens Exiba a diferença entre o maior e o menor salário das clientes Exiba o maior, o menor e a diferença salarial entre o maior e menor salário dos gerentes Exiba o maior, o menor e a diferença salarial entre o maior e menor salário dos clientes Exiba o maior e menor depósito realizado Exiba o maior e o menor saque realizado Exiba o maior, o menor e a diferença entre o maior valor e o menor valor de pagamento realizado 87 Date e time Podemos tratar geralmente data e hora como uma sequência de caracteres usando o operador LIKE E muitas situações, é conveniente podermos realizar operações com este tipo de informação 88 MySQL O MySQL permite recuperemos informações de datas como o dia o mês e o ano separadamente DAY(): retorna o dia do mês MONTH(): retorna o número do mês YEAR(): retorna o ano da data Obs.: se a data for ' ', o valor recuperado será 0 89 Exemplo SELECT cpf, nascimento, DAY(nascimento), MONTH(nascimento), YEAR(nascimento) FROM pessoa WHERE YEAR(nascimento) = 1990; 90 Exercício Exiba a data de nascimento na forma dia/mês/ano Exiba quantas pessoas fazem aniversário no dia 27 de qualquer mês Exiba quantas pessoas fazem aniversário no mês de agosto Exiba quantas pessoas fazem aniversário no ano de 1995 Exiba a média salarial dos clientes que fazem aniversário no mês de dezembro 91 Exercício Exiba a quantidade de transações realizadas entre março e maio de 2016 Exiba a média dos salários dos gerentes que não foram admitidos no mês de fevereiro de qualquer ano Exiba o maior e o menor salários dos clientes nascidos entre os anos de 1990 a 2000 e os meses de junho a setembro Exiba o maior salario, o menor sa
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks