O que é SQL?

Paulo Silveira
Paulo Silveira

Compartilhe

SQL é uma linguagem padrão para trabalhar com bancos de dados relacionais. Ela é uma linguagem declarativa e que não necessita de profundos conhecimentos de programação para que alguém possa começar a escrever queries, as consultas e pedidps, que trazem resultados de acordo com o que você está buscando. SQL significa Standard Query Language, literalmente a linguagem padrão para realizar queries.

A linguagem SQL é utilizada de maneira relativamente parecida entre os principais bancos de dados relacionais do mercado: Oracle, MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, entre muitos outros. Cada um tem suas características, sendo o MySQL e o PostgreSQL extremamente populares por possuírem versões gratuitas e de código aberto.

É também uma linguagem que muitos profissionais acabam precisando aprender: seja quem usa Excel de forma pesada e acaba migrando as informações para um banco de dados, seja um cientista de dados que usa Python para agregar os dados das diferentes fontes de informações.

SELECT: uma query de consulta a um banco

Imagine que você tem uma tabela de banco de dados, que realmente pode ser feito uma analogia com uma planilha de Excel, para guardar as informações das suas notas fiscais:

+----+----------------------------+------------+-------+
| id | titulo                     | pagamento  | valor |
+----+----------------------------+------------+-------+
|  1 | canetas                    | 2019-07-05 |   150 |
|  2 | notebook                   | 2019-07-01 |  1200 |
|  3 | macbook                    | 2019-07-02 |  2100 |
|  4 | microfone                  | 2019-07-05 |    90 |
|  5 | matricula alura            | 2019-07-09 |   900 |
|  6 | gasolina reembolso diretor | 2019-06-10 |   200 |
+----+----------------------------+------------+-------+

Se você quer buscar todas as notas fiscais que tem valores acima de mil reais, a query que você deve rodar é uma que vai selecionar (SELECT) todos os campos (*) onde (WHERE) o valor da nota seja maior que mil (valor > 1000):

SELECT * FROM notas_fiscais WHERE valor > 1000

E o resultado será algo como:

mysql> SELECT * FROM notas_fiscais WHERE valor > 1000;
+----+----------+------------+-------+
| id | titulo   | pagamento  | valor |
+----+----------+------------+-------+
|  2 | notebook | 2019-07-01 |  1200 |
|  3 | macbook  | 2019-07-02 |  2100 |
+----+----------+------------+-------+
2 rows in set (0.00 sec)

Com você pode ver, é bastante simples e direto. Quase uma sentança escrita em inglês. Esse caso foi no mysql mas essa query é padrão em todos os bancos de dados.

Poderíamos ainda apenas listar todos os campos ordenando pela data de pagamento, usando ORDER BY pagamento:

mysql> SELECT * FROM notas_fiscais ORDER BY pagamento;
+----+----------------------------+------------+-------+
| id | titulo                     | pagamento  | valor |
+----+----------------------------+------------+-------+
|  6 | gasolina reembolso diretor | 2019-06-10 |   200 |
|  2 | notebook                   | 2019-07-01 |  1200 |
|  3 | macbook                    | 2019-07-02 |  2100 |
|  1 | canetas                    | 2019-07-05 |   150 |
|  4 | microfone                  | 2019-07-05 |    90 |
|  5 | matricula alura            | 2019-07-09 |   900 |
+----+----------------------------+------------+-------+
6 rows in set (0.00 sec)

Quais são os principais comandos SQL?

Os principais comandos SQL são:

  • SELECT: busca linhas em tabelas de acordo com um critério definido dentro da chamada cláusula de WHERE
  • INSERT: insere novas linhas na tabela. no nosso caso, colocaria novas notas fiscais dado os argumentos que são passados para o INSERT. Por exemplo, no nosso caso: INSERT INTO nf (titulo, pagamento, valor) VALUES 'canetas', '2019-07-15', 150.
  • UPDATE: atualiza linhas do banco de dados de acordo com um critério de WHERE, como mudar o CPF
  • DELETE: remove linhas da tabela de acordo com um critério.

Há ainda uma infinidade de subcomandos para fazer buscas melhores e mais elaboradas, como JOIN, LIKE, HAVING e GROUP BY.

Não se assuste! O trabalho básico com tabelas, linhas, colunas, relacionamentos e chaves não demanda um conhecimento extenso de SQL. Ele vai se fazer necessário para otimizar consultas e tomar decisões de como modelar esses dados.

Modelagem de banco de dados.

Além desses comandos, você será exposto a formas de criação de tabelas e de colunas, como CREATE TABLE e ALTER TABLE. A modelagem de banco de dados é a forma que definimos com as tabelas vão armazenar e relacionar os nossos dados, isso é, como estruturar esse relacionamentos para que não fique algo difícil de dar manutenção e validação como acaba sendo com planilhas.

Por exemplo, a tabela acima criamos usando:

CREATE TABLE notas_fiscais (
    id INT AUTO_INCREMENT,
    titulo VARCHAR(255) NOT NULL,
    pagamento DATE,
    valor DOUBLE,
    PRIMARY KEY (id)
); 

Como posso aprender a trabalhar com SQL?

O ideal é começar trabalhando com uma base bastante simples, com uma única tabela, que tenha o modelo de dados próximo do que você conhece e busca. Aconselho que utilize o MySQL ou o PostreSQL.

Nos cursos de SQL da Alura você encontra desde a instalação e modelagem de banco até os primeiros comandos SQL, tanto no MySQL e PostgreSQL quanto no SQLServer e Oracle. E conheça mais dos comandos básicos de SQL nesse outro artigo.

Paulo Silveira
Paulo Silveira

Paulo é CEO da Caelum, reconhecido na comunidade de desenvolvedores, tendo participado de projetos no IBOPE e dentro da Caelum. É fundador do maior fórum de desenvolvimento em língua portuguesa, o GUJ.com.br e participa na comunidade open source. Mestre pela USP em Geometria computacional, liderou o desenvolvimento do LMS da empresa e atualmente gerencia mais de 100 colaboradores.

Veja outros artigos sobre Data Science