SQL (Structured Query Language) Flashcards

1
Q

O que é o SQL? Pra que ele funciona?

A

• É uma linguagem universal pra “conversar” com o banco de dados.
• É uma linguagem declarativa, o usuário pede uma coisa “X” e o sistema se vira para achar esses dados.
• Esse pedido ou pergunta tem que ser feito de uma forma que o banco de dados entenda, por isso a SQL é utilizada ela é a linguagem que o computador entende.
Ex: - Select * from Curso -

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

Em quais grandes grupos o SQL é dividido?

A

• DML = Manipulação
- Interagem diretamente com as LINHAS de uma tabela.
- É usado para inserir (inssert), deletar (delete), selecionar (select), atualizar (update)

• DDL = Definição
- Interage com a TABELA como um todo.
- Parte que cria o “esqueleto do banco de dados” - CREATE (criar), ALTER (alterar), DROP’S (excluir)

• DCL = Controle
- Controla a parte de segurança do banco de dados.
- Parte responsável por dar ou tirar autorização dos usuários. - Grant / Revoke

• DTL = Transacional
- Responsabilidade por gerir a transação, fazendo com que ela se realize e se der erro em alguma parte volte ao estado de origem. COMMIT, ROLLBACK (voltar)

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

Quem é responsável por fazer a definição dos dados no SQL?

A

DDL - Linguagem de Definição de Dados

  • DDL é um subconjunto dos comandos SQL que podem ser utilizados para definir ou descrever um esquema de um banco de dados, permitindo criar ou modificar a estrutura de objetos de uma base de dados relacional.

COMANDOS DO DDL:
• CREATE - Comando utilizado para criar tabelas (e outros objetos) de um banco de dados.
• DROP - Comando utilizado para deletar uma tabela (e outros objetos) de um banco de dados.
• TRUNCATE - Comando utilizado para apagar os dados de uma tabela de um banco de dados.
•ALTER - Comando utilizado para manipular colunas ou restrições de um banco de dados.
• RENAME - Comando utilizado para renomear uma tabela de um banco de dados.

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

Quem é responsável por fazer a manipulação do banco de dados em um SQL?

A

DML - Linguagem de Manipulação de Dados
• Essa linguagem possui um conjunto de comandos que podem ser utilizados para
realizar transações em um banco de dados (inserir, excluir, deletar ou consultar)

COMANDOS DO DML:
• SELECT - Comando utilizado para realizar consultas a dados de uma ou mais tabelas do banco de dados.
• INSERT- Comando utilizado para inserir um registro em uma tabela do banco de dados.
• UPDATE - Comando utilizado para mudar (atualizar) valores de dados de registros de uma tabela do banco de dados.
• DELETE - Comando utilizado para remover registros de uma tabela do banco de dados.

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

Quais são as principais cláusulas utilizadas na linguagem SQL?

A

• FROM - Diz onde selecionar, modificar os dados.
• JOIN - Combina linhas e registros de duas ou mais tabelas.
• WHERE - (Onde) - Permite a filtragem dos registros de uma tabela por meio de uma ou mais condições.
• GROUP BY - Essa cláusula buscará registros de uma tabela que possuem um valor em comum para um ou mais atributos e os agrupará baseado em algum critério de agrupamento (soma, média, quantidade, etc).
• HAVING - Trabalha junto com a Cláusula GROUP BY, filtrando os agrupamentos mostrando os itens que satisfaçam a condição.
• ORDER BY - Serve para ordenar os dados apresentados, em crescente (ASC) ou decrescente (DESC).
• LIMIT - Comando utilizado para limitar a quantidade de resultados.

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

Quais os tipos de combinações possíveis dentro da cláusula JOIN da linguagem SQL?

A

A Cláusula JOIN, serve para combinar linhas e registros de duas ou mais tabelas, podemos combiná-las de formas diferentes.

• INNER JOIN - Reteoena (seleciona) registros que possuem valores iguais em ambas as tabelas.

• LEFT/RIGTH JOIN - Retorna os registros da tabela da direita/esquerda e seus correspondentes do outro lado.

• FULL OUTER JOIN - Retorna todos os registros.

• SELF JOIN - Retorna registros de si mesmo, uma tabela relacionando seus próprios registros.

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

Qual o comando utilizado para indicar de onde os dados devem ser selecionados?

A

Cláusula: FROM.
Comando utilizado para indicar de onde os dados devem ser selecionados.

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

Qual o comando, utilizado para combinar linhas tabelas, com base em uma coluna em comum entre elas?

A

Cláusula JOIN
• Comando utilizado para combinar linhas tabelas, com base em uma coluna em comum entre elas.
Pode ser:
• INNER JOIN
• LEFT/RIGTH JOIN
• FULL OUTER JOIN
• SELF JOIN

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

Qua, o comando utilizado para filtrar dados?

A

• Comando : WHERE = Onde
Comando utilizado para filtrar os dados.
Diz de onde quer que os dados sejam selecionados, filtrados.
• Se for utilizada com os comandos UPDATE ou DELECT vai trazer uma expressão booleana que retornará com valor TRUE or FALSE.

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

Qual Comando é utilizado para ordenar os dados recuperados?

A

Comando: ORDER BY
Por meio dela, é possível ordenar registros/linhas de uma tabela em ordem crescente (ASC) ou decrescente (DESC).

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

O que o comando DISTINCT ordena?

A

Ele solicita que sejam selecionados os dados de umabtabela onde os registros duplicados serão eliminados.
Normalmente gera um produto carteziano quando pede mais de uma linha (pra isso separa por vigula) linhas coluna
exemplo:
select distinct from JOGO, CLUBE
Tabela jogo tem 3 linhas e a clube tem 6 (3x6=18)
Aí é necessário ver quantas são similares para serem excluídas.

☆ CUIDADO - PODE TER OUTRO COMANDO JUNTO PEDINDO UMA COLUAN ESPECIFICA, AI NESSE CASO NÃO VAI SER CALCULADO TUDO.

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

O que é esse comando?
- select distinct A
from R1
where A not in
(select B from R1)

A

Esse comando busca valores da coluna A que não constam na coluna B.

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

O que é esse comando?
SELECT DISTINCT * FROM A, B

A

Trata-se de um produto cartesiano, logo teremos (linhas de A) X (linhas de B)

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

O que o comando …WHERE NOME LIKE ‘A%’ faz?

A

Retorna valores que comecem com “A”.

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

O que i comando …WHERE NOME LIKE ‘%A’ faz?

A

Retorna valores que terminem com “A”.

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

O que o comando …WHERE NOME LIKE ‘%IO%’ faz?

A

Retorna valores que possuam “IO” em qualquer posição.

17
Q

O que o comando …WHERE NOME LIKE ‘_R%’ faz?

A

Retorna valores que possuam um caractere e depois a letra “R”.

18
Q

O que o comando …WHERE NOME LIKE ‘%A_’ faz?

A

Retorna valores que terminem com “A” mais apenas um caractere.

19
Q

O que o comando …WHERE NOME LIKE ‘A__%’ faz?

A

Retorna valores que comecem com “A” e possuem ao menos 3 caracteres.

20
Q

O que o comando …WHERE NOME LIKE ‘%A%O’ faz?

A

Retorna valores que possuam “A” depois “O” (imediatamente ou não).

21
Q

O módulo que se preocupa com o rearranjo e a possível reordenação de operações com a eliminação de redundâncias e uso de algoritmos e índices corretos durante a execução de uma consulta SQL, é denominado?

A

• Otimizador de Consultas.
Essas consultas são analisadas e validadas pela exatidão da sintaxe da consulta, os nomes de arquivos e elementos de dados, e assim por diante, por um compilador de consulta, que se preocupa com o rearranjo e a possível reordenação de operações, com a eliminação de redundâncias e uso dos algoritmos e índices corretos durante a execução

• Além disso, um dos pontos mais importantes do processo deotimização de consultasé o uso de ÍNDICES. Umíndiceé uma estrutura de dados desenvolvida paraagilizar a busca de informações

22
Q

Quais as principais restrições (CONSTRAINTS)
da utilizadas na linguagem SQL?

A

• Not null = Garante que uma coluna não possa ter um valor nulo.
• Unique Garante = que todos os valores de uma coluna sejam diferentes entre si.
• Primary key = Garante que todos os valores de uma coluna sejam diferentes entre si e não nulos.
• Foreign key = Garante que ações não destruam links/relacionamentos entre as tabelas.
• Check Garante = que os valores em uma coluna satisfaçam uma condição específica.
• Default Define = um valor padrão para uma coluna, se nenhum valor for especificado.

23
Q

Qual a estratégia mais comum dos gerenciadores de bancos na lida com valores nulos?

A

A estratégia mais comum é adotar a lógica ternária, ou lógica de três valores.

A forma mais comum é a lógica bivalente, ou seja, algo é verdadeira ou é falso.

Na lógica ternária algo pode ser
• verdadeira,
• falso ou
• desconhecido (Unknown)

24
Q

Quais as classificações da linguagem orientada a objetos?

A

• Classes
• Objryos
• Atributos
• Método
• Abstração
• Encapsulamento
• Herança
• Poliformismo

25
Q

não é possível excluir um cliente que tenha notas fiscais emitidas contra ele. Essa restrição normalmente é especificada pela cláusula …

A

“ON DELETE RESTRICT” nos SGBDs
É uma forma de restrição de integridade referencial

26
Q

uma visão é uma tabela virtual baseada no conjunto de resultados de uma instrução SQL.

Uma visão contém linhas e colunas, assim como uma tabela real. Os campos em uma visão são campos de uma ou mais tabelas reais no banco de dados.

Uma view é basicamente usada para 2 propósitos:

A

• Serve para que os usuários não tenha que escrever toda a query envolvendo uma ou mais tabelas mais de uma vez, ou seja, toda vez que precisar de um conjunto de resultado complexo, ele executa uma view, facilitando a escrita de consultas complexas, evitando repetitividade.
• Serve para que usuários que não possuam acesso a várias tabelas, possam rodar uma consulta e consigam ver só o que for necessário e autorizado dessas tabelas

27
Q

O que é o dirty read?

A

O problema da leitura suja (ou, em inglês, dirty read) acontece quando uma transação lê o valor de um dado alterado por outra transação que ainda não foi confirmada. Se ocorrer algum problema nessa transação que não foi confirmada e ela precisar ser abortada, todas as alterações serão desfeitas mas a primeira transação leu o valor incorreto.

A propriedade do isolamento garante que cada transação é executada de forma isolada. Dessa forma, uma transação que ainda não foi concluída não irá afetar a execução de outra transação que esteja ocorrendo.

A propriedade flexibilizada quando ocorre um dirty read é justamente a do ISOLAMENTO, porque uma leitura de uma transação é afetada por conta de uma alteração realizada em outra transação que ainda não foi confirmada.

28
Q

O que significa inserir uma restrição do tipo ;
- FK (RA) REFERENCES ALUNO (RA) ON DELETE CASCADE.

A

A chave estrangeira(FK) RA da tabela MATRICULA foi definida com a restrição “ON DELETE CASCADE”.
Isso significa que qualquer exclusão na tabela ALUNO será propagada para a tabela MATRICULA.

Dessa forma, se um aluno for excluído da tabela ALUNO, a linha da tabela MATRICULA que referencia esse aluno também é automaticamente excluída.

Quando essa restrição não for inserida numa referência a chave estrangeira Não especificar nenhuma restrição é o mesmo que especificar a restrição ON DELETE NO ACTION.

Dessa forma, não será possível excluir uma linha da tabela DISCIPLINA que esteja sendo referenciada na tabela MATRICULA.

☆ Em resumo a restrição (ON DELETE CASCADE) permite que um dado utilizado como chave estrangeira exclua todas as referências da tabela caso ele epseja excluído da tabela principal.

29
Q

Qual a função de um módulo compilador de comandos DML?

A

O principal objetivo desse componente é verificar se a sintaxe do comando SQL está correta e, caso esteja, a consulta é traduzida para instruções de mais baixo nível. Posteriormente, o módulo otimizador de consultas irá gerar planos de execução e escolherá o de menor custo para ser executado

30
Q

O comando where … not null tem que ser usado com o ordenador

A

“Is”
o comparador para valores null é o “IS NULL” ou “IS NOT NULL”

31
Q

(select count(*) from T3 twhere t3.A = t.A) > 1
O que significa?

A

SELECT COUNT(*) : projeção da quantidade de registros (usa-se a função agregada COUNT )

FROM T3 T: da tabela T3 que usará um apelido de T

WHERE T3.A = T.A : só contará os registros que tiverem em ambas as tabelas com a coluna A igual em T (que é T3) e T3