Os bancos de dados SQL vêm instalados com todos os comandos necessários para adicionar, modificar, excluir e consultar seus dados. Este guia de consulta rápida fornece uma referência para alguns dos comandos SQL mais usados.
Como Utilizar Este Guia:
Este guia está no formato de consulta rápida com trechos de linha de comando independentes
Salte para qualquer seção que seja relevante para a tarefa que você está tentando concluir
Quando você vir texto destacado
nos comandos deste guia, tenha em mente que este texto deve se referir às colunas, tabelas e dados em seu próprio banco de dados.
Em todo este guia, os valores de dados de exemplo fornecidos são todos agrupados em apóstrofos ('
). No SQL, é necessário envolver quaisquer valores de dados que consistam em strings em apóstrofos. Isso não é necessário para dados numéricos, mas também não causará problemas se você incluir apóstrofos.
Por favor, observe que, embora o SQL seja reconhecido como padrão, a maioria dos programas de banco de dados SQL possui suas próprias extensões proprietárias. Este guia utiliza o MySQL como exemplo de sistema gerenciador de banco de dados relacional (SGBD), mas os comandos executados irão funcionar com outros programs de banco de dados relacionais, incluindo PostgreSQL, MariaDB, and SQLite. Onde existem diferenças significativas entre os SGDBs, incluímos os comandos alternativos.
Por padrão no Ubuntu 18.04, o usuário root do MySQL pode se autenticar sem uma senha utilizando o seguinte comando:
Para abrir um prompt no PostgreSQL, use o seguinte comando. Este exemplo irá logar você como o usuário postgres, que é a função de superusuário incluída, mas você pode substituir isso por qualquer função já criada:
Se seu usuário root do MySQL está configurado para se autenticar com uma senha, você pode fazer isso com o seguinte comando:
Se você já tiver configurado uma conta de usuário não-root para seu banco de dados, você também poderá usar esse método para efetuar login como esse usuário:
O comando acima irá solicitar a sua senha após executá-lo. Se voce gostaria de fornecer sua senha como parte do comando, siga imediatamente a opção -p
com a sua senha, sem espaço entre elas:
O seguinte comando cria um banco de dados com configurações padrão.
Se você quer que seu banco de dados utilize um conjunto de caracteres e collation diferentes do padrão, você pode especificá-los usando esta sintaxe:
Para ver quais bancos de dados existem em sua instalação de MySQL ou MariaDB, execute o seguinte comando:
No PostgreSQL, você pode ver quais bancos de dados foram criados com o seguinte comando:
Para excluir um banco de dados, incluindo quaisquer tabelas e dados contidos nele, execute um comando que segue esta estrutura:
Para criar um perfil de usuário para o seu banco de dados sem especificar nenhum privilégio para ele, execute o seguinte comando:
O PostgreSQL usa uma sintaxe similar, mas ligeiramente diferente:
Se você quiser criar um novo usuário e conceder-lhe privilégios em um comando, você pode fazer isso usando um comando GRANT
. O seguinte comando cria um novo usuário e concede a ele privilégios totais em todos os bancos de dados e tabelas do SGBD:
Observe a palavra-chave PRIVILEGES
no comando GRANT
anterior. na maioria dos SGBDs, esta palavra-chave é opcional, e esse comando pode ser escrito equivalentemente como:
Esteja ciente, porém, que a palavra-chave PRIVILEGES
é necessária para a concessão de privilégios como este, quando o modo Strict SQL está ligado.
Utilize a seguinte sintaxe para excluir um perfil de usuário do banco de dados:
Observe que esse comando não excluirá por padrão nenhuma tabela criada pelo usuário excluído, e tentativas de acessar essas tabelas podem resultar em erros.
Antes de poder criar uma tabela, primeiro você precisa informar ao SGBD o banco de dados no qual você gostaria de criá-la. No MySQL e MariaDB, faça isto com a seguinte sintaxe:
No PostgreSQL, você deve utilizar o seguinte comando para selecionar seu banco de dados desejado:
A seguinte estrutura de comando cria uma nova tabela com o nome tabela, e inclui duas colunas, cada uma com seu tipo de dado específico:
Para excluir uma tabela inteira, incluindo todos os seus dados, execute o seguinte:
Utilize a seguinte sintaxe para popular uma tabela com uma linha de dados:
Você pode também popular uma tabela com várias linhas de dados usando um único comando, assim:
Para excluir uma linha de dados de uma tabela, utilize a seguinte estrutura de comando. Observe que valor deve ser o valor contido na coluna especificada na linha que você quer excluir:
Nota: Se você não incluir uma cláusula WHERE
em um comando DELETE
como no exemplo seguinte, ele excluirá todos os dados contidos em uma tabela, mas não as colunas ou a própria tabela:
Use a seguinte sintaxe para atualizar os dados contidos em uma dada linha. Observe que a cláusula WHERE
no final do comando informa ao SQL qual linha atualizar. valor é o valor contido na coluna_A que se alinha com a linha que você deseja alterar.
<$>[note]
Nota: Se você deixar de incluir uma cláusula WHERE
em um comando UPDATE
, o comando substituirá os dados contidos em todas as linhas da tabela.
<$>
A seguinte sintaxe de comando adicionará uma nova coluna a uma tabela:
Um comando seguindo essa estrutura excluirá uma coluna de uma tabela:
Para visualizar todos os dados de uma única coluna em uma tabela, use a seguinte sintaxe:
Para consultar várias colunas da mesma tabela, separe os nomes das colunas com uma vírgula:
Você também pode consultar todas as colunas de uma tabela, substituindo os nomes das colunas por um asterisco (*). No SQL, asteriscos agem como um curinga para representar “todos”:
Você pode restringir os resultados de uma consulta adicionando a cláusula WHERE
ao comando SELECT
, assim:
Por exemplo, você pode consultar todos os dados de uma única linha com uma sintaxe como a seguinte. Observe que valor deve ser um valor contido tanto na coluna especificada quanto na linha que você quer consultar:
Um operador de comparação em uma cláusula WHERE
define como a coluna especificada deve ser comparada com o valor. Aqui estão alguns operadores comuns de comparação SQL:
Operador | O que ele faz |
---|---|
= |
testa a igualdade |
!= |
testa a desigualdade |
< |
testa menor que |
> |
testa maior que |
<= |
testa menor que ou igual a |
>= |
testa maior que ou igual a |
BETWEEN |
testa se um valor está dentro de um determinado intervalo |
IN |
testa se o valor de uma linha está contido em um conjunto de valores especificados |
EXISTS |
testa se existem linhas, dadas as condições especificadas |
LIKE |
testa se um valor corresponde a uma string especificada |
IS NULL |
testa valores NULL |
IS NOT NULL |
testa todos os valores que não sejam NULL |
O SQL permite o uso de caracteres curinga. Eles são úteis se você estiver tentando encontrar uma entrada específica em uma tabela, mas não tiver certeza de qual é exatamente essa entrada.
Asteriscos (*
) são marcadores que representam “todos”. Isso irá consultar todas as colunas de uma tabela:
O símbolo de porcentagem (%
) representa zero ou mais caracteres desconhecidos.
Os underscores (_
) são usados para representar um único caractere desconhecido:
A função COUNT
é utilizada para encontrar o número de entradas em uma determinada coluna. A seguinte sintaxe retornará o número total de valores contidos em coluna:
Você pode restringir os resultados de uma função COUNT
adicionando a cláusula WHERE
, assim:
A função AVG
é usada para encontrar o valor médio (nesse caso, a média) entre os valores contidos em uma coluna específica. Observe que a função AVG
só funcionará com colunas contendo valores numéricos; quando usada em uma coluna contendo valores de string, pode retornar um erro ou 0
:
A função SUM
é usado para encontrar a soma total de todos os valores numéricos contidos em uma coluna:
Assim como na função AVG
, se você executar a função SUM
em uma coluna contendo valores de string, ela pode retornar um erro ou apenas 0
, dependendo do seu SGBD.
Para encontrar o maior valor numérico em uma coluna ou o último valor em ordem alfabética, utilize a função MAX
:
Para encontrar o menor valor numérico em uma coluna ou o primeiro valor em ordem alfabética, use a função MIN
:
Uma cláusula ORDER BY
é usada para ordenar os resultados da consulta. A seguinte sintaxe de consulta retorna os valores de coluna_1 e coluna_2 e ordena os resultados pelos valores contidos em coluna_1 em ordem crescente ou, para valores de string, em ordem alfabética:
Para realizar a mesma ação, mas ordenar os resultados em ordem alfabética decrescente ou reversa, anexe a consulta com DESC
:
A cláusula GROUP BY
é semelhante à cláusula ORDER BY
, mas é usada para ordenar os resultados de uma consulta que inclui uma função de agregação, como COUNT
, MAX
, MIN
, ou SUM
. Sozinhas, as funções de agregação descritas na seção anterior retornarão apenas um único valor. No entanto, você pode visualizar os resultados de uma função de agregação executada em cada valor correspondente em uma coluna, ao incluir uma cláusula GROUP BY
.
A seguinte sintaxe contará o número de valores correspondentes em coluna_2 e os agrupará em ordem crescente ou alfabética:
Para realizar a mesma ação, mas ordenar os resultados em ordem alfabética decrescente ou reversa, adicione DESC
à consulta:
As cláusulas JOIN
são usadas para criar result-sets ou conjuntos de resultados que combinam linhas de duas ou mais tabelas. Uma cláusula JOIN
só funcionará se as duas tabelas tiverem uma coluna com nome e tipo de dados idênticos, como neste exemplo:
Este é um exemplo de uma cláusula INNER JOIN
. Um INNER JOIN
retornará todos os registros que tiverem valores correspondentes nas duas tabelas, mas não mostrará registros que não tenham valores correspondentes.
É possível retornar todos os registros de uma das duas tabelas, incluindo valores que não têm ocorrência correspondente na outra tabela, utilizando uma cláusula outer JOIN
. As cláusulas outer JOIN
são escritas ou como LEFT JOIN
ou RIGHT JOIN
.
Uma cláusula LEFT JOIN
retorna todos os registros da tabela da “esquerda” e apenas os registros correspondentes da tabela da “direita”. No contexto das cláusulas outer JOIN
, a tabela da esquerda é aquela referenciada na cláusula FROM
, e a tabela da direita é qualquer outra tabela referenciada após a declaração JOIN
. A consulta seguinte mostrará todos os registros de tabela_1
e apenas os valores correspondentes de tabela_2
. Quaisquer valores que não tenham uma correspondência em tabela_2
aparecerão como NULL
no result-set:
Uma cláusula RIGHT JOIN
funciona da mesma forma que um LEFT JOIN
, mas imprime todos os resultados da tabela da direita e apenas os valores correspondentes da tabela da esquerda:
Um operador UNION
é útil para combinar os resultados de dois (ou mais) comandos SELECT
em um único result-set:
Além disso, a cláusula UNION
pode combinar dois (ou mais) comandos SELECT
consultando diferentes tabelas em um mesmo result-set:
Este guia aborda alguns dos comandos mais comuns no SQL usados para gerenciar bancos de dados, usuários e tabelas e consultar o conteúdo contido nessas tabelas. No entanto, existem muitas combinações de cláusulas e operadores que produzem result-set exclusivos. Se você está procurando um guia mais abrangente para trabalhar com SQL, recomendamos que você confira a Referência de SQL do Banco de Dados Oracle.
Além disso, se houver comandos SQL comuns que você gostaria de ver neste guia, pergunte ou faça sugestões nos comentários abaixo.
Por Mark Drake
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!