Bancos de Dados - Aula 13 - Linguagem de consulta – SQL Parte I
Introdução ao SQL
Apresentação da Aula
- Sara apresenta a disciplina de bancos de dados na Univesp, focando na linguagem SQL.
- SQL é uma linguagem de consulta amplamente utilizada em sistemas de gerenciamento de banco de dados (SGBDs) comerciais.
- A compreensão prévia da álgebra relacional e do cálculo relacional facilita o aprendizado dos comandos SQL.
Estrutura e Comandos do SQL
- A aula abordará comandos padrão do SQL, conforme especificações da ANSI e ISO.
- Serão estudados comandos DDL (Definição de Dados) e DML (Manipulação de Dados).
Comandos DDL: Criação, Alteração e Exclusão
Comando Create
- O comando
CREATEé utilizado para criar objetos nos SGBDs, iniciando a implementação do banco de dados.
Criação de Domínios
- O comando
CREATE DOMAINpermite especificar restrições sobre os tipos de dados que podem ser inseridos em atributos.
- Exemplo: criação do domínio
IDcomo um tipo caracter com limite de 4 caracteres.
- Outro exemplo: criação de um domínio inteiro com checagem para valores entre 1 e 20 usando o comando
CHECK.
Criação de Tabelas
- O comando
CREATE TABLEdefine a estrutura das tabelas, incluindo atributos e suas restrições.
Exemplo Prático: Tabela Funcionário
- A tabela "funcionário" é criada com atributos específicos, cada um obedecendo a tipos definidos.
- Restrições como
NOT NULLgarantem que certos atributos não aceitem valores nulos.
- Chave primária (
PRIMARY KEY) é definida para o atributoidente, garantindo unicidade.
Chaves Estrangeiras
Definição e Referência
- As chaves estrangeiras são essenciais para relacionar tabelas; no exemplo,
sup_identereferencia o atributoidente.
Implementação de Chaves Estrangeiras e Alterações em Tabelas
Atributo de Número como Chave Estrangeira
- O atributo de número, que é uma chave estrangeira na tabela "funcionário", não pode receber valor nulo, exigindo um valor previamente cadastrado na tabela "departamento".
Relacionamento entre Tabelas
- A implementação da chave estrangeira e a restrição NOT NULL estabelecem um relacionamento do tipo participação total. É questionado se a tabela "departamento" já foi criada antes da criação da tabela "funcionário".
Resolução de Problemas com ALTER TABLE
- Se a tabela "departamento" não estiver criada, o SGBD não conseguirá aplicar a restrição. O comando
ALTER TABLEé sugerido para resolver essa questão.
Alterando Definições de Tabela
- Após criar a tabela "departamento", é possível alterar a definição da tabela "funcionário" para incluir a restrição de chave estrangeira.
Exemplos de Comandos ALTER TABLE
- O comando
ALTER TABLEpode ser usado para modificar atributos existentes, como alterar especificações ou excluir campos. Exemplo: exclusão do campo endereço com opções 'Cascata' ou 'Restrito'.
Exclusões e Comandos DML
Exclusão com Cascata e Restrito
- Ao usar 'Cascata', alterações se propagam para objetos dependentes; ao usar 'Restrito', o SGBD impede exclusões se houver referências.
Comando DROP
- O comando
DROPpermite deletar tabelas ou objetos criados anteriormente, podendo também utilizar as opções 'Cascata' ou 'Restrito'.
Comandos DML: INSERT, UPDATE e DELETE
- Os comandos DML são utilizados para manipulação dos dados nas tabelas:
INSERTinsere valores,UPDATEaltera valores existentes eDELETEremove registros.
Inserção de Tuplas em Tabelas
- O comando
INSERT INTOpermite inserir tuplas em uma tabela existente. É importante seguir a ordem correta dos atributos para evitar inconsistências nos dados.
Especificação Parcial na Inserção
- É possível inserir apenas alguns atributos especificando quais valores serão preenchidos; os demais receberão valores nulos se permitidos.
Consultas e Recuperação de Dados
Inserção Baseada em Consultas
- Valores podem ser inseridos utilizando resultados provenientes de outras consultas (SELECT), permitindo organizar dados antes da inserção final.
Atualização de Valores com UPDATE
Comandos SQL: Atualização e Exclusão de Dados
Comando UPDATE em SQL
- O comando
UPDATEpermite modificar valores em uma tabela, utilizando a cláusulaSETpara especificar os novos valores e a cláusulaWHEREpara definir as condições que determinam quais tuplas serão alteradas.
- Exemplo prático: ao alterar a tabela
projeto, o atributolocalizaçãoé atualizado para "Minas Gerais" apenas nas tuplas onde o número do projeto é igual a 1.
Alteração de Salário
- A alteração de dados pode incluir operações matemáticas, como aumentar o salário dos funcionários em 10% (salário vezes 1,1), aplicando essa mudança somente às tuplas que atendem a uma condição específica.
Comando DELETE em SQL
- O comando
DELETE FROMremove tuplas da tabela. Se usado sem condições, todas as tuplas são excluídas; com uma condição na cláusulaWHERE, apenas as tuplas que satisfazem essa condição são removidas.
- Por exemplo, ao excluir um funcionário com identificador igual a 17, apenas essa única tupla será removida devido à chave primária que garante unicidade.
Condições em Exclusões
- As condições para exclusão podem ser baseadas em consultas SQL prévias, permitindo verificar se um determinado valor está presente antes de realizar a exclusão.
Conclusão da Aula sobre SQL