Exercicios SQL
Exercicios SQL
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.
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)
AVG (SALARIO) FROM EMPREGADO. AVG (SALARIO) PROM EMPREGADO WHERE SALARIO. SALARIO PROM EMPREGADO WHERE AVG (SALARIO). SALARIO FROM EMPREGADO GROUP BY SALARIO.
abaixo
relacionados
no
pode
ser
executado
sobre
as
tabelas
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.
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