10 dicas SQL Recuperação

o SQL SELECT

declaração é a sua ferramenta para desenterrar informações escondidas em um banco de dados. Mesmo se você tem uma ideia clara do que você deseja recuperar, traduzir essa idéia em SQL pode ser um desafio. Se a sua formulação é apenas um pouco fora, você pode acabar com os resultados errados. Para reduzir suas chances de ser enganado, utilize os seguintes dez princípios.

Verifique a estrutura de banco de dados

Se você recuperar dados de um banco de dados e os resultados não parecem razoáveis, verificar o dimensionamento do banco de dados. Muitos bancos de dados mal projetados estão em uso, e se você estiver trabalhando com um, corrigir o desenho antes de tentar qualquer outro remédio. Lembre-se - um bom design é um pré-requisito de integridade de dados.

Tente pesquisas em um banco de dados de teste

Criar um banco de dados de teste que tem a mesma estrutura que seu banco de dados de produção, mas com apenas algumas linhas representativas nas tabelas. Escolha os dados para que você saiba de antemão o que os resultados de suas consultas deve ser.

Executar cada consulta de teste sobre os dados de teste e ver se os resultados correspondem às suas expectativas. Se não o fizerem, pode ser necessário reformular suas consultas. Se uma consulta for devidamente formulado, mas você acabar com maus resultados, mesmo assim, pode ser necessário reestruturar seu banco de dados.

Construir vários conjuntos de dados de teste e não se esqueça de incluir os casos estranhos, tais como mesas vazias e valores extremos no limite das margens admissíveis. Tente pensar em cenários improváveis ​​e verificar o comportamento adequado quando eles ocorrem. No decurso da verificação de casos improváveis, você pode ter uma visão sobre os problemas que são mais provável de acontecer.

consultas de dupla verificação que incluem junta

Junta são notoriamente contra-intuitivo. Se a consulta contém um, certifique-se de que ele está fazendo o que você espera antes de adicionar ONDE cláusulas ou outros fatores complicadores.

consultas Triple-seleção com subselects

Consultas com subselects levar os dados de uma tabela e, com base no que é recuperada, tomar alguns dados de outra tabela. Portanto, por definição, essas consultas podem ser realmente difícil de acertar. Certifique-se os dados que o interior SELECIONAR recupera são os dados que o externo SELECIONAR precisa para produzir o resultado desejado. Se você tiver dois ou mais níveis de subselects, você precisa ser ainda mais cuidadoso.

Resumir dados com GROUP BY

Digamos que você tenha uma tabela (nacional) que contém o nome (Jogador), equipe (Equipe), E o número de home runs bateu (Homers) Por todos os jogadores de beisebol na liga nacional. Você pode recuperar o total da equipa Homer para todas as equipes com uma consulta como esta:

Selecione a equipe, SUM (Homer) FROM NATIONALGROUP pela equipe -

Esta consulta lista cada equipe, seguido pelo número total de home runs atingidos por todos os jogadores dessa equipa.

Assista GROUP BY restrições cláusula

Suponha que você queira uma lista de rebatedores de potência Liga Nacional. Considere a seguinte consulta:

SELECIONE jogador, equipe, HomersFROM NATIONALWHERE Homers> = 20GROUP pela equipe -

Na maioria das implementações, esta consulta retorna um erro. Geralmente, apenas as colunas utilizadas para o agrupamento ou colunas usadas em uma função de conjunto pode aparecer na lista de seleção. No entanto, se você quiser ver estes dados, a seguinte formulação funciona:

SELECIONAR jogador, equipe, HomersFROM NATIONALWHERE Homers> = 20GROUP pela equipe, jogador, Homer -

Porque todas as colunas que deseja exibir aparecem no GROUP BY cláusula, a consulta for bem-sucedido e fornece os resultados desejados. Esta formulação classifica a lista resultante pela primeira vez por Equipe, seguida pela Jogador, e, finalmente, pela Homers.

Usar parênteses com AND, OR e NOT

Às vezes, quando você mistura E e OU, O SQL não processar a expressão na ordem que você espera. Use parênteses em expressões complexas para se certificar de que você obtenha os resultados desejados. Digitando algumas teclas extras é um pequeno preço a pagar para obter melhores resultados.

Parênteses também ajudam a garantir que o NÃO palavra-chave é aplicada ao termo ou expressão que você quer que ele seja aplicada.

privilégios de recuperação de controle

Muitas pessoas não usam os recursos de segurança disponíveis em suas DBMS. Eles não querem se preocupar com eles, porque eles pensam mau uso e apropriação indevida de dados são coisas que só acontecem com outras pessoas. Não espere para se queimar. Estabelecer e manter a segurança para todos os bancos de dados que têm qualquer valor.

Faça backup de seus bancos de dados regularmente

alerta eufemismo: Dados é difícil de recuperar depois de um pico de energia, um fogo, um terremoto, ou algum outro desastre destrói seu disco rígido. (Lembre-se, por vezes, os computadores apenas morrer por nenhuma boa razão.) Faça backups freqüentes e colocar a mídia de backup em um local seguro.

O que constitui um lugar seguro depende do grau de importância de seus dados é. Pode ser um cofre à prova de fogo no mesmo quarto que o seu computador. Pode ser em outro prédio. Ele pode estar na nuvem. Ele pode estar em um bunker de concreto sob uma montanha que tem sido reforçados para resistir a um ataque nuclear. Decida o nível de segurança é adequado para seus dados.

Lidar com condições de erro graciosamente

Se você estiver fazendo consultas ad hoc a partir de uma estação de trabalho ou a incorporação de consultas em um aplicativo, ocasionalmente SQL retorna uma mensagem de erro, em vez de os resultados desejados. Na estação de trabalho, você pode decidir o que fazer a seguir, com base na mensagem devolvida.

Em um aplicativo, a situação é diferente. O usuário do aplicativo provavelmente não sabe qual a acção apropriada. Coloque extensa manipulação de erros em suas aplicações para cobrir todo erro concebível que possa ocorrer. Criação de código de tratamento de erros leva um grande esforço, mas é melhor do que ter o usuário olhar com curiosidade para uma tela congelada.

menu