O que foi visto na aula passada ?
create database
Drop database
Create table
Drop table
Realizar o modelo conceitual, o modelo relacional e o modelo físico (sql - create) da seguinte situação
A rede de farmácias pague menos deseja desenvolver um software e você foi escolhido para projetar o banco de dados. Use as seguintes informações:
Um farmácia tem um cnpj, tem um nome e tem um dono.
Uma farmácia vende vários remédios e os remédios são vendidos em várias farmácias Os remédios tem id, um nome, uma formula, a data de validade e o valor
Uma farmácia tem vários farmacêuticos e um farmacêutico só pode trabalhar em uma farmácia Um farmacêutico tem cpf, telefones, data_de_nascimento e um nome.
Um farmacêutico também pode gerenciar os seus colegas, mas os farmacêuticos só tem um gerente.
Deseja guardar cpf do gerente
Modelo relacional
Farmacias(cpnj, nome, dono)
farmaceuticos(cpf ,nome, data_nascimento, id_gerente)
Farmaceuticos_telefones(cpf_farmaceutico, telefone) cpf_farmacêutico referencia farmaceuticos remedios(id, nome, formula, data_de_validade, valor)
Farmacias_vende_remedios (cpnj, id) cnpj referencia farmácias, id referencia remédios
Modelo físico
CREATE DATABASE pague_menos;
CREATE TABLE farmacias ( cnpj INT,
dono TEXT, nome TEXT,
PRIMARY KEY(cnpj) );
Farmacias(cpnj, nome, dono)
Modelo físico
CREATE TABLE farmaceuticos ( cpf INT,
cpf_gerente INT,
data_nascimento DATE, nome TEXT,
PRIMARY KEY(cpf) );
farmaceuticos(cpf ,nome, data_nascimento, id_gerente)
Modelo físico
CREATE TABLE farmaceuticos_telefones ( cpf_farmaceutivos INT,
telefone INT,
PRIMARY KEY(cpf_farmaceuticos, telefone),
FOREIGN KEY(cpf_farmaceuticos) REFERENCES farmaceuticos );
Farmaceuticos_telefones(cpf_farmaceutico, telefone)
cpf_farmacêutico referencia farmaceuticos
CREATE TABLE remedios ( id INT,
Nome TEXT, Formula TEXT,
Data_de_validade DATE, Valor float,
PRIMARY KEY(id) );
Modelo físico
remedios(id, nome, formula, data_de_validade, valor)
CREATE TABLE farmacia_vende_remedios ( id INT,
CNPJ INT,
FOREIGN KEY (cnpj) references farmacias, FOREIGN KEY (id) references remedios, );
Modelo físico
Farmacias_vende_remedios (cpnj, id) cnpj referencia
farmácias, id referencia remédios
O que veremos hoje?
Comandos DML - Linguagem de manipulação de dados
INSERT
UPDATE
DELETE
(SELECT TAMBÉM É MAS NÃO VAMOS VER HOJE)
Comandos SQL
DML
SQL – Inserção de Dados
Comando Insert (sintaxe)
INSERT INTO <nome da tabela>
(<nomes das colunas>) VALUES (<valores>);
SQL – Inserção de Dados
Comando Insert (exemplos)
INSERT INTO fiscais (cod, nome, sexo, cidade, estado, telefone,salario) VALUES (17,'Esdras','m','Recife','PE',34558787, ‘1800.50');
INSERT INTO fiscais (cod, nome, sexo, cidade, estado, telefone,salario) VALUES (12,‘Maria',‘f',‘Caruaru','PE',34558787, ‘2300.80');
INSERT INTO fiscais VALUES (19,‘Ivan','m',‘Caruaru','PE',87369191, ‘1200‘);
Campos podem ser omitidos.... Mas será que devem?
Menor clareza, e intuitividade valem a pena?
SQL – Atualização de Dados
Comando Update (sintaxe)
UPDATE <nome da tabela>
SET <nome da coluna> = (<valor>) WHERE <condicao>;
ONDE condição pode ser mais bem detalhada em:
Campo Operador Valor
Ex1: sexo = ‘m’
SQL – Atualização de Dados
Comando Update (exemplos)
UPDATE fiscais
SET nome = 'Esdras Ricardo’
WHERE cod = 17;
UPDATE fiscais
SET cidade = ‘lagoa do ouro’, estado = ‘PE’
WHERE cod = 12;
Se eu quiser
atualizar mais de um campo ao mesmo
tempo?
SQL – Exclusão de Dados
Comando Delete (sintaxe)
DELETE FROM <nome da tabela>
WHERE <condicao>;
SQL – Atualização de Dados
Comando Delete (exemplos)
Excluindo o fiscal “Esdras” da tabela Fiscal
DELETE FROM clientes WHERE cod = 17