13 comandos SQL mais importantes que qualquer programador deve saber

13 comandos SQL mais importantes que qualquer programador deve saber

Bancos de dados conduzem a web moderna. Todo site grande ou dinâmico usa um banco de dados de alguma forma e quando combinado com Linguagem de consulta estruturada (SQL) , as possibilidades de manipulação de dados são realmente infinitas. Se você já conhece SQL, certifique-se de verificar essas habilidades de programação que todos os desenvolvedores de sites devem saber.





Hoje vou mostrar a vocês alguns dos comandos SQL principais você precisa saber como programador.





Existem muitos nomes para os dados retornados de uma tabela de banco de dados. Os dados são comumente chamados de Linhas , Registros , ou Tuplas . Usarei esses termos alternadamente ao longo deste artigo.





Prefácio

Todos os exemplos de hoje serão baseados em quatro tabelas fictícias. o cliente a tabela contém o nome e a idade dos clientes:

o alturas a tabela contém o nome e a altura de qualquer pessoa:



o pessoal A tabela contém o nome e a idade dos membros da equipe - exatamente igual à tabela do cliente:

A mesa final chamada pessoas contém o nome e a idade das pessoas, assim como as tabelas de clientes e funcionários:





1. Selecione

o selecionar instrução é a mais simples e é essencial que você a compreenda, pois ela sustenta quase todos os outros comandos. É considerada uma prática recomendada escrever suas palavras SQL reservadas em maiúsculas, pois torna o comando mais fácil de ler e entender.

Como o próprio nome indica, select é usado para selecionar dados de um banco de dados. Aqui está o uso mais simples:





SELECT * FROM table;

Existem duas partes para isso. A primeira parte ( SELECIONE * ) especifica quais colunas você gostaria de selecionar. O asterisco indica que você deseja selecionar todas as colunas da tabela. A segunda parte ( DA mesa ) informa ao mecanismo de banco de dados de onde você gostaria de recuperar esses dados. Substitua 'tabela' pelo nome da sua tabela de banco de dados.

Esta seleção é conhecida como 'estrela de seleção'. Usar o asterisco é uma boa maneira de descobrir quais dados estão em uma tabela, mas não recomendo que você use para nenhum código de produção. Ao usar uma estrela selecionada, cabe ao mecanismo de banco de dados apresentar os dados que você deseja. Você não tem nenhum controle sobre a ordem em que os dados são retornados, então se alguém adicionar uma nova coluna à tabela, você pode descobrir que suas variáveis ​​em sua linguagem de programação não representam mais os dados corretos. Felizmente, existe uma solução.

Você pode declarar explicitamente quais colunas deseja recuperar, como este:

SELECT age, name FROM people;

Esta consulta recupera as colunas 'idade' e 'nome' da tabela 'pessoas'. Ser tão explícito pode ser um pouco tedioso se você tiver muitos dados, mas isso reduzirá os problemas no futuro, além de tornar seu SQL mais fácil de entender por qualquer programador futuro.

Se você deseja selecionar um dado adicional, mas ele não está armazenado em nenhuma de suas tabelas, você pode fazer isso desta forma:

SELECT age, '1234' FROM people;

Qualquer string entre aspas simples será retornada em vez de corresponder a um nome de coluna.

2. Onde

O comando select é excelente para recuperar dados, mas e se você quisesse filtrar um pouco mais os resultados? Que tal recuperar apenas pessoas que têm olhos azuis? E as pessoas nascidas em janeiro que trabalham como mecânicas? É aqui que o Onde entra em ação. Isso permite que você aplique condições ao select, e você simplesmente o anexa ao final da instrução:

SELECT age, name FROM people WHERE age > 10;

Esta consulta agora é restrita a pessoas com mais de 10 anos de idade. Você pode combinar várias condições usando o E operador:

SELECT age, name FROM people WHERE age > 10 AND age <20;

o E O comando funciona exatamente como no idioma inglês: ele aplica outra condição à instrução. Neste exemplo, os dados retornados seriam quaisquer registros com idade entre 10 e 20. Como não há resultados correspondentes, nenhum dado é retornado.

melhor lugar para comprar peças usadas de pc

Outro comando que pode ser usado em conjunto com este é OU . Aqui está um exemplo:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Esta consulta retorna registros em que a idade é maior que 10 ou o nome é igual a 'Joe'. Observe como há apenas um sinal de igual? A maioria das linguagens de programação usa dois iguais (==) para verificar a equivalência. Isso não é necessário para a grande maioria dos mecanismos de banco de dados (mas pode variar de acordo com o ambiente, portanto, verifique primeiro).

3. Ordem

o pedido comando é usado para classificar os resultados retornados. É outro fácil de usar. Basta anexá-lo ao final de sua declaração:

SELECT name, age FROM people ORDER BY age DESC;

Você precisa especificar a coluna e a ordem, que pode ser ASC para ascender ou DESC para descer. Você pode ordenar por várias colunas como esta:

SELECT name, age FROM people ORDER BY name ASC, age DESC

ORDENAR POR é talvez o mais útil quando combinado com outros comandos. Nem todas as consultas retornarão dados de maneira lógica ou ordenada - este comando permite que você altere isso.

4. Junte-se

o Junte comando é usado para Junte dados relacionados armazenados em uma ou mais tabelas. Vocês Junte a segunda tabela para a primeira tabela e especifique como os dados são conectados. Aqui está um exemplo básico:

como baixar um vídeo de qualquer site
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Há algumas coisas acontecendo aqui. Você deve começar com a sintaxe 'LEFT JOIN', que especifica que deseja ingressar em uma tabela usando uma união do tipo left. A seguir, especifique a mesa que deseja juntar (alturas). o USANDO (nome) A sintaxe afirma que a coluna 'nome' pode ser encontrada em ambas as tabelas e que deve ser usada como uma chave para unir as tabelas.

Não se preocupe se suas colunas tiverem nomes diferentes em cada tabela. Você pode usar 'ON' em vez de 'USING':

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

A instrução on declara explicitamente em quais colunas digitar. Existem muitos tipos de junção e demoraria muito para entrar em detalhes para cada um, então aqui está um rápido resumo de seus usos:

  • (JUNÇÃO INTERNA - Retorna linhas com uma correspondência em ambas as tabelas.
  • ESQUERDA (EXTERIOR) JUNTE-SE - Retorna todas as linhas da tabela da esquerda, com quaisquer correspondências da tabela da direita. Se não houver correspondências, os registros da tabela à esquerda ainda serão retornados.
  • JUNTAR À DIREITA (EXTERIOR) - Este é o oposto de uma junção à esquerda: todas as linhas da tabela da direita são retornadas, junto com quaisquer correspondências na tabela da esquerda.
  • PARTICIPAR COMPLETAMENTE (EXTERIOR) - Retorna todos os registros com uma correspondência em qualquer uma das tabelas.

A sintaxe 'INNER' ou 'OUTER' é opcional. Pode tornar as coisas mais fáceis de entender, mas você não precisa especificá-lo na grande maioria das vezes.

5. Aliases

Agora que você conhece o básico, vamos dar uma olhada no apelido comando. Isso é usado para renomear temporariamente uma tabela - mais como um apelido do que qualquer outra coisa, já que esse novo nome só existe dentro da transação individual que você está executando. Veja como você o usa:

SELECT A.age FROM people A;

Você pode usar qualquer nome válido que quiser, mas eu gosto de usar as letras do alfabeto. Antes de cada nome de coluna, o alias é prefixado. Este alias é atribuído à tabela imediatamente após ser declarado. Isso é exatamente o mesmo que fazer isso:

SELECT people.age FROM people;

Em vez de digitar um nome de mesa longo, você pode digitar uma letra simples e fácil de lembrar - mas de que adianta? Bem, se você estiver selecionando em mais de uma tabela, é fácil se confundir sobre quais colunas pertencem a qual tabela. Se as duas tabelas tiverem colunas com o mesmo nome, a consulta do banco de dados pode até falhar ao executar sem referenciar explicitamente o nome da tabela ou alias. Aqui está um exemplo com duas tabelas:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

E aqui está a mesma consulta com aliases:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

A mesa da equipe recebe o apelido 'A' e a mesa dos clientes é o apelido 'B'. As tabelas de alias realmente ajudam a tornar seu código mais fácil de entender e reduz a quantidade de digitação que você precisa fazer.

Você também pode renomear uma coluna com um alias usando o comando 'AS':

SELECT age AS person_age FROM people;

Quando esta consulta é executada, a coluna agora será chamada de 'person_age' em vez de 'age'.

6. União

União é um ótimo comando. Ele permite que você anexe linhas umas às outras. Ao contrário das junções que acrescentam colunas correspondentes, a união pode acrescentar linhas não relacionadas, desde que tenham o mesmo número e nome de colunas. Veja como você o usa:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Você pode pensar em união como uma forma de combinar os resultados de duas consultas. Uma união só retornará resultados onde houver uma linha exclusiva entre as duas consultas. Você pode usar a sintaxe 'UNION ALL' para retornar todos os dados, independentemente das duplicatas:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Observe como a ordem das linhas muda? O Union opera da maneira mais eficiente, portanto, os dados retornados podem variar em ordem.

Um possível caso de uso para união é um subtotal: você poderia unir uma consulta da soma total em uma consulta dos totais individuais para um cenário específico.

7. Insira

Agora você sabe tudo sobre como recuperar dados de um banco de dados, mas que tal inseri-los? É aqui que o inserir o comando entra. Aqui está um exemplo:

INSERT INTO people(name, age) VALUES('Joe', 102);

Você deve especificar o nome da mesa (pessoas) e as colunas que deseja usar (nome e idade). A sintaxe 'VALUES' é então usada para fornecer os valores a serem inseridos. Eles devem estar na mesma ordem das colunas que foram especificadas anteriormente.

Você não pode especificar uma cláusula where para inserções, e você precisa garantir que seguirá todas as restrições de tabela necessárias que estiverem presentes.

8. Atualização

Depois de inserir alguns dados, é natural precisar alterar linhas específicas. Aqui está o atualizar sintaxe de comando:

UPDATE people SET name = 'Joe', age = 101;

Você deve especificar a tabela que deseja alterar e, em seguida, usar a sintaxe 'SET' para especificar as colunas e seus novos valores. Este exemplo é bom, mas atualizará todos os registros - algo que nem sempre é desejável!

Para ser mais específico, você pode usar as cláusulas 'WHERE' como ao fazer uma seleção:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Você pode até especificar várias condições usando 'AND' e 'OR':

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Observe como os colchetes são usados ​​para restringir as condições.

transferir músicas do ipod para o itune

9. Upsert

Opa é uma palavra que soa estranha, mas é um comando incrivelmente útil. Digamos que você tenha uma restrição em sua tabela e tenha especificado que deseja apenas registros com nomes exclusivos - você não deseja armazenar duas linhas com o mesmo nome, por exemplo. Se você tentasse inserir vários valores de 'Joe', seu mecanismo de banco de dados geraria um erro e se recusaria a fazê-lo (com razão). Um UPSERT permite que você atualize um registro se ele já existir. Isso é incrivelmente útil! Sem este comando, você teria que escrever muita lógica para primeiro verificar se um registro existe, inserir se não existir, caso contrário, recupere a chave primária correta e, em seguida, atualize.

Infelizmente, os upserts são implementados de maneira diferente em diferentes mecanismos de banco de dados. O PostgreSQL só recentemente ganhou essa capacidade, enquanto o MySQL já a tem há um bom tempo. Esta é a sintaxe do MySQL para referência:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Observe como isso é essencialmente uma atualização e uma instrução de inserção, que pode ser resumida como 'atualização se a inserção falhou.'

10. Excluir

Excluir é usado para remover registros inteiramente - pode ser bastante prejudicial se for abusado! A sintaxe básica é muito fácil de usar:

DELETE FROM people;

Como a maioria dos outros comandos, isso excluirá tudo ! Você precisa usar um onde restringi-lo a um número ligeiramente mais lógico de linhas - de preferência um:

DELETE FROM people WHERE name = 'Joe';

Se você estiver desenvolvendo um sistema, geralmente é aconselhável implementar uma 'exclusão reversível'. Na verdade, você nunca executa o comando delete, em vez disso, cria uma coluna excluída e, em seguida, verifica essa coluna em suas seleções - isso pode evitar muito constrangimento potencial se você puder recuperar de forma rápida e fácil os registros supostamente excluídos. No entanto, isso não substitui os backups adequados.

11. Criar Tabela

o criar a tabela comando é usado para criar tabelas. É outro muito simples:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Observe como os nomes das colunas e as restrições estão entre colchetes e as colunas recebem um tipo de dados apropriado. Uma chave primária é especificada, conforme exigido em qualquer bom design de banco de dados.

12. Alterar mesa

o alterar a tabela comando é usado para modificar a estrutura de uma tabela. Isso é um pouco limitado, pois seu banco de dados não permitirá que você altere uma tabela se os dados existentes causarem um conflito - alterando uma string para um inteiro, por exemplo. Nesses casos, corrija os dados primeiro e, em seguida, modifique a tabela. Aqui está um exemplo:

ALTER TABLE people ADD height integer;

Este exemplo adiciona uma coluna chamada 'altura' do tipo inteiro à tabela de pessoas. Não há realmente um limite para o que você pode alterar.

13. Drop Table

O comando final é drop table . Pense nisso como exclusão, mas em vez de excluir um único registro, ele remove todos os registros junto com a tabela! Veja como você o usa:

DROP TABLE people;

É um comando bastante drástico e não há razão para que ele precise ser programado em seu sistema. Deve ser realizado apenas manualmente na grande maioria dos casos, e pode ser muito destrutivo.

Isso é tudo por hoje. Espero que você tenha aprendido alguns truques úteis! Você poderia aprender como faça um site e, em seguida, use suas novas habilidades para torná-lo dinâmico - apenas certifique-se de não cometer esses erros ou deixá-lo vulnerável à injeção de SQL. Se você não tem certeza de que precisa aprender SQL, já considerou um gerador de site estático?

Por que não deixar um comentário abaixo com suas dicas e truques favoritos de SQL?

Créditos de imagem: HYS_NP / Shutterstock

Compartilhado Compartilhado Tweet O email Vale a pena atualizar para o Windows 11?

O Windows foi redesenhado. Mas isso é suficiente para convencê-lo a mudar do Windows 10 para o Windows 11?

Leia a seguir
Tópicos relacionados
  • Programação
  • Programação
  • SQL
Sobre o autor Joe Coburn(136 artigos publicados)

Joe é graduado em Ciência da Computação pela University of Lincoln, no Reino Unido. Ele é um desenvolvedor de software profissional e, quando não está pilotando drones ou escrevendo música, pode ser encontrado tirando fotos ou produzindo vídeos.

Mais de Joe Coburn

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever