- Definir estrutura de uma base de Dados com SQL - DDL
- Manipular os dados em SQL- DML
- Consultas em SQL envolvendo várias tabelas
Exemplos de Sistemas de Gestão de Bases de Dados Relacionais
Alguns sistemas populares:
Todos utilizam a linguagem SQL para manipular dados.
EXEMPLO de uma BD no SGBD MariaDB (improved of MySQL/)
ESTRUTURA de uma Base de Dados
Nome da Base de Dados: "comprarcarros"
constituída pelas tabelas:
Visualização dos dados nas tabelas
Tabela Fornecedores
LINGUAGEM SQL (Structured Query Language)
1️⃣ DDL ( Data Definition Language ) - definição de estrutura2️⃣ DML (Data Manipulation Language) - manipulação de dados
TCL (Transaction Control Language) - controlo de transações
Comando | Função |
CREATE | Criar bases de dados ou |
ALTER | Alterar uma tabela |
DROP | Apagar uma tabela ou a base de dados |
TRUNCATE RENAME | Esvazia a tabela (apaga todos os dados) Renomeia a tabela |
👉 É o conjunto de comandos usados para criar, alterar e apagar a estrutura da base de dados (tabelas, colunas, etc.).
Comando | Função |
INSERT | Selecionar dados Inserir dados |
| Atualizar dados |
DELETE | Apagar dados |
|
Exemplos
|
Categoria |
Tipo de dado |
Descrição |
Exemplo |
|
Numérico |
INT |
Número inteiro |
10 |
|
BIGINT |
Inteiro muito grande |
1000000 |
|
|
DECIMAL(p,s) DECIMAL (4,2) |
Número com precisão decimal p (precision) → número total de dígitos s (scale) → número de casas
decimais |
10.50 |
|
|
FLOAT |
Número com casas decimais aproximadas |
3.1415… |
|
|
Texto |
CHAR(n) CHAR (1) |
Nº caracteres de tamanho fixo |
"F",
“M” |
|
VARCHAR(n) VARCHAR(20) |
Texto de tamanho variável |
"Maria" |
|
|
TEXT |
Texto longo |
descrição grande |
|
|
Data/Hora |
DATE |
Guarda apenas data |
2026-03-16 |
|
TIME |
Guarda hora |
14:30:00 |
|
|
DATETIME |
Guarda data e hora |
2026-03-16 14:30:00 |
|
|
TIMESTAMP |
Data e hora automática |
2026-03-16 14:30:00 |
|
|
Lógico |
BOOLEAN |
Verdadeiro ou falso |
TRUE |
|
Binário |
BLOB |
Guarda ficheiros ou imagens |
Imagem |
📊 Diferença entre DECIMAL e FLOAT
| Tipo | Característica | Uso principal |
|---|---|---|
| DECIMAL | Valores exatos | 💰Valores financeiros € (preços, salários) e Classificações |
| FLOAT | Valores aproximados | 🔬Cálculos científicos ou estatísticos (arredondamentos) |
📊Métodos guardar imagens
| Método SQL Vantagem |
|---|
| BLOB | foto Blob guarda a imagem dentro da base de dados |
| PATH | foto VARCHAR(255) mais rápido e mais usado em aplicações |
EXEMPLO em SQL
|
CREATE DATABASE nome_da_DB; |
CREATE DATABASE Loja; |
|
Sintaxe Exemplo | |||||
CREATE
TABLE nome_da_tabela ( campo1
tipo de dados
restrições, campo2 tipo de dados restrições, campo3 tipo de dados restrições ); 1.2. ALTER - Adicionar/ Modificar / Apagar Coluna da tabela O comando Sintaxe básica
Adicionar campo - ADD ou ADD COLUMN
|
|
Sintaxe | Exemplo |
ALTER TABLE nome_da_tabela MODIFY campo tipo de dados; | ALTER TABLE Clientes MODIFY email VARCHAR(255) |
Renomear uma coluna - RENAME COLUMN ou CHANGE
Sintaxe SQL Server/ PostgreSQL | Exemplo |
ALTER TABLE nome_da_tabela RENAME COLUMN campo TO novocampo ; | ALTER TABLE Clientes RENAME COLUMN DataNascimento TO DataNasc; |
Sintaxe MariaDB e MySQL | Exemplo |
ALTER TABLE nome_da_tabela CHANGE campo novocampo Tipo de dado; | ALTER TABLE Clientes CHANGE DataNascimento DataNasc DATE; |
Sintaxe | Exemplo |
ALTER TABLE nome_da_tabela DROP COLUMN nome_coluna; | ALTER TABLE Clientes DROP COLUMN DataNasc ; |
Sintaxe | Exemplo |
DROP TABLE nome_tabela; | DROP TABLE Clientes; |
Sintaxe | Exemplo |
DROP DATABASE nome_BD; | DROP DATABASE Loja; |
Sintaxe | Exemplo |
TRUNCATE TABLE nome_tabela; | |
Sintaxe | Exemplo |
RENAME TABLE nome_antigo TO nome_novo; |
|
📊 Tipos de restrições (constraints)
mais usadas em SQL
|
Restrição |
Função |
Exemplo |
|
PRIMARY KEY |
Identifica registo único |
id INT PRIMARY KEY |
|
NOT NULL |
Campo obrigatório (não vazio) |
nome VARCHAR(40) NOT NULL |
|
UNIQUE |
Não permite duplicados |
email VARCHAR(150) UNIQUE |
|
FOREIGN KEY |
Liga tabelas |
FOREIGN KEY (CodClientFK)
REFERENCES Clientes (CodClient) |
|
DEFAULT |
Valor automático |
ativo BOOLEAN DEFAULT TRUE |
|
AUTO_INCREMENT |
Incremento automático |
id INT PRIMARY KEY AUTO-INCREMENT |
EXEMPLO
CREATE
TABLE Alunos (
nprocesso INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100) NOT NULL ,
email VARCHAR(150) UNIQUE,
repetente
BOOLEAN DEFAULT TRUE
,
FOREIGN KEY
(codCursoFK )
REFERENCES Cursos
(CodCurso)
);