0% acharam este documento útil (0 voto)
22 visualizações

Banco de Dados: Introdução À SQL

Enviado por

gilvan
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
22 visualizações

Banco de Dados: Introdução À SQL

Enviado por

gilvan
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 55

Banco de Dados

Introdução à SQL
SQL

 Características da
Structured Query Language - SQL
SQL

 SQL é uma linguagem de pesquisa declarativa para


banco de dados relacional. Muitas das características
originais do SQL foram inspiradas na álgebra
relacional;
 Foi desenvolvida originalmente no início dos anos 70
nos laboratórios da IBM em San Jose e tinha por
objetivo demonstrar a viabilidade da implementação
do modelo relacional proposto por E. F. Codd;
 O nome original da linguagem era SEQUEL, acrônimo
para "Structured English Query Language".
SQL

 A linguagem SQL é um grande padrão de banco de


dados. Isto decorre da sua simplicidade e facilidade
de uso.
 Ela é uma linguagem declarativa em oposição a
outras linguagens procedurais. Isto reduz o ciclo de
aprendizado daqueles que se iniciam na linguagem.
SQL

 Divisão da linguagem SQL:


– Linguagem de Definição de Dados (DDL): A DDL da
SQL fornece comandos para definir esquemas de
relação, excluir relações e modificar esquemas;
– Linguagem de Manipulação de Dados (DML): A DML
inclui uma linguagem de consulta. Também possui
comandos para inserir, excluir e modificar dados no
BD;
SQL

– Linguagem de Controle de Dados (DCL): Controla os


aspectos de autorização de dados e licenças de
usuários para controlar quem tem acesso para ver ou
manipular dados dentro do banco de dados.
– Linguagem Transação de Dados (DTL): Controla as
transações do Banco de Dados.
Instruções - DML

 SELECT: Instrução que permite ao usuário especificar


uma consulta como uma descrição do resultado
desejado.
 INSERT: Instrução que é usada para inserir um
registro numa tabela existente. –
 UPDATE: Instrução que altera os valores de dados em
um registro da tabela especificada.
 DELETE: Instrução que permite remover registros
existentes de uma tabela.
Instruções - DDL

 CREATE: Instrução que cria um objeto (uma tabela,


por exemplo) dentro da base de dados.
 DROP: Instrução que apaga um objeto do banco de
dados.
 Alguns sistemas de banco de dados usam o comando
ALTER, que permite ao usuário alterar um objeto, por
exemplo, adicionando uma coluna a uma tabela
existente.
Instruções - DCL

 GRANT: Instrução que autoriza ao usuário executar


ou configura operações.
 REVOKE: Instrução que remove ou restringe a
capacidade de um usuário de executar operações.
Instruções - DTL

 BEGIN WORK (ou START TRANSACTION, dependendo


do dialeto SQL) pode ser usado para marcar o
começo de uma transação de banco de dados que
pode ser completada ou não.
 COMMIT envia todos os dados das mudanças
permanentemente.
 ROLLBACK faz com que as mudanças nos dados
existentes desde o último COMMIT ou ROLLBACK
sejam descartadas.
SQL - DDL

 Tipos de Domínio Básicos


• char(n): uma string de caracteres de tamanho fixo,
com tamanho n;
• varchar(n): uma string de caracteres de tamanho
variável, com tamanho máximo n;
• int ou integer: um inteiro (depende da máquina);
• smallint: um inteiro pequeno;
SQL - DDL

• numeric(p,q): um número de ponto fixo com precisão


especificada pelo usuário. São p dígitos dos quais q
deles estão depois da vírgula. – Exemplo:
numeric(3,1) permite a representação do número
22,5 e não permite a representação do número 0,31
nem do número 214,2.
• real, double precision: números de ponto flutuante e
ponto flutuante de precisão dupla, com precisão
dependente da máquina.
• float(n): um número de ponto flutuante, com precisão
de pelo menos n dígitos.
Criando tabelas e chaves

• Instrução CREATE
create table nome_tabela(
atributo_1 tipo_domínio_1 ,
atributo_2 tipo_domínio_2,...,
atributo_n tipo_domínio_n ,
restrição_integridade_1,
restrição_integridade_2,...,
restrição_integridade_n)
Criando tabelas e chaves
Criando tabelas e chaves

 • Exemplo:
Empregado(id_empregado, id_departamento,
nome_empregado)
id_departamento referencia Departamento
Departamento(id_departamento, nome_departamento)
Criando tabelas e chaves
Criando tabelas e chaves

 • Exemplo:
Locação(id_locação, data);
DVD(id_dvd,título,gênero)
Item_Locação(id_locação, id_dvd)
id_locação referencia Locação,
id_dvd referencia DVD
Criando tabelas e chaves
Criando tabelas e chaves

 Restrições já apresentadas:
– Restrição de chave primária (primary key);
– Restrição de integridade referencial (foreign
key);
 Outras Restrições:
– Integridade de Vazio - not null;
– Integridade de Chave Alternativa - unique;
– Restrição Semântica - check().
Integridade de vazio – not null

 Foi estudado que certos atributos de entidade


podem ser nulos (ex.: atributo
numero_apartamento para a entidade
cliente);
 Ao usarmos a restrição not null, estamos
afirmando que o determinado atributo não
poderá receber valor nulo;
 O SGBD gera um erro se esse tipo de restrição
não for obedecida.
Integridade de vazio – not null
Integridade da chave unique

 • A especificação unique (A1,...,An) diz que os


atributos A1,...,An formam uma chave
alternativa, ou seja, nenhum par de
entidades/relacionamentos pode ser igual em
todos os atributos;
 • Entretanto, os atributos de chave alternativa
podem ser nulos, a menos que tenham sido
declarados como not null.
Integridade da chave unique
Restrição semântica - check

 A cláusula check pode ser aplicada a


declarações de tabelas, bem como a
declarações de domínios;
 Exemplo em declarações de tabelas:
create table aluno (
id_aluno integer,
nome varchar(60) not null,
nivel_grau varchar(15),
primary key(id_aluno),
check (nivel_grau in
('Bacharelado','Mestrado','Doutorado')) )
Alterando tabelas existentes

 Adicionando nova coluna:


alter table nome_tabela add nova_coluna
dominio_nova_coluna

Exemplo: alter table cliente add email


varchar(255)
Alterando tabelas existentes

 Excluindo atributo existente:


 alter table nome_tabela drop
atributo_existente
 Exemplo: alter table cliente drop email
Alterando tabelas existentes
SQL - DML

 Instrução INSERT
insert into nome_tabela (
atributo_1,
atributo_2,...,
atributo_n
) values (
valor_atributo_1,
valor_atributo_2,...,
valor_atributo_n
)
Inserindo dados em uma tabela
Consultando tabelas

 Instrução SELECT
select C 1,C 2,...,C n from T 1,T 2,...,T m
where P
• Em que:
– Ci Coluna i;
– Tj Tabela j;
– P Predicado
Consultando tabelas
Consultando tabelas
Cláusula Where
Cláusula Where

A cláusula where pode conter diversos


conectivos lógicos como and, not e or.
 A cláusula ainda suporta diversos operadores
de comparação como <,<=,>,>=,= e <>.
Cláusula Where
Operações com string

 As operações em strings mais usadas são as


checagens para verificação de coincidências
de pares, utilizando o operador LIKE. Esses
pares são identificados por meio do uso de
dois caracteres especiais:
 Porcentagem ( % ): compara qualquer string;
 Sublinhado ( _ ): compara qualquer caractere.
Operações com string

 Exemplos:
• "_ _ _ _%" corresponde a qualquer string com
pelo menos quatro caracteres.
• "Uni % " corresponde corresponde a qualquer
qualquer string que comece com "Uni", como,
"universo", "universal", "universidade".
• Utilizando not LIKE pode-se pesquisar
diferenças, ao invés de coincidências.
• Obs.: Essas comparações são case sensitive.
Distinct
Ordenação na exibição de registros
Funções agregadas

 As funções agregadas são aquelas que tomam


uma coleção de valores como entrada e
retornam um único valor;
 A SQL oferece cinco funções básicas
embutidas:
– Média (average): avg;
– Mínimo: min;
– Máximo: max;
– Soma: sum;
– Conta: count.
Funções agregadas
Funções agregadas
Cláusula Having
Teste de valores nulos

 Relembrando: valores nulos são aqueles em


que não se aplica um valor para aquele
atributo naquela entidade;
 Testamos se um valor é nulo ou não através
da construção is null ou is not null,
dependendo do caso.
select nome_cliente from cliente where
numero_apto is null
Consultas aninhadas

 A SQL permite testar registros que participam


em outras consultas;
 O conectivo IN testa a presença em uma
consulta;
 O conectivo conectivo NOT IN testa a ausência
em uma consulta;
Consultas aninhadas
Consultas aninhadas
Consultas aninhadas
Junções
Junção interna
Junção externa esquerda
Outras junções
Junção natural
Exclusão de registros
Atualização de registros

Você também pode gostar