12th Dec 2022 4 minutos de leitura Usando AND, OR, e NOT Operadores em SQL Andrew Bone sql aprender sql sql operators where Índice SQL E Sintaxe SQL OU Sintaxe SQL NÃO Sintaxe Combinando os operadores AND, OR, e NOT Expanda seu SQL com AND, OR, e NÃO Operadores ANDA SQL, OR, e NOT são operadores lógicos importantes em SQL. Eles ajudam você a combinar as condições usadas para filtrar registros. Eles são mais comumente usados em conjunto com o WHERE ou HAVING cláusulas. Além disso, este tópico é uma pergunta bastante comum em entrevistas de emprego SQL. Para ajudar você a entender completamente estes operadores, vou lhe dar alguns exemplos, explicando completamente a sintaxe e o propósito de cada um. Praticar usando exemplos como estes é um dos melhores métodos para aprender SQL. Para nossos exemplos, imagine que operamos e possuímos uma academia com locais diferentes ao redor dos Estados Unidos. Quando as pessoas se inscrevem, elas nos dão algumas informações básicas. Estas serão armazenadas em nosso members tabela, que contém uma identificação única para cada membro, juntamente com seu primeiro e último nome, sua idade, a data de entrada na academia e a localização de sua academia. idFirstNameLastNameAgeDateJoinedLocation 1WillSmith522020-08-23Los Angeles 2BradPitt562018-06-15San Francisco 3TomHanks642017-02-27San Diego 4AngelinaJolie452019-04-02Los Angeles 5MerylStreep712014-03-21Manhattan SQL E Sintaxe A sintaxe para o operador AND é: SELECT column_1, column_2, … column_n FROM table WHERE condition_1 AND condition_2 AND condition_n Quando múltiplas condições são combinadas usando o operador AND, todas as linhas que atendem a todas as condições dadas serão devolvidas. Agora é hora de aplicar o operador AND ao nosso cenário de academia. Digamos que queríamos encontrar todos os membros que têm menos de 50 anos e moram em Los Angeles. Como podemos fazer isso usando uma consulta SQL? SELECT * FROM members WHERE Age < 50 AND Location = 'Los Angeles'; idFirstNameLastNameAgeDateJoinedLocation 4AngelinaJolie452019-04-02Los Angeles Embora tenhamos dois membros com o Location de Los Angeles, apenas um desses membros está sob o Age de 50 anos. Lembre-se que ao utilizar o operador SQL AND, ambas as condições devem ser cumpridas para que um registro seja devolvido. SQL OU Sintaxe A sintaxe para o operador OR é: SELECT column_1, column_2, … column_n FROM table WHERE condition_1 OR condition_2 OR condition_n Quando múltiplas condições são combinadas utilizando o operador OR, todas as filas que atendem a qualquer uma das condições determinadas serão devolvidas. Podemos aplicar isto ao nosso members escrevendo a seguinte pergunta: SELECT * FROM members WHERE Location = 'Los Angeles' OR LastName = 'Hanks' Com esta consulta, estamos procurando recuperar linhas onde o LastName é Hanks ou o Location é Los Angeles. A execução desta consulta produz o seguinte resultado: idFirstNameLastNameAgeDateJoinedLocation 1WillSmith522020-08-23Los Angeles 3TomHanks642017-02-27San Diego 4AngelinaJolie452019-04-02Los Angeles Observe como nosso membro Tom Hanks está incluído no conjunto de resultados, mesmo que sua academia Location não seja Los Angeles. Isto porque ele satisfaz a segunda condição que especificamos - seu sobrenome é "Hanks". Lembre-se: ao utilizar o operador SQL OR, todas as linhas que atendem a qualquer uma das condições especificadas serão devolvidas. SQL NÃO Sintaxe A sintaxe para o operador NOT é: SELECT column_1, column_2, … column_n FROM table WHERE NOT condition Quando múltiplas condições são combinadas usando o operador NOT, todas as linhas que não atendem às condições dadas serão devolvidas. Podemos usar este operador com nosso exemplo de ginásio de várias maneiras úteis. E se quiséssemos encontrar todos os nossos membros que estavam fora de Los Angeles? Usando a operadora NOT, podemos simplesmente escrever: SELECT * FROM members WHERE NOT Location = 'Los Angeles' A execução desta consulta resulta no seguinte conjunto de dados: idFirstNameLastNameAgeDateJoinedLocation 2BradPitt562018-06-15San Francisco 3TomHanks642017-02-27San Diego 5MerylStreep712014-03-21Manhattan Você pode ver claramente o efeito que o operador NOT teve. Nenhum membro que tinha seu Location definido para Los Angeles foi devolvido. Combinando os operadores AND, OR, e NOT Há certas situações em que você pode precisar combinar estes operadores para especificar os dados exatos que deseja. Aqui está nossa members tabela novamente; é o conjunto de dados que estaremos consultando para este exemplo. idFirstNameLastNameAgeDateJoinedLocation 1WillSmith522020-08-23Los Angeles 2BradPitt562018-06-15San Francisco 3TomHanks642017-02-27San Diego 4AngelinaJolie452019-04-02Los Angeles 5MerylStreep712014-03-21Manhattan Agora digamos que queremos ir buscar os dados para os membros que se encaixam em critérios muito específicos. Queremos membros que sejam: Com mais de 50 anos de idade. Localizados em Los Angeles ou Manhattan. Podemos conseguir isso escrevendo a seguinte consulta SQL: SELECT * FROM members WHERE AGE > 50 AND (Location='Los Angeles' OR Location='Manhattan') Observe como utilizamos parênteses/braquetes para agrupar nossos operadores. Fazemos isso para que SQL saiba exatamente como interpretar a ordem de nossos operadores. O resultado desta consulta é: idFirstNameLastNameAgeDateJoinedLocation 1WillSmith522020-08-23Los Angeles 5MerylStreep712014-03-21Manhattan Você pode ver como a combinação dos operadores AND, OR, e NOT de diferentes maneiras pode nos ajudar a filtrar com precisão nossos dados. Expanda seu SQL com AND, OR, e NÃO Operadores Agora você tem a capacidade de recuperar os dados exatos que você deseja. Isto abre muitas possibilidades. Você pode usar a cláusula WHERE em conjunto com AND, OR, e NOT, permitindo que você seja muito preciso com suas consultas SQL. Ler nossos posts no blog é uma ótima maneira de aprender a sintaxe SQL e ver os diferentes cenários onde SQL pode ser útil. Entretanto, se você quiser um guia realmente abrangente para escrever consultas, considere nosso SQL para Iniciantes que lhe dará muita prática prática prática. Tags: sql aprender sql sql operators where