Resumo da sintaxe SQL

Então pessoal, irei postar um ‘estudo/resumo’ ao qual eu fiz sobre a sintaxe SQL.

O livro ao qual me basiei foi: “Um guia para o uso do SQL – Guia de Bolso” de Jonathan Gennick – O’REILLY.

Este texto não contém parte de todo o livro, pois resolvi focar apenas na parte ao qual me interessa mais no momento.

Espero que este texto, um dia, possa ajudar alguém.

Resumo da linguagem SQL

  • Expressões CASE:

Permite executar a função típica em linguagens de programação if-then-else nas sentenças de SQL.

-Expressões CASE simples:

Permite correlacionar uma lista de valores a uma lista de alternativas, por exemplo:


SELECT u.name ,

CASE u.open_to_public

WHEN 'y' THEN 'Welcome!'

WHEN 'n' THEN 'Go Away!'

ELSE 'Bad code!'

END AS column_alias

FROM upfall u;

[Exemplo retirado do livro: SQL: Guia de Bolso, do Autor: Jonathan Gennick – ALTA BOOKS]

-Expressões CASE de pesquisa:

Permite fazer a associação de uma lista de valores de um retorno com uma lista de condições booleanas[true/false]. Por exemplo:

</pre>
SELECT u.name ,

CASE

WHEN u.open_to_public = 'y' THEN 'Welcome!'

WHEN u.open_to_public = 'n' THEN 'Go Away!'

ELSE 'Bad code!'

END AS column_alias

from upfall u;
<pre>

[Exemplo retirado do livro: SQL: Guia de Bolso, do Autor: Jonathan Gennick – ALTA BOOKS]

Se nenhuma condição for verdadeira o retorno será zero(null), caso contrário, somente a primeira das condições verdadeiras no caso de ter mais uma condição, por exemplo, irá ser executada.

  • Tipos de dados

Irei citar apenas os tipos que eu acho serem mais utilizados/importantes.

-String[ Cadeia de caracteres ]:

Para as plataformas a qual eu conheço, exceto o Oracle, usa-se o tipo VARCHAR para guardar uma cadeia de caracteres:

VARCHAR[tam max]

Em Oracle, adicione o 2, ficando VARCHAR2.

Os máximos de bytes em Strings são: 4.000 bytes[Oracle], 32.672 bytes[DB2], 8.000 bytes[SQL Server], 65.532 bytes[MySQL] e 10.485.760 bytes[PostgreSQL].

-Decimais:

Usa-se DECIMAL para especificar, com exceção do Oracle, onde DECIMAL é sinônimo de NUMBER. Desta forma, se utiliza NUMBER em seu lugar:

DECIMAL[precisão] ou DECIMAL[precisão, escala].

-Inteiros Binários:

SMALLINT, INTEGER ou BIGINT. Estes tipos de dados correspondem respectivamente a inteiros de 2 bytes, 4 bytes e 8 bytes.

 

-Data/Hora:

O tipo de dado DATA e HORA variam muito de plataforma para plataforma, portanto, recomendo olhar na documentação de cada tecnologia a qual vão utilizar.

Mas geralmente elas tem relação com algo do tipo:

TIME, TIMESTAMP ou DATE

Dependendo da plataforma os valores válidos podem estar contidos entre 4712 a.C até 9999 d.C.

  • Função CAST padrão:

Usa-se a função CAST para converter explicitamente um valor em um novo tipo de dado:

</pre>
<em>SELECT * FROM upfall u WHERE u.id = CAST('1' AS INTEGER);</em>

  • Função EXTRACT padrão:

Em Oracle, MySQL e PostgreSQL, esta função serve para recuperar elementos específicos de um valor data/hora.

SELECT EXTRACT(DAY FROM CURRENT_DATE);

  • Excluindo dados

Utilize DELETE para excluir linhas de uma tabela.

DELETE FROM data_source WHERE predicates

 

Obs: Quando você exclui várias linhas de uma tabela em que uma restrição de FK(chave estrangeira) de auto-referência é definida, você deve incluir uma cláusula ORDER BY em sua sentença DELETE para assegurar que as linhas-filho sejam excluídas antes de suas linhas-pai. Em conjunto a isso, utiliza-se à expressão CASE fazendo com que tenha uma ordem de exclusão,  na qual as linhas-filho são excluídos primeiro.

Para remover todas as linhas de uma tabela basta não utilizar a cláusula WHERE.

Obs: Para recuperar dados excluídos, usa-se a cláusula RETURNING(Consultar no google exemplos (:  .)

  • Funções numéricas e matemáticas

–        ABS(number) :retorna o valor absoluto do número.

–        CEIL(number) :retorna o menor inteiro, maior ou igual ao número que você passa.

–        EXP(number) :retorna a constante elevada à potência do número.

–        FLOOR(number) :retorna o maior inteiro, menor ou igual ao número que você passa.

–        LN(number) ou LOG(number) :retorna o logaritmo do número.

–        MOD(top, bottom) :retorna o resto do valor top divido pelo valor botton.

–        SIGN(number) :indica o sinal de um número. Possíveis retornos: -1(negativo),0(zero) e 1(positivo).

 

  • Funções de String

-Buscando em uma String: Usa-se INSTR para encontrar a localização de um substring dentro da String

INSTR(string, substring[, position[, occurrence]])

 

-Substituir texto em um String: Use a função REPLACE

REPLACE(string, search, string)

 

Obs: Algumas plataformas suportam REGEXP_REPLACE, que é a busca e substituição de expressão regular.

-Comprimento de um String: LENGTH(string)

 

Concatenação de String: CONCAT(string1, string2)

 

Cortando caracteres indesejados: TRIM( character FROM string)

 

Alterando a caixa das letras: UPPER(string) ou LOWER(string)

 

  • Agrupando ou resumindo os dados

Usa-se as cláusulas GROU BY e HAVING, respectivamente, para agrupamento e resumos de dados.

– Funções para agregações:

COUNT(x): retorna o número de valores não nulos em uma lista.

MAX(x): retorna o maior valor de uma lista.

MEDIAN(x): retorna o valor mediano de uma lista.

MIN(x): retorna o menor valor de uma lista.

SUM(X): soma todos os números de um grupo.

  • Criando índices
</pre>
<em>CREATE INDEX falls_name ON upfall(name, open_to_public);</em>

<em> </em>
  • Inserindo dados
</pre>
<em>INSERT INTO pessoa(id,nome,idade) VALUES (13, ‘joão’, 89);</em>
<pre>

É isso ai,

um abraço.

Anúncios

Obrigado pelo comentário.

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s