Em primeiro lugar, obtenha um entendimento completo das junções. Não apenas as junções interna e esquerda também. Saiba o que uma junção cruzada faz e uma junção externa completa. Conheça as circunstâncias que o levariam a escolher um tipo específico de associação. Entenda que eles não são intercambiáveis e que a consulta que usa uma junção esquerda pode retornar resultados diferentes daquele que usa uma junção interna. (Alguém poderia pensar que isso seria óbvio, mas eu já li muitas perguntas em que as pessoas, ao descreverem o problema, tentam aleatoriamente diferentes associações).
A seguir, realmente entenda os agregados e como eles funcionam. O Mysql permitirá que você se livre de não fazer agrupamentos de maneira padrão. Mas tenha a disciplina para definir completamente o grupo por cláusula corretamente. Isso ajudará você a entender o que está fazendo e tornará seu conhecimento mais facilmente transferível para outros bancos de dados.
Aprenda o que a declaração do caso faz.
Ao fazer consultas complexas, aprenda a trabalhar em partes. Verifique em cada parte que você tem os resultados esperados. Por exemplo, suponha que você precise escrever uma consulta de relatórios sobre pedidos que foram devolvidos nos últimos 3 meses e o motivo da devolução, bem como as informações de contato do cliente. O primeiro passo é obter os pedidos devolvidos nos últimos três meses. Depois de saber que possui esse sólido, você pode adicionar as informações sobre o motivo da devolução. Depois de ter esse sólido, você pode adicionar o cliente que o devolveu. Depois de ter esse sólido, adicione as informações de contato da pessoa. Em cada estágio, verifique seus resultados e veja se eles fazem sentido. Nesse caso, provavelmente quero terminar com apenas um registro por pedido devolvido. Se, em qualquer estágio intermediário, o número de resultados aumentar ou diminuir, você sabe que tem um problema com a consulta. Às vezes, nos blocos de construção, você deseja ver campos adicionais apenas para verificar se as informações estão corretas. Coloco-os em uma linha separada e comento-os à medida que passo na próxima etapa (removendo-os no final quando souber que estou certo), para que fiquem disponíveis para ver novamente com facilidade se adicionar outra ruga tornar a consulta engraçada. Você não pode fazer consultas complexas corretamente sem entender completamente como devem ser os resultados. Pensar que parece bom porque retornou alguns resultados quase garantirá que você tenha resultados errados uma boa parte do tempo. m à direita), para que fiquem disponíveis para visualização fácil novamente, se a adição de outra ruga tiver tornado a consulta engraçada. Você não pode fazer consultas complexas corretamente sem entender completamente como devem ser os resultados. Pensar que parece bom porque retornou alguns resultados quase garantirá que você tenha resultados errados uma boa parte do tempo. m à direita), para que fiquem disponíveis para visualização fácil novamente, se a adição de outra ruga tiver tornado a consulta engraçada. Você não pode fazer consultas complexas corretamente sem entender completamente como devem ser os resultados. Pensar que parece bom porque retornou alguns resultados quase garantirá que você tenha resultados errados uma boa parte do tempo.
Aqui está uma lista de algumas coisas básicas que você deve poder fazer no SQL sem precisar pensar nisso:
- Primeiro, uma seleção direta sem junções (e sem seleção *), mas com condições na seleção
- Você deve saber como combinar duas ou mais tabelas e obter registros que estão em todas as tabelas
- Você deve saber como combinar duas ou mais tabelas e obter registros que estão em todas as tabelas, mas retornar apenas um registro da tabela com o lado muitos do relacionamento um para muitos
- Você deve conseguir obter os registros em uma tabela, mas não em uma tabela associada
- Você deve poder agregar dados para um relatório
- Você deve poder inserir um registro em uma tabela
- Você deve poder atualizar um registro em uma tabela
- Você deve poder excluir um registro em uma tabela
- Você deve poder inserir um grupo de registros em uma tabela sem um cursor
- Você deve poder atualizar um grupo de registros em uma tabela sem um cursor
- Você deve poder excluir um grupo de registros em uma tabela sem um cursor
- Você deve poder executar várias ações em uma transação e lidar com a interceptação de erros
- Você deve ser capaz de criar união de registros e saber quando usar o UNION vice UNION ALL
- Você deve poder variar os dados para um campo com base em alguns critérios (usando CASE)
Depois de se sentir confortável com seu conhecimento básico de SQL, conheça a estrutura do banco de dados. Posso escrever consultas complexas em relação aos dbs muito complicados que dou suporte muito mais rápido que outras pessoas, porque entendo a estrutura e não preciso pensar em onde as coisas estão armazenadas. Se você entender a estrutura da tabela e os relacionamentos de chave estrangeira e onde os valores de pesquisa são armazenados e o que as colunas significam (não apenas o nome, mas quais dados são mantidos nelas), você pode ser especialista em consultar esse banco de dados. A primeira coisa que faço em qualquer novo trabalho é entender completamente a estrutura do banco de dados.