https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql
SQL com Oracle Database: manipule e consulte dados
https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql
alura oracle-database sql
Last synced: about 2 months ago
JSON representation
SQL com Oracle Database: manipule e consulte dados
- Host: GitHub
- URL: https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql
- Owner: lucasrmagalhaes
- License: mit
- Created: 2022-11-14T20:59:55.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-15T03:29:46.000Z (over 2 years ago)
- Last Synced: 2025-01-11T12:22:11.334Z (3 months ago)
- Topics: alura, oracle-database, sql
- Homepage:
- Size: 71.3 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### SQL com Oracle Database: manipule e consulte dados
**História da Linguagem SQL**
- SEQUEL
- Linguagem de Consulta Estruturada. Abreviada para SQL (Structure Query Language).
- SQL - 92
- Primeira versão realmente usada que guarda uma estrutura até hoje.
- Todos os softwares de banco de dados adotaram o SQL ANSI como padrão.
- SQL evoluiu a ser mais do que uma linguagem de consulta, suportando manutenção de dados e administração do banco.**Vantagens do banco de dados relacional**
- Os bancos de dados relacionais armazenam os dados de forma mais otimizada, economizando espaço em disco.
- As regras de relacionamentos entre as entidades que compõem o banco de dados relacional podem ser programadas no próprio banco, enquanto nos bancos de dados sequenciais estas relações devem estar contidas no programa ou aplicação no qual elas estão acessando.**Vantagens e desvantagens da padronização**
- Aprendizado
- Portabilidade
- Longevidade
- Comunicação
- Liberdade de escolha**Desvantagens da Padronização do SQL**
- Falta de criatividade
- Falta de estrutura**Grupo de comandos SQL**
- DDL (Data Definition Language)
- É o conjunto de comandos para criação das entidades do banco de dados relacional. CREATE, ALTER, TRUNCATE, DROP.
- DML
- INSERT, UPDATE, DELETE, LOCK.
- DCL
- COMMIT, ROLLBACK, SAVEPOINT.**História da Oracle**
- 1977 - Projeto CIA
- 1978 - Criação da RSI
- 1979 - Primeira versão Assembler
- 1982 - Mudança no nome da Oracle
- 1983 - Primeira versão em C
- 1984 - Versão para PC
- 1987 - Maior empresa de Banco de Dados
- 1988 - Versão com bloqueio de linha
- 1992 - Versão V7
- 1993 - Interface GUI
- 1994 - Morte de um dos fundadores
- 1995 - 64 bits
- 1996 - Oracle 7.3
- 1997 - Oracle 8 Web
- 1998 - Oracle versão Linux
- 1999 - Oracle versão 8I
- 2000 - Oracle versão 9I
- 2003 - Oracle versão 10G GRID
- 2007 - Oracle 11G
- 2013 - Oracle 12C
- 2018 - Oracle 18/19C
- Versão atual - 21C**Instalando o Oracle Express Edition**
- Versão enxuta do Oracle que é usada justamente para estudo, para desenvolvimento e é uma versão gratuita.[Oracle Database 21c Express Edition](https://www.oracle.com/br/database/technologies/xe-downloads.html)
**Instalando o Oracle Developer**
- IDE - Integrated Developmente Environment
- Windows 64-bit with JDK 11 included[Oracle Developer](https://www.oracle.com/database/sqldeveloper/technologies/download/)
**Criando a conexão**
- Criar uma Conexão Manualmente
- Name: CONEXÃO MÁQUINA LOCAL
- Nome do Usuário: SYS, SYSTEM e PDBADMIN
- Senha: Senha da instalação
- [x] Salvar Senha
- Nome do Host: localhost
- Porta: 1521
- Salvar
- Conectar**Significado de Localhost**
- Endereço da própria máquina.**Entidades de um banco de dados**
- Tablespace
- Tabelas
- Visões (Views)
- Procedures ou Funções (PL/SQL)
- TRIGGERTabela
- Linhas e colunas.
- Número de linhas quantas o espaço em disco comportar.
- Número de colunas é limitado.
- Associado a definição da tabela.
- Chamamos estas colunas de CAMPOS.
- As linhas chamamos de REGISTROS ou LINHAS.
- CAMPOS possuem definições rígidas.
- TIPO deve ser único.
- CHAVE PRIMÁRIA (NÃO É OBRIGATÓRIO)
- É a referência a colunas (campos) cujos valores não podem se repetir em outras linhas da mesma tabela.
- Colunas cujos valores não podem se repetir nas linhas da tabela.
- CHAVE ESTRANGEIRA
- Faz a ligação entre dois campos de duas tabelas diferentes.
- Os campos devem ter as mesmas propriedades.
- O campo no qual a chave estrangeira se liga deve ser uma chave primária.
- Índice
- Ajuda a fazer buscar mais rápidas associadas aquela coluna.
- Toda a chave primária vai ter um índice criado.
- Podemos ter colunas que não sejam chaves primárias mas que tenham índices.Visão
- Consulta
- Visão**Tipos de campos**
Campos Textos
- CHAR
- Armazena cadeias de caracteres de comprimento fixo. A criar um campo CHAR precimos definir o comprimento deste campo (1 a 2000 caracteres).
- O valor é fixo. Se temos um campo CHAR(10) e inserimos um texto de 5 caracteres, o Oracle irá preencher o campo com mais 5 vazios.
- Se o valor for muito grande haverá um retorno de erro.
- VARCHAR e VARCHAR2
- Armazena cadeias de caracteres de comprimento variável. A criar um campo CHAR precisamos definir o comprimento deste campo ( 1 a 4000 caracteres).
- O valor é variável. Se temos um campo VARCHAR(10) e inserimos um texto de 5 caracteres, o Oracle irá preencher o campo somente com os 5 caracteres.
- Se o valor for muito grande haverá um retorno de erro.
- VARCHAR e VARCHAR2 são sinônimos. Use sempre VARCHAR2.
- NCHAR, NVARCHAR e NVARCHAR2
- Armazena cadeias de caracteres de comprimento fixo ou variável, mas são caracteres Unicode.
- Respeita as caraterísticas do CHAR, VARCHAR e VARCHAR2.
- Unicode - Fornece um único conjunto de caracteres contendo os idiomas do mundo.
- CLOB e NLOB
- São campos longos que podem armazenar até 8 Terabytes de dados, por campo.
- CLOB e NLOB correspondem a VARCHAR2 e NVARCHAR2.
- Existem um tipo chamado LONG mas que não deve ser mais usado nas versões atuais. Ele existe apenas para manter compatibilidade com bancos de dados Oracle antigos.
- NUMBER
- Armazena números de tamanho fixo e de ponto flutuante. Qualquer número pode ser armazenado neste campo, até 38 dígitos de precisão.
- Números positivos, negativos e zero.
- Opcionalmente podemos determinar a precisão incluindo a escala e a precisão.
- EX.: Number(10,2)Campos Numéricos
- INTEGER
- SHORTINTEGER
- LONGINTEGER
- DECIMAL
- SHORTDECIMALCampos Datas
- DATE
- O campo DATE armazena dados no formato data e hora.
- O próprio Oracle tem sua forma interna de armazenar a data. Ela é exibida, na sua foma padrão como: DD-MM-YY.
- Na hora de incluir dados o campo usa como padrão 00:00:00AM como hora na data. A não ser que isso seja explicitamente especificado.
- Curiosidade
- O Oracle é inteligente a desprezar datas que não existem:
- Quando o calendário Juliano foi implementado 10 dias foram suprimidos.
- Ele deu um pulo entre a data 04-10-1582 e 10-10-1582.
- Logo, para o Oracle, o dia seguinte a 04-10-1582 será 10-10-1582 e este saldo é incluído em todas as funções de data internas.
- TIMESTAMP
- TIMESTAMP WITH TIME ZONE
- TIMESTAMP WITH LOCAL TIMEZONE
- São tipos especiais que levam em conta milésimos de segundos, fusos horários e, inclusive, horário de verão.Campos Binários
- BLOB
- Armazena dados binários não estruturados no banco de dados. BLOBs pode armazenar até 128 terabytes de dados binários.
- BFILE
- Armazena dados binários não estruturados em arquivos do sistema operacional fora do banco de dados.**VARCHAR vs NVARCHAR**
- NVARCHAR usa uma tabela de códigos de caracteres entendida, comportando diversos idiomas, enquanto a VARCHAR usa uma tabela reduzida, para identificação dos caracteres do texto.**Conhecendo o SQL Developer**
* [conhecendo_sql_developer](https://github.com/lucasrmagalhaes/oracle-sql/blob/main/conhecendo_sql_developer.sql)**Preparando o banco a ser criado**
- Modelo Relacional
- Conhecer o negócio;
- Diagrama de entidades;
- Modelo de entidade e relacionamentos; e
- Metadados.- Cadastro de Clientes
- CPF do cliente
- O nome completo
- Endereço (Rua, bairro, cidade, estado e CEP)
- Data de nascimento
- A idade
- O sexo
- O limite de crédito para ele comprar produtos
- O volume mínimo de sucos que ele pode comprar
- Se ele já realizou a primeira compra**Criando a primeira tabela**
* [criando_primeira_tabela](https://github.com/lucasrmagalhaes/oracle-sql/blob/main/criando_primeira_tabela.sql)**Criando uma tabela usando o assistente**
* [tabela_produtos](https://github.com/lucasrmagalhaes/oracle-sql/blob/main/tabela_produtos.sql)**Apagando tabelas**
* [apagando_tabelas](https://github.com/lucasrmagalhaes/oracle-sql/blob/main/apagando_tabelas.sql)**Inserindo registros na tabela**
- Arquivo
- Novo
- Arquivos de Banco de Dados[inserindo_registros_na_tabela](https://github.com/lucasrmagalhaes/oracle-sql/blob/main/inserindo_registros_na_tabela.sql)
**Incluindo o primeiro vendedor**
* [primeiro_vendedor](https://github.com/lucasrmagalhaes/oracle-sql/blob/main/primeiro_vendedor.sql)**Inserindo vários registros na tabela**
* [inserindo_varios_registros](https://github.com/lucasrmagalhaes/oracle-sql/blob/main/inserindo_varios_registros.sql)**Incluindo outros vendedores**
* [incluindo_outros_vendedores](https://github.com/lucasrmagalhaes/oracle-sql/blob/main/incluindo_outros_vendedores.sql)**Alterando dados da tabela**
* [alterando_dados_tabela](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/alterando_dados_tabela.sql)**Alterando comissões de vendedores**
* [alterando_comissoes_vendedores](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/alterando_comissoes_vendedores.sql)**Excluindo registros**
* [excluindo_registros](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/excluindo_registros.sql)**Excluindo um vendedor**
* [excluindo_um_vendedor](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/excluindo_um_vendedor.sql)**Incluindo a chave primária na tabela**
* [incluindo_chave_primaria](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/incluindo_chave_primaria.sql)**Criação de chave primária para vendedores**
* [criacao_chave_primaria_vendedores](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/criacao_chave_primaria_vendedores.sql)**Manipulando campos de datas**
* [manipulando_campos_datas](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/manipulando_campos_datas.sql)**Novos vendedores**
* [novos_vendedores](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/novos_vendedores.sql)**Recriando a base de dados**
* [recriando_base_dados](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/recriando_base_dados.sql)**Filtrando o resultado das consultas**
* [filtrando_resultados](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/filtrando_resultados.sql)**Filtros condicionais**
* [filtros_condicionais](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/filtros_condicionais.sql)**Filtros com datas**
* [filtros_datas](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/filtros_datas.sql)**Filtros compostos**
* [filtros_compostos](https://github.com/lucasrmagalhaes/manipule_e_consulte_dados-sql/blob/main/filtros_compostos.sql)**Ponto de atenção ao fechar o SQL Developer**
- Commit das Alterações
- Devolver para o banco e fazer todas as alterações
- Efetuar Rollback das Alterações
- Esquece todas as modificações
- Abortar desconexão da conexão