Buscar

Comandos SQL em Banco de Dados

Prévia do material em texto

10a aula 
 
 
Lupa 
 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
Exercício: CCT0782_EX_A10__V3 08/05/2019 (Finaliz.) 
Aluno(a): 
Disciplina: CCT0782 - BANCO DE DADOS 
 
 
 
 
 1a Questão 
 
 
- Considere o banco de dados relacional de uma clínica médica, no 
qual as chaves primárias (incrementada automaticamente) e 
estrangeiras estão sublinhadas. 
 
*Obs. A numeração automática iniciará com 1. 
 
PACIENTE (id_pac, nome_pac, sexo, fone_pac) 
ESPECIALIDADE (id_espec, nome_espec) 
MEDICO (id_med, nome_med, fone_med, id_espec) 
CONSULTA (id_cons, dt_cons, vl_cons, id_pac, id_med) 
 
Aponte a sintaxe correta do comando de Inclusão de uma nova especialidade na 
tabela ESPECIALIDADE. 
 
 
 Insert Into ESPECIALIDADE Values ('Pediatria') 
 Insert Into ESPECIALIDADE Values (1,'Cardiologia') 
 Insert Into ESPECIALIDADE Values (1,'Cardiologia') 
 Insert Into ESPECIALIDADE Values ('1','Cardiologia') 
 Insert Into ESPECIALIDADE Values (Pediatria) 
 
 
 
 
 
 2a Questão 
 
 
A seguinte instrução ocasiona qual procedimento no banco: DELETE FROM tabela. 
 
 
 Exclui todos os registros da tabela; 
 
Exclui o primeiro registro da tabela; 
 
Exclui a tabela; 
 
Nada acontece, emite uma mensagem de erro. 
 
Exclui o banco; 
 
 
Explicação: 
DELETE ¿ Exclui registros de uma tabela. No caso da instrução Delete from tabela ¿ Exclui todos os registros da 
tabela. 
DROP TABLE ¿ Exclui uma tabela. 
 
 
 
 
 
 3a Questão 
 
 
Em Banco de dados é possível a utilização de um subconjunto de linguagens que podem ser utilizadas para manipular, 
definir, controlar e consultar os dados. Até mesmo para definir autorização de dados e licenças para os usuários. Dessa 
forma, marque a alternativa correta que apresenta um comando da linguagem DML. 
 
 
 
HAVING 
 
ALTER 
 
DROP 
 
GRANT 
 UPDATE 
 
 
Explicação: 
Partes da SQL: 
 - DDL: Permitem a criação e definição de objetos como tabelas, views e outros objetos no banco de dados (ex: 
Create, Alter, Drop, Rename, Truncate) 
 - DRL: É o comando mais comum do SQL. Utilizado amplamente para recuperação dos dados de uma base. (Ex: 
select) 
 - DML: Comandos de manipulação dos dados. Usados nas aplicações que mantém a base de informações com 
inserções, atualizações e deleções de dados. (Ex: Insert, Delete, Update) 
 - DCL: São utilizados para atribuir ou remover direitos de acesso a objetos do banco de ados e suas estruturas (Ex: 
Grant, Revoke) 
 
 
 
 
 
 4a Questão 
 
 
Na base de dados de um sistema de controle de clientes, foi criada a tabela CLIENTES, que conta com as colunas: ID, 
NOME, ENDERECO, CIDADE e UF. Os valores da coluna ID não se repetem. 
 
Sobre essa tabela CLIENTES foi criada a visão VCLIENTES_RJ, que busca apresentar os clientes do estado do Rio de 
Janeiro. O comando de criação da visão VCLIENTES_RJ é: 
 
CREATE VIEW VCLIENTES_RJ 
AS SELECT ID, NOME, ENDERECO, CIDADE, UF 
FROM CLIENTES WHERE UF = 'RJ' 
 
Um usuário submeteu o seguinte comando para execução pelo gerenciador do banco de dados: 
 
UPDATE VCLIENTES_RJ SET NOME ='JOAO' 
WHERE ID IN (1,2,3) AND UF = 'SP' 
 
O comando UPDATE acima, quando submetido para execução, resulta na atualização de: 
 
 
 
até três das linhas da visão, cujo novo valor para a coluna Nome pode ser verificado através de consulta à 
própria visão VCLIENTES_RJ. 
 
nenhuma linha, pois não é possível realizar atualização sobre visões. 
 
até três linhas da visão VCLIENTES_RJ, não sendo atualizadas linhas da tabela CLIENTES. 
 nenhuma linha, pois, como a visão VCLIENTES_RJ somente apresenta clientes do Rio de Janeiro, não é possível 
atualizar o nome de um cliente de São Paulo. 
 
até três linhas da tabela CLIENTES. 
 
 
Gabarito 
Coment. 
 
 
 
 
 5a Questão 
 
 
Com base nas tabelas abaixo, indique a sequência correta de sentenças verdadeiras(V) e Falsas(F). 
 
Tabelas: tab_aluno(matricula,nome,endereço) 
 tab_disciplina(codigo_disciplina, descrição, numero_credito) 
 tab_cursa_disciplina(matricula, codigo_disciplina, ano, avaliacao_final) 
onde: matricula é o numero que identifica univocamente um aluno; 
 codigo_disciplina é código que identifica univocamente uma disciplina; 
 matricula+ codigo_disciplina+ano são os códigos que concatenados 
 identificam univocamente o histórico de um aluno. 
 
I) select avaliacao_final,count(*) from tab_cursa_disciplina 
group by código_disciplina 
II) select matricula from tab_aluno except select matricula from tab_cursa_disciplina 
III) select codigo_disciplina,count(*) from tab_cursa_disciplina 
group by codigo_disciplina where count(*) > 3 
IV) delete from tab_cursa_disciplina where código_disciplina like `mat%¿ 
V) update tab_cursa_disciplina values avaliação_final = avaliacao_final + 2 
 Where ano = 2008 or ano=2010 
 
 
 I(F), II(V), III(F), IV(V), V(F) 
 
 
I(F), II(V), III(F), IV(V), V(V) 
 
 
I(V), II(V), III(F, )IV(V),V(V) 
 
 
I(V), II(V), III(V), IV(F),V(V) 
 
 
I(F), II(V), III(V), IV(V), V(V) 
 
 
 
 
 
 6a Questão 
 
 
- Considere o banco de dados relacional de uma clínica médica, 
no qual as chaves primárias (incrementada automaticamente) e 
estrangeiras estão sublinhadas. 
 
*Obs. A numeração automática iniciará com 1. 
 
PACIENTE (id_pac, nome_pac, sexo, fone_pac) 
ESPECIALIDADE (id_espec, nome_espec) 
MEDICO (id_med, nome_med, fone_med, id_espec) 
CONSULTA (id_cons, dt_cons, vl_cons, id_pac, id_med) 
 
Dê o comando correspondente de Atualizar o nome da especialidade para a 
primeira especialidade cadastrada. 
 
 
 Update ESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec < 1 
 Update ESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec <> 1 
 Update ESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec = 1 
 Update ESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec != 1 
 Update ESPECIALIDADE Set nome_espec = 'Clínico Geral' Where id_espec > 1 
 
 
 
 
 
 7a Questão 
 
 
- Considere o banco de dados relacional de uma clínica médica, no qual as chaves primárias 
(incrementada automaticamente) e estrangeiras estão sublinhadas. 
 
*Obs. A numeração automática iniciará com 1. 
 
 PACIENTE (id_pac, nome_pac, sexo, fone_pac) 
 ESPECIALIDADE (id_espec, nome_espec) 
 MEDICO (id_med, nome_med, fone_med, id_espec) 
 CONSULTA (id_cons, dt_cons, vl_cons, id_pac, id_med) 
 
Dê o comando correspondente de Atualizar o telefone do primeiro paciente cadastrado. 
 
 
 Update PACIENTE Set fone_pac = '(11)9999-9999' 
 Update PACIENTE Set fone_pac = '(11)9999-9999' Where id_pac = 1 
 Update PACIENTE Set fone_pac = '(11)9999-9999' Where id_pac < 1 
 Update PACIENTE Set fone_pac = '(11)9999-9999' Where id_pac != 1 
 Update PACIENTE Set fone_pac = '(11)9999-9999' Where id_pac > 1 
 
 
 
 
 
 8a Questão 
 
 
De acordo com a estrutura das tabelas abaixo, escolha a opção que mostre a exclusão de todos os departamentos sem 
empregados, através da linguagem SQL. O banco de dados é composto por 2 tabelas: a tabela EMP que contém dados 
dos empregados, cuja chave primária é MATRICULA e a tabela DEPT que contém dados dos departamentos, cuja a 
chave primária é DEPTNO. A coluna GERENTE é chave estrangeira na tabela EMP, referente à própria tabela EMP. A 
coluna DEPTNO na tabela EMP é chave estrangeira,referente à tabela DEPT. 
ESTRUTURA DAS TABELAS DO BANCO DE DADOS 
TABELA EMP 
Name Null Type 
---------------------------------------------- 
MATRICULA NOT NULL NUMBER(4) 
NOME_EMP CHAR(10) 
CARGO CHAR (9) 
GERENTE NUMBER(4) 
SALARIO NUMBER(7,2) 
COMISSAO NUMBER(7,2) 
DEPTNO NUMBER(2) 
 
TABELA DEPT 
Name Null Type 
---------------------------------------------- 
DEPTNO NOT NULL NUMBER(2) 
NOME_DEPT CHAR(14) 
LOCALIZACAO CHAR(13) 
 
 
 
DELETE DEPT D 
WHERE D.DEPTNO IN (SELECT E.DEPTNO FROM EMP E 
WHERE D.DEPTNO=E.DEPTNO AND E.DEPT IS NULL); 
 
DELETE DEPT 
WHERE DEPTNO IN (SELECT DISTINCT DEPTNO 
FROM EMP 
GROUP BY DEPTNO 
HAVING DEPTNO = 0); 
 
DELETE DEPT 
WHERE DEPTNO IN (SELECT DISTINCT DEPTNO 
FROM EMP 
WHERE DEPTNO IS NULL); 
 DELETE DEPT 
WHERE DEPTNO NOT IN (SELECT DISTINCT DEPTNO FROM EMP); 
 
DELETE DEPT D 
WHERE D.DEPTNO IN (SELECT E.DEPTNO FROM EMP E 
WHERE D.DEPTNO=E.DEPTNO AND COUNT(E.DEPT)=0);

Continue navegando