FMGARCIA - SAMP
Bem vindo ao nosso Fórum, faça o seu registro gratuito.
Respeite as regras do fórum e do servidor.
Nosso servidor é *Role-Playing Game - RPG*.
Nosso lema é: *DIVERSÃO*.

IP: 54.39.145.16:7720

DISCORD: https://discord.gg/UsduDqw
YOUTUBE: https://www.youtube.com/user/HuemersonSUPER
FACEBOOK: https://www.facebook.com/Fmgsamprpgvr

In Game: Ao logar compre seu vip e aproveite as vantagens.
Todos os jogadores ganham Coins [Moedas Virtuais] no primeiro login, para comprar itens no menu vip ou adquirir org vip - / menuvip ou /pegarorg.

Participe do fórum, é rápido e fácil

FMGARCIA - SAMP
Bem vindo ao nosso Fórum, faça o seu registro gratuito.
Respeite as regras do fórum e do servidor.
Nosso servidor é *Role-Playing Game - RPG*.
Nosso lema é: *DIVERSÃO*.

IP: 54.39.145.16:7720

DISCORD: https://discord.gg/UsduDqw
YOUTUBE: https://www.youtube.com/user/HuemersonSUPER
FACEBOOK: https://www.facebook.com/Fmgsamprpgvr

In Game: Ao logar compre seu vip e aproveite as vantagens.
Todos os jogadores ganham Coins [Moedas Virtuais] no primeiro login, para comprar itens no menu vip ou adquirir org vip - / menuvip ou /pegarorg.
FMGARCIA - SAMP
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Obrigado, Convidado!

Bem-vindo ao FMGARCIA - SAMP!

novembro 2024
DomSegTerQuaQuiSexSáb
     12
3456789
10111213141516
17181920212223
24252627282930

Calendário Calendário

Calculadora FMG
FMGarcia
Administradores

Votação
FMG - O MELHOR SERVIDOR RPG SAMP - RADIO ONLINE

SQL - PARA INICIANTES

Ir para baixo

Olhinho SQL - PARA INICIANTES

Mensagem por HuemersonFMG Qui 01 Ago 2024, 11:02

SQL, ou Structured Query Language (Linguagem de Consulta Estruturada), é uma linguagem padrão e amplamente reconhecida para consultas e manipulação de dados em bancos de dados relacionais. Sua especificidade e eficiência a tornam uma ferramenta indispensável no mundo da tecnologia da informação, permitindo interações complexas e precisas com grandes conjuntos de dados.

Trabalhando com Funções
Observação:

> A função NVL é utilizada para substituir o valor nulo do campo pesquisado por outro valor determinado.
O código abaixo seleciona o campo dos registros da tabela, atribuindo valor 0 se for nulo.
Código:

SELECT NVL(C.NUNOTA, 0) PEDIDO FROM TGFCAB C WHERE C.NUNOTA IS NULL AND C.DTNEG > '01/07/2024'

> A função NVL2 é utilizada para substituir o valor do campo, sendo este nulo ou não.
O código abaixo seleciona o campo dos registros da tabela, atribuindo valor 0 se NÃO for nulo, e atribuindo 2 se for nulo.
Código:

SELECT NVL2(C.NUNOTA, 0, 2) PEDIDO FROM TGFCAB C WHERE C.NUNOTA IS NULL AND C.DTNEG > '01/07/2024'

> A função NULLIF compara dois valores. Se os valores forem iguais, a função retornará valor nulo. Se os valores dos campos forem iguais, a função retornará valor nulo. Se os valores desses campos forem diferentes, a função retornará o primeiro valor.
Código:

SELECT C.NUNOTA, C.NUMNOTA, NULLIF(C.NUNOTA, C.NUMNOTA) FROM TGFCAB C WHERE C.NUNOTA IS NOT NULL AND C.DTNEG > '01/07/2024'

> A função COALESCE verifica os valores da expressão e retorna o primeiro valor não nulo.
O código abaixo seleciona dos registros da tabela, dentre os campos da consulta e exibe o primeiro que apresentar valor não nulo.
Código:

SELECT COALESCE(C.NUNOTA, C.NUMNOTA, C.CODTIPOPER)  FROM TGFCAB C WHERE C.NUNOTA IS NOT NULL AND C.DTNEG > '01/07/2024'

> A função Decode tem como objetivo decodificar o valor do campo selecionado, atribuindo um valor de resposta para cada valor de condição estipulado.
O código abaixo mostra como selecionar dos registros da tabela e exibe mensagem de acordo com as condições, no caso abaixo, estamos passando os valores de números para texto.
Código:

SELECT NUNOTA, DECODE (C.NUNOTA, 30405, 'ENTREGUE', 37296, 'NAO ENTREGUE' ) DECODE FROM TGFCAB C WHERE C.NUNOTA IS NOT NULL AND C.DTNEG > '01/08/2024'

> CASE
A função CASE é utilizada para determinar a exibição do resultado a partir de condições especificadas dentro da função.
O código abaixo seleciona dos registros da tabela, e exibe mensagem de acordo com as condições: caso o campo VLRNOTA seja menor que 100, exibe a mensagem ‘MENOR QUE 100’, caso o campo VLRNOTA esteja entre 101 e 200, exibe a mensagem ‘ENTRE 101 E 200’, caso contrário, exibe a mensagem ‘MAIOR QUE 200’.
Código:

SELECT VLRNOTA,
    CASE WHEN VLRNOTA < 1000 THEN 'MENOR QUE 1000'
        WHEN VLRNOTA BETWEEN 1001 AND 1999 THEN 'ENTRE 1000 E 2000'
        ELSE  'MAIOR QUE 2000' END AS RETORNO
FROM TGFCAB C WHERE C.NUNOTA IS NOT NULL AND C.DTNEG > '31/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> A função LOWER, converte os valores para caracteres minúsculos.
O código abaixo seleciona dos registros da tabela convertendo o conteúdo do campo para que seja exibido todo em caracteres minúsculos.
Código:

SELECT LOWER(C.OBSERVACAO)
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '31/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> A função UPPER, converte os valores para caracteres maiúsculos.
O código abaixo seleciona dos registros da tabela convertendo o conteúdo do campo para que seja exibido todo em caracteres maiúsculos.
Código:

SELECT UPPER(C.OBSERVACAO)
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '31/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> A função INITCAP, converte os valores para texto com iniciais em maiúsculas.
O código abaixo seleciona dos registros da tabela convertendo o conteúdo do campo para que seja exibido o texto com iniciais em maiúsculas.
Código:

SELECT INITCAP(C.OBSERVACAO)
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '31/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> A função SUBSTR tem como objetivo extrair parte do conteúdo do campo selecionado, de acordo com os parâmetros informados na função, independente do tipo do campo (numérico, texto ou data).
O código abaixo seleciona dos registros da tabela exibindo apenas o conteúdo a partir do primeiro caractere até os próximos 10 caracteres.
Código:

SELECT SUBSTR(C.OBSERVACAO, 1, 10)
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '31/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> A função LENGTH tem como objetivo exibir o tamanho do valor que está gravado no campo selecionado (Quantidade de caracteres).
O código abaixo seleciona dos registros da tabela exibindo, logo em seguida, o tamanho do conteúdo do campo.
Código:

SELECT C.OBSERVACAO, LENGTH(C.OBSERVACAO) CARACT
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '31/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> A função REPLACE tem como objetivo possibilitar a substituição de caracteres específicos por outros.
O código abaixo seleciona dos registros da tabela e exibe, logo em seguida, o campo substituindo o caractere 'E' por '_'.
Código:

SELECT C.OBSERVACAO, REPLACE (C.OBSERVACAO, 'E', '_') CARACT
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '31/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> A função ROUND tem como objetivo efetuar o arredondamento de números para a quantidade de casas decimais determinada na função.
O código abaixo seleciona dos registros da tabela e exibe, logo em seguida, o campo com seu valor arredondado para 2 as casas decimais.
Código:

SELECT ROUND(C.VLRNOTA, 2)
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> A função TRUNC tem como objetivo efetuar o corte de números para a quantidade de casas determinada na função.
O código abaixo seleciona dos registros da tabela  e exibe, logo em seguida, o campo com seu valor truncado na segunda casa decimal ou seja depois da vírgula só será exibido duas casas decimais no máximo.
Código:

SELECT TRUNC(C.VLRNOTA, 2)
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> MOD
A função MOD tem como objetivo exibir o resto (Modulo) da divisão de um valor por outro.
O código abaixo seleciona os registros da tabela exibindo o Resto da divisão do campo por 5.
Código:

SELECT C.VLRNOTA, (C.VLRNOTA / 5) DIV5, MOD(C.VLRNOTA, 5) MOD5
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> A função SYSDATE seleciona a data do sistema.
Código:

SELECT SYSDATE FROM DUAL

> O código abaixo seleciona a data do sistema adicionando 10 dias.
Código:

SELECT SYSDATE + 10 FROM DUAL

> O código abaixo seleciona a data do sistema subtraindo 10 dias.
Código:

SELECT SYSDATE - 10 FROM DUAL

> O código abaixo seleciona dos registros da tabela e exibe, logo em seguida, a diferença entre as datas, apelidando o campo com o nome de DIFERENCA.
Código:

SELECT C.DTNEG, (C.DTNEG - 3) DTENT, (C.DTNEG - (C.DTNEG - 3) || ' DIAS') DIFERENCA
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> O código abaixo seleciona os registros da tabela e converte o valor do campo para caracteres de texto, no formato de 7 dígitos.
Código:

SELECT TO_CHAR(C.NUNOTA, '0000000')
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

> O código abaixo seleciona os registros da tabela e converte o valor do campo para caracteres de texto, no formato ‘dd/mm’.
Código:

SELECT TO_CHAR(C.NUNOTA, 'dd/mm')
FROM TGFCAB C WHERE C.OBSERVACAO IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100
ORDER BY VLRNOTA

Elementos para formatação de data:

> A função AVG tem como finalidade efetuar o cálculo de média simples do campo informado na função. O código abaixo seleciona a média dos valores do campo.
Código:

SELECT C.NUNOTA, C.VLRNOTA, AVG(C.VLRNOTA) MEDIA_VLR
FROM TGFCAB C WHERE C.NUNOTA IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100
GROUP BY C.NUNOTA, C.DTNEG, C.CODTIPOPER,  C.VLRNOTA
ORDER BY C.NUNOTA

> A função COUNT tem como finalidade efetuar a contagem do campo informado na função.
O código abaixo efetua contagem do campo.
Código:

SELECT COUNT(C.NUNOTA) QT_LINHAS, C.VLRNOTA
FROM TGFCAB C WHERE C.NUNOTA IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100
GROUP BY C.DTNEG, C.CODTIPOPER,  C.VLRNOTA

> A função MAX tem como finalidade exibir o maior valor encontrado no campo informado na função.
O código abaixo seleciona o maior valor encontrado no campo dentre todos os registros da tabela.
Código:

SELECT MAX(C.VLRNOTA)
FROM TGFCAB C WHERE C.NUNOTA IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100

> A função MIN tem como finalidade exibir o maior valor encontrado no campo informado na função.
O código abaixo seleciona o menorvalor encontrado no campo dentre todos os registros da tabela.
Código:

SELECT MIN(C.VLRNOTA)
FROM TGFCAB C WHERE C.NUNOTA IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100

> A função SUM tem como finalidade exibir a soma dos valores encontrados no campo informado na função.
O código abaixo soma os valores encontrados no campo dentre todos os registros da tabela.
Código:

SELECT SUM(C.VLRNOTA)
FROM TGFCAB C WHERE C.NUNOTA IS NOT NULL AND C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100

> A função GROUP BY tem como finalidade Agrupar valores iguais em campos das tabelas.
O código abaixo agrupa os campos da tabela que não possuem função, somando a uma das colunas que possui a função SUM.
Código:

SELECT C.DTNEG, SUM(C.VLRNOTA) QTDTT
FROM TGFCAB C WHERE C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100
GROUP BY C.DTNEG, C.CODTIPOPER

> Subconsultas (Sub-select)
• em SELECT Usada para calcular um valor ou retornar uma coluna adicional.
• em WHERE Usada para filtrar os resultados com base em critérios dinâmicos.
• em HAVING Usada para filtrar grupos de resultados após uma agregação.

Características das Subconsultas
1. Auto-contenção: A subconsulta é executada independentemente da consulta externa.
2. Escalar e Multivalor: Pode retornar um único valor (escalar) ou múltiplos valores (como uma tabela).
3. Correlação: Pode ser correlacionada, onde a subconsulta se refere a colunas da consulta externa.
Código:

SELECT C.DTNEG, C.VLRNOTA,
(SELECT PRO.DESCRPROD FROM TGFITE ITE, TGFPRO PRO
    WHERE ITE.NUNOTA = C.NUNOTA AND ITE.CODPROD = PRO.CODPROD
        AND ITE.USOPROD = 'V' AND ROWNUM <= 1) DESCRPROD
FROM TGFCAB C WHERE C.DTNEG > '29/07/2024' AND C.CODTIPOPER = 1100

> A cláusula HAVING é similar ao funcionamento das cláusulas de restrição WHERE, porém, com uma grande diferença. Enquanto a cláusula WHERE é utilizada para efetuar restrições de informações baseadas em campos das tabelas, a cláusula HAVING é utilizada para efetuar restrições de informações baseadas em resultados das funções de grupo (SUM, AVG, MAX, MIN e COUNT).
Código:

SELECT C.CODPARC, SUM(C.VLRNOTA) VLRTT
FROM TGFCAB C
GROUP BY C.CODPARC
HAVING SUM(C.VLRNOTA) > 1000

> funções de ligação (JOINS)entre tabelas permitem que você combine dados de duas ou mais tabelas com base em uma condição relacionada. Existem vários tipos de JOINS, cada um com uma finalidade específica:
1. INNER JOIN
• Retorna apenas as linhas que têm correspondência em ambas as tabelas.
Código:


SELECT colunas
FROM tabela1
INNER JOIN tabela2
ON tabela1.coluna_comum = tabela2.coluna_comum

2. LEFT JOIN (ou LEFT OUTER JOIN)
• Retorna todas as linhas da tabela à esquerda e as linhas correspondentes da tabela à direita. Se não houver correspondência, os resultados da tabela à direita serão nulos.
Código:

SELECT colunas
FROM tabela1
LEFT JOIN tabela2
ON tabela1.coluna_comum = tabela2.coluna_comum

3. RIGHT JOIN (ou RIGHT OUTER JOIN)
• Retorna todas as linhas da tabela à direita e as linhas correspondentes da tabela à esquerda. Se não houver correspondência, os resultados da tabela à esquerda serão nulos.
Código:

SELECT colunas
FROM tabela1
RIGHT JOIN tabela2
ON tabela1.coluna_comum = tabela2.coluna_comum

4. FULL JOIN (ou FULL OUTER JOIN)
• Retorna todas as linhas quando há uma correspondência em uma das tabelas. Linhas não correspondentes nas tabelas resultam em valores nulos.
Código:

SELECT colunas
FROM tabela1
FULL JOIN tabela2
ON tabela1.coluna_comum = tabela2.coluna_comum

5. CROSS JOIN
• Retorna o produto cartesiano das duas tabelas, ou seja, combina todas as linhas da tabela1 com todas as linhas da tabela2.
Código:

SELECT colunas
FROM tabela1
CROSS JOIN tabela2

6. SELF JOIN
• É uma junção de uma tabela com ela mesma. Útil para comparar linhas dentro da mesma tabela.
Código:

SELECT a.colunas, b.colunas
FROM tabela a, tabela b
WHERE condição

Exemplo de Ligações:
Código:

SELECT C.CODPARC, SUM(C.VLRNOTA) VLRTT, P.NOMEPARC
FROM TGFCAB C
INNER JOIN TGFPAR P ON P.CODPARC = C.CODPARC
WHERE C.DTNEG > '01/07/2024'
GROUP BY C.CODPARC, P.NOMEPARC
HuemersonFMG
HuemersonFMG
Fundador - ADM
Fundador - ADM
Publicações
Publicações
Membro Vip
Membro Vip
Criador de Tópicos
Criador de Tópicos
Participação em tópicos
Participação em tópicos
Criador de Eventos
Criador de Eventos
Popular no fórum - Amigos
Popular no fórum - Amigos
Avaliação de MSG
Avaliação de MSG
Melhores avaliações de Amigos
Melhores avaliações de Amigos
Rei dos Grupos no Fórum
Rei dos Grupos no Fórum
Melhor RPG
Recebe este ao criar sua Ficha RPG no Perfil

Mensagens : 514
Pontos : 26980
Reputação : 0
Data de inscrição : 11/06/2018
Idade : 52
Localização : Brasil

FMGRPG
FMG:
SQL - PARA INICIANTES Left_bar_bleue200/100SQL - PARA INICIANTES Empty_bar_bleue  (200/100)

https://play.idevgames.co.uk/profile/Huemerson

HuemersonFMG gosta desta mensagem

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos