Banco de dados - Aula 1 SQL

946 visualizações

Publicada em

Aula de introdução ao SQL

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Banco de dados - Aula 1 SQL

  1. 1. 1
  2. 2. 2
  3. 3. • 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
  4. 4. • 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
  5. 5. 5
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. • 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
  10. 10. • 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
  11. 11. • 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
  12. 12. • 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
  13. 13. • 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
  14. 14. DDL • SQL define três comandos para a definição de dados: • CREATE (criação); • ALTER (alteração); • DROP (exclusão); 14
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. • 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
  21. 21. • 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
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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

×