Linguagens de SGBDs (Sistemas de Gestão de Bases de Dados)
Neste capítulo, vamos explorar as linguagens de Sistemas de Gestão de Bases de Dados (SGBDs), fundamentais para interagir e manipular bases de dados de forma eficaz. As linguagens de SGBDs são essenciais para realizar operações como a criação, leitura, atualização e eliminação de dados, e neste contexto, daremos especial atenção ao SQL (Structured Query Language), a linguagem mais utilizada nos ambientes de bases de dados relacionais.
Introdução ao SQL
SQL, ou Structured Query Language, é a linguagem padrão utilizada para comunicar com bases de dados relacionais. É uma linguagem declarativa, o que significa que descrevemos o que queremos receber do sistema de base de dados sem especificar o percurso para alcançar esse resultado. Este conceito simplifica a interação com a base de dados permitindo aos utilizadores focarem-se mais naquilo que pretendem obter, deixando ao sistema de base de dados a responsabilidade de otimizar as consultas.
Tipos de Comandos SQL
O SQL pode ser dividido em diferentes categorias de comandos que permitem desde a definição de estrutura até à manipulação dos dados contidos na base de dados.
1. Linguagem de Definição de Dados (DDL)
Os comandos DDL são usados para definir a estrutura da base de dados, criando e modificando esquemas e tabelas. Aqui estão alguns exemplos básicos:
-
CREATE: Cria novas tabelas ou bases de dados.
CREATE TABLE Clientes ( ID INT PRIMARY KEY, Nome VARCHAR(100), Email VARCHAR(100) ); -
ALTER: Altera a estrutura de uma tabela existente.
ALTER TABLE Clientes ADD DataNascimento DATE; -
DROP: Remove tabelas ou bases de dados.
DROP TABLE Clientes;
2. Linguagem de Manipulação de Dados (DML)
A DML permite interagir com os dados dentro das tabelas:
-
INSERT: Insere novos registos numa tabela.
INSERT INTO Clientes (ID, Nome, Email) VALUES (1, 'Maria Silva', 'maria.silva@exemplo.pt'); -
UPDATE: Atualiza dados existentes.
UPDATE Clientes SET Email = 'maria.nova@exemplo.pt' WHERE ID = 1; -
DELETE: Remove dados da tabela.
DELETE FROM Clientes WHERE ID = 1;
3. Linguagem de Consulta de Dados (DQL)
A DQL é utilizada para consultar dados armazenados:
-
SELECT: Retorna dados de tabelas.
SELECT Nome, Email FROM Clientes WHERE Nome LIKE 'Maria%';
4. Linguagem de Controle de Transação (TCL)
Os comandos TCL são usados para gerir o processamento de transações na base de dados. Estes comandos são essenciais para garantir a integridade dos dados, prevenindo inconsistências num ambiente multiutilizador.
-
COMMIT: Guarda permanentemente todas as mudanças realizadas durante uma transação.
COMMIT; -
ROLLBACK: Reverte mudanças não confirmadas, restaurando o último estado consistente.
ROLLBACK;
Exemplos Práticos
Exemplo 1: Gestão de uma Base de Dados de Livraria
Vamos imaginar uma base de dados para gerir uma livraria. Criamos três tabelas: Autores, Livros, Vendas.
-
Criar uma tabela para guardar informação sobre autores:
CREATE TABLE Autores ( AutorID INT PRIMARY KEY, Nome VARCHAR(100), Nacionalidade VARCHAR(50) ); -
Inserir um autor chamado "João Almeida":
INSERT INTO Autores (AutorID, Nome, Nacionalidade) VALUES (1, 'João Almeida', 'Português'); -
Atualizar a nacionalidade do autor para "Brasileiro":
UPDATE Autores SET Nacionalidade = 'Brasileiro' WHERE AutorID = 1; -
Consultar o nome e nacionalidade do autor cujo nome começa com "João":
SELECT Nome, Nacionalidade FROM Autores WHERE Nome LIKE 'João%';
Resumo do Capítulo
Neste capítulo, explorámos a Structured Query Language (SQL), que é a principal linguagem utilizada para interagir com bases de dados relacionais. Vimos diferentes tipos de comandos: DDL para definir a estrutura da base de dados, DML para manipular dados, DQL para consultar dados, e TCL para controlar transações. Com exemplos práticos, como a criação e gestão de uma base de dados de livraria, ganha-se uma compreensão sólida sobre como utilizar SQL para gerir bases de dados eficazmente.
Quiz
-
O que se entende por SQL e por que é importante em SGBDs?
-
Qual a diferença entre os comandos DDL e DML? Dê um exemplo de cada.
-
Como se poderia alterar a tabela
Clientespara adicionar um novo campo "Telefone"? Escreva o comando SQL. -
Quando deve utilizar os comandos COMMIT e ROLLBACK?
-
Explique a diferença entre a consulta
SELECTe a açãoINSERTcom base em suas funções no SQL.