Title: Análise de Dados / SQL
Tags: Análise_de_Dados Resumo
On every note of this deck, unless a note says otherwise:
tldr: SQL (Structured Query Language) é a linguagem padrão para gerenciar bancos de dados relacionais por meio de sublinguagens:
- DCL (Data Control Language): Controla acessos com GRANT (concede permissões), REVOKE (revoga), DENY (nega explicitamente, sobrescreve outros) e WITH GRANT OPTION (permite delegação).
- TCL (Transaction Control Language): Garante integridade em transações com COMMIT (finaliza alterações), ROLLBACK (desfaz até ponto salvo), SAVEPOINT (define pontos de restauração). Níveis de isolamento: READ UNCOMMITTED (leituras sujas possíveis), READ COMMITTED (sem leituras sujas), REPEATABLE READ (leituras consistentes, fantasmas possíveis), SERIALIZABLE (isolamento total, menor concorrência).
- DDL (Data Definition Language): Define estruturas com CREATE (cria objetos como tabelas/views), ALTER (modifica, ex.: adiciona/remove colunas), DROP (exclui objeto inteiro), TRUNCATE (limpa dados da tabela, mantém estrutura), RENAME (altera nomes).
- DML (Data Manipulation Language): Manipula dados com INSERT INTO (insere linhas), UPDATE (atualiza via SET e WHERE), DELETE (remove linhas via WHERE; sem WHERE esvazia como TRUNCATE).
- DQL (Data Query Language): Recupera dados via SELECT (de tabelas com WHERE etc., criando resultados virtuais).
- Cláusulas e Operadores:
- Operadores: Matemáticos (+, -, *, /, %); Lógicos (AND, OR, NOT); Comparação (=, <>, > etc.; IS NULL para nulos); Agregação (SUM, AVG, MAX, MIN, COUNT, VAR; DISTINCT para únicos).
- Filtragem: FROM (tabelas, aliases para produto cartesiano multi-tabelas), WHERE (condições de linhas), LIMIT/OFFSET (limites de linhas), LIKE (%/_ para padrões de texto).
- Ordenação: GROUP BY (agrupa duplicados), ORDER BY (ASC/DESC por coluna/posição), HAVING (filtra grupos).
- Subconsultas: IN (combina com lista), BETWEEN (intervalo inclusivo), ALL (combina com todos os resultados da subconsulta), ANY (combina com qualquer), EXISTS (verifica existência, NOT para ausência).
- Especiais: CASE (lógica if-else), COLLATE (trata acentos/case: AI/AS, CI/CS, BIN para exato; codificações como UTF-8).
- Junções (combinam tabelas por colunas equivalentes via ON):
- FULL OUTER JOIN: Todas as linhas de ambas, nulos onde sem correspondência.
- INNER JOIN: Apenas linhas correspondentes (interseção, sem nulos).
- LEFT JOIN: Todas da esquerda, correspondentes da direita ou nulos.
- RIGHT JOIN: Todas da direita, correspondentes da esquerda ou nulos.
- Operações de Conjunto (combinam consultas compatíveis; eliminam duplicados, salvo com ALL):
- UNION: Combina resultados (união de conjuntos).
- INTERSECT: Apenas comuns (interseção).
- EXCEPT: Linhas exclusivas da primeira consulta (diferença).
link: https://documentacao.online/estudos/9jmb.html

front: (FGV/SEFAZ MT/2023) No contexto da concessão de privilégios/permissões na administração de bancos de dados relacionais, assinale a opção que indica dois dos comandos básicos disponíveis na maior parte dos SGDB.
a) ADD e DELETE.
b) ALLOW e CONSTAINT.
c) ATTACH e DETACH.
d) GRANT e REVOKE.
e) INSERT e REMOVE.
response: Letra D
comment: Os comandos básicos de controle de nível de acesso, abrigados na sublinguagem DCL, são o GRANT e REVOKE. Usualmente, também temos o DENY acompanhando esses comandos.
title: SQL
Other fields (not shown on cards):
back: Letra D - Os comandos básicos de controle de nível de acesso, abrigados na sublinguagem DCL, são o GRANT e REVOKE. Usualmente, também temos o DENY acompanhando esses comandos.

front: (FGV/DPE RS/2023) Júlia é a administradora do banco de dados da empresa KASA, onde será implantado o novo sistema estratégico da empresa, para fornecimento de relatórios gerenciais em tempo real. No sistema antigo, o perfil GERENTE permitia acesso aos dados operacionais, para que eles fossem tratados em planilhas, mas agora os relatórios serão gerados a partir de visualizações específicas, diretamente na nova ferramenta. Para impedir o acesso aos dados operacionais e permitir o acesso às novas visualizações, Júlia utilizou, respectivamente, os comandos:
a) Drop e Create;
b) Delete e Insert;
c) Rollback e Commit;
d) Revoke e Grant;
e) Alter e Use.
response: Letra D
comment: Novamente, percebe-se o apreço que a FGV tem com esses comandos. Para impedir e permitir o acesso, usamos REVOKE e GRANT, respectivamente.
title: SQL
Other fields (not shown on cards):
back: Letra D - Novamente, percebe-se o apreço que a FGV tem com esses comandos. Para impedir e permitir o acesso, usamos REVOKE e GRANT, respectivamente.

front: (CEBRASPE/PREF. FORTALEZA/2023) Julgue o item a seguir, a respeito de arquitetura de dados, metadados e linguagens de bancos de dados. Comandos expressos em linguagem de definição de dados (DDL) são utilizados para criar estruturas de um banco de dados, e o seu processamento irá incluir ou alterar metadados desse mesmo banco de dados.
response: Certo
comment: Ótima questão do Cebraspe. O DDL, de fato, faz as alterações na estrutura do banco de dados, mais notoriamente nas tabelas, mas não limitados a elas. Pensando nesse sentido, os metadados são justamente os dados que passam essa definição da estrutura do banco de dados ao SGBD, como, por exemplo, quantas e quais colunas uma tabela tem, qual seu tipo de dado etc. Nesse sentido sim, o DDL realmente inclui ou altera os metadados do banco de dados.
title: SQL
Other fields (not shown on cards):
back: Certo - Ótima questão do Cebraspe. O DDL, de fato, faz as alterações na estrutura do banco de dados, mais notoriamente nas tabelas, mas não limitados a elas. Pensando nesse sentido, os metadados são justamente os dados que passam essa definição da estrutura do banco de dados ao SGBD, como, por exemplo, quantas e quais colunas uma tabela tem, qual seu tipo de dado etc. Nesse sentido sim, o DDL realmente inclui ou altera os metadados do banco de dados.

front: (CEBRASPE/PREF. FORTALEZA/2023) Julgue o item a seguir, a respeito de arquitetura de dados, metadados e linguagens de bancos de dados. A manipulação de dados armazenados em um banco de dados é feita por meio de DML (Data Manipulation Language), linguagem na qual é possível apenas descrever os dados que se deseja acessar, sem especificar como obtê-los.
response: Errado
comment: O DML realmente é a linguagem de manipulação dos dados - focando completamente nos dados, e não nos outros objetos do banco de dados. Porém, podemos fazer muitas operações além da descrição, além de ser possível especificar métodos de como obtê-los, através das cláusulas.
title: SQL
Other fields (not shown on cards):
back: Errado - O DML realmente é a linguagem de manipulação dos dados - focando completamente nos dados, e não nos outros objetos do banco de dados. Porém, podemos fazer muitas operações além da descrição, além de ser possível especificar métodos de como obtê-los, através das cláusulas.

front: (CEBRASPE/DATAPREV/2023) Em relação às linguagens de banco de dados SQL, DDL e DML, julgue o item a seguir. Na DDL, que é uma linguagem declarativa, é descrito o que se deseja fazer, em vez de como fazê- lo, como comandos para definir tabelas e procedures, tal qual exemplificado a seguir. CREATE TABLE (col1 int, col2 int, col3 int)
response: Certo
comment: Certinho, meu caro aluno. O DDL, ou Data Definition Language, é a sublinguagem responsável por definir as estruturas dos objetos da tabela, lidando diretamente com os metadados. Quanto ao comando, completamente certo - quando virem alguma notação do tipo , o par de símbolos < > indica que um valor genérico, que pode (e deve) ser substituído.
title: SQL
Other fields (not shown on cards):
back: Certo - Certinho, meu caro aluno. O DDL, ou Data Definition Language, é a sublinguagem responsável por definir as estruturas dos objetos da tabela, lidando diretamente com os metadados. Quanto ao comando, completamente certo - quando virem alguma notação do tipo , o par de símbolos < > indica que um valor genérico, que pode (e deve) ser substituído.

front: (CEBRASPE/DATAPREV/2023) Em relação às linguagens de banco de dados SQL, DDL e DML, julgue o item a seguir. A DML é uma linguagem que interage com os objetos do banco de dados, em vez de interagir com os dados.
response: Errado
comment: Pelo contrário! A DML é uma linguagem direcionada a lidar diretamente com os dados, ao contrário de linguagens como o DDL, que lidam com os objetos em si.
title: SQL
Other fields (not shown on cards):
back: Errado - Pelo contrário! A DML é uma linguagem direcionada a lidar diretamente com os dados, ao contrário de linguagens como o DDL, que lidam com os objetos em si.

front: (FCC/TRT 23/2022) Na linguagem SQL são respectivamente comandos DML, DDL e DCL:
a) DROP, LOCK TABLE e GRANT
b) UPDATE, CALL e ALTER
c) CREATE, INSERT e GRANT
d) MERGE, TRUNCATE e REVOKE
e) RENAME, DELETE e DROP
response: Letra D
comment: Vamos encontrar a alternativa que traz comandos DML, DDL e DCL, respectivamente. a) Errado. Os comandos são DDL, DCL e DCL. b) Errado. Os comandos são DML, sem classificação e DDL. O comando CALL é específico para procedimentos armazenados, exclusivo a alguns SGBDs, e foge dessa classificação. c) Errado. Os comandos são DDL, DML e DCL. d) Certo. Temos, respectivamente, um comando DML, DDL e DCL. e) Errado. Os comandos são DDL, DML e DDL.
title: SQL
Other fields (not shown on cards):
back: Letra D - Vamos encontrar a alternativa que traz comandos DML, DDL e DCL, respectivamente. a) Errado. Os comandos são DDL, DCL e DCL. b) Errado. Os comandos são DML, sem classificação e DDL. O comando CALL é específico para procedimentos armazenados, exclusivo a alguns SGBDs, e foge dessa classificação. c) Errado. Os comandos são DDL, DML e DCL. d) Certo. Temos, respectivamente, um comando DML, DDL e DCL. e) Errado. Os comandos são DDL, DML e DDL.

front: (CEBRASPE/BANRISUL/2022) No que se refere à álgebra relacional e a SQL, julgue o item a seguir. Na linguagem SQL, os comandos GRANT e REVOKE são exemplos do subconjunto DDL (linguagem de definição de dados), pois definem o acesso aos dados do banco.
response: Errado
comment: Cuidado! GRANT e REVOKE são comandos do subconjunto DCL, e não DDL. Os comandos do DDL envolvem, entre outros, CREATE, ALTER, DROP, TRUNCATE e RENAME.
title: SQL
Other fields (not shown on cards):
back: Errado - Cuidado! GRANT e REVOKE são comandos do subconjunto DCL, e não DDL. Os comandos do DDL envolvem, entre outros, CREATE, ALTER, DROP, TRUNCATE e RENAME.

front: (FCC/TRT 14/2022) No contexto da SQL, os comandos classificados, correta e respectivamente, como DCL, DML e DDL, são:
a) Revoke, Insert e Alter.
b) Grant, Drop e Create.
c) Update, Select e Insert.
d) Revoke, Create e Alter.
e) Drop, Grant e Delete.
response: Letra A
comment: Vamos analisar as alternativas, procurando os comandos DCL, DML e DDL, respectivamente. a) Certo. DCL, DML, DDL. b) Errado. DCL, DDL, DDL. c) Errado. DDL, DML (ou DQL) e DML. d) Errado. DCL, DDL, DDL. e) Errado. DDL, DCL, DML.
title: SQL
Other fields (not shown on cards):
back: Letra A - Vamos analisar as alternativas, procurando os comandos DCL, DML e DDL, respectivamente. a) Certo. DCL, DML, DDL. b) Errado. DCL, DDL, DDL. c) Errado. DDL, DML (ou DQL) e DML. d) Errado. DCL, DDL, DDL. e) Errado. DDL, DCL, DML.

front: (FCC/TRT 5/2022) Um técnico utilizou os comandos SQL insert, create, delete e drop em um programa que são, correta e respectivamente, comandos
a) DDL − DDL − DCL − DDL.
b) DML − DCL − DCL − DML.
c) DCL − DML − DCL − DCL.
d) DDL − DML − DCL − DML.
e) DML − DDL − DML − DDL.
response: Letra E
comment: Vamos classificar os comandos: • INSERT → DML • CREATE → DDL • DELETE → DML • DROP →DDL
title: SQL
Other fields (not shown on cards):
back: Letra E - Vamos classificar os comandos: • INSERT → DML • CREATE → DDL • DELETE → DML • DROP →DDL

front: (CEBRASPE/AGENTE PF/2021) Com referência a conceitos de banco de dados relacionais, julgue o item subsequente. Na linguagem SQL (structured query language), DTL (data transaction language) são comandos responsáveis por gerenciar diferentes transações ocorridas dentro de um banco de dados.
response: Certo
comment: Primeiro, lembrem-se que o DTL é um nome alternativo para o TCL. Indo em pontos mais técnicos, o DTL é uma sublinguagem do SQL, da qual TCL corresponde a um conjunto de operações - e como na maior parte das questões as operações cobradas são justamente do TCL, acabamos intercambiando esses nomes. Nesse sentido, o DTL realmente são comandos responsáveis por gerenciar transações, como COMMIT e ROLLBACK.
title: SQL
Other fields (not shown on cards):
back: Certo - Primeiro, lembrem-se que o DTL é um nome alternativo para o TCL. Indo em pontos mais técnicos, o DTL é uma sublinguagem do SQL, da qual TCL corresponde a um conjunto de operações - e como na maior parte das questões as operações cobradas são justamente do TCL, acabamos intercambiando esses nomes. Nesse sentido, o DTL realmente são comandos responsáveis por gerenciar transações, como COMMIT e ROLLBACK.

front: (CEBRASPE/TJ AM/2019) Julgue o próximo item, relativos a sistema gerenciador de banco de dados (SGBD). Um SGBD trata do acesso ao banco e pode ser executado independentemente pelo Oracle, MySQL ou PostgreSQL; no entanto, cada SGBD utiliza DML (data manipulation language) e DDL (data definition language) específicas.
response: Certo
comment: Apesar de termos um padrão global do SQL (padrão ANSI/ISO), nada impede que cada SGBD tenha seus próprios comandos. Por exemplo, no MySQL e SQL Server, para alterarmos o tipo de dados de uma coluna, usamos o comando ALTER COLUMN nome_coluna novo_tipo, já no Oracle, é usado MODIFY nome_coluna novo_tipo.
title: SQL
Other fields (not shown on cards):
back: Certo - Apesar de termos um padrão global do SQL (padrão ANSI/ISO), nada impede que cada SGBD tenha seus próprios comandos. Por exemplo, no MySQL e SQL Server, para alterarmos o tipo de dados de uma coluna, usamos o comando ALTER COLUMN nome_coluna novo_tipo, já no Oracle, é usado MODIFY nome_coluna novo_tipo.