banco de dados - aula 1 sql
TRANSCRIPT
![Page 1: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/1.jpg)
1
![Page 2: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/2.jpg)
2
![Page 3: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/3.jpg)
• Linguagem padrão para os bancos de dados relacionais;
– Presente praticamente em todos os SGBD´s Relacionais;
– Fácil migração de um SGBD para outro que usa este mesmo modelo;
– Uma das grandes responsáveis pela grande aceitação dos SGBDR´s.
Introdução
3
![Page 4: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/4.jpg)
• O núcleo da linguagem SQL é dividido em várias partes;
– DDL;
• Criação, alteração e remoção de tabelas e índices;
– DML;
• Inserção, consulta, alteração e modificação de tuplas;
– Manipulação de dados embutida;
• Acesso ao BD através de linguagens de programação;
– Definição de visões;
• Definição de visões a partir das tabelas criadas;
Introdução
4
![Page 5: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/5.jpg)
5
![Page 6: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/6.jpg)
SQL
• Tipos de Linguagem
• DDL: Data Definition Language – Linguagem de definição de dados;
• Criação, alteração e remoção de estruturas;
• A nível de Tabela:
• CREATE
• ALTER
• DROP
6
![Page 7: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/7.jpg)
SQL
• Tipos de Linguagem
• DML: Data Manipulation Language – Linguagem de Manipulação de Dados
• Inserção, alteração e remoção de dados;
• A nível de Tupla:
• INSERT
• UPDATE
• DELETE
7
![Page 8: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/8.jpg)
SQL
• Tipos de Linguagem
• DML: Data Manipulation Language – Linguagem de Manipulação de Dados;
• SELECT
• Ordenação de dados;
• Agrupamento de dados;
• Funções aritméticas;
• Filtros de seleção;
8
![Page 9: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/9.jpg)
• Tipos Numéricos:
– INT ou INTEGER;
• Números inteiros;
– SMALLINT;
• Números inteiros pequenos;
– REAL;
• Números reais com precisão simples;
Tipos de dados SQL
9
![Page 10: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/10.jpg)
• Tipos Numéricos: – DOUBLE PRECISION;
• Número real com precisão dupla;
– FLOAT(n);
• Ponto flutuante com precisão definida pelo usuário;
– NUMERIC (p,d);
• Ponto flutuante onde p é a precisão (total de dígitos decimais) e d é a escala (número de casas depois do ponto);
Tipos de dados SQL
10
![Page 11: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/11.jpg)
• Cadeias de caracteres: – CHAR(n) ou CHARACTER(N);
• Cadeia de caracteres de tamanho fixo; • Caracteres brancos são adicionados à direita caso o
número de caracteres não seja preenchido;
– VARCHAR(n);
• Cadeia de caracteres com tamanho variável, onde n é o comprimento máximo da cadeia;
– CHARACTER LARGE OBJECT (CLOB);
• Usado para armazenar strings grandes, como textos e documentos;
Tipos de dados SQL
11
![Page 12: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/12.jpg)
• Cadeias de bits: – BIT(n);
• Conjunto de bits de tamanho fixo;
– BIT VARYING(n);
• Conjunto de bits de tamanho variável, onde n é o tamanho máximo;
– BINARY LARGE OBJECT (BLOB); • Grandes quantidades de bits, usado para armazenar
vídeos, fotos, mapas, etc;
Tipos de dados SQL
12
![Page 13: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/13.jpg)
• Tipos Booleanos: – BOOLEAN:
• Valores booleanos;
• EM SQL, ele pode assumir os valores true, false ou unknow;
• Data e Hora: – DATE:
• Especifica uma data com o formato YYYY-MM-DD;
– TIME:
• Especifica uma hora com o formato HH:MM:SS;
Tipos de dados SQL
13
![Page 14: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/14.jpg)
DDL
• SQL define três comandos para a definição de dados:
• CREATE (criação);
• ALTER (alteração);
• DROP (exclusão);
14
![Page 15: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/15.jpg)
DDL
• Criando uma nova tabela:
• Usamos o comando CREATE TABLE;
• Definimos um nome para a tabela;
• Definimos depois a lista de atributos, cada qual com seu respectivo tipo;
• Por fim, definimos as restrições;
• Chave primária, chave estrangeira, etc;
15
![Page 16: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/16.jpg)
DDL
• Criando uma nova tabela:
• A definição de um atributo tem a seguinte sintaxe:
• Nome tipo [NOT NULL] [UNIQUE] [DEFAULT valor]
• Onde:
• Nome: corresponde ao nome do atributo;
• Tipo: corresponde ao tipo de dado deste atributo (Tipo SQL);
• NOT NULL: restrição que indica que o valor do atributo não pode ser nulo;
16
![Page 17: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/17.jpg)
DDL
• Criando uma nova tabela:
• A definição de um atributo tem a seguinte sintaxe:
• Nome tipo [NOT NULL] [UNIQUE] [DEFAULT valor]
• Onde: • [UNIQUE]: restrição que indica que o valor do atributo é
único; • Usada para chaves secundárias;
• [DEFAULT]: usado para definir um valor inicial para o atributo caso o valor não seja informado;
17
![Page 18: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/18.jpg)
DDL
• Criando uma nova tabela:
• Podemos especificar as seguintes restrições:
• Chave Primária:
• PRIMARY KEY (atributos_chaves);
• Chave Estrangeira:
• FOREIGN KEY (atributo) REFERENCES tabela_base(atributo);
• Restrição de integridade:
• CHECK (condição);
18
![Page 19: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/19.jpg)
Exercício 1) Criar uma tabela para cada esquema de
relação: Fornecedor (Codigo, Nome, Cidade); Peça (CodPeca, CodFornecedor, Nome, Descricao); Venda (CodForn, CodPeca, Quantidade, Data);
Exercícios - DDL
19
![Page 20: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/20.jpg)
• Criando a tabela Fornecedor:
CREATE TABLE Fornecedor(
Codigo INT,
Nome VARCHAR(20) NOT NULL,
Cidade VARCHAR(20) NOT NULL,
PRIMARY KEY (Codigo)
)
Exercícios - DDL
20
![Page 21: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/21.jpg)
• Criando a tabela Peça: CREATE TABLE Peca(
CodFornecedor INT, CodPeca INT, Nome VARCHAR(20) NOT NULL, Descricao VARCHAR(50), FOREIGN KEY (CodFornecedor) REFERENCES Fornecedor(Codigo), PRIMARY KEY(CodPeca) )
Exercícios - DDL
21
![Page 22: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/22.jpg)
Exercícios - DDL
• Criando a tabela Venda: CREATE TABLE Venda(
CodForn INT, CodPeca INT, Quantidade INT DEFAULT 1, Data DATE, PRIMARY KEY (CodForn,CodPeca), FOREIGN KEY (CodForn) REFERENCES
Fornecedor(Codigo), FOREIGN KEY (CodPeca) REFERENCES
Peca(CodPeca) )
22
![Page 23: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/23.jpg)
DDL
• Definindo chaves estrangeiras:
– Como já vimos, usamos a restrição “FOREIGN KEY” para a definição de uma chave estrangeira;
• Uma restrição de integridade referencial é gerada;
– Podemos especificar o que o SGBD deve fazer para manter a integridade referencial dos dados:
• Numa atualização (através da restrição ON UPDATE);
• Numa exclusão (através da restrição ON DELETE);
23
![Page 24: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/24.jpg)
DDL
• Definindo chaves estrangeiras:
– Para cada uma destas restrições, temos quatro valores possíveis;
• RESTRICT:
–A atualização ou remoção é rejeitada;
• CASCADE:
– A atualização ou exclusão é propagada para as tuplas relacionadas;
24
![Page 25: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/25.jpg)
DDL
• Definindo chaves estrangeiras:
– Para cada uma destas restrições, temos quatro valores possíveis;
• SET NULL: – As tuplas relacionadas com a tupla a ser atualizada
ou removida tem o valor do atributo chave estrangeira correspondente alterado para Null;
• SET DEFAULT: – As tuplas relacionadas com a tupla a ser atualizada
ou removida tem o valor do atributo chave estrangeira correspondente alterado para um valor default;
25
![Page 26: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/26.jpg)
DDL
• Definindo chaves estrangeiras:
– Vamos recriar uma das tabelas de nosso exemplo:
CREATE TABLE Peca(
CodFornecedor INT,
CodPeca INT,
Descricao VARCHAR(50),
PRIMARY KEY(CodPeca),
FOREIGN KEY (CodFornecedor) REFERENCES Fornecedor(Codigo) ON DELETE RESTRICT ON UPDATE CASCADE
)
26
![Page 27: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/27.jpg)
DDL
• Nomeando as restrições:
– Podemos nomear cada restrição definida em uma tabela;
– Isto permite remover uma determinada restrição depois que a tabela é criada;
– Fazemos isso usando a palavra “CONSTRAINT” antes da restrição, seguido do nome dado para a mesma;
27
![Page 28: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/28.jpg)
DDL
• Nomeando as restrições:
CREATE TABLE Peca(
CodFornecedor INT,
CodPeca INT,
Descricao VARCHAR(50),
PRIMARY KEY(CodPeca),
CONSTRAINT REFERENCIA
FOREIGN KEY (CodFornecedor) REFERENCES Fornecedor(Codigo) ON DELETE RESTRICT ON UPDATE CASCADE
)
28
![Page 29: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/29.jpg)
DDL
• Alterando uma Tabela:
– Podemos alterar uma tabela usando o comando ALTER TABLE;
– Ao alterar uma tabela, podemos:
• Adicionar ou eliminar uma coluna;
• Alterar a definição de uma coluna;
• Adicionar ou eliminar restrições;
29
![Page 30: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/30.jpg)
DDL
• Alterando uma Tabela: – Adicionando ou removendo colunas:
• Podemos adicionar uma coluna através da cláusula ADD:
• Se a tabela já foi povoada, todas as tuplas recebem um valor nulo para o novo atributo; –A restrição NOT NULL não pode ser aplicada
neste tipo de atributo; • Exemplo:
ALTER TABLE Empregado ADD Cpf VARCHAR(15);
30
![Page 31: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/31.jpg)
DDL
• Alterando uma Tabela: – Adicionando ou removendo colunas:
• Podemos remover uma coluna através da cláusula DROP;
• Podemos usar as opções CASCADE ou RESTRICT para tratar as restrições e visões que referenciam o atributo a ser excluído;
• Exemplo:
ALTER TABLE Empregado DROP Salario CASCADE;
31
![Page 32: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/32.jpg)
DDL
• Alterando uma Tabela:
– Alterando a definição de uma coluna:
• Podemos alterar a definição de uma tabela usando as cláusulas ALTER e SET;
• Exemplo:
ALTER TABLE Venda ALTER Quantidade SET DEFAULT=2;
32
![Page 33: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/33.jpg)
DDL
• Alterando uma Tabela:
– Adicionando e removendo restrições:
• Podemos adicionar uma restrição através da cláusula ADD CONSTRAINT;
• Exemplo:
ALTER TABLE Venda ADD CONSTRAINT QuantPositiva CHECK (Quantidade>=0)
33
![Page 34: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/34.jpg)
DDL
• Alterando uma Tabela:
– Adicionando e removendo restrições:
• Podemos remover uma restrição através da cláusula DROP CONSTRAINT;
• Para ser removida, uma restrição deve ter sido nomeada;
• Exemplo:
ALTER TABLE Peca DROP CONSTRAINT Referencia;
34
![Page 35: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/35.jpg)
DDL
• Removendo uma Tabela:
– Podemos remover uma tabela através do operador DROP;
– Podemos usar as opções CASCADE ou RESTRICT para tratar as tabelas e visões que referenciam a tabela a ser excluída;
– Exemplo:
DROP TABLE Venda CASCADE; (A tabela e suas referencias são apagadas)
DROP TABLE Venda RESTRICT (Apenas tabelas sem visões dependentes ou restrições são apagadas)
35
![Page 36: Banco de dados - Aula 1 SQL](https://reader031.vdocuments.pub/reader031/viewer/2022021813/5883daad1a28ab62358b501b/html5/thumbnails/36.jpg)
DDL
• Removendo uma Tabela:
– Exemplo:
DROP TABLE Venda CASCADE;
Onde a tabela e suas referencias são apagadas
DROP TABLE Venda RESTRICT;
Onde apenas tabelas sem visões dependentes ou restrições são apagadas.
36