SQL Introdução Flashcards
Porque os bancos relacionais revolucionara a forma de armazenar e consultar dados?
Trouxeram uma abordagem estruturada, eficiente e flexível para gerenciar grandes volumes de informação
O que é o modelo relacional?
Criado por Edgar F. Codd em 1970, baseia-se no conceito de tabelas, onde os dados são organizados em linhas e colunas, tornando a informação intuitiva e estruturada.
Qual o motivo da criação da linguagem SEQUEL
Projetado para facilitar a interação com bancos relacionais. Permitia que usuários consultassem dados utilizando uma sintaxe semelhante á linguagem natural.
Evolução do SEQUEL para SQL
SEQUEL foi renomeada para SQL devido a questões de marca registrada envolvendo o nome original. Nos anos seguintes o SQL deixou de ser apenas uma linguagem de consulta e foi expandida para comandos de manipulação de dados (inserir, atualizar e excluir), definição de estrutura (criar e modificar tabelas, índices e outras estruturas), controle de dados (gerenciar permissões e segurança).
Aspectos de administração existentes hoje para o SQL?
DDL (Criar e alterar tabelas, índices e esquemas), DML (Inserir, atualizar, excluir e consultar dados), DCL (Gerenciar permissões e segurança) e TCL (Controlar transações, garantindo propriedades ACID)
Explique porque o armazenamento otimizado e economia de espaço são vantagens de bancos relacionais?
Os bancos relacionais permitem organizar dados de forma eficiente e reduzir redundâncias, otimizando espaços, como por exemplo, em vez de repetir informações de um cliente em várias linhas, uma tabela de “Clientes” armazena os dados de uma vez, com referências a outras tabelas.
O que são as regras de relacionamento internas?
São os relacionamentos entre entidades definidos diretamente no banco de dados por meio de chaves primárias e estrangeiras.
Exemplos de comandos DDL
CREATE, ALTER, TRUNCATE, DROP
Exemplos de comandos DML
INSERT, UPDATE, DELETE, LOCK
Exemplo de comandos DCL
COMMIT, ROLLBACK, SAVEPOINT
O que é uma Tablespace?
É uma abstração usada para organizar o armazenamento físico das tabelas e outros objetos do banco de dados. Possui tamanho máximo, que limita o espaço ocupado, tem privilégios como quem pode acessar e modificar certos objetos e pode ser usado para melhorar a performance armazenando diferentes partes do banco em discos diferentes.
O que é uma tabela?
Principal estrutura do banco de dados onde os dados são armazenados. A tabela é composta por linhas e colunas. Possuem definição rígida, ou seja, a estrutura deve ser definida antes de serem usadas, por exemplo, colunas devem ter tipos de dados únicos e cada coluna pode ter uma certa restrição.
Qual a diferença de linha e coluna?
Linha contêm os dados da tabela, enquanto que colunas definem os tipos de dados e as regras de valores
O que é uma chave primária?
Identifica de forma única cada linha de uma tabela. Os valores devem ser únicos, não podendo haver repetições, não pode haver valores nulos e não é obrigatório nas tabelas.
O que é chave estrangeira?
É usada para criar uma relação entre duas tabelas. Deve referenciar um campo de outra tabela, que geralmente é a chave primária da outra tabela. Garante integridade referencial, impedindo que sejam criados registros inexistentes.
O que é índice?
Melhora a performance das consultas, organizando os dados de uma coluna ou conjunto de colunas para facilitar a busca. Porém, esses índices podem aumentar o espaço em disco e tornar a operação de escrita mais lenta devido a necessidade de atualizar o índice
O que é uma view?
É uma tabela lógica que não armazena dados fisicamente, mas apresenta resultados de consulta. São úteis para restringir acesso ou simplificar consultas complexas, porém por não serem dados armazenados fisicamente, a performance pode ser menor em comparação a uma tabela.
O que é uma procedure ou função?
São blocos de código programados no banco de dados para realizar operações específicas onde Procedures executam uma série de ações, podendo ou não retornar valores, enquanto que as funções sempre retornam um valor. São escritas em linguagem PL/SQL no Oracle e são usadas para automatizar tarefas frequentes e reduzir a complexidade de consulta.
O que é uma Trigger?
É um gatilho de ação automática executado pelo banco de dados em resposta a um evento em uma tabela (inserção, atualização ou exclusão de dados). Útil para registrar atividades, porém pode impactar negativamente a performance se mal projetado.
O que é um campo tipo CHAR?
Armazena um conjunto de caracteres de tamanho fixo. Se o tamanho do campo for CHAR(10) então ele armazenará 10 caracteres, mesmo o conteúdo tendo apenas 3, o restante será preenchido com espaços em branco.
Qual a utilidade de um campo CHAR?
Útil para dados que tem sempre o tamanho fixo como código de produtos ou CEPs e CPFs
O que é um campo VARCHAR ou VARCHAR2
Armazena caracteres de comprimento variável, espaço corresponde apenas à quantidade de caracteres inseridos.
Qual a diferença de VARCHAR e VARCHAR2?
O VARCHAR possui especificação obsoleta enquanto que o VARCHAR2 armazena uma forma mais eficiente e amplamente utilizada em bancos modernos
Características do tipo VARCHAR2
Economia de espaço em disco, pois não armazena espaços extras e ideal para campos com tamanho variável
Para que servem os campos NCHAR, NVARCHAR, NVARCHAR2?
Permitem armazenar caracteres de idiomas globais, utilizando conjunto de caracteres Unicode. Exemplo: caracteres chineses, árabes, japoneses e outros idiomas não representados em ASCII padrão
Problema dos tipos iniciados com N?
Consome mais espaço, pois cada caractere por ocupar até 2 ou 4 bytes, dependendo do sistema
O que é o CLOB e o NLOB?
CLOB armazena grandes volumes de dados textuais, tendo capacidade de suportar até 8 Terabytes de texto. O NLOB é mais voltado para armazenamento de textos em formatos unicode, indicado para grandes quantidades de texto em idiomas globais.
Dificuldades do CLOB e do NLOB
Exigem mais recursos para manipulação devido ao tamanho
O que é o tipo NUMBER?
Usado para armazenar números de tamanho fixo ou de ponto flutuante. Armazena desde números inteiro até valores financeiros ou resultados cientificos.
Qual a diferença de tamanho fixo e ponto flutuante?
O de tamanho fio possuem precisão definida como NUMBER(10,2), que armazena 10 dígitos, com 2 decimais. Enquanto que o ponto flutuante armazena valores com precisão variável.
O que é o campo DATE?
Armazena informações de data e hora. Inclui valores como ano, mês, dia, hora, minuto e segundo.
Pode existir mais de um formato em DATE?
Sim, dependendo da região o formato pode mudar como por exemplo DD/MM/YYYY e MM/DD/YYYY
O que é o tipo TIMESTAMP?
Estende o tipo DATE, adicionando frações de segundo. Indicado para aplicações que precisam de maior precisão temporal.
Quais são os passos para o processo de criação de um banco de dados?
Primeiro passo é o entendimento do negócio onde são levantados os requisitos como necessidades e dados essenciais
Em seguida o Diagrama de Entidades onde é feito a representação gráfico das entidades e relacionamentos
Terceiro o MER, que seria um esboço técnico detalhado com tabelas, chaves primárias e estrangerias (design lógico do banco)
Depois, os Metadados, que seriam definições de tipos, restrições e tamanhos dos campos
Depois disso o projeto final que é um documento completo do banco para implementação
Por último a implementação, que seria a execução dos scripts SQL para criar o banco no SGBD
O que é um ALIAS?
Um Alias permite atribuir um nome temporário a uma tabela ou coluna em uma consulta SQL. Não altera os nomes ou estruturas físicas no banco de dados. Só existe durante a execução da consulta
Qual a diferença de alias para colunas e tabelas?
Colunas:
SELECT coluna AS ‘novo_nome’
FROM tabela;
Tabelas:
SELECT t.coluna
FROM tabela AS t;
Como utilizamos o ALIAS com palavras compostas?
Quando o Alias contém palavras compostas ou caracteres especiais, ele deve ser colocado entre aspas duplas:
SELECT nome AS “Nome Completo”
FROM clientes;
Qual a necessidade de ter ALIAS em tabelas com join?
Ao fazer JOINS entre tabelas, é comum que colunas de diferentes tabelas tenham o mesmo nome, nesse caso o SQL não sabe a qual tabela a coluna pertence, gerando ambiguidade.
O que é uma chave primária?
É um identificador único para cada registro de uma tabela. Garante que não haja duplicação de informações e não pode conter valores nulos.
Verdadeiro ou falso: Cada tabela pode ter mais de uma chave primária
Falso. Cada tabela só pode ter apenas uma chave primária.
Para que serve uma chave estrangeira?
Conecta tabelas relacionadas, criando vínculos lógicos. Essa integridade referencial assegura que os valores na chave estrangeira correspondam a valores existentes na chave primária da tabela referenciada.
Qual a convenção de nomeação para chaves estrangeiras e primárias?
PK para chaves primárias e FK para chaves estrangeiras.
Fale um pouco do case sensitivity no SQL
O SQL por padrão não diferencia maiúsculas de minúsculas em nomes de tabelas e colunas, porém os valores usados no WHERE podem ser case-sensitive, dependendo do banco.
Quais são os filtros quantitativos de comparação?
< : Menor que
<=: Menor ou igual a
>: Maior que
>=: Maior ou igual a
=: Igual
<>: Diferente
BETWEEEN: Intervalo
Como o Oracle compara strings?
O Oracle compara strings em ordem alfabética, baseada no código ASCII dos caracteres. Caracteres maiúsculos vêm antes de caracteres minúsculos.
Quais são os operadores lógicos que podemos utilizar?
AND, OR, NOT, LIKE, BETWEEN, IN
Como funciona os operadores AND, OR e NOT
AND: Exige que todas as condições sejam verdadeiras para o resultado ser verdadeiro
OR: Retorna verdadeiro se pelo menos uma condição for verdadeiro
NOT: Inverte o resultado de uma condição
Qual o resultado da expressão: (IDADE_ALUNO >= 18 OR FORMADO = ‘INGLÊS’) OR (IDADE_ALUNO < 18 AND FORMADO = ‘ALEMÃO’)
Com a entrada de dados IDADE_ALUNO = 17 e FORMADO = ‘INGLÊS’
17 >= 18 → FALSO
‘INGLÊS’ = ‘INGLÊS’ → VERDADEIRO
(FALSO OR VERDADEIRO) → VERDADEIRO
17 < 18 → VERDADEIRO
‘INGLÊS’ = ‘ALEMÃO’ → FALSO
(VERDADEIRO AND FALSO) → FALSO
(VERDADEIRO) OR (FALSO) → VERDADEIRO
Qual a utilidade do operador IN?
Simplifica múltiplas condições OR no mesmo campo
Para que serve o operador LIKE
Usado para buscas flexíveis em coluna de textos. O símbolo % representa qualquer sequencia de caracteres.
Qual a utilidade do DISTINCT?
Quando aplicado a uma coluna, o DISTINCT analisa os valores retornados e elimina duplicatas. Pode ser usado para verificar combinações únicas de duas ou mais colunas.
O que é o ROWNUM?
Coluna especial no Oracle que atribui um número sequencial a cada linha retornada pela consulta, começando em 1. Essa numeração é gerada apenas no momento da execução da consulta.