Você está na página 1de 46

Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

Aula 00
Curso: Informática – Teoria e Questões
comentadas p/ TRF
Aula 04Professor: Gustavo Cavalcante
Curso: Tecnologia da Informação para ICMS-SC
`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ
Resumo + Questões Comentadas
/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
Professor: Ramon Souza ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

Aula 04 – Noções básicas de linguagem SQL: Consulta, Cláusula


WHERE, Operadores Condicionais: Lógicos, LIKE e NOT LIKE, IN e
NOT IN. Ordenação; Agrupamento; Junções (JOINS).

ASSUNTOS PÁGINA
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

1. SQL .............................................................................................. 3
1.1 Introdução ao SQL ............................................................................ 3
1.2 A instrução SELECT ........................................................................... 5
1.3 Ordenação com SELECT ................................................................... 14
1.4 Funções de agregação ..................................................................... 16
1.5 Agrupamentos com SELECT .............................................................. 17
1.6 Junções (joins) ............................................................................... 19
2. QUESTÕES COMENTADAS ............................................................. 21
3. LISTAS DE EXERCÍCIOS ................................................................ 36
4. GABARITO ................................................................................... 46
5. REFERÊNCIAS .............................................................................. 46

Para facilitar sua referência, abaixo listamos as esquematizações desta aula:


Esquema 1 – Linguagem SQL e subdivisões. ...................................................................... 3
Esquema 2 – Sintaxe básica da instrução SELECT. .............................................................. 5
Esquema 3 – Condições na cláusula WHERE. ...................................................................... 7
Esquema 4 – Exemplos de padrões para a operação com LIKE. ............................................ 9
Esquema 5 – Cláusulas para definir mais de uma condição e negação de condição. ................ 11
Esquema 6 – Instrução SELECT. ...................................................................................... 13
Esquema 7 – Cláusula ORDER BY. .................................................................................... 14
Esquema 8 – Funções de agregação. ................................................................................ 16
Esquema 9 – Cláusula GROUP BY e HAVING. ..................................................................... 17
Esquema 10 – Tipos de JOIN. .......................................................................................... 19

Prof. Ramon Souza 2 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
1. SQL

1.1 Introdução ao SQL

A linguagem SQL (Structured Query Language – Linguagem de


Consulta Estruturada) é a linguagem padrão para acesso e manipulação
de bancos de dados.
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

Por ser um padrão, ela é foi um dos principais motivos para o sucesso
dos bancos de dados comerciais, pois os usuários possuem liberdade para
alternar entre os SGBDs, sem ter que mudar os códigos SQL. Contudo, vale
mencionar que existem diferentes versões da linguagem SQL que fogem um
pouco do padrão.
A linguagem SQL possui comandos para acesso e manipulação dos
dados, mas também para a criação, exclusão e alteração das tabelas, índices e
demais estruturas de bancos de dados, além de comandos para controlar os
dados e transações. Dada essa amplitude, geralmente se fala em subdivisões
da linguagem, geralmente tratando-se dos seguintes subgrupos:

SQL

DML DDL DCL DTL

DQL VDL SDL


Definir tabelas Controlar o
Manipulação de Tratar as
e elementos acesso aos
dados transações
associados dados

Específica para
Somente o Específica para
armazenament
SELECT visões
o
SELECT CREATE GRANT COMMIT

INSERT ALTER REVOKE ROLLBACK

UPDATE DROP

DELETE

Esquema 1 – Linguagem SQL e subdivisões.

Prof. Ramon Souza 3 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

1- (FCC - 2017 - TST - Técnico Judiciário –


Programação) Um Programador:
I. criou uma tabela e uma view em um banco de dados relacional.
II. alterou a estrutura da tabela.
III. incluiu registros na tabela.
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

Os comandos SQL utilizados nas operações realizadas em I, II e III enquadram-


se, correta e respectivamente, no âmbito da
a) DDL − DML − DDL.
b) DML − DML − DDL.
c) DML − DDL − DDL.
d) DDL − DML − DML.
e) DDL − DDL − DML.
Resolução:

SQL

DML DDL DCL DTL

DQL Definir VDL SDL Controlar o


Manipulação tabelas e Tratar as
acesso aos
de dados elementos transações
dados
associados

Específica
Somente o Específica para
SELECT para visões armazename
SELECT CREATE nto GRANT COMMIT

INSERT ALTER REVOKE ROLLBACK

UPDATE DROP

DELETE

Vamos analisar cada item da questão.


I. DDL (CREATE): criou uma tabela e uma view em um banco de dados
relacional.
II. DDL (ALTER): alterou a estrutura da tabela.
III. DML (INSERT): incluiu registros na tabela.
Gabarito: Letra E.

Prof. Ramon Souza 4 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
1.2 A instrução SELECT

A instrução básica para recuperar informações de um banco de


dados é a instrução SELECT. É importante ressaltar que esta instrução não
realiza a mesma função que a operação de seleção da álgebra
relacional.
A sintaxe básica de uma instrução SELECT é da seguinte forma:
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE condição;


Esse comando permite recuperar os valores das colunas de uma tabela
que cumprem uma determinada condição.

É possível realizar uma consulta sem indicar colunas específicas,


retornando-se todas as colunas, basta usar o * do seguinte modo:
SELECT * FROM nome_da_tabela WHERE condição;

É possível realizar uma instrução SELECT mesmo sem indicar nenhuma


condição e, portanto, a cláusula WHERE é opcional. Assim, teremos a forma
mais simples:
SELECT coluna1, coluna2, ... FROM nome_da_tabela;

Em uma tabela, frequentemente, uma coluna pode conter valores


duplicados e, algumas vezes, estamos interessados somente nos valores
diferentes. Para isso, usa-se a cláusula DISTINCT após o SELECT. Ao usar
SELECT DISTINCT, somente serão retornados os valores diferentes ou
distintos, isto é, não são exibidos valores duplicados. A sintaxe é:
SELECT DISTINCT coluna1, coluna2, ... FROM nome_da_tabela
WHERE condição;

Diante do visto até agora, a sintaxe básica é esquematizada a seguir:

SELECT FROM WHERE

•lista_de_atributos
•condição
•* retorna todos os
atributos. •nome_tabela
•Opcional, mas
geralmente usada.
•DISTINCT elimina
duplicidades.

Esquema 2 – Sintaxe básica da instrução SELECT.

Prof. Ramon Souza 5 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

2- (FCC - 2016 - TRT - 20ª REGIÃO (SE) - Técnico


Judiciário - Tecnologia da Informação) Considere que exista uma tabela
denominada com os campos e
. Um Técnico com especialidade em TI foi solicitado a apresentar
todos os nomes de advogados cadastrados sem repetição. Para isso o Técnico
deve utilizar o comando SQL
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

a)

b)

c)

d)

e)
Resolução:
Em uma tabela, frequentemente, uma coluna pode conter valores duplicados e,
algumas vezes, estamos interessados somente nos valores diferentes. Para isso,
usa-se a cláusula DISTINCT após o SELECT. Ao usar SELECT DISTINCT,
somente serão retornados os valores diferentes ou distintos, isto é, não são
exibidos valores duplicados. A sintaxe é:
SELECT DISTINCT coluna1, coluna2, ... FROM nome_da_tabela WHERE
condição;
A questão pede para selecionar (SELECT) sem repetição (DISTINCT) todos os
nomes de advogados da (FROM) tabela TabProcessos. Assim temos a seguinte
consulta: SELECT DISTINCT NomeAdvogado FROM TabProcessos;
Gabarito: Letra D.

Prof. Ramon Souza 6 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
Condições

A condição é uma expressão condicional (booleana) que identifica


tuplas a serem recuperadas. Em SQL, os operadores básicos de comparação
usados na clásula WHERE são:

= igual
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

< menor

<= menor ou igual


Condições

> maior

>= maior ou igual

<> diferente

BETWEEN registros em um intervalo

LIKE procurar padrão

IN possíveis valores

Esquema 3 – Condições na cláusula WHERE.

Operador BETWEEN

O operador BETWEEN recupera os registros que estão em um


determinado intervalo. Os valores podem ser números, texto ou datas e tanto
os valores de início como o de fim são incluídos.

A sintaxe básica com esse operador é:


SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE coluna
BETWEEN valor1 AND valor2;

3- (FCC - 2017 - TRE-PR - Técnico Judiciário -


Programação de Sistemas) Em um banco de dados aberto e em condições
ideais, uma tabela chamada processo possui os registros abaixo.
NumeroProcesso DataAbertura
1279678-05.2016.1.00.0001 2016-12-26
4598765-03.2017.1.90.0002 2017-01-15
6789764-02.2016.1.80.0003 2016-03-30
9876534-05.2016.1.00.0000 2016-03-20

Prof. Ramon Souza 7 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
Ao ser digitado um comando SQL, foi exibido na tela.
NumeroProcesso DataAbertura
6789764-02.2016.1.80.0003 2016-03-30
9876534-05.2016.1.00.0000 2016-03-20
O comando digitado foi:
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

a) SELECT * FROM processo WHERE DataAbertura BETWEEN '2016-03-01' AND


'2016-03-30';
b) SELECT NumeroProcesso, DataAbertura FROM processo WHERE
DataAbertura BETWEEN ('2016-03- 01','2016-03-30');
c) SELECT * FROM processo WHERE DataAbertura>='2016-03-01' OR
DataAbertura<='2016-03-30';
d) SELECT NumeroProcesso, DataAbertura FROM processo WHERE
DataAbertura IN ('2016-03-20' AND '2016-03-30');
e) SELECT * FROM processo WHERE DataAbertura>'2016-03-20' AND
DataAbertura<'2016-03-30';
Resolução:
A questão pede uma consulta que traga o número do processo e a data abertura,
cuja data esteja em um determinado intervalo de tempo.
O operador BETWEEN recupera os registros que estão em um determinado
intervalo. Os valores podem ser números, texto ou datas e tanto os valores de
início como o de fim são incluídos.
A sintaxe básica com esse operador é:
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE coluna
BETWEEN valor1 AND valor2;
Assim, temos a consulta SELECT * FROM processo WHERE DataAbertura
BETWEEN '2016-03-01' AND '2016-03-30';
Gabarito: Letra A.

Operador IN

O operador IN permite especificar múltiplos valores para uma


condição, isto é, a condição será testada com base na lista de valores indicada.

A sua sintaxe básica é:


SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE coluna IN
(valor1, valor2, ...);

Prof. Ramon Souza 8 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
Operador LIKE

O operador LIKE é utilizado para procurar um padrão em uma coluna.


Este operador permite a comparação com parte de uma cadeia de caracteres.
Este operador é usado em conjunto com dois elemenos curinga (wildcard):
▪ % substitui um número qualquer de 0 ou mais caracteres.
▪ _ substitui um único caractere.
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

A sintaxe com esse operador é:


SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE coluna
LIKE padrão;

Você pode definir uma série de padrões para a consulta, mas o quadro a
seguir apresenta alguns significados básicos para os padrões:

Expressão Resultado

LIKE ‘A%’ Qualquer string que inicie com A.

LIKE ‘%A’ Qualquer string que termine com A.

LIKE ‘%A%’ Qualquer string que tenha A em qualquer posição.

String de dois caracteres que tenha a primeira letra A e o


LIKE ‘A_’
segundo caractere seja qualquer outro.

String de dois caracteres cujo primeiro caractere seja


LIKE ‘_A’
qualquer um e a última letra seja a letra A.

String de três caracteres cuja segunda letra seja A,


LIKE ‘_A_’
independentemente do primeiro ou do último caractere.

Qualquer string que tenha a letra A na penúltima posição


LIKE ‘%A_’
e a última seja qualquer outro caractere.

Qualquer string que tenha a letra A na segunda posição e


LIKE ‘_A%’
o primeiro caractere seja qualquer outro caractere.

LIKE ‘_ _ _’ Qualquer string com exatamente três caracteres.

LIKE ‘_ _ _%’ Qualquer string com pelo menos três caracteres.

Qualquer string que tenha o caractere ' em qualquer


LIKE ‘%”%’
posição.
Esquema 4 – Exemplos de padrões para a operação com LIKE.

Prof. Ramon Souza 9 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

4- (FCC - 2018 - Prefeitura de São Luís - MA - Auditor


Fiscal de Tributos I - Tecnologia da Informação (TI)) Um Auditor está
executando operações em uma tabela chamada cidadao de um banco de dados
aberto e em condições ideais. Para exibir os dados de todas as pessoas que
possuem na segunda letra do campo nome a vogal a, deve-se utilizar a instrução
SQL:
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

SELECT * FROM cidadao WHERE


a) nome = '*a';
b) nome LIKE '_a%';
c) nome CONTAINS('a',2);
d) nome LIKE '*a';
e) nome HAVE(2,'a');
Resolução:
Para busca parcial de string, o SELECT fornece o operador LIKE. Alguns
exemplos de expressões com strings usando o operador LIKE são mostrados na
tabela abaixo.

Expressão Resultado

LIKE ‘A%’ Qualquer string que inicie com A.

LIKE ‘%A’ Qualquer string que termine com A.

LIKE ‘%A%’ Qualquer string que tenha A em qualquer posição.

String de dois caracteres que tenha a primeira letra A e o segundo


LIKE ‘A_’
caractere seja qualquer outro.

String de dois caracteres cujo primeiro caractere seja qualquer um e a


LIKE ‘_A’
última letra seja a letra A.

String de três caracteres cuja segunda letra seja A, independentemente


LIKE ‘_A_’
do primeiro ou do último caractere.

Qualquer string que tenha a letra A na penúltima posição e a última seja


LIKE ‘%A_’
qualquer outro caractere.

Qualquer string que tenha a letra A na segunda posição e o primeiro


LIKE ‘_A%’
caractere seja qualquer outro caractere.

LIKE ‘_ _ _’ Qualquer string com exatamente três caracteres.

LIKE ‘_ _ _%’ Qualquer string com pelo menos três caracteres.

LIKE ‘%”%’ Qualquer string que tenha o caractere ' em qualquer posição.

Assim, temos que SELECT * FROM cidadao WHERE nome LIKE ‘_a%’ traz
todos os cidadãos que tem a vogal a na segunda letra do nome.
Gabarito: Letra B.

Prof. Ramon Souza 10 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
Mais de uma condição e negação de condição

Uma cláusula WHERE pode conter mais de uma condição, sendo


possível usar operadores lógicos para indicar a união entre as condições:
▪ AND: exibe os registros em que todas as condições são verdadeiras.
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE
condição1 AND condição2 AND condição3 ...;
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

▪ OR: exibe os registros em que pelo menos uma condição é verdadeira.


SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE
condição1 OR condição2 OR condição3 ...;

Também é possível recuperar os registram que não safisfazem uma


determinada condição. Basta usar o NOT antes da condição.
▪ NOT: exibe os registros que não satisfazem uma condição.
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE NOT
condição;

•Registros em que todas as condições são verdadeiras.

AND
•SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE condição1
AND condição2 AND condição3 ...;

•Registros em que pelo menos uma das condições é


verdadeira.

OR •SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE condição1


OR condição2 OR condição3 ...;

•Registros que não satisfazem uma condição.

NOT •SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE NOT


condição;

Esquema 5 – Cláusulas para definir mais de uma condição e negação de condição.

Prof. Ramon Souza 11 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

5- (FCC - 2017 - DPE-RS - Técnico - Informática)


Solicitou-se a um Técnico selecionar em um banco de dados padrão SQL todos
os registros da tabela processo cujo conteúdo do campo cidade_origem não
contenha os valores Brasília ou Campinas. Para isso, utilizou a instrução SELECT
* FROM processo
a) WHEN cidade_origem NOT ('Brasília' OR 'Campinas');
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

b) WHERE cidade_origem NOT IN ('Brasília','Campinas');


c) LIKE cidade_origem IS NOT ('Brasília','Campinas');
d) WHERE cidade_origem NOT IN ('Brasília' OR 'Campinas');
e) WHERE cidade_origem IS NOT ('Brasília';'Campinas');
Resolução:
Vamos analisar cada item:
a) Incorreto: WHEN cidade_origem NOT ('Brasília' OR 'Campinas'); A SQL não
prevê uma clausula para filtro de registro denominada WHEN. O
operador NOT exibe um registro se as condições não forem verdadeiras.
A sintaxe do operador NOT é: SELECT nome_coluna(s) FROM
nome_tabela WHERE NOT condicao;
b) Correto: WHERE cidade_origem NOT IN ('Brasília','Campinas');
O operador IN permite especificar múltiplos valores em uma clausula WHERE
(SELECT nome_coluna(s) FROM nome_tabela WHERE nome_coluna IN (valor1,
valor2 ...)).
O operador NOT pode ser utilizado junto ao operador IN para verificar
se uma coluna não está entre os valores definidos (SELECT
nome_coluna(s) FROM nome_tabela WHERE coluna NOT IN (valor1,
valor2, ...)).
c) Incorreto: LIKE cidade_origem IS NOT ('Brasília','Campinas'); LIKE não é
uma clausula para filtrar registros, é uma instrução para busca parcial
de string utilizada com a clausula WHERE. A SQL não prevê uma
instrução chamada IS NOT.
d) Incorreto: WHERE cidade_origem NOT IN ('Brasília' OR 'Campinas'); O
operador IN separa os valores por virgula.
e) Incorreto: WHERE cidade_origem IS NOT ('Brasília';'Campinas');
Gabarito: Letra B.

Prof. Ramon Souza 12 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
Um esquema geral sobre a sintaxe básica da instrução SELECT é:

mais de
uma
condição
Lista de
SELECT FROM tabela WHERE condição ou
atributos
negação
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

de
condição

<

<=

> AND
coluna1, coluna
2, ...

FROM tabela WHERE >= OR


ou

*
SELECT <> NOT

OU
BETWEEN
SELECT
DISTINCT
coluna1, coluna
2, ... LIKE

FROM tabela
ou
IN
*

Esquema 6 – Instrução SELECT.

Prof. Ramon Souza 13 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
1.3 Ordenação com SELECT

A linguagem SQL permite que o usuário ordene as tuplas no resultado


de uma consulta pelos valores de um ou mais atributos que aparecem, usando
a cláusula ORDER BY.
A ordem padrão está em ordem crescente de valores. A palavra-chave
DESC pode ser usada para ordenar os resultados em ordem decrescente de
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

valores. A palavra-chave ASC pode ser usada para especificar a ordem


crescente explicitamente.
A sintaxe básica para esse comando é:
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE condição
ORDER BY coluna ASC/DESC;

É importante destacar que é possível ordenar por mais de uma coluna,


bastando indicar as colunas e a ordem desejada. Assim, por exemplo, valem as
seguintes sintaxes:
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE condição
ORDER BY coluna1, coluna2 ASC;
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE condição
ORDER BY coluna1 ASC coluna2 DESC;

Ordem
colunas
crescente
Ordem
ORDER BY colunas ASC
crescente
Ordem
colunas DESC
decrescente
Esquema 7 – Cláusula ORDER BY.

Prof. Ramon Souza 14 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

6- (FCC - 2015 - TRT - 4ª REGIÃO (RS) - Técnico


Judiciário - Tecnologia da Informação) Considere que o Tribunal Regional
do Trabalho possua em seu Banco de Dados a tabela Processos descrita abaixo.
Nro_Processo Envolvido
1112222-12.2011.5.04.0000 Maria da Silva
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

3336666-36.2013.5.04.0000 Jose dos Santos


7779999-79.2015.5.04.0000 Antonio Alves
1234567-89.2012.5.04.0000 Jeronimo Souza
O comando SQL que traz todos os dados da tabela ordenados pela ordem
alfabética dos nomes dos envolvidos é:
a) SELECT *.* FROM Tabela_Processos ORDERED BY Envolvido;
b) SELECT * FROM Tabela_Processos ORDER BY Envolvido ASCENDING;
c) SELECT Nro_Processo AND Envolvido FROM Tabela_Processos ORDER BY
Envolvido ASC;
d) SELECT (Nro_Processo, Envolvido) FROM Processos ORDER BY
Nome_Envolvido;
e) SELECT * FROM Processos ORDER BY Envolvido ASC;
Resolução:
A linguagem SQL permite que o usuário ordene as tuplas no resultado de
uma consulta pelos valores de um ou mais atributos que aparecem, usando a
cláusula ORDER BY.
A ordem padrão está em ordem crescente de valores. A palavra-chave DESC
pode ser usada para ordenar os resultados em ordem decrescente de valores.
A palavra-chave ASC pode ser usada para especificar a ordem crescente
explicitamente.
A sintaxe básica para esse comando é:
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE condição ORDER
BY coluna ASC/DESC;
Logo, para selecionar os dados da tabela em ordem crescente podemos usar a
consulta a seguir:
SELECT * FROM Processos ORDER BY Envolvido ASC; OU
SELECT * FROM Processos ORDER BY Envolvido;
Gabarito: Letra E.

Prof. Ramon Souza 15 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
1.4 Funções de agregação

As funções de agregação são usadas para resumir informações de


várias tuplas em uma síntese de tupla única. Existem diversas funções de
agregação embutidas no SQL: COUNT, SUM, MAX, MIN e AVG.
A sintaxe básica para essas funções é:
SELECT FUNCAO(coluna1) FROM nome_da_tabela WHERE condição;
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

em que FUNCAO é qualquer uma das funções de agregação.

O quadro a seguir apresenta as definições dessas funções:


FUNÇÃO RETORNO
MIN Menor valor de uma coluna.
MAX Maior valor de uma coluna.
COUNT Número de linhas que atendem a um critério.
AVG Média dos valores de uma coluna numérica.
SUM Soma dos valores de uma coluna numérica.
Esquema 8 – Funções de agregação.

7- (FCC - 2017 - TRT - 11ª Região (AM e RR) - Técnico


Judiciário - Tecnologia da Informação) Considere que no TRT exista, em
um banco de dados, a tabela TRAB que possui como campos: nome, sexo,
salario de vários trabalhadores. Um Técnico foi solicitado a escrever um
comando SQL para obter a média salarial dos trabalhadores do sexo FEMININO.
O comando correto é:
a) SELECT sexo, AVG(salario) as MediaSalarial FROM TRAB GROUP BY sexo;
b) SELECT AVG(salario) FROM TRAB WHERE sexo=’FEMININO’;
c) SELECT sexo, AVG(salario) FROM TRAB GROUP BY sexo="FEMININO";
d) SELECT * FROM TRAB WHERE sexo='FEMININO' as AVG(salario);
e) SELECT sexo="FEMININO" FROM TRAB WHERE AVG(salario);
Resolução:
A função AVG() retorna a média de uma coluna numérica. A função AVG é
usada após a instrução SELECT. Sua sintaxe é:
SELECT AVG(nome_coluna) FROM nome_tabela WHERE condicao;
Assim, para selecionar (SELECT) a média (AVG) do salario dos funcionários da
tabela (FROM) TRAB com (WHERE) o sexo igual (=) a FEMININO temos a
consulta: SELECT AVG(salario) FROM TRAB WHERE sexo=’FEMININO’;
Gabarito: Letra B.

Prof. Ramon Souza 16 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
1.5 Agrupamentos com SELECT

Geralmente queremos aplicar as funções de agregação a subgrupos de


tuplas em uma relação, na qual os subgrupos são baseados em alguns valores
de atributo. Cada grupo (partição) consistirá nas tuplas que possuem o mesmo
valor de algum(ns) atributo(s), chamado(s) atributo(s) de agrupamento.
A linguagem SQL tem uma cláusula GROUP BY para aplicar
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

agrupamentos. Esta cláusula especifica os atributos de agrupamento, que


também devem aparecer na cláusula SELECT, de modo que o valor resultante
da aplicação de cada função de agregação a um grupo de tuplas apareça junto
com o valor do(s) atributo(s) de agrupamento.
A sintaxe básica da cláusula GROUP BY é:
SELECT colunas FROM nome_da_tabela WHERE condição GROUP BY
coluna;

A cláusula HAVING pode ser usada para definir uma condição para
um agrupamento com GROUP BY.
A sintaxe básica da cláusula GROUP BY com HAVING é:
SELECT colunas FROM nome_da_tabela WHERE condição GROUP BY
coluna HAVING condição;

condição com
GROUP BY coluna HAVING função
agregadora

Esquema 9 – Cláusula GROUP BY e HAVING.

Prof. Ramon Souza 17 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

8- (FCC - 2018 - DPE-AM - Assistente Técnico de


Defensoria - Programador) Considere que exista uma tabela denominada
TabProcessos que possui os seguintes campos: NroProcesso (tipo varchar),
NroVara (tipo int), CPFAutor (tipo varchar). Para que seja feita uma consulta
que resulte no total de processos em cada uma das varas, o comando SQL
correto é
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

a) SELECT NroVara, COUNT (NroProcesso) FROM TabProcessos;


b) SELECT NroVara, COUNT (NroProcesso) FROM TabProcessos GROUP BY
NroVara;
c) SELECT SUM (NroProcesso) FROM TabProcessos GROUP BY NroVara;
d) SELECT COUNT (NroProcesso) FROM TabProcessos HAVING NroVara;
e) SELECT NroVara, SUM (NroProcesso) FROM TabProcessos GROUP BY
NroVara;
Resolução:
Vamos analisar cada item.
a) Incorreto: A consulta retorna os números das varas e a quantidade
de todas as varas. Não separa por vara.
b) Correto: SELECT NroVara, COUNT (NroProcesso) FROM TabProcessos
GROUP BY NroVara;
A questão pede uma consulta (SELECT) do número da vara (NroVara),
a quantidade de processos de cada vara (COUNT) da tabela (FROM)
TabProcessos, agrupada (GROUP BY) pelo número da vara.
A função COUNT() retorna o número de linhas que combinam com o critério
especificado.
A função GROUP BY() é frequentemente utilizada com funções (COUNT, MAX,
MIN, SUM, AVG) para agrupar o resultado por uma ou mais colunas.
c) Incorreto: A função SUM() retorna o total da soma dos valores de uma
coluna numérica.
d) Incorreto: A cláusula HAVING pode ser usada para definir uma condição
para um agrupamento com GROUP BY.
e) Incorreto: A função SUM() retorna o total da soma dos valores de uma
coluna numérica.
Gabarito: Letra B.

Prof. Ramon Souza 18 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
1.6 Junções (joins)

Frequentemente, precisamos realizar consultas em mais de uma tabela.


Para permitir essas consultas são usadas as tabelas de junção, que
combinam duas ou mais tabelas baseando-se em colunas relacionadas.
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

As tabelas de junção são especificadas segundo a cláusula JOIN, que


podem ser dos seguintes tipos:

INNER JOIN
•Retorna somente os registros que possuem valores relacionados em ambas as tabelas,
isto é, as intersecções.

LEFT JOIN
•Retorna todos os registros da tabela da esquerda, e os registros relacionados da tabela
da direita.
•Preenche campos não relacionados na tabela da direita com NULL.

RIGHT JOIN
•Retorna todos os registros da tabela da direita, e os registros relacionados da tabela da
esquerda.
•Preenche campos não relacionados na tabela da esquerda com NULL

FULL OUTER JOIN


•Retorna todos os registros, independente de relação.
•Preenche campos não relacionados em qualquer das tabelas com NULL.

SELF JOIN
•União de uma tabela com ela mesma.

Esquema 10 – Tipos de JOIN.

A sintaxe básica para consultas com junções é:


SELECT colunas FROM tabela1 JOIN tabela2 ON tabela1.coluna =
tabela2.coluna;

Para o INNER JOIN, se as colunas em ambas as tabelas tiverem o mesmo


nome, podemos usar a cláusula USING:
SELECT colunas FROM tabela1 INNER JOIN tabela2 USING (coluna);

Prof. Ramon Souza 19 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

9- (FCC - 2015 - TRE-RR - Analista Judiciário - Análise


de Sistemas) Considere a instrução SQL a seguir:
SELECT Clientes.NomeCliente, Pedidos.PedidoID FROM Clientes
...I....
ON Clientes.ClienteID=Pedidos.ClienteID
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

ORDER BY Clientes.NomeCliente;
Esta instrução seleciona todas as linhas de ambas as tabelas, desde que haja
uma correspondência entre as colunas ClienteID. Se houver linhas na tabela
Clientes que não tem correspondentes na tabela Pedidos, esses clientes não
serão listados.
Para que a instrução dê o resultado descrito, a lacuna I deve ser preenchida
com
a) INNER JOIN Pedidos
b) LEFT JOIN
c) RIGHT OUTER JOIN
d) FULL OUTER JOIN
e) LEFT OUTER JOIN
Resolução:
A cláusula INNER JOIN (ou simplesmente JOIN) retorna somente os registros
que possuem valores relacionados em ambas as tabelas, isto é, as intersecções.

Gabarito: Letra A.

Prof. Ramon Souza 20 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
2. QUESTÕES COMENTADAS
SQL
10- (FCC - 2017 - TST - Técnico Judiciário – Programação) Para criar um
banco de dados relacional chamado Tribunal e excluir uma tabela chamada
Consulta, um Programador deverá escrever corretamente as expressões SQL
a) CREATE DATABASE Tribunal; e DELETE TABLE Consulta;
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

b) INSERT DATABASE Tribunal; e DELETE TABLE = Consulta;


c) CREATE DATABASE Tribunal; e DROP TABLE Consulta;
d) INSERT DATABASE Tribunal; e DROP TABLE Consulta;
e) INSERT DATABASE Tribunal; e DROP TABLE = Consulta;
Resolução:

SQL

DML DDL DCL DTL

DQL Definir VDL SDL Controlar o


Manipulação tabelas e Tratar as
acesso aos
de dados elementos transações
dados
associados

Específica
Somente o Específica para
SELECT para visões armazenamen
SELECT CREATE to GRANT COMMIT

INSERT ALTER REVOKE ROLLBACK

UPDATE DROP

DELETE

Vamos analisar cada item.


a) Incorreto: CREATE DATABASE Tribunal e DELETE TABLE Consulta;
b) Incorreto: INSERT DATABASE Tribunal; e DELETE TABLE = Consulta;
c) Correto: CREATE DATABASE Tribunal; e DROP TABLE Consulta;
d) Incorreto: INSERT DATABASE Tribunal; e DROP TABLE Consulta;
e) Incorreto: INSERT DATABASE Tribunal; e DROP TABLE = Consulta;
Gabarito: Letra C.

Prof. Ramon Souza 21 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
11- (FCC - 2017 - TRF - 5ª REGIÃO - Analista Judiciário - Informática
Desenvolvimento) Para localizar os juízes cujos nomes começam pela letra p
e têm pelo menos 3 caracteres de comprimento (incluindo p) utiliza-se a
instrução SELECT * FROM juizes WHERE nome
a) LIKE 'p_%_%';
b) BEGINS WITH 'p' AND LENGTH>=3;
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

c) HAS 'p' AND LENGTH>=3;


d) LIKE 'p%3%*';
e) HAS'p%3%*'
Resolução:
O operador LIKE é usado em uma cláusula WHERE para procurar um padrão
especificado em uma coluna. Alguns exemplos de expressões com strings
usando o operador LIKE são mostrados na tabela abaixo.

Expressão Resultado

LIKE ‘A%’ Qualquer string que inicie com A.

LIKE ‘%A’ Qualquer string que termine com A.

LIKE ‘%A%’ Qualquer string que tenha A em qualquer posição.

String de dois caracteres que tenha a primeira letra A e o


LIKE ‘A_’
segundo caractere seja qualquer outro.

String de dois caracteres cujo primeiro caractere seja


LIKE ‘_A’
qualquer um e a última letra seja a letra A.

String de três caracteres cuja segunda letra seja A,


LIKE ‘_A_’
independentemente do primeiro ou do último caractere.

Qualquer string que tenha a letra A na penúltima posição


LIKE ‘%A_’
e a última seja qualquer outro caractere.

Qualquer string que tenha a letra A na segunda posição e


LIKE ‘_A%’
o primeiro caractere seja qualquer outro caractere.

LIKE ‘_ _ _’ Qualquer string com exatamente três caracteres.

LIKE ‘_ _ _%’ Qualquer string com pelo menos três caracteres.

Qualquer string que tenha o caractere ' em qualquer


LIKE ‘%”%’
posição.
O padrão do item a) 'p_%_%' visa retornar os nomes que iniciam com p,
seguido necessariamente de um caractere, de uma cadeia qualquer, de mais
um caractere obrigatório e termine com uma cadeia qualquer.
Gabarito: Letra A.

Prof. Ramon Souza 22 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
12- (FCC - 2017 - TRE-SP - Analista Judiciário - Análise de Sistemas)
Em uma situação hipotética, ao ser designada para atender aos requisitos de
negócio de um usuário, uma Analista de Sistemas do TRE-SP escreveu
expressões e comandos para serem executados em um Banco de Dados
Relacional que visavam (1) criar uma tabela que contivesse dados de processos
partidários, (2) controlar a segurança e o acesso a ela e (3) manipular dados
nela. Desta forma ela, se valeu, correta e respectivamente, por exemplo, de
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

alguns elementos de expressões tais como:


a) CREATE, GRANT e ALTER. b) DROP, ALTER e UPDATE.
c) INSERT, INDEX e CREATE. d) INSERT, REVOKE e SELECT.
e) CREATE, REVOKE e INSERT.
Resolução:

SQL

DML DDL DCL DTL

DQL Definir VDL SDL Controlar o


Manipulação tabelas e Tratar as
acesso aos
de dados elementos transações
dados
associados

Específica
Somente o Específica para
SELECT para visões armazenamen
SELECT CREATE to GRANT COMMIT

INSERT ALTER REVOKE ROLLBACK

UPDATE DROP

DELETE

De acordo com as descrições temos que a questão pede um comando DDL para
(1), um comando DCL para (2) e um comando DML para (3).
a) Incorreto: CREATE (DDL), GRANT (DCL) e ALTER (DDL).
b) Incorreto: DROP (DDL), ALTER (DDL) e UPDATE (DML).
c) Incorreto: INSERT (DDL), INDEX (Não é comando) e CREATE (DDL).
d) Incorreto: INSERT (DDL), REVOKE (DCL) e SELECT (DQL).
e) Correto: CREATE (DDL), REVOKE (DCL) e INSERT (DML).
Gabarito: Letra E.

Prof. Ramon Souza 23 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
13- (FCC - 2017 - TST - Técnico Judiciário – Programação) Um
Programador pretende executar uma instrução SQL que recupere todos os
dados da tabela produto cujos preços (preco) sejam maiores ou iguais R$
100,00 e menores ou iguais a R$ 1.000,00. A expressão para isso é SELECT *
FROM produto
a) WHEN preco GREATER 99 AND LESS 1000;
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

b) WHERE preco BETWEEN 100 AND 1000;


c) LIKE preco BETWEEN 100 AND 1000;
d) WHERE preco IN (100, 1000);
e) JOIN preco INNER (100, 1000);
Resolução:
Vamos analisar cada item.
a) Incorreto: WHEN preco GREATER 99 AND LESS 1000;
SQL não prevê as instruções GREATER e LESS, prevê os operadores >
(greater than/maior que), >= (greater than or equal/maior que ou igual), <
(less than/menor que), <= (less than ou equal/menor que ou igual).
b) Correto: WHERE preco BETWEEN 100 AND 1000;
O operador BETWEEN recupera os registros que estão em um determinado
intervalo. Os valores podem ser números, texto ou datas e tanto os valores de
início como o de fim são incluídos.
A sintaxe básica com esse operador é:
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE coluna
BETWEEN valor1 AND valor2;
c) Incorreto: LIKE WHERE preco BETWEEN 100 AND 1000;
LIKE não é uma clausula para filtrar intervalos, é uma instrução para busca
parcial de string utilizada com a clausula WHERE.
d) Incorreto: WHERE preco IN (100, 1000);
O operador IN é utilizado para consultar uma tabela, filtrando o valor de um
campo a partir de uma lista de possibilidades, ou seja, ele verifica se o campo
tem um valor igual a um dos valores definidos.
e) Incorreto: JOIN preco INNER (100, 1000);
O INNER previsto no SQL é o INNER JOIN, seleciona registros que possuem
valores correspondentes nas duas tabelas.
Sua sintaxe é:
SELECT nome_coluna(s) FROM tabela1 INNER JOIN tabela2 ON
tabela1.nome_coluna = tabela2.nome_coluna;
Gabarito: Letra B.

Prof. Ramon Souza 24 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
14- (FCC - 2017 - TRT - 24ª REGIÃO (MS) - Técnico Judiciário -
Tecnologia da Informação) Para obter o número de funcionários cujo
conteúdo do campo nome da tabela funcionario termina com a letra o deve-se
utilizar a instrução SQL SELECT COUNT(*) FROM funcionario WHERE
a) nome LIKE '*o';
b) nome LIKE '%o';
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

c) SUBSTR(nome,LEN(nome)-1)='o';
d) nome CONTAINS '%o';
e) SUBSTR(nome,0)='o';
Resolução:
Para busca parcial de string, o SELECT fornece o operador LIKE. Alguns
exemplos de expressões com strings usando o operador LIKE são mostrados na
tabela abaixo.

Expressão Resultado

LIKE ‘A%’ Qualquer string que inicie com A.

LIKE ‘%A’ Qualquer string que termine com A.

LIKE ‘%A%’ Qualquer string que tenha A em qualquer posição.

String de dois caracteres que tenha a primeira letra A e o


LIKE ‘A_’
segundo caractere seja qualquer outro.

String de dois caracteres cujo primeiro caractere seja


LIKE ‘_A’
qualquer um e a última letra seja a letra A.

String de três caracteres cuja segunda letra seja A,


LIKE ‘_A_’
independentemente do primeiro ou do último caractere.

Qualquer string que tenha a letra A na penúltima posição


LIKE ‘%A_’
e a última seja qualquer outro caractere.

Qualquer string que tenha a letra A na segunda posição e


LIKE ‘_A%’
o primeiro caractere seja qualquer outro caractere.

LIKE ‘_ _ _’ Qualquer string com exatamente três caracteres.

LIKE ‘_ _ _%’ Qualquer string com pelo menos três caracteres.

Qualquer string que tenha o caractere ' em qualquer


LIKE ‘%”%’
posição.
Assim, temos que SELECT COUNT(*) FROM funcionario WHERE nome LIKE
‘%o’ traz a quantidade de funcionarios com nome terminado com a letra o.
Gabarito: Letra B.

Prof. Ramon Souza 25 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
15- (FCC - 2017 - TRT - 24ª REGIÃO (MS) - Técnico Judiciário -
Tecnologia da Informação) Em um banco de dados Oracle aberto e em
condições ideais há uma tabela chamada funcionario com os campos
idFuncionario (inteiro − primary key), nome (cadeia de caracteres) e salario
(real). Para exibir o nome e o salário de todos os funcionários cujo valor de
salário esteja fora do intervalo de 1000 a 12000 utiliza-se a instrução SQL
SELECT nome, salario FROM funcionario WHERE
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

a) salario<1000 AND salario>12000;


b) salario NOT BETWEEN 1000 OR 12000;
c) 1000>salario>12000;
d) salario NOT BETWEEN 1000 AND 12000;
e) salario BETWEEN 1000 AND 12000;
Resolução:
O operador BETWEEN recupera os registros que estão em um determinado
intervalo. Os valores podem ser números, texto ou datas e tanto os valores de
início como o de fim são incluídos.
A sintaxe básica com esse operador é:
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE coluna
BETWEEN valor1 AND valor2;
Já operador NOT exibe os registros que não satisfazem uma condição e têm a
seguinte sintaxe:
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE NOT condição;
Assim, na questão teríamos a seguinte consulta unindo as clásulusas BETWEEN
e NOT: SELECT nome, salario FROM funcionario WHERE salario NOT
BETWEEN 1000 AND 12000;
Gabarito: Letra D.

16- (FCC - 2017 - TRE-PR - Técnico Judiciário - Programação de


Sistemas) Em um banco de dados aberto e em condições ideais, uma tabela
processo possui um campo NumeroProcesso do tipo varchar2. Para selecionar
somente os registros cujo campo NumeroProcesso possua como segundo
caractere (da esquerda para a direita), o valor 2, utiliza-se a instrução SELECT
* FROM processo WHERE NumeroProcesso
a) CONTAINS(1, '2');
b) LIKE ' *2%';
c) CONTAINS LEFT(2, '2');
d) LIKE '_2%';

Prof. Ramon Souza 26 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
e) CONTAINS '_2%'
Resolução:
Para busca parcial de string, o SELECT fornece o operador LIKE. Alguns
exemplos de expressões com strings usando o operador LIKE são mostrados na
tabela abaixo.

Expressão Resultado
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

LIKE ‘A%’ Qualquer string que inicie com A.

LIKE ‘%A’ Qualquer string que termine com A.

LIKE ‘%A%’ Qualquer string que tenha A em qualquer posição.

String de dois caracteres que tenha a primeira letra A e o


LIKE ‘A_’
segundo caractere seja qualquer outro.

String de dois caracteres cujo primeiro caractere seja


LIKE ‘_A’
qualquer um e a última letra seja a letra A.

String de três caracteres cuja segunda letra seja A,


LIKE ‘_A_’
independentemente do primeiro ou do último caractere.

Qualquer string que tenha a letra A na penúltima posição


LIKE ‘%A_’
e a última seja qualquer outro caractere.

Qualquer string que tenha a letra A na segunda posição e


LIKE ‘_A%’
o primeiro caractere seja qualquer outro caractere.

LIKE ‘_ _ _’ Qualquer string com exatamente três caracteres.

LIKE ‘_ _ _%’ Qualquer string com pelo menos três caracteres.

Qualquer string que tenha o caractere ' em qualquer


LIKE ‘%”%’
posição.
Assim, temos que SELECT * FROM processo WHERE NumeroProcesso LIKE
‘_2%’ traz todos os processos que tem ao menos dois caracteres e o segundo
número do campo NumeroProcesso é 2.
Gabarito: Letra D.

17- (FCC - 2017 - ARTESP - Agente de Fiscalização à Regulação de


Transporte - Tecnologia de Informação) Considere, por hipótese, que no
banco de dados da ARTESP exista uma tabela denominada TabPSAD com os
campos IdRodovia, Posto_Servico, Area_Descanso, Vagas_Estacionamento. Um
Agente de Fiscalização à Regulação de Transporte utilizou os comandos SQL
para fazer consultas aos dados desta tabela:
I. SELECT IdRodovia FROM TabPSAD WHERE Vagas_Estacionamento > 300;

Prof. Ramon Souza 27 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
II. SELECT COUNT (DISTINCT IdRodovia) FROM TabPSAD;
III. SELECT IdRodovia, ADD (Vagas_Estacionamento) FROM TabPSAD GROUP
BY Area_Descanso;
Está correto o que consta em
a) II, apenas.
b) I e III, apenas.
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

c) III, apenas.
d) I e II, apenas.
e) I, II e III.
Resolução:
Vamos analisar cada item da questão.
I. Correto: SELECT IdRodovia FROM TabPSAD WHERE Vagas_Estacionamento
> 300; Seleciona o IdRodovia na tabela TabPSAD, das rodovias com mais de
300 vagas de estacionamento. A sintaxe do comando SELECT é: SELECT
nome_coluna(s) FROM nome_tabela WHERE condicao;
II. Correto: SELECT COUNT (DISTINCT IdRodovia) FROM TabPSAD; Seleciona
a quantidade de rodovias com IdRodovia distintos da tabela TabPSAD. A sintaxe
do SELECT com COUNT e DISTINCT é: SELECT nome_coluna(s)
COUNT(DISTINCT nome_coluna, [nome_coluna(s)]) FROM nome_tabela
WHERE condicao;
III. Incorreto: SELECT IdRodovia, ADD (Vagas_Estacionamento) FROM
TabPSAD GROUP BY Area_Descanso IdRodovia;
A instrução GROUP BY deve ser realizado sobre uma ou mais colunas
constantes no SELECT. O comando ADD é utilizado junto ao comando ALTER
TABLE e não SELECT.
Gabarito: Letra D.

18- (FCC - 2017 - DPE-RS - Analista - Banco de Dados) Seja a seguinte


tabela de um banco de dados relacional: Objeto (ID, Nome, Peso, Descrição).
A consulta SQL para obter o Nome e o Peso dos objetos com a restrição do Peso
estar entre os valores 2 e 18 é:
a) SELECT Nome AND Peso
OF Objeto
HAVING Peso IN (2; 18);
b) SELECT Nome, Peso
FROM Objeto

Prof. Ramon Souza 28 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
WHERE Peso IS BETWEEN 2 TO 18;
c) SELECT Objeto (Nome, Peso)
HAVING Peso INSIDE (2; 18);
d) SELECT Objeto (Nome, Peso)
FOR Peso INSIDE (2;18);
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

e) SELECT Nome, Peso


FROM Objeto
WHERE Peso BETWEEN 2 AND 18;
Resolução:
O operador BETWEEN recupera os registros que estão em um determinado
intervalo. Os valores podem ser números, texto ou datas e tanto os valores de
início como o de fim são incluídos.
A sintaxe básica com esse operador é:
SELECT coluna1, coluna2, ... FROM nome_da_tabela WHERE coluna
BETWEEN valor1 AND valor2;
Seguindo o que a questão pede, temos a consulta: SELECT Nome, Peso FROM
Objeto WHERE Peso BETWEEN 2 AND 18;
Gabarito: Letra E.

19- (FCC - 2016 - Prefeitura de Teresina - PI - Analista Tecnológico -


Analista de Suporte Técnico) Considere a consulta em linguagem SQL
abaixo:
SELECT Nome
FROM T
WHERE Nome LIKE “A%S”
Um dos resultados para essa consulta é
a) avião, andes.
b) pastas, sacos.
c) astro, seca.
d) secos, abas.
e) aves, araras.
Resolução:
Para busca parcial de string, o SELECT fornece o operador LIKE. Alguns
exemplos de expressões com strings usando o operador LIKE são mostrados na
tabela abaixo.

Prof. Ramon Souza 29 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

Expressão Resultado

LIKE ‘A%’ Qualquer string que inicie com A.

LIKE ‘%A’ Qualquer string que termine com A.

LIKE ‘%A%’ Qualquer string que tenha A em qualquer posição.


Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

String de dois caracteres que tenha a primeira letra A e o


LIKE ‘A_’
segundo caractere seja qualquer outro.

String de dois caracteres cujo primeiro caractere seja


LIKE ‘_A’
qualquer um e a última letra seja a letra A.

String de três caracteres cuja segunda letra seja A,


LIKE ‘_A_’
independentemente do primeiro ou do último caractere.

Qualquer string que tenha a letra A na penúltima posição


LIKE ‘%A_’
e a última seja qualquer outro caractere.

Qualquer string que tenha a letra A na segunda posição e


LIKE ‘_A%’
o primeiro caractere seja qualquer outro caractere.

LIKE ‘_ _ _’ Qualquer string com exatamente três caracteres.

LIKE ‘_ _ _%’ Qualquer string com pelo menos três caracteres.

Qualquer string que tenha o caractere ' em qualquer


LIKE ‘%”%’
posição.
SELECT Nome
FROM T
WHERE Nome LIKE “A%S”
Assim temos que a consulta SELECT Nome FROM T WHERE Nome LIKE “A%S”
traz as strings que começam com a letra A e terminam com a letra S.
Vamos analisar cada item.
a) Incorreto: avião, andes.
b) Incorreto: pastas, sacos.
c) Incorreto: astro, seca.
d) Incorreto: secos, abas.
e) Correto: aves, araras.
Gabarito: Letra E.

Prof. Ramon Souza 30 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
20- (FCC - 2016 - Prefeitura de Teresina - PI - Analista Tecnológico -
Analista de Suporte Técnico) Considere a seguinte tabela de um banco de
dados relacional:
Item (ID, Nome, Valor, Tipo)
A consulta em linguagem SQL para obter o Tipo e o valor médio dos itens,
considerando itens de mesmo tipo é
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

a) SELECT Tipo, Valor_Médio


FROM Item
ORDER BY Tipo
b) SELECT Tipo, SUM(Valor)
FROM Item
HAVING SAME Tipo
c) SELECT Tipo, AVG (Valor)
FROM Item
GROUP BY Tipo
d) SELECT Tipo, COUNT (Valor)
FROM Item
WHERE Tipo IN SET
e) SELECT Tipo, Média (Valor)
FROM Item
Resolução:
Vamos analisar cada item.
a) Incorreto: SELECT Tipo, Valor_Médio FROM Item ORDER BY Tipo. Não
existe uma coluna chamada Valor_Médio. ORDER BY é usado para
ordenar o resultado de forma ascendente ou descendente.
b) Incorreto: SELECT Tipo, SUM(Valor) FROM Item HAVING SAME Tipo. A
função SUM() retorna o total da soma dos valores de uma coluna
numérica. A função HAVING é utilizada em conjunto com a função
GROUP BY. No SQL não existe uma instrução SAME.
c) Correto: SELECT Tipo, AVG (Valor) FROM Item GROUP BY Tipo.
A função AVG() retorna a média de uma coluna numérica. A função AVG
é usada após a instrução SELECT. Sua sintaxe é: SELECT
AVG(nome_coluna) FROM nome_tabela WHERE condicao;
A função GROUP BY() é frequentemente utilizada com funções (OUNT,
MAX, MIN, SUM, AVG) para agrupar o resultado por uma ou mais
colunas.

Prof. Ramon Souza 31 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
d) Incorreto: SELECT Tipo, COUNT (Valor) FROM Item WHERE Tipo IN SET.
Nesse caso não a necessidade de uma cláusula WHERE. Não existe o
comando IN SET.
A função COUNT() retorna o número de linhas que combinam com o
critério especificado.
e) Incorreto: SELECT Tipo, Média (Valor) FROM Item. Não existe o comando
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

Média.
Gabarito: Letra C.

21- (FCC - 2016 - TRT - 14ª Região (RO e AC) - Técnico Judiciário -
Tecnologia da Informação) Para selecionar na tabela Colaboradores de um
banco de dados relacional, aberto e em condições ideais, todos os registros cujo
conteúdo do campo nome não inicie pela palavra 'Mar' utiliza-se o comando
SELECT * FROM Colaboradores WHERE nome
a) NOT LIKE 'Mar%';
b) IS NOT 'Mar%';
c) <> 'Mar*';
d) NOT LIKE 'Mar*';
e) != 'Mar%';
Resolução:
Para busca parcial de string, o SELECT fornece o operador LIKE. Alguns
exemplos de expressões com strings usando o operador LIKE são mostrados na
tabela abaixo.

Expressão Resultado

LIKE ‘A%’ Qualquer string que inicie com A.

LIKE ‘%A’ Qualquer string que termine com A.

LIKE ‘%A%’ Qualquer string que tenha A em qualquer posição.

String de dois caracteres que tenha a primeira letra A e o


LIKE ‘A_’
segundo caractere seja qualquer outro.

String de dois caracteres cujo primeiro caractere seja


LIKE ‘_A’
qualquer um e a última letra seja a letra A.

String de três caracteres cuja segunda letra seja A,


LIKE ‘_A_’
independentemente do primeiro ou do último caractere.

Qualquer string que tenha a letra A na penúltima posição


LIKE ‘%A_’
e a última seja qualquer outro caractere.

Prof. Ramon Souza 32 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

Qualquer string que tenha a letra A na segunda posição e


LIKE ‘_A%’
o primeiro caractere seja qualquer outro caractere.

LIKE ‘_ _ _’ Qualquer string com exatamente três caracteres.

LIKE ‘_ _ _%’ Qualquer string com pelo menos três caracteres.

Qualquer string que tenha o caractere ' em qualquer


LIKE ‘%”%’
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

posição.
Assim, temos que SELECT * FROM Colaboradores WHERE nome LIKE 'Mar%'
traz todos os colaboradores que começam com ‘Mar’.
Como a questão solicita os colaboradores que não iniciem com essa cadeia de
caracteres, então devemos usar a cláusula NOT e, portanto, a consulta a seguir:
SELECT * FROM Colaboradores WHERE nome NOT LIKE 'Mar%';
Gabarito: Letra D.

22- (FCC - 2015 - DPE-SP - Administrador de Banco de Dados) Considere


a seguinte consulta feita em SQL padrão:
SELECT Tipo
FROM Catálogo
WHERE Tipo IN (‘gde’, ‘médio’, ‘pequeno’)
Uma consulta SQL equivalente é:
a) SELECT Tipo
FROM Catálogo
WHERE Tipo = ‘gde’ AND Tipo = ‘médio’ AND Tipo = ‘pequeno’
b) SELECT Tipo
FROM Catálogo
GROPU BY Tipo
c) SELECT Tipo
FROM Catálogo
WHERE Tipo = ‘gde’ OR Tipo = ‘médio’ OR Tipo = ‘pequeno’
d) SELECT Tipo
FROM Catálogo
WHERE Tipo BETWEEN (‘pequeno’, ‘médio’, ‘gde’)
e) SELECT Tipo
FROM Catálogo
HAVING Tipo LIKE (‘gde’, ‘médio’, ‘pequeno’)

Prof. Ramon Souza 33 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
Resolução:
O operador IN permite especificar múltiplos valores para uma condição,
isto é, a condição será testada com base na lista de valores indicada.
Basta que o registro satisfaza a qualquer uma das condições para ser retornado,
logo, equivale a uma operação com múltiplas cláusulas OR.
Gabarito: Letra C.
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

23- (FCC - 2015 - DPE-SP - Administrador de Banco de Dados) Considere


a seguinte consulta feita em SQL padrão:
SELECT Produto
FROM Mercadoria
WHERE Produto LIKE ('%er%')
Um possível resultado obtido a partir dessa consulta é:
a) torneira, persiana.
b) feira, celular.
c) registro, cerca.
d) prego, prendedor.
e) caderno, energia.
Resolução:
Para busca parcial de string, o SELECT fornece o operador LIKE. Alguns
exemplos de expressões com strings usando o operador LIKE são mostrados na
tabela abaixo.

Expressão Resultado

LIKE ‘A%’ Qualquer string que inicie com A.

LIKE ‘%A’ Qualquer string que termine com A.

LIKE ‘%A%’ Qualquer string que tenha A em qualquer posição.

String de dois caracteres que tenha a primeira letra A e o


LIKE ‘A_’
segundo caractere seja qualquer outro.

String de dois caracteres cujo primeiro caractere seja


LIKE ‘_A’
qualquer um e a última letra seja a letra A.

String de três caracteres cuja segunda letra seja A,


LIKE ‘_A_’
independentemente do primeiro ou do último caractere.

Qualquer string que tenha a letra A na penúltima posição


LIKE ‘%A_’
e a última seja qualquer outro caractere.

Prof. Ramon Souza 34 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza

Qualquer string que tenha a letra A na segunda posição e


LIKE ‘_A%’
o primeiro caractere seja qualquer outro caractere.

LIKE ‘_ _ _’ Qualquer string com exatamente três caracteres.

LIKE ‘_ _ _%’ Qualquer string com pelo menos três caracteres.

Qualquer string que tenha o caractere ' em qualquer


LIKE ‘%”%’
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

posição.
Assim temos que a consulta SELECT Produto FROM Mercadoria WHERE Produto
LIKE ('%er%') traz as strings que começam possuem ‘er’ em qualquer posição.
Vamos analisar cada item.
a) Incorreto: torneira, persiana.
b) Incorreto: feira, celular.
c) Incorreto: registro, cerca.
d) Incorreto: prego, prendedor.
e) Correto: caderno, energia.
Gabarito: Letra E.

Prof. Ramon Souza 35 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
3. LISTAS DE EXERCÍCIOS
Questões comentadas durante a aula.
1- (FCC - 2017 - TST - Técnico Judiciário – Programação) Um
Programador:
I. criou uma tabela e uma view em um banco de dados relacional.
II. alterou a estrutura da tabela.
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

III. incluiu registros na tabela.


Os comandos SQL utilizados nas operações realizadas em I, II e III enquadram-
se, correta e respectivamente, no âmbito da
a) DDL − DML − DDL.
b) DML − DML − DDL.
c) DML − DDL − DDL.
d) DDL − DML − DML.
e) DDL − DDL − DML.

2- (FCC - 2016 - TRT - 20ª REGIÃO (SE) - Técnico Judiciário -


Tecnologia da Informação) Considere que exista uma tabela denominada
com os campos e .
Um Técnico com especialidade em TI foi solicitado a apresentar todos os nomes
de advogados cadastrados sem repetição. Para isso o Técnico deve utilizar o
comando SQL

a)

b)

c)

d)

e)

3- (FCC - 2017 - TRE-PR - Técnico Judiciário - Programação de


Sistemas) Em um banco de dados aberto e em condições ideais, uma tabela
chamada processo possui os registros abaixo.
NumeroProcesso DataAbertura
1279678-05.2016.1.00.0001 2016-12-26
4598765-03.2017.1.90.0002 2017-01-15
6789764-02.2016.1.80.0003 2016-03-30

Prof. Ramon Souza 36 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
9876534-05.2016.1.00.0000 2016-03-20
Ao ser digitado um comando SQL, foi exibido na tela.
NumeroProcesso DataAbertura
6789764-02.2016.1.80.0003 2016-03-30
9876534-05.2016.1.00.0000 2016-03-20
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

O comando digitado foi:


a) SELECT * FROM processo WHERE DataAbertura BETWEEN '2016-03-01' AND
'2016-03-30';
b) SELECT NumeroProcesso, DataAbertura FROM processo WHERE
DataAbertura BETWEEN ('2016-03- 01','2016-03-30');
c) SELECT * FROM processo WHERE DataAbertura>='2016-03-01' OR
DataAbertura<='2016-03-30';
d) SELECT NumeroProcesso, DataAbertura FROM processo WHERE
DataAbertura IN ('2016-03-20' AND '2016-03-30');
e) SELECT * FROM processo WHERE DataAbertura>'2016-03-20' AND
DataAbertura<'2016-03-30';

4- (FCC - 2018 - Prefeitura de São Luís - MA - Auditor Fiscal de


Tributos I - Tecnologia da Informação (TI)) Um Auditor está executando
operações em uma tabela chamada cidadao de um banco de dados aberto e em
condições ideais. Para exibir os dados de todas as pessoas que possuem na
segunda letra do campo nome a vogal a, deve-se utilizar a instrução SQL:
SELECT * FROM cidadao WHERE
a) nome = '*a';
b) nome LIKE '_a%';
c) nome CONTAINS('a',2);
d) nome LIKE '*a';
e) nome HAVE(2,'a');

5- (FCC - 2017 - DPE-RS - Técnico - Informática) Solicitou-se a um


Técnico selecionar em um banco de dados padrão SQL todos os registros da
tabela processo cujo conteúdo do campo cidade_origem não contenha os
valores Brasília ou Campinas. Para isso, utilizou a instrução SELECT * FROM
processo
a) WHEN cidade_origem NOT ('Brasília' OR 'Campinas');
b) WHERE cidade_origem NOT IN ('Brasília','Campinas');

Prof. Ramon Souza 37 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
c) LIKE cidade_origem IS NOT ('Brasília','Campinas');
d) WHERE cidade_origem NOT IN ('Brasília' OR 'Campinas');
e) WHERE cidade_origem IS NOT ('Brasília';'Campinas');

6- (FCC - 2015 - TRT - 4ª REGIÃO (RS) - Técnico Judiciário -


Tecnologia da Informação) Considere que o Tribunal Regional do Trabalho
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

possua em seu Banco de Dados a tabela Processos descrita abaixo.


Nro_Processo Envolvido
1112222-12.2011.5.04.0000 Maria da Silva
3336666-36.2013.5.04.0000 Jose dos Santos
7779999-79.2015.5.04.0000 Antonio Alves
1234567-89.2012.5.04.0000 Jeronimo Souza
O comando SQL que traz todos os dados da tabela ordenados pela ordem
alfabética dos nomes dos envolvidos é:
a) SELECT *.* FROM Tabela_Processos ORDERED BY Envolvido;
b) SELECT * FROM Tabela_Processos ORDER BY Envolvido ASCENDING;
c) SELECT Nro_Processo AND Envolvido FROM Tabela_Processos ORDER BY
Envolvido ASC;
d) SELECT (Nro_Processo, Envolvido) FROM Processos ORDER BY
Nome_Envolvido;
e) SELECT * FROM Processos ORDER BY Envolvido ASC;

7- (FCC - 2017 - TRT - 11ª Região (AM e RR) - Técnico Judiciário -


Tecnologia da Informação) Considere que no TRT exista, em um banco de
dados, a tabela TRAB que possui como campos: nome, sexo, salario de vários
trabalhadores. Um Técnico foi solicitado a escrever um comando SQL para obter
a média salarial dos trabalhadores do sexo FEMININO. O comando correto é:
a) SELECT sexo, AVG(salario) as MediaSalarial FROM TRAB GROUP BY sexo;
b) SELECT AVG(salario) FROM TRAB WHERE sexo=’FEMININO’;
c) SELECT sexo, AVG(salario) FROM TRAB GROUP BY sexo="FEMININO";
d) SELECT * FROM TRAB WHERE sexo='FEMININO' as AVG(salario);
e) SELECT sexo="FEMININO" FROM TRAB WHERE AVG(salario);

Prof. Ramon Souza 38 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
8- (FCC - 2018 - DPE-AM - Assistente Técnico de Defensoria -
Programador) Considere que exista uma tabela denominada TabProcessos que
possui os seguintes campos: NroProcesso (tipo varchar), NroVara (tipo int),
CPFAutor (tipo varchar). Para que seja feita uma consulta que resulte no total
de processos em cada uma das varas, o comando SQL correto é
a) SELECT NroVara, COUNT (NroProcesso) FROM TabProcessos;
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

b) SELECT NroVara, COUNT (NroProcesso) FROM TabProcessos GROUP BY


NroVara;
c) SELECT SUM (NroProcesso) FROM TabProcessos GROUP BY NroVara;
d) SELECT COUNT (NroProcesso) FROM TabProcessos HAVING NroVara;
e) SELECT NroVara, SUM (NroProcesso) FROM TabProcessos GROUP BY
NroVara;

9- (FCC - 2015 - TRE-RR - Analista Judiciário - Análise de Sistemas)


Considere a instrução SQL a seguir:
SELECT Clientes.NomeCliente, Pedidos.PedidoID FROM Clientes
...I....
ON Clientes.ClienteID=Pedidos.ClienteID
ORDER BY Clientes.NomeCliente;
Esta instrução seleciona todas as linhas de ambas as tabelas, desde que haja
uma correspondência entre as colunas ClienteID. Se houver linhas na tabela
Clientes que não tem correspondentes na tabela Pedidos, esses clientes não
serão listados.
Para que a instrução dê o resultado descrito, a lacuna I deve ser preenchida
com
a) INNER JOIN Pedidos
b) LEFT JOIN
c) RIGHT OUTER JOIN
d) FULL OUTER JOIN
e) LEFT OUTER JOIN

Prof. Ramon Souza 39 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
SQL
10- (FCC - 2017 - TST - Técnico Judiciário – Programação) Para criar um
banco de dados relacional chamado Tribunal e excluir uma tabela chamada
Consulta, um Programador deverá escrever corretamente as expressões SQL
a) CREATE DATABASE Tribunal; e DELETE TABLE Consulta;
b) INSERT DATABASE Tribunal; e DELETE TABLE = Consulta;
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

c) CREATE DATABASE Tribunal; e DROP TABLE Consulta;


d) INSERT DATABASE Tribunal; e DROP TABLE Consulta;
e) INSERT DATABASE Tribunal; e DROP TABLE = Consulta;

11- (FCC - 2017 - TRF - 5ª REGIÃO - Analista Judiciário - Informática


Desenvolvimento) Para localizar os juízes cujos nomes começam pela letra p
e têm pelo menos 3 caracteres de comprimento (incluindo p) utiliza-se a
instrução SELECT * FROM juizes WHERE nome
a) LIKE 'p_%_%';
b) BEGINS WITH 'p' AND LENGTH>=3;
c) HAS 'p' AND LENGTH>=3;
d) LIKE 'p%3%*';
e) HAS'p%3%*'

12- (FCC - 2017 - TRE-SP - Analista Judiciário - Análise de Sistemas)


Em uma situação hipotética, ao ser designada para atender aos requisitos de
negócio de um usuário, uma Analista de Sistemas do TRE-SP escreveu
expressões e comandos para serem executados em um Banco de Dados
Relacional que visavam (1) criar uma tabela que contivesse dados de processos
partidários, (2) controlar a segurança e o acesso a ela e (3) manipular dados
nela. Desta forma ela, se valeu, correta e respectivamente, por exemplo, de
alguns elementos de expressões tais como:
a) CREATE, GRANT e ALTER. b) DROP, ALTER e UPDATE.
c) INSERT, INDEX e CREATE. d) INSERT, REVOKE e SELECT.
e) CREATE, REVOKE e INSERT.

13- (FCC - 2017 - TST - Técnico Judiciário – Programação) Um


Programador pretende executar uma instrução SQL que recupere todos os
dados da tabela produto cujos preços (preco) sejam maiores ou iguais R$
100,00 e menores ou iguais a R$ 1.000,00. A expressão para isso é SELECT *
FROM produto

Prof. Ramon Souza 40 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
a) WHEN preco GREATER 99 AND LESS 1000;
b) WHERE preco BETWEEN 100 AND 1000;
c) LIKE preco BETWEEN 100 AND 1000;
d) WHERE preco IN (100, 1000);
e) JOIN preco INNER (100, 1000);
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

14- (FCC - 2017 - TRT - 24ª REGIÃO (MS) - Técnico Judiciário -


Tecnologia da Informação) Para obter o número de funcionários cujo
conteúdo do campo nome da tabela funcionario termina com a letra o deve-se
utilizar a instrução SQL SELECT COUNT(*) FROM funcionario WHERE
a) nome LIKE '*o';
b) nome LIKE '%o';
c) SUBSTR(nome,LEN(nome)-1)='o';
d) nome CONTAINS '%o';
e) SUBSTR(nome,0)='o';

15- (FCC - 2017 - TRT - 24ª REGIÃO (MS) - Técnico Judiciário -


Tecnologia da Informação) Em um banco de dados Oracle aberto e em
condições ideais há uma tabela chamada funcionario com os campos
idFuncionario (inteiro − primary key), nome (cadeia de caracteres) e salario
(real). Para exibir o nome e o salário de todos os funcionários cujo valor de
salário esteja fora do intervalo de 1000 a 12000 utiliza-se a instrução SQL
SELECT nome, salario FROM funcionario WHERE
a) salario<1000 AND salario>12000;
b) salario NOT BETWEEN 1000 OR 12000;
c) 1000>salario>12000;
d) salario NOT BETWEEN 1000 AND 12000;
e) salario BETWEEN 1000 AND 12000;

16- (FCC - 2017 - TRE-PR - Técnico Judiciário - Programação de


Sistemas) Em um banco de dados aberto e em condições ideais, uma tabela
processo possui um campo NumeroProcesso do tipo varchar2. Para selecionar
somente os registros cujo campo NumeroProcesso possua como segundo
caractere (da esquerda para a direita), o valor 2, utiliza-se a instrução SELECT
* FROM processo WHERE NumeroProcesso
a) CONTAINS(1, '2');
b) LIKE ' *2%';

Prof. Ramon Souza 41 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
c) CONTAINS LEFT(2, '2');
d) LIKE '_2%';
e) CONTAINS '_2%'

17- (FCC - 2017 - ARTESP - Agente de Fiscalização à Regulação de


Transporte - Tecnologia de Informação) Considere, por hipótese, que no
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

banco de dados da ARTESP exista uma tabela denominada TabPSAD com os


campos IdRodovia, Posto_Servico, Area_Descanso, Vagas_Estacionamento. Um
Agente de Fiscalização à Regulação de Transporte utilizou os comandos SQL
para fazer consultas aos dados desta tabela:
I. SELECT IdRodovia FROM TabPSAD WHERE Vagas_Estacionamento > 300;
II. SELECT COUNT (DISTINCT IdRodovia) FROM TabPSAD;
III. SELECT IdRodovia, ADD (Vagas_Estacionamento) FROM TabPSAD GROUP
BY Area_Descanso;
Está correto o que consta em
a) II, apenas.
b) I e III, apenas.
c) III, apenas.
d) I e II, apenas.
e) I, II e III.

18- (FCC - 2017 - DPE-RS - Analista - Banco de Dados) Seja a seguinte


tabela de um banco de dados relacional: Objeto (ID, Nome, Peso, Descrição).
A consulta SQL para obter o Nome e o Peso dos objetos com a restrição do Peso
estar entre os valores 2 e 18 é:
a) SELECT Nome AND Peso
OF Objeto
HAVING Peso IN (2; 18);
b) SELECT Nome, Peso
FROM Objeto
WHERE Peso IS BETWEEN 2 TO 18;
c) SELECT Objeto (Nome, Peso)
HAVING Peso INSIDE (2; 18);
d) SELECT Objeto (Nome, Peso)
FOR Peso INSIDE (2;18);

Prof. Ramon Souza 42 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
e) SELECT Nome, Peso
FROM Objeto
WHERE Peso BETWEEN 2 AND 18;

19- (FCC - 2016 - Prefeitura de Teresina - PI - Analista Tecnológico -


Analista de Suporte Técnico) Considere a consulta em linguagem SQL
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

abaixo:
SELECT Nome
FROM T
WHERE Nome LIKE “A%S”
Um dos resultados para essa consulta é
a) avião, andes.
b) pastas, sacos.
c) astro, seca.
d) secos, abas.
e) aves, araras.

20- (FCC - 2016 - Prefeitura de Teresina - PI - Analista Tecnológico -


Analista de Suporte Técnico) Considere a seguinte tabela de um banco de
dados relacional:
Item (ID, Nome, Valor, Tipo)
A consulta em linguagem SQL para obter o Tipo e o valor médio dos itens,
considerando itens de mesmo tipo é
a) SELECT Tipo, Valor_Médio
FROM Item
ORDER BY Tipo
b) SELECT Tipo, SUM(Valor)
FROM Item
HAVING SAME Tipo
c) SELECT Tipo, AVG (Valor)
FROM Item
GROUP BY Tipo
d) SELECT Tipo, COUNT (Valor)
FROM Item

Prof. Ramon Souza 43 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
WHERE Tipo IN SET
e) SELECT Tipo, Média (Valor)
FROM Item

21- (FCC - 2016 - TRT - 14ª Região (RO e AC) - Técnico Judiciário -
Tecnologia da Informação) Para selecionar na tabela Colaboradores de um
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

banco de dados relacional, aberto e em condições ideais, todos os registros cujo


conteúdo do campo nome não inicie pela palavra 'Mar' utiliza-se o comando
SELECT * FROM Colaboradores WHERE nome
a) NOT LIKE 'Mar%';
b) IS NOT 'Mar%';
c) <> 'Mar*';
d) NOT LIKE 'Mar*';
e) != 'Mar%';

22- (FCC - 2015 - DPE-SP - Administrador de Banco de Dados) Considere


a seguinte consulta feita em SQL padrão:
SELECT Tipo
FROM Catálogo
WHERE Tipo IN (‘gde’, ‘médio’, ‘pequeno’)
Uma consulta SQL equivalente é:
a) SELECT Tipo
FROM Catálogo
WHERE Tipo = ‘gde’ AND Tipo = ‘médio’ AND Tipo = ‘pequeno’
b) SELECT Tipo
FROM Catálogo
GROPU BY Tipo
c) SELECT Tipo
FROM Catálogo
WHERE Tipo = ‘gde’ OR Tipo = ‘médio’ OR Tipo = ‘pequeno’
d) SELECT Tipo
FROM Catálogo
WHERE Tipo BETWEEN (‘pequeno’, ‘médio’, ‘gde’)
e) SELECT Tipo

Prof. Ramon Souza 44 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
FROM Catálogo
HAVING Tipo LIKE (‘gde’, ‘médio’, ‘pequeno’)

23- (FCC - 2015 - DPE-SP - Administrador de Banco de Dados) Considere


a seguinte consulta feita em SQL padrão:
SELECT Produto
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

FROM Mercadoria
WHERE Produto LIKE ('%er%')
Um possível resultado obtido a partir dessa consulta é:
a) torneira, persiana.
b) feira, celular.
c) registro, cerca.
d) prego, prendedor.
e) caderno, energia.

Prof. Ramon Souza 45 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“
Curso: Tecnologia da Informação para ICMS-SC
Resumo + Questões comentadas
Prof. Ramon Souza
4. GABARITO
1 E 11 A 21 D

2 D 12 E 22 C

3 A 13 B 23 E

4 B 14 B
Direitos autorais reservados (Lei 9610/98). Proibida a reprodução, venda ou compartilhamento deste arquivo. Uso individual.

5 B 15 D

6 E 16 D

7 B 17 D

8 B 18 E

9 A 19 E

10 C 20 C

5. REFERÊNCIAS
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistema de Banco de Dados. 6ed.
São Paulo: Pearson Addison Wesley, 2011.
SOFTBLUE. Curso SQL Completo. Disponível em:
<http://www.softblue.com.br/site/curso/id/3/CURSO+DE+SQL+COMPLETO+B
ASICO+AO+AVANCADO+ON+LINE+BD03+GRATIS>. Acesso em: 22 out.
2018.
W3SCHOOLS. SQL Tutorial. Disponível em:
<https://www.w3schools.com/sql/>. Acesso em: 19 out. 2018.

Prof. Ramon Souza 46 de 46


`ˆÌi`Ê܈̅Ê̅iÊ`i“œÊÛiÀȜ˜ÊœvÊ
www.exponencialconcursos.com.br ˜vˆÝÊ*ÀœÊ* Ê `ˆÌœÀÊ

/œÊÀi“œÛiÊ̅ˆÃʘœÌˆVi]ÊۈÈÌ\Ê
ÜÜÜ°ˆVi˜ˆ°Vœ“É՘œVŽ°…Ì“