exercicios sql

4

Click here to load reader

Upload: claudiano-barbosa-da-silva

Post on 14-Aug-2015

100 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: exercicios sql

Prof. Nissandro da Silva Ribeiro

EAGS Aí Vou Eu! – SQL SERVER - Exercícios 2009

1

1) 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 inserção de dados na tabela criada anteriormente? a) INSERT INTO [estoque] VALUES (1, ‘Lápis’, 1.25, 100); b) INSERT INTO [estoque] VALUES (‘Lápis’, 1.25, 100); c) INSERT INTO [estoque] ([descricao], [valorUnitario], [quantidade]) VALUES (‘Lápis’,

1.25, 100); d) INSERT INTO [estoque] ([id], [descricao], [valorUnitario], [quantidade]) VALUES (1,

‘Lápis’, 1.25, 100);

2) A tabela X possui três colunas: A, B e C respectivamente. Sendo A responsável por armazenar nomes, B armazena idade e C o sexo. O comando SQL que permite a alteração de todas as idades, incrementando-as, quando esta maior que dezoito e o sexo feminino. a) UPDATE X SET B = B + 1 WHERE B >= 18 AND C = ‘F’; b) UPDATE X SET B + 1 WHERE B >= 18 AND C = ‘F’; c) UPDATE X SET B = B + 1 WHERE B > 18 AND C = ‘F’; d) UPDATE X SET B + 1 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 excluídos qual comando abaixo deve ser utilizado? a) DELETE * FROM venda; b) DELETE FROM venda; c) DELETE FROM venda WHERE *; d) DELETE 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 opções abaixo, qual representa o que faz o comando: SELECT [idEstoque] FROM [produtos_venda] WHERE quantidade > 10 ORDER BY [idEstoque] a) Seleciona todos os campos da tabela onde a quantidade é maior que dez exibindo em ordem

crescente. b) Seleciona o campo idEstoque da tabela onde a quantidade é maior ou igual a dez exibindo

em ordem crescente. c) Seleciona todos os campos da tabela onde a quantidade é maior que dez exibindo em ordem

decrescente. d) Seleciona o campo idEstoque da tabela onde a quantidade é maior que dez exibindo em

ordem crescente.

5) Considere a seguinte definição 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 são descritos pelos atributos NOME (nome do empregado) e CPF(CPF do empregado).

Qual a expressão, em SQL que irá obter o CPF e o NOME do(s) empregado(s) em ordem alfabética de nome?

a) SELECT CPF, NOME FROM EMPREGADO ORDER BY NOME ASC. b) SELECT CPF, NOME FROM EMPREGADO WHERE NOME ORDER BY ASC. c) SELECT CPF, NOME FROM EMPREGADO WHERE ORDER BY NOME ASC. d) SELECT CPF, NOME FROM EMPREGADO WHERE NOME ASC ORDER.

6) CREATE TABLE EMPREGADO (NOME VARCHAR(50) NOT NULL, CPF CHAR(11)NOT NULL, SALARIO INT, PRIMARY KEY (CPF)). Considerando a definição de dados acima, em que a tabela EMPREGADO armazena os dados dos empregados, que são descritos pelos atributos NOME (nome do Empregado), CPF(CPF do empregado) e SALARIO (salário do empregado em reais), qual a expressão em SQL que irá obter o nome dos empregados cujo salário é superior a R$ 250,00 (duzentos e cinqüenta reais) ?

a) SELECT NOME FROM EMPREGADO WHERE SALARIO >= 250. b) SELECT NOME FROM EMPREGADO WHERE SALARIO > 250. c) SELECT NOME FROM EMPREGADO WHERE SALARIO < 250. d) SELECT NOME, SALARIO FROM EMPREGADO WHERE SALARIO >= 250.

Page 2: exercicios sql

Prof. Nissandro da Silva Ribeiro

EAGS Aí Vou Eu! – SQL SERVER - Exercícios 2009

2

7) Considera a seguinte definição 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 são descritos pelos atributos NOME (nome do empregado), CPF(CPF do empregado) e SALARIO (salário do empregado) Qual a expressão em SQL que irá obter os salários que são pagos aos empregados e, para cada um dos salários, o número de empregados que recebem este mesmo salário?

a) SELECT SALARIO FROM EMPREGADO WHERE COUNT(NOME). b) SELECT SALARIO, COUNT(*) FROM EMPREGADO WHERE NOME. c) SELECT SALARIO, COUNT(*) FROM EMPREGADO. d) SELECT SALARIO, COUNT(*) FROM EMPREGADO GROUP BY SALARIO.

8) Considere a seguinte definição 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 são descritos pelos atributos NOME (nome do empregado), CPF(CPF do empregado) e SALARIO (salário do empregado). Qual a expressão em SQL que irá aumentar em 10% (dez por cento) o salário de todos empregados?

a) UPDATE EMPREGADO SET SALARIO = SALARIO * 1.1 b) UPDATE SALARIO FROM EMPREGADO WHERE SALARIO = SALARIO * 1.1 c) UPDATE SALARIO FROM EMPREGADO SET SALARIO = SALARIO * 1.1 d) UPDATE SALARIO PROM EMPREGADO GROUP BY NOME

9) Considere a seguinte definição 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 são descritos pelos atributos NOME (nome do empregado), CPF(CPF do empregado) e SALARIO (salário do empregado), Qual a expressão em SQL que irá obter o salário médio dos empregados?

a) SELECT AVG (SALARIO) FROM EMPREGADO. b) SELECT AVG (SALARIO) PROM EMPREGADO WHERE SALARIO. c) SELECT SALARIO PROM EMPREGADO WHERE AVG (SALARIO). d) SELECT SALARIO FROM EMPREGADO GROUP BY SALARIO.

10) Qual dos comandos SQL abaixo relacionados não pode ser executado sobre as tabelas especificadas? Tabela Funcionário:

coluna Tipo de dado Restrição

matricula Number(8) Chave Primária

nome Char(60) Não Nulo

nome_mae Char(60) Não Nulo

nome_pai Char(60)

Telefone Char(8)

Page 3: exercicios sql

Prof. Nissandro da Silva Ribeiro

EAGS Aí Vou Eu! – SQL SERVER - Exercícios 2009

3

Tabela-exemplo:

matrícula nome nome_mae nome_pai telefone

12345678 Fábio Célia Jairo 23i5678

12345680 João Maria Pedro 2224455

12345670 Carlos Ana José

12345671 Telmo Lúcia

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 função num banco de dados relacional que contém a seguinte tabela: CONTA (#NUMERO_CONTA, SALDO) Onde: NUMERO_CONTA é o número que identifica cada conta SALDO é o valor total disponível para a correspondente conta a) Atualiza todas as contas cujos saldos estejam acima da média de saldos, multiplicando o saldo anterior por dois. b) Atualiza todas as contas cujos saldos estejam acima do valor mínimo, multiplicando o saldo anterior por dois. c) Seleciona a primeira conta que possui saldo acima da média de saldos. d) Transfere para conta e multiplica por dois todos os saldos acima do valor mínimo.

12) Funções agregadas em SQL (STRUCTURED QUERY LANGUAGE - Linguagem de Consulta Estruturada) tomam uma coleção de valores como entrada, retornando um valor simples. São funções agregadas em SQL : a) AVG, RETURN, MIN b) SUM , COUNT, WHERE c) GROUP, COUNT, MIN d) 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 função num banco de dados relacional que contém a seguinte tabela: CLIENTE (#NUMERO_CLIENTE, NOME_CLIENTE, RUA_CLIENTE) Onde: NUMERO_CLIENTE é o número que identifica cada cliente; NOME_CLIENTE é o nome do cliente; RUA_CLIENTE é a rua onde reside o cliente. a) Serão listados todos os nomes de clientes da tabela cliente, exceto os que contenham a substring “VAHIA” no campo rua_cliente. b) Serão 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 não 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.

Page 4: exercicios sql

Prof. Nissandro da Silva Ribeiro

EAGS Aí Vou Eu! – SQL SERVER - Exercícios 2009

4

14) Tabelas : FUNCIONARIO (#MATRICULA, SALARIO, DATA_NASC, NUM_DEPTO) DEPARTAMENTO(#COD_DEPTO, NOME_DEPTO) MATRICULA: Matrícula do funcionário SALARIO: Salário do funcionário DATA_NASC: Data de nascimento do funcionário NUM_DEPTO: Código do departamento onde o funcionário trabalha Deve ser igual a algum valor de COD_DEPTO existente na tabela DEPARTAMENTO Um funcionário trabalha em apenas um departamento COD_EPTO: Código do departamento NOME_DEPTO: Nome do departamento Considere as tabelas acima, a descrição de seus campos, e assinale a alternativa que contém o comando SQL que executa a seguinte consulta: “Para todos os departamentos que possuem mais de 3 funcionários, selecione o código do departamento a o número total de empregados com salário > 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 declaração apresentada, segundo o padrão 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 primária 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