108 lines
4.3 KiB
Markdown
108 lines
4.3 KiB
Markdown
---
|
|
title: SQL Syntax
|
|
localeTitle: Sintaxe SQL
|
|
---
|
|
## Sintaxe SQL
|
|
|
|
### Introdução
|
|
|
|
Este guia fornece uma descrição básica e de alto nível da sintaxe para instruções SQL.
|
|
|
|
O SQL é um padrão internacional (ISO), mas você encontrará muitas diferenças entre as implementações. Este guia usa o MySQL como um exemplo. Se você usar um dos muitos outros gerenciadores de banco de dados relacional (DBMS), será necessário verificar o manual para esse DBMS, se necessário.
|
|
|
|
### O que vamos cobrir
|
|
|
|
* Use (define qual banco de dados a instrução usará)
|
|
* Selecionar e cláusulas
|
|
* Onde Cláusula (e / ou, IN, Entre, LIKE)
|
|
* Ordenar por (ASC, DESC)
|
|
* Agrupar por e tendo
|
|
|
|
### Como usar isso
|
|
|
|
Isso é usado para selecionar o banco de dados que contém as tabelas para suas instruções SQL:
|
|
|
|
```sql
|
|
use fcc_sql_guides_database; -- select the guide sample database
|
|
```
|
|
|
|
### Selecionar e cláusulas
|
|
|
|
A parte Select é normalmente usada para determinar quais colunas dos dados você deseja mostrar nos resultados. Há também opções que você pode usar para mostrar dados que não são uma coluna da tabela.
|
|
|
|
Este exemplo mostra duas colunas selecionadas da tabela "student" e duas colunas calculadas. A primeira das colunas calculadas é um número sem sentido e a outra é a data do sistema.
|
|
|
|
```sql
|
|
select studentID, FullName, 3+2 as five, now() as currentDate
|
|
from student;
|
|
```
|
|
|
|
![image-1](https://github.com/SteveChevalier/guide-images/blob/master/syntax01.JPG)
|
|
|
|
### Onde Cláusula (e / ou, IN, Entre e LIKE)
|
|
|
|
A cláusula WHERE é usada para limitar o número de linhas retornadas.
|
|
|
|
Neste caso, todos os cinco destes serão utilizados é uma cláusula Where ridiculous.
|
|
|
|
Compare esse resultado com a instrução SQL acima para seguir essa lógica.
|
|
|
|
Serão apresentadas linhas que:
|
|
|
|
* Ter IDs de alunos entre 1 e 5 (inclusive)
|
|
* ou studentID = 8
|
|
* ou ter "Maxmimo" no nome
|
|
|
|
O exemplo a seguir é semelhante, mas especifica ainda que, se algum aluno tiver determinadas pontuações do SAT (1000, 1400), ele não será apresentado:
|
|
|
|
```sql
|
|
select studentID, FullName, sat_score, recordUpdated
|
|
from student
|
|
where (
|
|
studentID between 1 and 5
|
|
or studentID = 8
|
|
or FullName like '%Maximo%'
|
|
)
|
|
and sat_score NOT in (1000, 1400);
|
|
```
|
|
|
|
![image-1](https://github.com/SteveChevalier/guide-images/blob/master/syntax02.JPG)
|
|
|
|
### Ordenar por (ASC, DESC)
|
|
|
|
Order By nos dá uma maneira de classificar o conjunto de resultados por um ou mais dos itens na seção SELECT. Aqui está a mesma lista acima, mas classificada pelo nome completo dos alunos. A ordem de classificação padrão é ascendente (ASC), mas para classificar na ordem oposta (descendente) você usa DESC, como no exemplo abaixo:
|
|
|
|
```sql
|
|
select studentID, FullName, sat_score
|
|
from student
|
|
where (studentID between 1 and 5 -- inclusive
|
|
or studentID = 8
|
|
or FullName like '%Maximo%')
|
|
and sat_score NOT in (1000, 1400)
|
|
order by FullName DESC;
|
|
```
|
|
|
|
![image-1](https://github.com/SteveChevalier/guide-images/blob/master/syntax03.JPG)
|
|
|
|
### Agrupar por e ter
|
|
|
|
O Group By nos dá uma maneira de combinar linhas e agregar dados. A cláusula Having é como a cláusula Where acima, exceto que ela age nos dados agrupados.
|
|
|
|
Esses dados são dos dados das contribuições da campanha que estamos usando em alguns desses guias.
|
|
|
|
Esta instrução SQL responde à pergunta: "quais candidatos receberam o maior número de contribuições (não $ quantidade, mas conta (\*)) em 2016, mas apenas aqueles que tiveram mais de 80 contribuições?"
|
|
|
|
A ordenação desse conjunto de dados em uma ordem descendente (DESC) coloca os candidatos com o maior número de contribuições no topo da lista.
|
|
|
|
```sql
|
|
select Candidate, Election_year, sum(Total_$), count(*)
|
|
from combined_party_data
|
|
where Election_year = 2016
|
|
group by Candidate, Election_year
|
|
having count(*) > 80
|
|
order by count(*) DESC;
|
|
```
|
|
|
|
![image-1](https://github.com/SteveChevalier/guide-images/blob/master/syntax04.JPG)
|
|
|
|
_Como acontece com todas essas coisas SQL, MUITO MAIS para elas é o que está neste guia introdutório. Espero que pelo menos isso lhe dê o suficiente para começar. Por favor, consulte o manual do seu gerenciador de banco de dados e divirta-se tentando opções diferentes._ |