Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 001 - Revisão de Conceitos e Problematização O objetivo geral de um banco de dados é organizar os dados, para um problema inicial propusemos um cadastro de funcionários, todo cheio de problemas, vamos ter aplicar regras de normalização e comandos de banco de dados para permitir que nosso banco de dados faça sentido. Para realizar esse exercício vamos iniciar o XAMPP e em seguida Abrir o Mysql - Utilizando o PhpMyAdmin - Abra o painel de controle, inicie o Mysql e em Seguida clique no botão Admin ao iniciar corretamente, uma tela parecida com essa surgirá. Para fazer download do arquivo que usamos no exemplo utilize o link a seguir: bit.ly/2vDkyIa Lembre-se que para realizar a importação o primeiro passo a ser realizado é criar o banco de dados. No exemplo abrimos o phpmyadmin e em seguida na aba SQL digitamos o seguinte comando: CREATE DATABASE AULA_DS2POLI; Uma vez criado o banco de dados, clique no mesmo e em seguida vá na "aba import" Após fazer isso clique no botão escolher arquivo, escolha o formato CSV, em COLUNAS SEPARADAS COM, troque para " ; " e NÃO se esqueça de marcar que o arquivo contém os nomes das colunas. Feito isso, você terá importado seu banco de dados Aula 002 - Conhecendo o comando SELECT O comando usado para manipular e recuperar informações e consequentemente dados em um banco é o SELECT ele tem uma sintaxe(estrutura) bem complexa, podendo assim executar tarefas simples, e outras bem elaboradas. o básico do comando é o seguinte: select campo1, campo2, campo3,....., campoN from nome_da_minha_tabela where (condições) Em um exemplo clássico para a tabela que temos, vamos selecionar todos os dados, então select * from funcionarios; Neste comando o * substitui o nome dos campos da tabela e por consequência TODOS os campos serão retornados. Vamos aprender agora o critério para inserção das condições, lembre-se para o dado ser retornado ele tem que satisfazer todas as condições: imagina uma tabela com alguns nomes e idades Nome Idade Maria 25 José 27 João 36 Rita 36 Marcelo 17 imaginado que isto é uma tabela o comando para retornar todos os dados seria: select nome, idade from funcionarios; Agora imaginemos que eu queria retornar somente os nomes que tenham a letra "J" no início, eu tenho que ser capaz de escrever uma condição que seja verdade somente para ela! Ou seja sele eu escrevesse um comando assim: select * from funcionarios where 1=1; todos os registros seriam selecionados pois 1 é igual a 1 sempre!! se eu escrevesse o comando select * from funcionarios where 1=0; nenhum dado seria retornado! então para retornar os dados dos nomes com a letra J eu tenho que escrever uma condição somente para isso, antes deste ponto vamos aprender os operadores lógicos em SQL. = igual igualdade > maior maior que < menor menor que >= maior ou igual maior ou igual que <= menor ou igual menor ou igual que <> diferente diferente de LIKE parecido parecido com este operador trabalha em conjunto com um coringa este coringa é representado pelo símbolo % então exemplos de condições salario > 1000 salario >= 1000 salario = 1000 salario < 1000 salario <= 1000 salario <> 1000 nome like "%nome%" - vai retornar somente o que tem o nome "entre" os coringas %m% - todo nome que tiver a letra M em qualquer posição nome like "%nome" - vai retornar somente o que termina o nome "entre" os coringas %m - todo nome que tiver a letra M somente no final m% - somente o que começa com a letra M Para escrever uma condic'ão eu SEMPRE tenho que colocar o nome de um campo aliado ao o quê eu estiver escrevendo exemplo NOME like 'M%' AULA 003 - TRABALHANDO COM O DESENVOLVIMENTO DE CARDINALIDADES Conforme discutimos em sala há um problema com nosso campo de cardinalidade e vamos resolver esse problema nos passos abaixo: A primeira etapa é verificar quais os valores distintos na tabela. Para isso vamos digitar o comando abaixo SELECT DISTINCT ESPECIALIDADE FROM FUNCIONARIO; Dessa forma sou capaz de verificar todas as especialidades disponíveis no sistema, as quais mais tarde vou corrigir. Para agilizar esse processo iremos criar uma tabela para guardá-las. para isso executamos o seguinte comando: Feito isso, a tabela será criada! Vamos agora adicionar um campo chave primária na tabela especialidade Clique na tabela especialidade Abaixo da tabela aparece a opção Adicionar 1 Coluna no início da tabela. Digite o nome cod_especialidade ou digite o seguinte comando na ABA SQL, ele também criará a coluna. ALTER TABLE `ESPECIALIDADE` ADD `COD_ESPECIALIDADE` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`COD_ESPECIALIDADE`); O próximo passo será criamos a coluna cod_especialidade na tabela funcionário, isso também será feito de forma parecida! clique na aba SQL e digite o seguinte comando: ALTER TABLE FUNCIONARIO ADD COD_ESPECIALIDADE INT NOT NULL AFTER ESPECIALIDADE; este comando irá criar uma coluna vazia (com o valor zero) na tabela funcionário, o próximo passo é atualizarmos o valor dela para cada uma das profissões, para tal utilizamos o comando UPDATE O comando update é o comando utilizado para atualização dos valores de dados em uma tabela a regra é a seguinte: UPDATE NOME_DA_TABELA SET nome_do_campo = 'novo_valor' where nome_do_campo_escolhido = 'Critério' No nosso Exemplo vamos atualizar o valor do campo criado na tabela funcionários, então o comando é: UPDATE FUNCIONARIO SET COD_ESPECIALIDADE = '99999' where ESPECIALIDADE = 'Técnico em Informática' ONDE 99999 é o código da especialidade Técnico em Informática da SUA TABELA! Aproveite e atualize os códigos para as seguintes profissões: Secretaria Nutricionista Técnico em Enfermagem professora UPDATE CADASTRO JOIN ESPECIALIDADE ON (CADASTRO.ESPECIALIDADE = ESPECIALIDADE.ESPECIALIDADE) SET CADASTRO.COD_ESPECIALIDADE = ESPECIALIDADE.COD_ESPECIALIDADE - CRIAR AS DEMAIS TABELAS, SEPARANDO O CONTEÚDO DE TEXTO E SUBSTITUINDO PELO CÓDIGO 1. ENDEREÇO, 2. ESPECIALIDADE, 3. SIGNO, 4. EST_CIVIL, 5. NACIONALIDADE, 6. DEPENDENTES, 7. PAI, MAE, 8. GENERO, 9. BENEFICIOS, 10. PRO_SAUDE, 11. RACA, 12. IDIOMAS, 13. CONDUCAO, 14. CURRICULO, 15. CARGO, 16. TIPO_CONTRATO, 17. PORTADOR_DEF, 18. ANT_CRIMINAIS, 19. TATUAGEM, 20. PORTIFOLIO, 21. RELIGIAO, 22. DROGAS, 23. NOME_SOCIAL PARA CRIAR RELACIONAMENOT DAS TABELAS ALTER TABLE CADASTRO ADD CONSTRAINT FOREIGN KEY(COD_SIGNO) REFERENCES SIGNO(COD_SIGNO) -- SELECT DISTINCT ENDERECO FROM ENDERECO UPDATE ENDERECO SET LOGRADOURO = ENDERECO WHERE ENDERECO LIKE 'RUA%' AND ENDERECO NOT LIKE '%,%' AND ENDERECO NOT LIKE '%º%' UPDATE ENDERECO SET LOGRADOURO = SUBSTRING(ENDERECO,1,LOCATE(",",ENDERECO)-1) WHERE LOGRADOURO = '' AND ENDERECO LIKE '%,%' Para trabalhar com manipulação de Strings na tabela endereços select locate(onde_quero_encontrar, 'o_que_quero_encontrar' Select locate (endereço, 'Nº') from cadastro -- isto retornaria a posição da string 'Nº' select replace ('onde_quero_subsitituir','o_que_vou_substituir','por_aquilo_que_vou_substituir') Select replace ( endereço, 'Artur Nogueira', '') -- trocaria a expressão Artur Nogueira por vazio --lower('VAI FICAR MINÚSCULO') --upper('vai ficar maiúsculo') select SUBSTRING(ENDERECO,1,LOCATE(",",ENDERECO)-1) substring(de_onde_quero_recordar, posicao_incial, posicao_final)
Compartilhar