Alura > Cursos de Data Science > Cursos de SQL e Banco de Dados > Conteúdos de SQL e Banco de Dados > Primeiras aulas do curso Oracle Database: projeções, seleções, joins e views

Oracle Database: projeções, seleções, joins e views

Ambiente de trabalho - Apresentação

Olá! Meu nome é Victorino Vila e serei seu instrutor nesse treinamento de consultas SQL com Oracle.

Victorino Vila é um homem de pele clara, olhos castanhos e cabelo e barba grisalhos. Está com uma blusa de frio azul-escura com estampa ao centro. Ao fundo, uma parede azul-clara lisa sem decorações.

Nesse curso, nós vamos, primeiramente, preparar nosso ambiente de trabalho carregando uma base de dados em um banco Oracle. Nessa base de dados, treinaremos todos os nossos comandos de seleção. Além disso, vamos entender como o banco de dados Oracle é representado; ou seja, como conseguimos ver um esquema de banco e entender os relacionamentos e conteúdos das tabelas, para saber que tipo de comando de seleção vamos efetuar.

Na segunda aula, vamos começar a praticar com consultas simples, usando filtros e expressões lógicas, que misturam testes com as palavras AND ("e") e OR ("ou").

Em seguida, na terceira aula, mudaremos a saída do resultado da consulta. Nesse caso, veremos como tirar as repetidas da consulta, como limitar a saída da consulta para visualizar apenas determinada parcela de registros da tabela, além de como ordenar a saída aplicando um critério específico, em diferentes sentidos (ascendente ou descendente).

Nessa aula, também aprenderemos a agrupar linhas da tabela, pegando valores numéricos e aplicando um conceito de agregação matemático, como a soma, média, mínimo, máximo, e assim por diante. Também filtraremos esses valores agrupados.

Já na quarta aula, exploraremos a parte de juntar tabelas. Essa ação é importante para as consultas porque, muitas vezes, procuramos campos que estão em tabelas diferentes. Para isso, aprenderemos os diferentes tipos de comandos JOIN ("juntar"). Além de juntar, podemos unir tabelas! Para isso, usaremos o comando UNION ("união").

Ao final dessa aula, falaremos sobre visões - que são, na verdade, tabelas "lógicas" que conseguimos construir no banco.

Na quinta aula, vamos aprender sobre funções, vendo quatro tipos diferentes delas: de texto, de data, de número e de conversão.

Por fim, vamos enfrentar dois problemas práticos em que aplicaremos todo o conhecimento adquirido na produção de dois relatórios para os nossos usuários.

Esperamos que vocês gostem desse curso, vamos lá!

Ambiente de trabalho - Avisos sobre este curso

Antes de começar esse treinamento, temos alguns avisos.

Se você está começando a formação a partir desse curso, pulando o primeiro da formação, "Introdução ao SQL com Oracle: manipule e consulte dados", não há problemas. Esse primeiro curso é voltado para pessoas que não sabem nada sobre o assunto. Então, muitas o pulam quando já possuem algum conhecimento sobre SQL e desejam seguir para conceitos e técnicas mais avançados.

Dessa forma, caso você tenha começado pelo presente curso e esteja com sua máquina "limpa", é preciso que você tenha instalados os seguintes softwares para realizar esse e outros treinamentos da formação:

Nesse sentido, fica a dica: retorne às Aulas 1 e 2 do curso introdutório. Lá, nos falamos sobre:

Feita essa revisão de conceitos básicos, você pode voltar para o presente curso e começar a seguir o nosso treinamento.

No entanto, caso você esteja seguindo a formação desde o início, ou seja, fez todo o curso introdutório e já tem o ambiente preparado na sua máquina, é só seguir em frente.

Vamos adiante!

Ambiente de trabalho - Criação do ambiente de trabalho

Para montar o ambiente e começar a estudar, vamos baixar os arquivos disponíveis na seção "Download do material" desta aula. Eles estão compactados em Arquivo.zip.

Em seguida, copiamos e colamos esse arquivo em um diretório de nome curto; por exemplo: "Disco Local (C:) > oracle > scripts". Vamos descompactá-lo clicando com o botão direito no nome do arquivo e, no menu contextual, em "Extract" ou "Extrair".

Com isso, teremos 4 comandos SQL que executaremos no nosso banco Oracle, para criar a base de dados para o presente treinamento. Temos os seguintes scripts:

Mais adiante, entenderemos melhor o que são as tabelas cadastrais e as tabelas de movimento. Como ainda não realizamos nenhuma carga dessas tabelas na nossa base de dados Oracle, faremos o seguinte: vamos abrir o script Criacao_Esquema.sql com o editor de texto.

Vemos que, no início desse script, há 5 comandos DROP TABLE:

DROP TABLE ITENS_NOTAS_FISCAIS;
DROP TABLE NOTAS_FISCAIS;
DROP TABLE TABELA_DE_CLIENTES;
DROP TABLE TABEÇA_DE_PRODUTOS;
DROP TABLE TABELA_DE_VENDEDORES;

Esse comando apaga a tabela. Porém, para realizar essa exclusão no esquema Oracle, a tabela precisa existir. Como estamos executando esse script pela primeira vez, essas tabelas não existem no nosso banco. Para evitar erros, digitaremos -- (traço, traço, espaço) na frente de todos os comandos DROP TABLE.

-- DROP TABLE ITENS_NOTAS_FISCAIS;
-- DROP TABLE NOTAS_FISCAIS;
-- DROP TABLE TABELA_DE_CLIENTES;
-- DROP TABLE TABEÇA_DE_PRODUTOS;
-- DROP TABLE TABELA_DE_VENDEDORES;

Isso serve para inserir comentários no Oracle. Isso significa que, quando executarmos esse script, essas cinco linhas serão consideradas como comentários e, portanto, desprezadas. Somente teríamos que rodar os cinco comandos DROP se estivéssemos carregando novamente a nossa base demo, depois de realizar a carga anterior.

Agora, salvaremos esse script no editor de texto e rodá-lo, assim como os outros scripts, em uma ordem natural que será seguida adiante.

Rodando os scripts com o SQL Plus

Nós vimos, no curso de introdução, como rodar um script: basta abrir o SQL Developer e carregar o arquivo SQL.

Porém, se observarmos bem, veremos que dois dos nossos scripts possuem um tamanho acima do normal: Carga_Items_Notas.sql com 24.793 KB e Carga_Notas.sql com 12.930 KB. Muitas vezes temos problemas ao rodar scripts muito grandes no SQL Developer.

Por isso, veremos outra forma de executar scripts no Oracle. Sabemos que a Oracle criou um IDE, uma interface construída para que a pessoa usuária tenha acesso ao banco - o Oracle SQL Developer. É uma interface bastante amigável com uma área de scripts onde podemos copiar e colar comandos, acompanhar os resultados e assim por diante.

Porém, existe um aplicativo mais primitivo, por linha de comando, chamado SQL Plus, nativo do Oracle. Nós o usaremos para criar a nossa base demo e, assim, também veremos como esse aplicativo funciona.

Uma vez que o SQL Plus é do tipo "linha de comando", para executá-lo nós abriremos o aplicativo Prompt de Comando do Windows. Nele, digitaremos sqlplus. Teremos algo como:

Microsoft Windows [versão 10.0.19044.1645]
(c) Microsoft Corporation. Todos os direitos reservados.

C:\Users\Alura-Estudio>sqlplus

Ao apertar "Enter" nesse breve código, o aplicativo nos pedirá o login e a senha da Oracle. Usaremos os mesmos utilizados no primeiro curso, um daqueles usuários padrão nos quais inserimos a senha ao instalar o Oracle. Então:

Microsoft Windows [versão 10.0.19044.1645]
(c) Microsoft Corporation. Todos os direitos reservados.

C:\Users\Alura-Estudio>sqlplus
SQL*Plus: Release 21.0.0.0.0 - Production on Qua Mai 11 00:28:20 2022
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle. All rights reserved.

Informe o nome do usuario: system
Informe a senha: ___

Ao apertar "Enter", temos o SQL Plus ativado, e entramos no Oracle:

// omitido

SQL>

Podemos, por exemplo, codar uma query com o comando select e checar o resultado, digitando-a na frente de SQL>.

Nesse momento, não usaremos o SQL Plus para rodar um comando SQL, mas para rodar nossos scripts.

Criação das tabelas

Começaremos pelo script Criacao_Esquema.sql, que cria todas as tabelas do nosso esquema.

Para rodar um script externo ao SQL Plus, nós digitamos @ e o caminho completo para arquivo script. No nosso caso, é: c:\oracle\scripts\Criacao_Esquema.sql. Então, temos:

SQL> @c:\oracle\scripts\Criacao_Esquema.sql

Dando "Enter" nessa linha, executamos a criação das tabelas.

Carga das tabelas cadastrais

Com o próximo script, efetuaremos a carga das tabelas cadastrais, com o script Carga_Tabelas_Cadastrais.sql.

Podemos repetir o comando que usamos anteriormente apenas apertando a "Seta para cima" no teclado. Então, só precisamos adaptar o código com o nome do arquivo correto:

SQL> @c:\oracle\scripts\Carga_Tabelas_Cadastrais.sql

Ao dar "Enter", as tabelas são carregadas. Agora, como estamos em uma sessão do SQL Plus, precisamos efetuar o COMMIT para confirmar a inclusão dos dados.

Se você fez o curso de introdução, deve lembrar sobre o comando COMMIT e ROLLBACK, ainda que bastante superficialmente. O comando COMMIT confirma as alterações que realizamos no banco. Quando abrimos uma sessão do Oracle e trabalhamos nela, é como se tivéssemos uma instância de Oracle, e tudo o que fazemos nessa instância não pode ser enxergado pelas outras conexões, a não ser quando executamos o COMMIT.

Para isso, é só digitar o seguinte:

SQL> commit

Como o COMMIT é um comando SQL, ele não é executado quando apertamos "Enter" no SQL Plus, mas apenas cria uma segunda linha. Então, basta digitarmos uma barra invertida (\) nessa linha e apertar "Enter" novamente. Visualizaremos a frase "Commit concluído"!

Carga das notas fiscais

Agora vamos executar o script Carga_Notas.sql. Para isso, seguimos os mesmos passos de antes: apertamos a tecla "Seta para cima" 3 vezes para repetir o comando do script (porque rodamos mais duas linhas de código diferentes depois dele), inserimos o nome do script correto e apertamos "Enter". Teremos:

SQL> @c:\oracle\scripts\Carga_Notas.sql

Dessa forma, executamos a carga das tabelas de cabeçalho de notas fiscais. Essa execução pode levar um tempo um pouco maior, por conta do tamanho acima do normal desse arquivo.

Por fim, é só dar o COMMIT para confirmar essa inserção, da mesma maneira que fizemos anteriormente.

SQL> commit

Pronto, inclusão confirmada!

Carga dos itens das notas fiscais

Por fim, vamos rodar o script Carga_Itens_Notas.sql, seguindo os mesmos passos de antes. Teremos:

SQL> @c:\oracle\scripts\Carga_Itens_Notas.sql

Esse script vai levar um tempo ainda maior que o anterior para ser executado, pois possui ainda mais dados. Quando os inclusão dos dados acabar, damos o COMMIT novamente.

Temos todo o banco de dados montado!

Analisando o banco no SQL Plus e no SQL Developer

Para verificar se o banco funciona como desejamos e, inclusive, comparar os acessos ao Oracle pelo SQL Plus e pelo SQL Developer, vamos abrir o SQL Developer.

Como confirmamos cada comando com o COMMIT, ao abrir no SQL Dveeloper teremos outra conexão, outra instância do banco, mas poderemos visualizar as modificações realizadas pela instância à qual o SQL Plus está conectado.

No software, abriremos a nossa conexão. Se abrirmos as tabelas, no menu lateral esquerdo, veremos compondo a lista:

Nesse momento, podemos dividir a nossa tela entre o SQL Developer e o SQL Plus, para entender a conexão.

No SQL Developer, executaremos:

SELECT * FROM TABELA_DE_VENDEDORES;

Teremos, como resultado da consulta, uma tabela de quatro vendedores e seus atributos:

Resultado da consulta (para visualizar todos os campos, execute o código na sua máquina)

MATRICULANOME
00235Marcio Almeida Silva
00236Claudia Morais
00237Roberta Martins
00238Pericles Alves

Agora, vamos repetir o comando no SQL Plus:

SQL> SELECT * FROM TABELA_DE_VENDEDORES;

O resultado da consulta é o mesmo. No entanto, ele não se apresenta de maneira organizada, em tabela, como no SQL Developer. Ou seja, conseguimos executar os comandos Oracle em linhas de comando no SQL Plus, mas é muito mais simples realizar consultas no SQL Developer.

O SQL Plus é um aplicativo herdado das primeiras versões do Oracle, bastante usado antigamente. Nós podemos melhorar um pouco a saída da consulta usando algumas teclas de atalho e comandos, mas é muita coisa para guardar na memória.

Portanto, a finalidade dessa aula foi mostrar que o SQL Plus existe, e que é ótimo para carregar scripts muito grandes. Mas, para trabalhar no Oracle, a melhor opção é o SQL Developer.

Então, agora, apenas fecharemos o SQL Plus. Para isso, podemos apenas fechar a janela do Prompt de Comando ou executar o comando EXIT.

Vamos voltar para o SQL Developer, que será nosso ambiente de trabalho do presente curso.

Sobre o curso Oracle Database: projeções, seleções, joins e views

O curso Oracle Database: projeções, seleções, joins e views possui 361 minutos de vídeos, em um total de 80 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda SQL e Banco de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas