2.1 Introdução ao SQL
Se você possui um banco de dados (DB) e nele - uma tabela com alguns dados, a tarefa mais comum é encontrar determinados dados nesta tabela. Foi para isso que o SQL foi inventado há 40 anos.
SQL significa Linguagem de Consulta Estruturada .
A consulta SQL mais simples se parece com isso:
SELECT column1, column2, … columnN FROM table
Digamos que você tenha uma tabela de funcionários com uma lista dos funcionários da sua startup:
eu ia | nome | ocupação | salário | idade | data de afiliação |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programador | 100.000 | 25 | 30/06/2012 |
2 | Petrov Petr | Programador | 80.000 | 23 | 12/08/2013 |
3 | Ivanov Sergei | Testador | 40.000 | trinta | 2014-01-01 |
4 | Rabinovich Moisha | Diretor | 200.000 | 35 | 2015-05-12 |
5 | Kirienko Anastácia | Gerente | 40.000 | 25 | 2015-10-10 |
6 | Vaska | gato | 1.000 | 3 | 2018-01-01 |
Você deseja escrever uma consulta que employee names
os exiba também salaries
, então você precisa escrever uma consulta:
SELECT name, salary FROM employee
Você obterá o resultado da consulta:
nome | salário |
---|---|
Ivanov Ivan | 100.000 |
Petrov Petr | 80.000 |
Ivanov Sergei | 40.000 |
Rabinovich Moisha | 200.000 |
Kirienko Anastácia | 40.000 |
Vaska | 1.000 |
Se você deseja exibir todas as colunas da sua tabela , em vez de listar os nomes de todas as colunas, basta escrever um asterisco. Exemplo:
SELECT * FROM employee
Você obterá o resultado da consulta:
eu ia | nome | ocupação | salário | idade | data de afiliação |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programador | 100.000 | 25 | 30/06/2012 |
2 | Petrov Petr | Programador | 80.000 | 23 | 12/08/2013 |
3 | Ivanov Sergei | Testador | 40.000 | trinta | 2014-01-01 |
4 | Rabinovich Moisha | Diretor | 200.000 | 35 | 2015-05-12 |
5 | Kirienko Anastácia | Gerente | 40.000 | 25 | 2015-10-10 |
6 | Vaska | gato | 1.000 | 3 | 2018-01-01 |
2.2 Visão avançada da consulta SQL
A linguagem SQL foi projetada para ser a mais amigável possível.
Primeiro, o caso do texto da solicitação não importa . Você pode escrever SELECT, Select ou select e tudo funcionará. Em segundo lugar, as quebras de linha não são levadas em consideração de forma alguma . O DBMS ainda transformará a consulta em uma string longa, para que você possa escrevê-la como quiser.
Como você provavelmente já adivinhou, as palavras-chave SELECT e FROM não são limitadas. Caso contrário, não haveria tanta conversa sobre SQL. A visão estendida da consulta SQL tem esta aparência:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting
Com a ajuda de uma palavra-chave, WHERE
você pode definir uma condição/filtro para as linhas selecionadas.
Exemplo 1 . Vamos escrever uma consulta que selecionará funcionários com a profissão "Programador":
SELECT * FROM employee WHERE occupation = 'Programmer'
E obtemos o seguinte resultado da consulta:
eu ia | nome | ocupação | salário | idade | data de afiliação |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programador | 100.000 | 25 | 30/06/2012 |
2 | Petrov Petr | Programador | 80.000 | 23 | 12/08/2013 |
Como você pode ver, como resultado da execução da consulta, apenas as linhas onde a profissão do funcionário é chamada de "Programador" são exibidas.
As palavras-chave GROUP BY
, ORDER BY
e HAVING
abordaremos nas próximas palestras. E nisso vamos analisar mais alguns exemplos com a palavra WHERE.
Exemplo 2 . Agora vamos escrever uma consulta que nos mostrará todos os funcionários com salário superior a 100 mil. Veja como será:
SELECT * FROM employee WHERE salary > 100000
Obtemos o seguinte resultado da consulta:
eu ia | nome | ocupação | salário | idade | data de afiliação |
---|---|---|---|---|---|
4 | Rabinovich Moisha | Diretor | 200.000 | 35 | 2015-05-12 |
Exemplo 3 . Agora vamos tentar algo mais difícil. Como exibir todos os funcionários que foram contratados em 2015? E assim:
SELECT * FROM employee WHERE YEAR(join_date) = 2015
Obtemos o seguinte resultado da consulta:
eu ia | nome | ocupação | salário | idade | data de afiliação |
---|---|---|---|---|---|
4 | Rabinovich Moisha | Diretor | 200.000 | 35 | 2015-05-12 |
5 | Kirienko Anastácia | Gerente | 40.000 | 25 | 2015-10-10 |
Nesta consulta, usamos uma função especial YEAR()
que nos permite obter o ano de uma data e depois comparar o ano da data com o número 2015.
2.3 Comentários em consultas SQL
E mais um ponto importante são os comentários nas consultas SQL. Os comentários são uma coisa muito útil. Em primeiro lugar, você pode escrever explicações e/ou suas ideias neles. Em segundo lugar, com a ajuda de comentários, você pode desativar o código quebrado. Ou comente a versão antiga do código.
SQL, como Java, tem comentários de uma linha e várias linhas. Além disso, um comentário de várias linhas se parece com o Java. Sua aparência:
/*
comment text
comment text
comment text
*/
Claro, pode ser usado em uma linha também. Exemplo:
/*comment text*/
Existe também um tipo de comentário "do início ao fim da linha", semelhante ao Java "//". Somente no SQL você precisa escrever dois caracteres de menos e um espaço . Visão geral de tal comentário:
-- comment text
Exemplo:
SELECT * FROM employee -- WHERE YEAR(join_date) = 2015
No exemplo acima, comentamos a condição da consulta, então o MySQL executará apenas a consulta:
SELECT * FROM employee
2.4 pronúncia SQL
Se você se comunicar com clientes estrangeiros ou passar em uma entrevista online para uma empresa americana, poderá ser questionado sobre sua experiência com o idioma sequencial . Você dirá honestamente que não trabalhou com ele e será reprovado imediatamente na entrevista.
E o fato é que a linguagem SQL foi originalmente chamada de SEQUEL, que é pronunciada como uma sequência (ˈsēkwəl), então muitas vezes nos EUA e em outras fontes em inglês você ouvirá não “escuel”, mas “sequel”. O SQL é escrito e a sequência é lida. Aqui está um paradoxo histórico.
GO TO FULL VERSION