0% acharam este documento útil (0 voto)
659 visualizações4 páginas

Exercicios SQL

1) O documento apresenta uma série de exercícios sobre SQL Server com definições de tabelas e perguntas sobre comandos SQL. 2) A maioria dos exercícios trata de seleção, inserção, alteração e exclusão de dados em tabelas relacionais usando comandos SQL. 3) Os exercícios abordam conceitos como joins, agregações, filtros e ordenações.
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
659 visualizações4 páginas

Exercicios SQL

1) O documento apresenta uma série de exercícios sobre SQL Server com definições de tabelas e perguntas sobre comandos SQL. 2) A maioria dos exercícios trata de seleção, inserção, alteração e exclusão de dados em tabelas relacionais usando comandos SQL. 3) Os exercícios abordam conceitos como joins, agregações, filtros e ordenações.
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 4

EAGS A Vou Eu!

SQL SERVER - Exerccios


1)

2009

CREATE TABLE [estoque]([id] [int] IDENTITY(1,1) NOT NULL, [descricao] [varchar](50) NOT NULL, [valorUnitario] [money] NOT NULL, [quantidade] [int] NOT NULL, CONSTRAINT [PK_estoque] PRIMARY KEY CLUSTERED ([id] ASC) Qual comando SQL abaixo permite a correta insero de dados na tabela criada anteriormente? a) b) c) d) INSERT INTO [estoque] VALUES (1, Lpis, 1.25, 100); INSERT INTO [estoque] VALUES (Lpis, 1.25, 100); INSERT INTO [estoque] ([descricao], [valorUnitario], [quantidade]) VALUES (Lpis, 1.25, 100); INSERT INTO [estoque] ([id], [descricao], [valorUnitario], [quantidade]) VALUES (1, Lpis, 1.25, 100);

2)

A tabela X possui trs colunas: A, B e C respectivamente. Sendo A responsvel por armazenar nomes, B armazena idade e C o sexo. O comando SQL que permite a alterao de todas as idades, incrementando-as, quando esta maior que dezoito e o sexo feminino. a) b) c) d) UPDATE UPDATE UPDATE UPDATE X X X X SET SET SET SET B B B B = + = + B 1 B 1 + 1 WHERE B >= 18 AND C = F; WHERE B >= 18 AND C = F; + 1 WHERE B > 18 AND C = F; WHERE B > 18 AND C = F;

3)

CREATE TABLE [venda]([id] [int] IDENTITY(1,1) NOT NULL, [dataVenda] [smalldatetime] NOT NULL, CONSTRAINT [PK_venda] PRIMARY KEY ([id] ASC)). Para que todos os registros da tabela VENDA sejam excludos qual comando abaixo deve ser utilizado? a) b) c) d) DELETE DELETE DELETE DELETE * FROM venda; FROM venda; FROM venda WHERE *; venda WHERE *;

4)

CREATE TABLE [produtos_venda]([idEstoque] [int] NOT NULL, [idVenda] [int] NOT NULL, [quantidade] [int] NOT NULL, CONSTRAINT [PK_produtos_estoque] PRIMARY KEY ([idEstoque], [idVenda])). Das opes abaixo, qual representa o que faz o comando: SELECT [idEstoque] FROM [produtos_venda] WHERE quantidade > 10 ORDER BY [idEstoque] a) b) c) d) Seleciona todos os campos da tabela onde a quantidade maior que dez exibindo em ordem crescente. Seleciona o campo idEstoque da tabela onde a quantidade maior ou igual a dez exibindo em ordem crescente. Seleciona todos os campos da tabela onde a quantidade maior que dez exibindo em ordem decrescente. Seleciona o campo idEstoque da tabela onde a quantidade maior que dez exibindo em ordem crescente.

5)

Considere a seguinte definio de dados: CREATE TABLE EMPREGADO (NOME VARCHAR(50) NOT NULL, CPF CHAR(11) NOT NULL, PRIMARY KEY (CPF)); em que a tabela EMPREGADO armazena os dados dos empregados, que so descritos pelos atributos NOME (nome do empregado) e CPF(CPF do empregado). Qual a expresso, em SQL que ir obter o CPF e o NOME do(s) empregado(s) em ordem alfabtica de nome? a) b) c) d) SELECT SELECT SELECT SELECT CPF, CPF, CPF, CPF, NOME NOME NOME NOME FROM FROM FROM FROM EMPREGADO EMPREGADO EMPREGADO EMPREGADO ORDER WHERE WHERE WHERE BY NOME ASC. NOME ORDER BY ASC. ORDER BY NOME ASC. NOME ASC ORDER.

6)

CREATE TABLE EMPREGADO (NOME VARCHAR(50) NOT NULL, CPF CHAR(11)NOT NULL, SALARIO INT, PRIMARY KEY (CPF)). Considerando a definio de dados acima, em que a tabela EMPREGADO armazena os dados dos empregados, que so descritos pelos atributos NOME (nome do Empregado), CPF(CPF do empregado) e SALARIO (salrio do empregado em reais), qual a expresso em SQL que ir obter o nome dos empregados cujo salrio superior a R$ 250,00 (duzentos e cinqenta reais) ? a) b) c) d) SELECT SELECT SELECT SELECT NOME FROM EMPREGADO WHERE SALARIO >= 250. NOME FROM EMPREGADO WHERE SALARIO > 250. NOME FROM EMPREGADO WHERE SALARIO < 250. NOME, SALARIO FROM EMPREGADO WHERE SALARIO >= 250.

Prof. Nissandro da Silva Ribeiro

EAGS A Vou Eu! SQL SERVER - Exerccios


7) Considera a seguinte definio de dados.

2009

CREATE TABLE EMPREGADO (NOME VARCHAR (50) NOT NULL, CPF CHAR(11) NOT NULL, SALARIO INT, PRIMARY KEY (CPF)); em que a tabela EMPREGADO armazena os dados dos empregados que so descritos pelos atributos NOME (nome do empregado), CPF(CPF do empregado) e SALARIO (salrio do empregado) Qual a expresso em SQL que ir obter os salrios que so pagos aos empregados e, para cada um dos salrios, o nmero de empregados que recebem este mesmo salrio? a) b) c) d) SELECT SELECT SELECT SELECT SALARIO FROM EMPREGADO SALARIO, COUNT(*) FROM SALARIO, COUNT(*) FROM SALARIO, COUNT(*) FROM WHERE COUNT(NOME). EMPREGADO WHERE NOME. EMPREGADO. EMPREGADO GROUP BY SALARIO.

8)

Considere a seguinte definio de dados: CREATE TABLE EMPREGADO (NOME VARCHAR (50) NOT NULL, CPF CHAR(11) NOT NULL, SALARIO INT, PRIMARY KEY (CPF)); em que a tabela EMPREGADO armazena os dados dos empregados, que so descritos pelos atributos NOME (nome do empregado), CPF(CPF do empregado) e SALARIO (salrio do empregado). Qual a expresso em SQL que ir aumentar em 10% (dez por cento) o salrio de todos empregados? a) b) c) d) UPDATE UPDATE UPDATE UPDATE EMPREGADO SET SALARIO = SALARIO * 1.1 SALARIO FROM EMPREGADO WHERE SALARIO = SALARIO * 1.1 SALARIO FROM EMPREGADO SET SALARIO = SALARIO * 1.1 SALARIO PROM EMPREGADO GROUP BY NOME

9)

Considere a seguinte definio de dados: CREATE TABLE EMPREGADO (NOME VARCHAR(50) NOT NULL, CPF CHAR(11) NOT NULL, SALARIO INT, PRIMARY KEY (CPF)); em que a tabela EMPREGADO armazena os dados dos empregados que so descritos pelos atributos NOME (nome do empregado), CPF(CPF do empregado) e SALARIO (salrio do empregado), Qual a expresso em SQL que ir obter o salrio mdio dos empregados?

a) b) c) d)

SELECT SELECT SELECT SELECT

AVG (SALARIO) FROM EMPREGADO. AVG (SALARIO) PROM EMPREGADO WHERE SALARIO. SALARIO PROM EMPREGADO WHERE AVG (SALARIO). SALARIO FROM EMPREGADO GROUP BY SALARIO.

10) Qual dos comandos SQL especificadas? Tabela Funcionrio:

abaixo

relacionados

no

pode

ser

executado

sobre

as

tabelas

coluna matricula nome nome_mae nome_pai Telefone

Tipo de dado Number(8) Char(60) Char(60) Char(60) Char(8)

Restrio Chave Primria No Nulo No Nulo

Prof. Nissandro da Silva Ribeiro

EAGS A Vou Eu! SQL SERVER - Exerccios


Tabela-exemplo: matrcula 12345678 12345680 12345670 12345671 nome Fbio Joo Carlos Telmo nome_mae Clia Maria Ana Lcia nome_pai Jairo Pedro Jos telefone 23i5678 2224455

2009

3
a) UPDATE funcionario SET nome_pai = NULL WHERE matricula=12345678 b) DELETE FROM funcionario c) UPDATE funcionario SET matricula = 12345678 d) INSERT INTO funcionario (nome, nome_pai, nome_mae, matricula) VALUES ('Jos da Silva', NULL, 'Maria da Silva', 12345672)

11) UPDATE CONTA SET SALDO=SALD0 * 2 WHERE SALDO > SELECT AVG(SALDO) FROM CONTA O comando SQL (STRUCTURED QUERY LANGUAGE - Linguagem de Consulta Estruturada) acima realiza qual funo num banco de dados relacional que contm a seguinte tabela: CONTA (#NUMERO_CONTA, SALDO) Onde: NUMERO_CONTA o nmero que identifica cada conta SALDO o valor total disponvel para a correspondente conta a) Atualiza todas as contas cujos saldos estejam acima da mdia de saldos, multiplicando o saldo anterior por dois. b) Atualiza todas as contas cujos saldos estejam acima do valor mnimo, multiplicando o saldo anterior por dois. c) Seleciona a primeira conta que possui saldo acima da mdia de saldos. d) Transfere para conta e multiplica por dois todos os saldos acima do valor mnimo. 12) Funes agregadas em SQL (STRUCTURED QUERY LANGUAGE - Linguagem de Consulta Estruturada) tomam uma coleo de valores como entrada, retornando um valor simples. So funes agregadas em SQL : a) b) c) d) AVG, RETURN, MIN SUM , COUNT, WHERE GROUP, COUNT, MIN MAX, AVG, SUM

13) SELECT NOME_CLIENTE FROM CLIENTE WHERE RUA_CLIENTE LIKE %VAHIA% O comando SQL (STRUCTURED QUERY LANGUAGE - Linguagem de Consulta Estruturada) acima realiza qual funo num banco de dados relacional que contm a seguinte tabela: CLIENTE (#NUMERO_CLIENTE, NOME_CLIENTE, RUA_CLIENTE) Onde: NUMERO_CLIENTE o nmero que identifica cada cliente; NOME_CLIENTE o nome do cliente; RUA_CLIENTE a rua onde reside o cliente. a) Sero listados todos os nomes de clientes da tabela cliente, exceto os que contenham a substring VAHIA no campo rua_cliente. b) Sero listados todos os nomes de clientes da tabela cliente que contenham a substring VAHIA no campo rua_cliente. c) Seleciona o primeiro nome de cliente da tabela cliente que no contenha a substring "VAHIA" no campo rua_cliente d) Seleciona o primeiro nome de cliente da tabela cliente que contenha a substring "VAHIA" no campo rua_cliente.

Prof. Nissandro da Silva Ribeiro

EAGS A Vou Eu! SQL SERVER - Exerccios


14) Tabelas : FUNCIONARIO (#MATRICULA, SALARIO, DATA_NASC, NUM_DEPTO) DEPARTAMENTO(#COD_DEPTO, NOME_DEPTO) MATRICULA: SALARIO: DATA_NASC: NUM_DEPTO:

2009

COD_EPTO: NOME_DEPTO:

Matrcula do funcionrio Salrio do funcionrio Data de nascimento do funcionrio Cdigo do departamento onde o funcionrio trabalha Deve ser igual a algum valor de COD_DEPTO existente na tabela DEPARTAMENTO Um funcionrio trabalha em apenas um departamento Cdigo do departamento Nome do departamento

Considere as tabelas acima, a descrio de seus campos, e assinale a alternativa que contm o comando SQL que executa a seguinte consulta: Para todos os departamentos que possuem mais de 3 funcionrios, selecione o cdigo do departamento a o nmero total de empregados com salrio > 5000 a) SELECT NUM_DEPTO, COUNT(*) FROM FUNCIONARIO WHERE SALARIO>5000 GROUP BY NUM_DEPTO HAVING COUNT(*) > 3; b) SELECT NUM_DEPTO, COUNT(*) FROM FUNCIONARIO WHERE SALARIO>5000 AND NUM_DEPTO IN (SELECT NUM_DEPTO FROM FUNCIONARIO GROUP BY NUM_DEPTO HAVING COUNT(*) >3) GROUP BY NUM_DEPTO; c) SELECT NUM_DEPTO, COUNT(*) FROM FUNCIONARIO WHERE SALARIO>5000 AND NUM_DEPTO>3; d) SELECT NUM_DEPTO, COUNT(*) FROM FUNCIONARIO WHERE SALARIO>5000 AND COUNT(*)>3 GROUP BY NUM_DEPTO; 15) CREATE TABLE LECIONA_DISCIPLINA (matProfessor INTEGER NOT NULL, codDisciplina INTEGER NOT NULL, PRIMARY KEY (matProfessor, codDisciplina), UNIQUE (matProfessor), FOREIGN KEY (codDisciplina) REFERENCES DISCIPLINA(codDisciplina) ON DELETE CASCADE, FOREIGN KEY (matProfessor) REFERENCES PROFESSOR(matProfessor) ON DELETE CASCADE); Com base na declarao apresentada, segundo o padro SQL-92, pode-se afirmar que: a) um mesmo professor pode lecionar mais de uma disciplina. b) pode haver mais de um professor lecionando a mesma disciplina. c) ao ser removida uma linha relativa a um professor da tabela LECIONA_DISCIPLINA, ser, automaticamente, removido o correspondente professor na tabela PROFESSOR. d) a chave primria poderia ser apenas codDisciplina.

Gabarito 1 C 2 C 3 B 4 - D 5 A 6 B 7 D 8 A 9 A 10 C 11 A 12 D 13 B 14 A 15 B

Prof. Nissandro da Silva Ribeiro

Você também pode gostar