Você está na página 1de 132

Programação em SQL -

Iniciação

[FEC.SQLI.C.D.15]
Programação em SQL - Iniciação

Duração: 50 horas

Formador:
Manuel Loureiro
Avaliação

– Teste escrito final + tarefas propostas: 70%


– Assiduidade e Pontualidade: 10%
– Autoavaliação: 20%
– Nota mínima no teste final: 45% (9 valores)
Objetivos

• Objetivos
– Desenhar bases de dados relacionais
– Criar e modificar estruturas de bases de dados MYSQL
– Criar e editar VIEWS com SQL
– Criar, editar e executar Procedimentos com SQL
– Realizar consultas com programação SQL
Conceitos básicos

Dados VS Informação
Dados:
São valores que se encontram numa forma primária e que se
encontram armazenados em tabelas.
Ex: Nome, NIF, Data
Conceitos básicos

Informação:
São os factos organizados de maneira a produzir um significado.
Dados contextualizados.
Exemplo: Lista de clientes com os seus números, designação.
O que é uma base de dados

É uma coleção organizada de dados que modelam aspectos do mundo


real;
Uma base de dados é composta por diversos objetos:
Tabelas, esquemas, vistas, consultas, relatórios, procedimentos,
triggers entre outros.
Aplicações das bases de dados

Sistemas bancários
Reservas em hotéis
Controlo de stocks de supermercados
Catálogos de livros em bibliotecas
E-commerce
Finanças
Youtube
SGBD

É uma coleção de software que permitem aos utilizadores criarem e


manterem uma ou mais bases de dados.
São usados nas tarefas de definição, construção, manipulação e
partilha dos bases de dados entre aplicações e utilizadores;
Permite proteger a base de dados e mantê-lo ao longo do tempo.
Exemplos de SGBD

Oracle database
Microsoft SQL Server
Mysql
Sap Sybase
Teradata
PostgreeSQL
SQLite
Sistema de Base de Dados

Utilizadores
Aplicativos de acesso
SGBD - Manipulação / Consultas / Definição de dados
Base de dados + metadados
Utilizadores de bases de dados

Administrador
Programador
Utilizador final
Caraterísticas e funcionalidades

Controle de redundâncias
Vistas
Controle de concorrência
Backup e restauro
Autenticação e autorização de acesso
Restrições de integridade
Histórico

Modelo hierárquico:
Neste modelo os dados são organizados de forma hierárquica, com conjuntos
de tipos de registos interligados;
Modelo em rede:
Ligados entre registos mas sem restrição hierárquica
Modelo relacional:
Neste modelo os dados são separados em entidades, com atributos
relacionados entre si
Modelos de dados

Um modelo é uma estrutura que ajuda o projetista a comunicar os


conceitos que estão na sua mente.
Podemos usá-los para tarefas como descrever, analisar, especificar e
comunicar ideias;
O modelo deve possuir detalhes suficientes para que o programador
consiga construir a base de dados de acordo com a necessidade do
projeto.
Modelação de dados

Modelação de dados é o processo de criação de um modelo de dados para um


sistema de informação, com a aplicação de técnicas específicas de modelação.
Trata-se de processos para definir e analisar requisitos de dados necessários
para suportar processos de negócio com sistemas informatizados em
organizações
Um modelo de dados fornece uma estrutura para os dados usados num SI,
com definições e formatos específicos.
Modelo relacional

Os princípios do modelo relacional foram esboçados por E F Codd (IBM) num


artigo publicado em junho de 1970 onde ele propunha o modelo relacional
para sistemas de bases de dados.
Deu lugar aos modelos hierárquico e em rede
Modelo relacional

No modelo relacional os dados são organizados em coleções de tabelas


bidimensionais
essas tabelas são também chamadas de relações
Baseados na lógica e teoria de conjuntos.
Componentes do modelo relacional

Coleções de objetos ou relações que armazenam dados.


Um conjunto de operadores que agem nas relações, produzindo outras
relações.
Integridade de dados: Precisão e consistência
Base de dados relacional

Uma base de dados relacional é uma coleção de relações, que são tabelas
bidimensionais, onde os dados são armazenados.
Como exemplo, podemos querer armazenar dados sobre os clientes de uma
loja. Para isso criamos tabelas para guardar diferentes conjuntos de dados
relacionados com os clientes, como dados pessoais, dados de compras, crédito
entre outras.
Componentes de uma base de dados relacional
Tabela: estrutura básica de armazenamento no SGBDR. Armazena todos os
dados necessários sobre algo do mundo real, como clientes, pedidos ou
produtos.
Tupla, linha ou registo representa todos os dados requeridos por uma
determinada ocorrência de entidade em particular. Por exemplo, os dados de
um cliente específico. Cada linha de uma tabela deve ser identificada por uma
chave primária, de modo a não haver duplicação de registos.
Colunas. unidade que armazena um tipo específico de dado (valor) - ou não
armazena nada (valor nulo)
Componentes de uma base de dados relacional

Relacionamentos: Associação entre entidades (tabelas), conectadas por chaves


primárias e chaves estrangeiras.
Outros: Índices, Trigers, Stored procedures, etc
Chave primária: Coluna (atributo) que identifica um registo de forma exclusiva
na tabela. Por exemplo, o NIF de um cliente
Chave estrangeira
Análise de requisitos

Nesta fase são realizadas reuniões para recolher informações que analisam o
que é exigido para o banco de dados a ser criado.
os processos de negócio são definidos e as entidades, atributos e
relacionamentos da BD
O que é o SQL?
• SQL significa Structured Query Language;
• É uma linguagem padrão ANSI desde 1986 - (American National Standards Institute);
• É uma linguagem padrão ISO desde 1987 - (International Organization for Standardization);

• O SQL é utilizado em Sistemas de Gestão de Base de Dados:


– MySQL
– SQL Server
– MS Access
– Oracle
– Postgres
– … outros
O que se pode fazer com SQL?

• Criar bases de dados (BD);


• Criar tabelas numa BD;
• Inserir registos (dados) numa BD;
• Recuperar (obter) dados de uma BD;
• Atualizar dados de uma BD;
• Apagar dados de uma BD;
• Criar procedimentos dados numa BD;
• Criar views numa BD;
• Definir permissões em tabelas, procedimentos e vistas numa BD;
Apesar de o SQL ser um padrão…

• Apesar do SQL ser um padrão ANSI e ISO existem diferentes


versões da linguagem.
• Apesar de tudo, a maioria dos comandos (SELECT, UPDATE,
DELETE, INSERT, WHERE) são de certa forma semelhantes.
• Quase todos os SGBD (programas) têm as suas próprias extensões
proprietárias.
Estrutura de uma tabela (exemplo)
Tabelas numa base de dados

• Uma base de dados é composta por uma ou mais tabelas;


• Cada tabela tem o seu nome ou identificador;
• As tabelas guardam dados;

• Os dados, dependendo da sua


natureza, agrupam-se em tipos.
SQL – Sabia que…

• O SQL não é sensível ao tipo de caixa;

• SELECT ou select obtêm o mesmo resultado;

• O ponto e vírgula no final de cada instrução só é obrigatório se


houver instruções subsquentes;
SQL – Comandos mais usados (alguns)
• SELECT - extrai dados;
• UPDATE - atualiza dados;
• DELETE – elimina dados;
• INSERT INTO – insere registos ou dados;
• CREATE DATABASE – cria uma base e dados;
• ALTER DATABASE – altera uma base de dados;
• CREATE TABLE – cria uma nova tabela;
• ALTER TABLE – modifica a estrutura de uma tabela;
• DROP TABLE – remove uma tabela;
• CREATE INDEX – cria um índice;
• DROP INDEX – remove o índice;
A declaração CREATE DATABASE

• É a declaração usada para criar uma base de dados


• Pode ser complementada com a condição IF NOT EXISTS
CREATE DATABASE - Exercício

Crie as seguintes base de dados no seu sistema:


CREATE DATABASE IF NOT EXISTS aviacao;
CREATE DATABASE IF NOT EXISTS turismo;
CREATE DATABASE IF NOT EXISTS clinica;

- escola
- aparcamento
- funcionarios
- pescaria
- volta
DROP DATABASE

• É a declaração usada para remover uma base de dados;


• Pode ser complementada com a condição IF EXISTS;
• Ao remover a base de dados, remove todas as suas tabelas,
procedimentos, views, etc;
DROP DATABASE

• A diferença entre usar ou não a condição IF EXISTS está na


resposta do sistema. Se não existir uma base de dados verá um
erro do sistema.
A declaração DROP DATABASE

• A diferença entre usar ou não a condição IF EXISTS está na


resposta do sistema. Se não existir uma base de dados verá um
erro do sistema.
A declaração CREATE TABLE
Ferramenta de texto para escrever SQL

• Bloco de notas
• Brackets
• Visual Code
• Noted pad++
• …
CREATE TABLE – Exercício 1
CREATE TABLE – Exercício 1
CREATE TABLE – Exercício 1
CREATE TABLE – Exercício 2 (TPC)
CREATE TABLE – Exercício 2 (TPC)
CREATE TABLE – Exercício 2 (TPC)
CREATE TABLE – Exercício 3 (TPC)
CREATE TABLE – Exercício 3 (TPC)
DROP TABLE
CREATE TABLE -> RENAME TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
DESCRIBE table
SQL Constraints (Restrições)

• Especificam regras na manipulação de dados da tabela


• Podem ser ao nível da tabela ou da coluna

NOT NULL – Garante que o campo na tabela não recebe um valor nulo;
UNIQUE – Garante que o valor não é repetido na tabela;
PRIMARY KEY – Combinação entre o NOT NULL e o UNIQUE;
FOREIGN KEY – Primary KEY noutra tabela;
CHECK – Assegura que um valor da coluna satisfaz uma dada condição;
DEFAULT – Assegura um valor predeterminado caso a coluna não receba outro valor;
INDEX – Para fazer ligação entre colunas da tabela.
INSERT INTO
INSERT INTO
USE formacao;
INSERT INTO curso (curso, regime) VALUES
('CET Redes', 'Laboral'),
('CET Sistemas de Informacao', 'Labora'),
('CET Sistemas de Informacao', 'Pos Laboral'),
('CET de Automacao', 'Laboral'),
('CET de Automacao', 'Pos Laboral');
SELECT
SELECT
SELECT
SELECT coluna1, coluna2
SELECT *
SELECT
SELECT DISTINCT
WHERE
OPERADORES RELACIONAIS
Operadores relacionais
Operações relacionais
Operador BETWEEN
Operador BETWEEN
Operador IN
Operador NOT IN
Operador IN
Operador IN
Operador NOT IN
Operador LIKE
Operador LIKE
Operações Lógicas
Operações lógicas - Cláusula AND

A B A and B
V V V
V F F
F V F
F F F
Operações lógicas - Cláusula OR

A B A or B
V V V
V F V
F V V
F F F
Relembrar a tabela curso
Operações lógicas - Cláusula OR
Operações lógicas - Cláusula OR
Operações lógicas - Cláusula AND
Operações lógicas - Cláusula AND
Operações lógicas - Cláusula AND
ORDER BY - Ordenação
ORDER BY ASC
ORDER BY DESC
ORDER BY DESC
ORDER BY DESC
LIMIT
LIMIT
LIMIT
LIMIT
Min()
Max()
Max()
Count()
COUNT()
AVG()
AVG()
SUM()
O Operador LIKE

• O operador LIKE é utilizado para pesquisar um padrão dentro de


uma coluna;
• Podem ser usado em simultâneo com os símbolos (wildcards) %
(percentagem) e _ (underscore);
• O símbolo percentagem ( % ) representa nenhum, um ou múltiplos
caracteres;
• O símbolo underscore ( _ ) representa um único caracter;
• Se usarmos dois símbolos underscore seguido ( __ ) estamos a
procurar dois caracteres.
Wildcards do operador LIKE

• WHERE curso LIKE 'a%' - Qualquer valor começado por “a”

• WHERE curso LIKE '%a' - Qualquer valor terminado em “a”

• WHERE curso LIKE '%a%' - Qualquer valor que contenha o “a”

• WHERE curso LIKE '_a%' – Qualquer valor que tenha a letra “a” na segunda

posição
Wildcards do operador LIKE

• WHERE curso LIKE 'a_%' – Qualquer valor começado por “a” mas que

contenha pelo menos 2 caractéres

• WHERE curso LIKE 'a__%' - Qualquer valor começado por “a” mas que

contenha pelo menos 3 caractéres

• WHERE curso LIKE 'a%o' - Qualquer valor começado por “a” e que termine

com o caracter “o”


[charlist] Wildcard

• SELECT * FROM curso WHERE regime LIKE '[pn]%s'


– Qualquer curso cujo valor do regime inicie pela letra p ou n
• SELECT * FROM curso WHERE regime LIKE '[a-f]%s'
– Qualquer curso cujo valor do regime inicie pela letra a,b,c,d,e,
ou f
• SELECT * FROM curso WHERE regime LIKE '[!pn]%s'
– Qualquer curso cujo valor do regime não inicie pela letra p ou
n
ou
– SELECT * FROM curso WHERE regime NOT LIKE '[pn]%s'
SQL Aliases

• Serve para alterar o nome de uma tabela ou campo no momento


da sua projeção;
• Simplificar a leitura das tabelas ou colunas;
• Também pode ser omitido
SQL Aliases (AS)
JOIN
Exercícios de
programação em SQL
SELECT id AS idcurso, curso,
regime FROM `curso`
Exercícios de SQL – Tabela do curso

• Quantos cursos diferentes estão registados na base


de dados formacao?
Exercícios de SQL – Tabela do curso

• Total de cursos de multimédia?


Exercícios de SQL – Tabela do curso

• Regimes associados ao ‘CET de Multim_dia’?


Exercícios de SQL – Tabela do curso

• Cursos CET em regime Pós-Laboral?


Exercícios de SQL – Tabela do curso

• Relação de todos os cursos (sem repetição) com ordenação


ascendente por curso (ignore o regime)
Exercícios de SQL – Tabela do curso

-- 8) Total de cursos agrupados por regime?


Exercícios de SQL – Tabela do curso

-- 9) Total de cursos CET Redes em regime Pós-Laboral


Exercícios de SQL – Tabela formando

• Relação de formandos ordenados pela idade, nome, e apelido.


Exercícios de SQL – Tabela formando

-- 11) Liste de forma única a ‘Situação de emprego’


Exercícios de SQL – Tabela formando

• Cidades dos formandos de “a” a “g”


Exercícios de SQL – Tabela formando

• Média global de idade dos formandos.


Exercícios de SQL – Tabela formando

• Percentagem de alunos pelo grau de escolaridade


Exercícios de SQL – Tabela formando

• Relação de formandos com idade igual ou superior a 23 anos.


Exercícios de SQL – Tabela formando

• Relação de formandos desempregados com habilitação ao nível do


básico residentes no Porto ou Gaia e cujo telemóvel pertença à
rede 95
Exercícios de SQL – Tabela formando

• Formanda mais nova (feminino)


Exercícios de SQL – Tabela formando

• Formando mais velho (masculino)


Exercícios de SQL – Tabela formando

• Formandas (Feminino) cuja idade coincide com o valor das média


da idade global?
Exercícios de SQL – Tabela formando

• Relação de aniversariantes cujas datas de aniversário não são


únicas

Você também pode gostar