SQL Introdução Flashcards

1
Q

Porque os bancos relacionais revolucionara a forma de armazenar e consultar dados?

A

Trouxeram uma abordagem estruturada, eficiente e flexível para gerenciar grandes volumes de informação

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

O que é o modelo relacional?

A

Criado por Edgar F. Codd em 1970, baseia-se no conceito de tabelas, onde os dados são organizados em linhas e colunas, tornando a informação intuitiva e estruturada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qual o motivo da criação da linguagem SEQUEL

A

Projetado para facilitar a interação com bancos relacionais. Permitia que usuários consultassem dados utilizando uma sintaxe semelhante á linguagem natural.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Evolução do SEQUEL para SQL

A

SEQUEL foi renomeada para SQL devido a questões de marca registrada envolvendo o nome original. Nos anos seguintes o SQL deixou de ser apenas uma linguagem de consulta e foi expandida para comandos de manipulação de dados (inserir, atualizar e excluir), definição de estrutura (criar e modificar tabelas, índices e outras estruturas), controle de dados (gerenciar permissões e segurança).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Aspectos de administração existentes hoje para o SQL?

A

DDL (Criar e alterar tabelas, índices e esquemas), DML (Inserir, atualizar, excluir e consultar dados), DCL (Gerenciar permissões e segurança) e TCL (Controlar transações, garantindo propriedades ACID)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Explique porque o armazenamento otimizado e economia de espaço são vantagens de bancos relacionais?

A

Os bancos relacionais permitem organizar dados de forma eficiente e reduzir redundâncias, otimizando espaços, como por exemplo, em vez de repetir informações de um cliente em várias linhas, uma tabela de “Clientes” armazena os dados de uma vez, com referências a outras tabelas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

O que são as regras de relacionamento internas?

A

São os relacionamentos entre entidades definidos diretamente no banco de dados por meio de chaves primárias e estrangeiras.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Exemplos de comandos DDL

A

CREATE, ALTER, TRUNCATE, DROP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Exemplos de comandos DML

A

INSERT, UPDATE, DELETE, LOCK

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Exemplo de comandos DCL

A

COMMIT, ROLLBACK, SAVEPOINT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que é uma Tablespace?

A

É uma abstração usada para organizar o armazenamento físico das tabelas e outros objetos do banco de dados. Possui tamanho máximo, que limita o espaço ocupado, tem privilégios como quem pode acessar e modificar certos objetos e pode ser usado para melhorar a performance armazenando diferentes partes do banco em discos diferentes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

O que é uma tabela?

A

Principal estrutura do banco de dados onde os dados são armazenados. A tabela é composta por linhas e colunas. Possuem definição rígida, ou seja, a estrutura deve ser definida antes de serem usadas, por exemplo, colunas devem ter tipos de dados únicos e cada coluna pode ter uma certa restrição.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qual a diferença de linha e coluna?

A

Linha contêm os dados da tabela, enquanto que colunas definem os tipos de dados e as regras de valores

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

O que é uma chave primária?

A

Identifica de forma única cada linha de uma tabela. Os valores devem ser únicos, não podendo haver repetições, não pode haver valores nulos e não é obrigatório nas tabelas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O que é chave estrangeira?

A

É usada para criar uma relação entre duas tabelas. Deve referenciar um campo de outra tabela, que geralmente é a chave primária da outra tabela. Garante integridade referencial, impedindo que sejam criados registros inexistentes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

O que é índice?

A

Melhora a performance das consultas, organizando os dados de uma coluna ou conjunto de colunas para facilitar a busca. Porém, esses índices podem aumentar o espaço em disco e tornar a operação de escrita mais lenta devido a necessidade de atualizar o índice

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

O que é uma view?

A

É uma tabela lógica que não armazena dados fisicamente, mas apresenta resultados de consulta. São úteis para restringir acesso ou simplificar consultas complexas, porém por não serem dados armazenados fisicamente, a performance pode ser menor em comparação a uma tabela.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

O que é uma procedure ou função?

A

São blocos de código programados no banco de dados para realizar operações específicas onde Procedures executam uma série de ações, podendo ou não retornar valores, enquanto que as funções sempre retornam um valor. São escritas em linguagem PL/SQL no Oracle e são usadas para automatizar tarefas frequentes e reduzir a complexidade de consulta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

O que é uma Trigger?

A

É um gatilho de ação automática executado pelo banco de dados em resposta a um evento em uma tabela (inserção, atualização ou exclusão de dados). Útil para registrar atividades, porém pode impactar negativamente a performance se mal projetado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

O que é um campo tipo CHAR?

A

Armazena um conjunto de caracteres de tamanho fixo. Se o tamanho do campo for CHAR(10) então ele armazenará 10 caracteres, mesmo o conteúdo tendo apenas 3, o restante será preenchido com espaços em branco.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Qual a utilidade de um campo CHAR?

A

Útil para dados que tem sempre o tamanho fixo como código de produtos ou CEPs e CPFs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

O que é um campo VARCHAR ou VARCHAR2

A

Armazena caracteres de comprimento variável, espaço corresponde apenas à quantidade de caracteres inseridos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Qual a diferença de VARCHAR e VARCHAR2?

A

O VARCHAR possui especificação obsoleta enquanto que o VARCHAR2 armazena uma forma mais eficiente e amplamente utilizada em bancos modernos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Características do tipo VARCHAR2

A

Economia de espaço em disco, pois não armazena espaços extras e ideal para campos com tamanho variável

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Para que servem os campos NCHAR, NVARCHAR, NVARCHAR2?

A

Permitem armazenar caracteres de idiomas globais, utilizando conjunto de caracteres Unicode. Exemplo: caracteres chineses, árabes, japoneses e outros idiomas não representados em ASCII padrão

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Problema dos tipos iniciados com N?

A

Consome mais espaço, pois cada caractere por ocupar até 2 ou 4 bytes, dependendo do sistema

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

O que é o CLOB e o NLOB?

A

CLOB armazena grandes volumes de dados textuais, tendo capacidade de suportar até 8 Terabytes de texto. O NLOB é mais voltado para armazenamento de textos em formatos unicode, indicado para grandes quantidades de texto em idiomas globais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Dificuldades do CLOB e do NLOB

A

Exigem mais recursos para manipulação devido ao tamanho

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

O que é o tipo NUMBER?

A

Usado para armazenar números de tamanho fixo ou de ponto flutuante. Armazena desde números inteiro até valores financeiros ou resultados cientificos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Qual a diferença de tamanho fixo e ponto flutuante?

A

O de tamanho fio possuem precisão definida como NUMBER(10,2), que armazena 10 dígitos, com 2 decimais. Enquanto que o ponto flutuante armazena valores com precisão variável.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

O que é o campo DATE?

A

Armazena informações de data e hora. Inclui valores como ano, mês, dia, hora, minuto e segundo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Pode existir mais de um formato em DATE?

A

Sim, dependendo da região o formato pode mudar como por exemplo DD/MM/YYYY e MM/DD/YYYY

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

O que é o tipo TIMESTAMP?

A

Estende o tipo DATE, adicionando frações de segundo. Indicado para aplicações que precisam de maior precisão temporal.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Quais são os passos para o processo de criação de um banco de dados?

A

Primeiro passo é o entendimento do negócio onde são levantados os requisitos como necessidades e dados essenciais
Em seguida o Diagrama de Entidades onde é feito a representação gráfico das entidades e relacionamentos
Terceiro o MER, que seria um esboço técnico detalhado com tabelas, chaves primárias e estrangerias (design lógico do banco)
Depois, os Metadados, que seriam definições de tipos, restrições e tamanhos dos campos
Depois disso o projeto final que é um documento completo do banco para implementação
Por último a implementação, que seria a execução dos scripts SQL para criar o banco no SGBD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

O que é um ALIAS?

A

Um Alias permite atribuir um nome temporário a uma tabela ou coluna em uma consulta SQL. Não altera os nomes ou estruturas físicas no banco de dados. Só existe durante a execução da consulta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Qual a diferença de alias para colunas e tabelas?

A

Colunas:
SELECT coluna AS ‘novo_nome’
FROM tabela;

Tabelas:
SELECT t.coluna
FROM tabela AS t;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Como utilizamos o ALIAS com palavras compostas?

A

Quando o Alias contém palavras compostas ou caracteres especiais, ele deve ser colocado entre aspas duplas:
SELECT nome AS “Nome Completo”
FROM clientes;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Qual a necessidade de ter ALIAS em tabelas com join?

A

Ao fazer JOINS entre tabelas, é comum que colunas de diferentes tabelas tenham o mesmo nome, nesse caso o SQL não sabe a qual tabela a coluna pertence, gerando ambiguidade.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

O que é uma chave primária?

A

É um identificador único para cada registro de uma tabela. Garante que não haja duplicação de informações e não pode conter valores nulos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Verdadeiro ou falso: Cada tabela pode ter mais de uma chave primária

A

Falso. Cada tabela só pode ter apenas uma chave primária.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Para que serve uma chave estrangeira?

A

Conecta tabelas relacionadas, criando vínculos lógicos. Essa integridade referencial assegura que os valores na chave estrangeira correspondam a valores existentes na chave primária da tabela referenciada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Qual a convenção de nomeação para chaves estrangeiras e primárias?

A

PK para chaves primárias e FK para chaves estrangeiras.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Fale um pouco do case sensitivity no SQL

A

O SQL por padrão não diferencia maiúsculas de minúsculas em nomes de tabelas e colunas, porém os valores usados no WHERE podem ser case-sensitive, dependendo do banco.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Quais são os filtros quantitativos de comparação?

A

< : Menor que
<=: Menor ou igual a
>: Maior que
>=: Maior ou igual a
=: Igual
<>: Diferente
BETWEEEN: Intervalo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Como o Oracle compara strings?

A

O Oracle compara strings em ordem alfabética, baseada no código ASCII dos caracteres. Caracteres maiúsculos vêm antes de caracteres minúsculos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Quais são os operadores lógicos que podemos utilizar?

A

AND, OR, NOT, LIKE, BETWEEN, IN

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Como funciona os operadores AND, OR e NOT

A

AND: Exige que todas as condições sejam verdadeiras para o resultado ser verdadeiro
OR: Retorna verdadeiro se pelo menos uma condição for verdadeiro
NOT: Inverte o resultado de uma condição

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Qual o resultado da expressão: (IDADE_ALUNO >= 18 OR FORMADO = ‘INGLÊS’) OR (IDADE_ALUNO < 18 AND FORMADO = ‘ALEMÃO’)
Com a entrada de dados IDADE_ALUNO = 17 e FORMADO = ‘INGLÊS’

A

17 >= 18 → FALSO
‘INGLÊS’ = ‘INGLÊS’ → VERDADEIRO
(FALSO OR VERDADEIRO) → VERDADEIRO
17 < 18 → VERDADEIRO
‘INGLÊS’ = ‘ALEMÃO’ → FALSO
(VERDADEIRO AND FALSO) → FALSO
(VERDADEIRO) OR (FALSO) → VERDADEIRO

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Qual a utilidade do operador IN?

A

Simplifica múltiplas condições OR no mesmo campo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Para que serve o operador LIKE

A

Usado para buscas flexíveis em coluna de textos. O símbolo % representa qualquer sequencia de caracteres.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Qual a utilidade do DISTINCT?

A

Quando aplicado a uma coluna, o DISTINCT analisa os valores retornados e elimina duplicatas. Pode ser usado para verificar combinações únicas de duas ou mais colunas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

O que é o ROWNUM?

A

Coluna especial no Oracle que atribui um número sequencial a cada linha retornada pela consulta, começando em 1. Essa numeração é gerada apenas no momento da execução da consulta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
53
Q

Características do ROWNUM

A

A numeração é atribuída na ordem que as linhas são retornadas, o ROWNUM não existe fisicamente, sendo criado apenas durante a execução da consulta, não pode ser usado para selecionar linhas específicas no meio da tabela

54
Q

Como o ROWNUM funciona com ORDER BY?

A

O ROWNUM não respeita o ORDER BY, pois ele é atribuído antes da ordenação.

55
Q

O que é o ORDER BY

A

Um comando do SQL usado para organizar os resultados de uma consulta de forma ordenada, seja crescente ASC ou decrescente DESC. Pode ordenar os dados por uma ou mais colunas, criando hierarquias de organização

56
Q

Como funciona a ordenação de mais de uma coluna?

A

O SQL organiza os resultados pela primeira coluna e, em seguida, aplica a ordenação da próxima coluna dentro dos grupos da anterior

57
Q

É possível ordenar utilizando o ALIAS?

A

Sim, pode se usar o alias criados no SELECT para ordenar os dados

58
Q

Para que serve o GROUP BY?

A

É usado no SQL para agrupar linhas que possuem valores iguais em uma ou mais colunas, permitindo que funções de agregação sejam aplicadas a esses grupos. Útil para realizar cálculos como soma, contagens, média, máximos e mínimos

59
Q

Fale um pouco das funções de agregação COUNT, SUM, AVG, MAX, MIN

A

COUNT: Conta o número de linhas em cada grupo
SUM: Calcula a soma dos valores de uma coluna em cada grupo
AVG: Calcula a média dos valores de uma coluna em cada grupo
MAX: Retorna o maior valor de uma coluna em cada grupo
MIN: Retorna o menor valor de uma coluna em cada grupo

60
Q

Regras Importantes do GROUP BY:

A

1 - Campos não agregados devem estar no GROUP BY
2 - O SQL primeiro agrupa as linhas e depois aplica as funções de agregação
3 - É possível usar apenas o GROUP BY para agrupar os dados sem aplicar funções de agregação. Isso funciona como um DISTINCT, mas com suporte para ordenação
4 - O ORDER BY pode ser usado com o GROUP BY, mas não é permitido ordenar por uma coluna que não esteja no grupo

61
Q

Para que serve o HAVING

A

Usado em consultas SQL para aplicar filtros em resultados que utilizam funções de agregação. Semelhante ao WHERE, mas com uma diferença: O WHERE filtra os dados antes da agregação, enquanto o HAVING filtra os resultados das funções de agregação.

62
Q

Explique as diferenças de HAVING e WHERE

A

O WHERE aplica filtros antes do GROUP BY, enquanto que o HAVING aplica depois
O WHERE filtra linhas individuais, enquanto que o HAVING filtra grupos ou agregados
O WHERE não pode ser usado com funções de agregação, enquanto que o HAVING aceita funções de agregação

63
Q

Sintaxe do HAVING

A

SELECT coluna1, função_agregação(coluna2)
FROM tabela
GROUP BY coluna1
HAVING função_agregação(coluna2) condição;

64
Q

É possível utilizar WHERE e HAVING em um mesmo SELECT?

A

Sim, o WHERE pode ser usado para filtrar linhas antes da agregação e o HAVING pode ser usado para filtrar os resultados após o agrupamento

SELECT categoria, SUM(valor_total) AS total_vendas
FROM vendas
WHERE categoria = ‘Eletrônicos’
GROUP BY categoria
HAVING SUM(valor_total) > 900;

65
Q

É possível utilizar os operadores lógicos no HAVING?

A

Sim, é possível utilizar os operadores AND e OR no HAVING

SELECT categoria, SUM(valor_total) AS total_vendas
FROM vendas
GROUP BY categoria
HAVING SUM(valor_total) BETWEEN 500 AND 1000;

66
Q

Qual a ordem de execução quando temos ORDER BY, HAVING, WHERE e GROUP BY?

A

WHERE > GROUP BY > Função de Agregação > HAVING > ORDER BY

67
Q

O que é o CASE WHEN?

A

Comando do SQL usado para realizar classificações ou cálculos personalizados dentro de consultas. Funciona como uma estrutura condicional que permite criar novos valores com base em critérios específicos, similar a um “se/então”.

68
Q

Sintaxe do CASE WHEN

A

SELECT coluna,
(CASE
WHEN condição1 THEN resultado1
WHEN condição2 THEN resultado2
ELSE resultado_padrão
END) AS nome_coluna_gerada
FROM tabela;

69
Q

CASE WHEN com agregação

A

Pode ser combinado com funções de agregação e agrupamento para criar classificações personalizadas em relatórios mais complexos

70
Q

Regras e considerações no CASE WHEN

A

1 - As condições são avaliadas sequencialmente. Assim que uma condição é atendida, o SQL para de avaliar as próximas
2 - O ELSE é opcional. Se omitido, os casos que não atendem as condições recebem NULL
3 - Pode ser usado em qualquer lugar de uma consulta onde uma expressão é valida (SELECT, WHERE, GROUP BY, ORDER BY)
4 - Utilizar o ALIAS para nomear a nova coluna gerada

71
Q

O que é o JOIN?

A

É usado para combinar informações de diferentes tabelas com base em um critério de junção. Geralmente uma relação entre uma chave primária e uma chave estrangeira, mas isso não é obrigatório.

72
Q

Diferença do INNER JOIN, LEFT JOIN e RIGHT JOIN

A

O INNER JOIN retorna apenas as linhas em que há correspondência em ambas as tabelas, o LEFT JOIN retorna todas as linhas da tabela à esquerda e as correspondentes da tabela à direita, onde não há correspondência, ele retorna nulo. O RIGHT JOIN retorna todas as linhas da tabela à direita e as correspondentes da tabela à esquerda, onde não há correspondência, retorna nulo

73
Q

Para que serve a FULL JOIN?

A

Retorna todas as linhas de ambas as tabelas, com NULL onde não há correspondência.

74
Q

Para que serve o CROSS JOIN?

A

Retorna o produto cartesiano de duas tabelas (todas as combinações possíveis)

75
Q

O que acontece com campos iguais dentro de um JOIN

A

Irá dar um erro. Para evitar ambiguidades quando há colunas de mesmo nome, deve utilizar o ALIAS

76
Q

Como funciona a ordem dos JOIN?

A

A ordem das tabelas no JOIN não interfere no resultado final, mas pode impactar a leitura e performance dependendo do banco de dados

77
Q

Para que serve o UNION e o UNION ALL?

A

Comandos que são usados para combinar os resultados de duas ou mais consultas. São úteis para consolidar dados de diferentes tabelas ou fontes em uma única saída

78
Q

Regras para o uso de UNION e UNION ALL

A

1 - Mesma quantidade de colunas. As consultas devem retornar os mesmos números de colunas
2 - Mesmo tipo de dados. As colunas correspondentes em cada consulta devem ter tipos de dados compatíveis
3 - Ordem das colunas importa. A ordem deve ser idêntica nas consultas combinadas.
4 - Os nomes das colunas são definidos pela primeira consulta

79
Q

Qual a diferença de UNION e UNION ALL

A

Union remove valores duplicados no resultado final, funcionando como um DISTINCT. Pode ser mais lento devido a necessidade de eliminar duplicatas.
O Union All inclui todas as linhas, incluindo duplicatas. É mais rápido, pois não realiza verificação de duplicatas

80
Q

Como que funciona a ordenação no UNION

A

Para ordenar os dados combinados, usa-se o ORDER BY no final da última consulta

81
Q

O que são SUBCONSULTAS com o IN?

A

As subconsultas permitem filtrar os dados de uma tabela principal com base nos resultados de outra tabela utilizando o comando IN. A ideia é utilizar o resultado de uma sub-consulta como critério para filtrar linhas na consulta principal

82
Q

Regras para Sub-Consultas com IN

A

1 - Retorno de um campo. A sub-consulta deve retornar apenas uma coluna. Caso retorne mais de uma, o SQL interpretará como uma matriz e o resultado será um erro.
2 - Formato de array: O IN espera receber uma lista de valores (array) como resposta da sub-consulta
3 - Escopo de uso: Subconsultas podem ser usadas em várias cláusulas como WHERE e HAVING

83
Q

Pode-se usar funções de agregação em sub-consultas IN

A

Sim, é possível combinar funções de agregação com sub-consultas

SELECT Nome
FROM clientes
WHERE ID_Cliente IN (
SELECT ID_Cliente
FROM pedidos
WHERE Valor = (SELECT MAX(Valor) FROM pedidos)
);

84
Q

Substituindo o HAVING com Sub-Consultas

A

O comando HAVING é usado para aplicar filtros em resultados agregados gerados por GROUP BY. No entanto, podemos obter o mesmo resultado utilizando sub-consultas

85
Q

Diferença de HAVING e Sub-Consultas

A

HAVING: Aplica filtro diretamente no resultado agregado da consulta. Útil quando não precisa reutilizar os dados intermediários
SUB-CONSULTAS: Permite criar uma tabela intermediária com o resultado da consulta agregada. Oferece maior flexibilidade, já que podem ser combinadas com outras operações SQL

86
Q

Rescreva com Sub-Consulta:

SELECT coluna1, SUM(coluna2) AS soma
FROM tabela
GROUP BY coluna1
HAVING SUM(coluna2) > valor;

A

SELECT coluna1, soma
FROM (
SELECT coluna1, SUM(coluna2) AS soma
FROM tabela
GROUP BY coluna1
) sub_consulta
WHERE soma > valor;

87
Q

Vantagens da SUB-CONSULTA:

A

Cria uma tabela temporária que pode ser usada em diferentes contextos
É possível adicionar mais filtros e junções na consulta principal
Útil quando o resultado agregado precisa ser usado em outras partes da consulta

88
Q

Considerações sobre Performance do HAVING e da SUB-CONSULTA

A

O HAVING é mais direto e eficiente em situações simples, já que o filtro aplicado é diretamente no agrupamento. Sub-consultas podem ser mais lentas, dependendo do banco, pois criam uma camada intermediária.

89
Q

O que é uma VIEW?

A

São tabelas virtuais no banco de dados que armazenam a definição de uma consulta complexa. Permitem acessar os resultados dessa consulta como se fosse uma tabela, mas sem armazenar dados fisicamente.

90
Q

Principais características das VIEW

A

1 - Simplificação de consultas complexas, consolidando em um único objeto do banco de dados
2 - Reflete sempre os dados mais recentes das tabelas origens
3 - Ajuda a centralizar consultas frequentes, reduzindo a repetição de código e melhorar a legibilidade a manutenção de consultas
4 - Restringe o acesso direto às tabelas originais, exibindo apenas os campos necessários e ocultando informações sensíveis
5 - As VIEWs não armazenam dados fisicamente, então a consulta é reexecutada cada vez que a VIEW é acessada, o que pode ser mais lento em cenários de alto volume de dados

91
Q

Comando para alterar uma VIEW

A

CREATE OR REPLACE VIEW … AS

92
Q

É possível editar dados na VIEW?

A

Não, as VIES são somente leitura, não permitindo inserção, atualização ou exclusão diretamente

93
Q

O que são funções de STRING?

A

Funções de String são utilizadas para manipular e formatar textos em consultas SQL, permitindo alterações simples como converter textos para tamanhos maiúsculos ou minúsculos e operações mais complexas como localizar e substituir trechos de texto

94
Q

Comandos que deixam o texto maiúsculo e minúsculo

A

LOWER e UPPER

95
Q

Comando que converte para maiúsculo apenas a primeira letra de cada palavra

A

INITCAP

96
Q

Comando que concatena duas ou mais strings e sua sintaxe

A

CONCAT(‘texto1’,’texto2’)

97
Q

Comando que preenche caracteres à esquerda do texto até atingir um tamanho específico e sua síntaxe

A

LPAD(‘texto’,valor,’caracter’)

98
Q

Comando que preenche caracteres à direita do texto até atingir um tamanho específico e sua sintaxe

A

RPAD(‘texto’,valor,’caracter’)

99
Q

Sintaxe do SUBSTR

A

SUBSTR(‘SQL é poderoso’, 1, 3) – Resultado: “SQL”

100
Q

Comando que retorna a posição inicial de uma sequência de caracteres dentro de um texto

A

SELECT INSTR(‘SQL é poderoso’, ‘poderoso’) AS posicao;
– Resultado: 6

101
Q

Comando que remove espaços em branco ou caracteres específicos à esquerda do texto

A

LTRIM

102
Q

Comando que remove espaços em branco ou caracteres específicos à direita do texto

A

RTRIM

103
Q

Remove espaços em branco ou caracteres específicos tanto à esquerda quanto à direita

A

TRIM

104
Q

Comando que substitui um caractere por outro

A

SELECT TRANSLATE(‘123-456’, ‘123’, ‘abc’) AS texto_traduzido;
– Resultado: “abc-456”

SELECT REPLACE(‘SQL é poderoso’, ‘poderoso’, ‘útil’) AS texto_substituido;
– Resultado: “SQL é útil”

105
Q

Como funciona as seguintes operações aritméticas com data:
1 - DATA + NUMERO
2 - DATA - NÚMERO
3 - DATA - DATA
4 - DATA +- (NUMERO/24)

A

1 - Adiciona um número de dias a uma data
2 - Subtrai um número de dias da data
3 - Subtrai duas datas e devolve o número de dias entre elas
4 - Adiciona ou subtrai horas de uma data

106
Q

Como funciona a conversão de data para texto e de texto para data

A

Data para texto: TO_CHAR(data, formato) Ex: TO_CHAR(TO_DATE(‘2022-09-04’, ‘YYYY-MM-DD’), ‘DD/MM/YYYY’)

Texto para data: TO_DATE(texto, formato) Ex: TO_DATE(‘04/09/2022’, ‘DD/MM/YYYY’)

107
Q

Comando que retorna a data e hora atual do sistema

A

SYSDATE

108
Q

Comando que calcula o número de meses entre duas datas

A

MONTHS_BETWEEN(data1, data2):

109
Q

Comando que adiciona um número de meses à data

A

ADD_MONTHS(data, número)

110
Q

Retorna a próxima ocorrência de um dia da semana

A

NEXT_DAY(data, dia)

111
Q

Retorna o último dia do mês da data fornecida

A

LAST_DAY(data)

112
Q

Função que remove as informações de hora e minuto mantendo apenas a data

A

TRUNC(data)

113
Q

Função que arredonda a data

A

ROUND(data)

114
Q

Símbolo para datas:
1 - Número do dia da semana
2 - Dia do mês com dois dígitos
3 - Número do dia do ano
4 - Nome do dia da semana por extenso
5 - Mês do ano com dois dígitos
6 - Nome abreviado do mês
7 - Nome do mês por extenso
8 - Ano com quatro dígitos
9 - Ano com dois dígitos
10 - Hora com dois dígitos (3 formatos)
11 - Minutos
12 - Segundos

A

1 - D
2 - DD
3 - DDD
4 - DAY
5 - MM
6 - MON
7 - MONTH
8 - YYYY
9 - YY
10 - HH,HH12,HH24
11 - MI
12 - SS

115
Q

Função que arredonda o valor para o valor mais próximo, dependendo do decimal

A

ROUND(12.345, 2) – Arredonda para 2 casas decimais
Resultado: 12.35.

116
Q

Remove os dígitos decimais, truncando o número (arredonda para BAIXO)

A

TRUNC(12.345, 2) – Mantém apenas 2 casas decimais
Resultado: 12.34

117
Q

Arredonda sempre para o inteiro superior mais próximo

A

CEIL(12.345)
Resultado: 13

118
Q

Arredonda sempre para inteiro inferior mais próximo

A

FLOOR(12.345)
Resultado: 12

119
Q

Calcula a potência de um número elevado a outro

A

POWER(2, 3) – 2 elevado à potência 3
Resultado: 8

120
Q

Retorna o número exponencial e elevado a uma potência especificada.

A

EXP(1)
Resultado: 2.71828 (o valor de e).

121
Q

Retorna a raiz quadrada de um número.

A

SQRT(16)
Resultado: 4

122
Q

Retorna um indicador do sinal do número

A

SIGN(-45)
Resultado: -1.

-1 se o número for negativo;
0 se for nulo;
1 se for positivo.

123
Q

Retorna o valor absoluto do número (sem o sinal).

A

ABS(-45)
Resultado: 45.

124
Q

Retorna o resto da divisão de dois números.

A

MOD(10, 3) – 10 dividido por 3, resto
Resultado: 1.

125
Q

Extrai partes específicas de uma data, como ano, mês, dia, etc.

A

EXTRACT(YEAR FROM SYSDATE) – Extrai o ano da data atual
EXTRACT(MONTH FROM TO_DATE(‘30/11/2024’, ‘DD/MM/YYYY’)) – Extrai o mês

126
Q

Converte uma string (texto) em um número.

A

TO_NUMBER(‘123.45’) – Converte o texto para número

127
Q

Substitui valores NULL (nulos) por um valor padrão.

A

NVL(NULL, 0) – Substitui NULL por 0

128
Q

Retorna o maior valor entre os argumentos fornecidos.

A

GREATEST(10, 20, 5)
GREATEST(‘2024-11-30’, ‘2023-01-01’) – Compara datas

129
Q

Significado de DML

A

Data Manipulation Language: Refere-se aos comandos usados para manipular dados dentro das tabelas.

Principais comandos:

SELECT: Recupera dados de tabelas.
INSERT: Insere novos registros em uma tabela.
UPDATE: Atualiza registros existentes em uma tabela.
DELETE: Remove registros de uma tabela.

130
Q

Significado de DCL:

A

Data Control Language: Refere-se aos comandos que controlam permissões e acessos ao banco de dados.

Principais comandos:

GRANT: Concede permissões a usuários.
REVOKE: Revoga permissões concedidas anteriormente.

131
Q

Significado de DDL:

A

Data Definition Language: Envolve comandos para definir e modificar a estrutura do banco de dados e seus objetos (como tabelas, índices, etc.).

Principais comandos:

CREATE: Cria um novo objeto, como uma tabela ou banco de dados.
ALTER: Modifica um objeto existente.
DROP: Remove um objeto do banco de dados.
TRUNCATE: Remove todos os registros de uma tabela (não pode ser revertido).

132
Q

Significado de TCL:

A

Transaction Control Language: Refere-se aos comandos usados para gerenciar transações no banco de dados, garantindo integridade e consistência.

Principais comandos:

COMMIT: Finaliza a transação e salva as alterações.
ROLLBACK: Reverte a transação em caso de erro.
SAVEPOINT: Define um ponto de recuperação dentro de uma transação.
SET TRANSACTION: Configura propriedades para a transação.