Linguagem de Banco de Dados 3

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 26

Linguagem de Banco

de Dados
Material Teórico
Inserindo, alterando, excluindo e selecionando registros

Responsável pelo Conteúdo:


Prof. Ms. Luiz Carlos Reis

Revisão Textual:
Prof. Ms. Luciano Vieira Francisco
Inserindo, alterando, excluindo
e selecionando registros

• Introdução
• Linhas Duplicadas
• Operadores SQL
• Expressões Negativas
• A Cláusula ORDER BY

OBJETIVO DE APRENDIZADO
· Conhecer rotinas de sincronização de dados em bancos relacionais
por meio de instruções Data Manipulation Language (DML), tais
como INSERT, UPDATE e DELETE.
· Verificar exemplos comuns desse tipo de tarefa, incluindo
procedimentos para a inclusão, atualização e exclusão de listas
de preços de produtos, lançamentos contábeis e/ou financeiros,
apontamentos com horários de entrada e saída de funcionários,
entre outras formas de informação.
· Conhecer a recuperação das informações em uma tabela.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja uma maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.

Mantenha o foco!
Evite se distrair com
as redes sociais.

Seja original!
Nunca plagie
trabalhos.

Não se esqueça
de se alimentar
Assim: e se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como o seu “momento do estudo”.

Procure se alimentar e se hidratar quando for estudar, lembre-se de que uma


alimentação saudável pode proporcionar melhor aproveitamento do estudo.

No material de cada Unidade, há leituras indicadas. Entre elas: artigos científicos, livros, vídeos e
sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você também
encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua
interpretação e auxiliarão no pleno entendimento dos temas abordados.

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão,
pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato
com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem.
UNIDADE 

Introdução
Nesta Unidade veremos como incluir, alterar e excluir registros em um banco
de dados e, para isso, utilizaremos os seguintes comandos:
• INSERT;

• UPDATE;

• DELETE.

Para recuperar dados de uma tabela, utilizaremos o comando SELECT e


veremos também como restringir registros e expressões aritméticas, por meio de:
• SELECT;
• Distinct;
• Expressões aritméticas;
• Cláusula where;
• Alias.

Importante! Importante!

Como pré-requisito para praticar nesta Unidade, considerando que utilizaremos o


software SQLDeveloper para exemplificar os comandos, precisaremos de uma conexão
AulaHR, configurada no tutorial de instalação do software.

Figura 1
Criaremos a tabela pais para ajudar em nossos exemplos.

8
Vejamos:
CREATE TABLE pais
(
cd_pais number (2),
nm_pais char (45),
ds_nacionalidade char(35),
constraint pais_cd_pais_pk primary key (cd_pais),
constraint pais_nm_pais_uk unique(nm_pais)
)

Figura 2

Inserindo registros nas tabelas:

Figura 3
Valores alfanuméricos e datas deverão estar entre aspas simples (‘ ‘), conforme
os seguintes casos:
• Exemplo 1:
INSERT INTO pais (cd_pais, nm_pais) VALUES (1,’Brasil’)

• Exemplo 2:
INSERT INTO pais (cd_pais, nm_pais, ds_nacionalidade)
VALUES (2, ‘Argentina’,null);

• Exemplo 3:
INSERT INTO pais (cd_pa INSERT INTO pais VALUES (4,
‘Chile’, ‘Chilena’);
s, nm_pais, ds_nacionalidade) VALUES (2, ‘Argentina’,null);

9
9
UNIDADE 

• Exemplo 4:

INSERT INTO pais (nm_pais, ds_nacionalidade, cd_pais)


VALUES (‘EUA’, ‘Americana’ ,3);
Para incluir dados em uma tabela, pode-se ou não inserir valores em todas as
suas colunas – caso não sejam obrigatórias.

A relação de colunas da tabela poderá ser omitida quando forem incluídos


valores para todas as colunas dessa tabela.

Figura 4

Perceba que caso for executada novamente a mesma consulta, o banco de


dados Oracle apresentará erro de PK, pois fora implementada a restrição de
Primary Key (PQ) adicionada na criação da tabela.

Figura 5

10
UPDATE
Modificar registros existentes com o comando UPDATE.

Figura 6
Update Pais set Nm_pais=’Portugal’, Ds_
nacionalidade=’Portug’ Where Cd_pais = 3;
Update Pais set Nm_pais=’Portugal’, Ds_
nacionalidade=’Portug’ Where Cd_pais = 3;

Figura 7

Importante! Importante!

Muito cuidado ao utilizar o comando UPDATE, pois caso seja omitido, a cláusula Where e
todos os registros serão alterados.

DELETE
Remover registros com o comando DELETE.

Figura 8

Importante! Importante!

Como recomendação, uma boa prática é confirmar os registros que serão excluídos por meio
do comando SELECT, antes da execução do comando DELETE.

11
11
UNIDADE 

DELETE FROM Pais WHERE Cd_pais = 3;

Figura 9

Importante! Importante!

Muito cuidado na utilização do comando DELETE, pois caso seja omitido, a cláusula
Where e todos os registros serão excluídos.

SELECT
O comando SELECT permite a seleção e manipulação dos registros para
visualização das informações que estão armazenadas no banco de dados.

Figura 10

O comando SELECT permite:


• Selecionar todas as colunas:
SELECT * FROM departments.

12
Figura 11
• Selecionar colunas específicas:
SELECT FIRST_NAME, EMAIL, HIRE_DATE FROM employees.

Figura 12
• Selecionar expressões aritméticas:
SELECT FIRST_NAME, EMAIL , salary, salary*12 FROM
employees;

Figura 13
• Adicionar apelidos – alias – em determinada coluna:
SELECT FIRST_NAME, EMAIL , salary, salary*12 FROM
employees;

13
13
UNIDADE 

Figura 14
• Concatenar colunas:
SELECT FIRST_NAME, EMAIL, ‘Salário: ‘ || salary “Salário”,
salary*12 “Salario Anual” FROM employees;

Figura 15

Linhas Duplicadas
A exibição default de consultas corresponde a todas as linhas, incluindo as
duplicadas. Assim, para eliminar valores duplicados no resultado, incluímos o
DISTINCT qualificador no comando SELECT:

SELECT distinct job_id FROM employees ORDER BY job_id;

Figura 16

Perceba que não serão exibidos os cargos duplicados.

Ademais, a cláusula WHERE indica condição para um SELECT, no qual


podemos ter os seguintes operadores:

14
Tabela 1
Operador Descrição
= Igual
<> Diferente
> Maior
< Menor
>= Maior ou igual
<= Menor ou igual

Alfanuméricos e datas na cláusula WHERE devem estar entre aspas simples.


Exemplo:
select first_name, hire_date, salary from employees where
salary > 10000;

Figura 17

Operadores SQL
Existem quatro operadores SQL, os quais figuram com todos os tipos de dados:
Tabela 2
Operador Significado
Between ... and ... Entre dois valores – inclusive
In (lista) Comparar uma lista de valores
Like Comparar um parâmetro alfanumérico
Is Null É um valor nulo

Operador BETWEEN
Compara uma faixa de valores, inclusive o menor e maior valor. Suponhamos
que quiséssemos ver aqueles empregados cujos salários estão entre 1.000
e 2.000:
SELECT First_name, Last_name, Salary
FROM Employees
WHERE Salary BETWEEN 10000 AND 20000;

15
15
UNIDADE

Figura 18

Para executar mais de uma linha,


selecione-as e depois execute.

Operador IN
Compara os valores especificados dentro de uma lista. Para encontrar
empregados que tenham um dos Manager com valores 101,145 e 149, utilize o
seguinte comando:
SELECT First_name, Last_name, Salary, Manager_id
FROM Employees
WHERE Manager_id IN (101, 145, 149);

Importante! Importante!

Se datas ou alfanuméricos forem usados na lista, precisam ser colocados entre aspas
simples (‘ ’).

Figura 19

16
Operador LIKE
Algumas vezes você precisa procurar valores que não conhece exatamente.
Assim, usando o operador LIKE é possível selecionar linhas combinando
parâmetros alfanuméricos. Ademais, o caractere % é utilizado como “coringa”
nas pesquisas. Veja um exemplo:
Tabela 3
Sintaxe Descrição
Like ‘%cadeia’ Localiza valores que terminem com a cadeia de caracteres
Like ‘cadeia%’ Localiza valores que comecem com a cadeia de caracteres
Like ‘%cadeia%’ Localiza valores que tenham a cadeia de caracteres em
qualquer parte do campo
Fonte: elaborado pelo professor conteudista

Para listar todos os empregados que tenham o nome começando com a letra
S, faça:
SELECT First_name, Last_name, Salary
FROM Employees
WHERE First_name like ‘S%’;

Figura 20

Operador IS NULL
Verifica quais campos estão com valores nulos. Por exemplo, se unicamente
encontrar todos os empregados que não tenham gerente, você testará um valor nulo:
SELECT First_name, Last_name, Salary, Manager_id
FROM Employees
WHERE Manager_id IS Null;

Figura 21

17
17
UNIDADE 

Expressões Negativas
Podemos também negar todos os operadores estudados:
Tabela 4
Sintaxe Descrição
NOT Between Tudo que estiver fora da faixa
NOT In Tudo que não estiver na lista
NOT Like Tudo que não conter a linha de caracteres
IS NOT Null Tudo que não for nulo

SELECT First_name, Last_name, Salary


FROM Employees
WHERE Salary NOT BETWEEN 10000 AND 20000;
SELECT First_name, Last_name, Salary, Manager_id
FROM Employees
WHERE Manager_id NOT IN (101, 145, 149);
SELECT First_name, Last_name, Salary
FROM Employees
WHERE First_name NOT Like ‘S%’;
SELECT First_name, Last_name, Salary, Manager_id
FROM Employees
WHERE Manager_id IS NOT Null;

Pesquisando Dados com Múltiplas Condições


• Os operadores AND e OR devem ser usados para fazer composições de
expressões lógicas;
• O predicado AND esperará que ambas as condições sejam verdadeiras;
• O predicado OR esperará que uma das condições seja verdadeira.

Nos dois seguintes exemplos as condições são as mesmas, mas cada resultado
é diferente entre si. Veja como o resultado é dramaticamente alterado:

Para encontrar todos os escriturários do departamento estoque que ganhem


entre 2.000 e 3.000:

SELECT First_name, Last_name, Salary, Job_ID


FROM Employees
WHERE Salary BETWEEN 2000 AND 3000
AND Job_id = ‘ST_CLERK’;

18
Figura 22

Para encontrar todos os escriturários do departamento estoque e os


funcionários que ganhem entre 2.000 e 3.000.
SELECT First_name, Last_name, Salary, Job_id
FROM Employees
WHERE Salary BETWEEN 2000 AND 3000
OR Job_id = ‘ST_CLERK’;

Perceba que neste segundo caso a seleção foi bem maior, visto que existem
funcionários que ganham entre 2.000 e 3.000 e que não são escriturários.

Figura 23

Você pode combinar AND e OR na mesma expressão lógica. Ou seja, quando


AND e OR aparecerem na mesma cláusula WHERE, todos os AND serão feitos
primeiro e, posteriormente, todos os OR o serão.
SELECT First_name, Last_name, Salary, Job_ID
FROM Employees
WHERE Salary > 8000 and
Job_id = ‘ST_CLERK’ OR
Job_id = ‘ST_MAN’

19
19
UNIDADE 

Figura 24

Se você quiser selecionar todos os escriturários e gerentes que ganhem acima


de 8.000, deverá empregar parênteses para estabelecer tal prioridade:
SELECT First_name, Last_name, Salary, Job_ID
FROM Employees
WHERE Salary > 8000 and
(Job_id = ‘ST_CLERK’ OR
Job_id = ‘ST_MAN’)

Figura 25
Os parênteses especificam a ordem pela qual os operadores devem ser
avaliados – prioridade.

No segundo exemplo, o operador OR é avaliado antes de AND. Assim, sempre


que você estiver em dúvida sobre qual dos dois operadores será feito primeiro
quando a expressão é avaliada, use sempre parênteses para definir a prioridade
das expressões.

A Cláusula ORDER BY
Normalmente, a ordem das linhas retornadas de uma pesquisa é indefinida.
Assim, a cláusula ORDER BY pode ser empregada para ordenar as linhas.

Se utilizada, ORDER BY deve ser sempre a última cláusula da declaração


SELECT. Para ordenar essa consulta pelo campo Last_Name, faça:

20
SELECT First_name, Last_name, Salary
FROM Employees
WHERE Salary BETWEEN 10000 AND 20000
ORDER BY Last_name;

Figura 26

O padrão de ordenação é ascendente.

Invertendo o Padrão de Ordenação

Para inverter essa ordem, acrescente o comando DESC – decrescente –depois


do nome das colunas da cláusula ORDER BY; enquanto que para inverter a
ordem da coluna Last_name, faça:
SELECT First_name, Last_name, Salary
FROM Employees
WHERE Salary BETWEEN 10000 AND 20000
ORDER BY Last_name DESC;

Figura 27
Note se tratar de ordenação por várias colunas, afinal, é possível utilizar mais
de uma coluna na cláusula ORDER BY. O limite de colunas é o número dessas
da tabela. Assim, na cláusula ORDER BY especifica-se as colunas que serão
ordenadas, separando-as por vírgula. Se algumas ou todas serão invertidas,
especifique DESC depois de cada uma das colunas.

Para ordenar por duas colunas e mostrar a ordem inversa do salário – e ordem
crescente do sobrenome –, faça:

21
21
UNIDADE 

SELECT First_name, Last_name, Salary


FROM Employees
WHERE Salary BETWEEN 10000 AND 20000
ORDER BY Salary Desc, Last_name;

Figura 28

Para ordenar por uma coluna, esta não precisa necessariamente estar declarada
no SELECT.

Ademais, a cláusula ORDER BY é empregada na pesquisa quando se quer


mostrar as linhas em uma ordem específica – afinal, sem a cláusula ORDER BY,
as linhas são retornadas na ordem conveniente para o Oracle.

Finalmente, tal comando não altera a ordem dos dados que estão armazenados
no banco de dados

22
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

Livros
Oracle Database 11g Sql
Como complemento a esta Unidade, leia o oitavo capítulo do livro de J. Price, intitulado
Oracle Database 11g Sql, publicado em 2009, pela editora Bookman, de Porto Alegre, RS.

SQL : guia prático


Ler do capítulo III do livro: Costa, Rogério Luis de C. SQL : guia prático. 2. ed. Rio de Janeiro:
Brasport, 2006.

Vídeos
Oracle Server SQL 01 - Criar tabela, iserção de registros, describe e dicas Post101
https://youtu.be/J66VqmPd9lI
1.7 Inserir e Consultar dados de uma tabela de banco de dados Oracle
https://youtu.be/2Isj3H1xDBI

23
23
UNIDADE 

Referências
COSTA, R. L. de C. SQL: guia prático. 2. ed. Rio de Janeiro: Brasport, 2006.

MORELLI, E. M. T. Oracle 9i fundamental: Sql, Pl/SQL e administração. São


Paulo: Érica, 2002.

PRICE, J. Oracle Database 11g Sql. Porto Alegre, RS: Bookman, 2009.

SILBERSCHATZ, A. Sistema de bancos de dados. São Paulo: Pearson Education


do Brasil, 2004

24

Você também pode gostar