Toda esta sessão tem como objetivo o estudo de data query language (DQL), enfatizo isso por que o SQL não se trata apenas gerar instruções para retornar um conjunto de dados específicos. Isso por que temos outras áreas que são especializadas em outros tipos de linguagens SQL como por exemplo: DML, DDL e DCL. O foco principal aqui é utilizar um RDBMS para o tratamento de dados, mas acredito que sempre será valido o estudo de outros tipos de linguagens SQL, logo aqui também abordarei sobre tópicos como por exemplo modelagem de dados.

Primeira instrução SQL

Para iniciarmos os estudos em DQL, primeiro precisamos aprender a instrução SELECT, ela é o alicerce fundamental para qualquer um que queira aprender sobre SQL. De forma geral esta instrução nos permite retornar dados de uma ou mais colunas de uma tabela, para além disso ela também nos permite atribuir funções agregadas a colunas especificas. A sua estrutura inicial é simples veja o exemplo abaixo:

SELECT NAME, AGE, GENDER FROM STUDENTS;

Partindo do principio, temos a instrução SELECT, logo após ela indicamos quais colunas desejamos que nossa instrução retorne, assim que terminamos de indicar as colunas, precisamos informar para a cláusula SELECT, de qual tabela esses dados devem ser retirados; para isso usamos a cláusula FROM e em seguida o nome da tabela.

Nota!

Toda instrução deve terminar com “;” podemos tirar proveito disso para adicionar as nossas instruções SQL mais legibilidade, pois o “compilador” não considera os espaços entre as instruções que ainda não foram finalizadas com ponto e vírgula.

SELECT NAME, AGE, GENDER 
FROM STUDENTS;

Aliases e Funções

Agora que já entendemos como funciona a estrutura inicial do SELECT podemos fazer alguns incrementos à estas instruções para deixá-las mais robustas as nossas pesquisas. Em primeiro ponto vamos partir para as funções que nos permitem atribuir mais significado aos dados retornados. Nos tipos de dados numéricos podemos aplicar funções agregadas como SUM, AVG e assim por diante. E também podemos utilizar os operadores matemáticos para operações mais simples.

Funções agregadas do SQL (para colunas de tipos numéricos)

| Funções  | Descrição das funções agregadas                |
| -------- | ---------------------------------------------- |
| AVG      | calcula o valor médio da coluna                |
| SUM      | calcula a somatória dos valores dessa coluna   |
| COUNT    | calcula a quantidade de elementos dessa coluna |
| VARIANCE | calcula a variância da coluna                  |
| STDEV    | calcula o desvio padrão da coluna              |
| MIN      | calcula o valor mínimo da coluna               |
| MAX      | calcula o valor máximo da coluna               |

Operadores matemáticos

| Operador | Descrição         |
| -------- | ----------------- |
| +        | Soma              |
| -        | Subtração         |
| *        | Multiplicação     |
| /        | Divisão           |
| %        | Módulo da Divisão |

Exemplos de aplicação

SELECT PRODUCT, AVG(PRICE) AS AVG_PRICE,  SUM((PRICE * 7 / 100) + PRICE), 2) AS
TAXED_PRICE FROM STORE;

Aliases

Em uma consulta SQL é comum o uso de Aliases para mudar o nome de uma tabela temporariamente, no geral os aliases são aplicados na maioria das vazes em instruções SQL que possuem funções agregadas ou até mesmo em operações matemática simples. Bom, quanto a aplicação dessa função, esta pode ser feita de duas maneiras, estas são; logo após a operação/função agregada incluir um as + nome_do_alias ou apenas nome_do_alias após a operação/função agregada. Logo abaixo veja os dois exemplos aplicados em consultas SQL:

SELECT PRODUCT, ROUND((PRICE * 10 / 100) - PRICE), 2) AS DESCONT_PRICE FROM PRODUCTS;