Disciplina: Banco de Dados Tema: SQL Parte 2 PROFESSOR: DANILO MONTEIRO EMAIL: PROF.DANILO.MONTEIRO@GMAIL.COM
O que foi visto na aula passada? create database Drop database Create table Drop table PROF.DANILO.MONTEIRO@GMAIL.COM 2
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 PROF.DANILO.MONTEIRO@GMAIL.COM 3
PROF.DANILO.MONTEIRO@GMAIL.COM 4
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 PROF.DANILO.MONTEIRO@GMAIL.COM 5
Modelo físico CREATE DATABASE pague_menos; CREATE TABLE farmacias ( cnpj INT, dono TEXT, nome TEXT, PRIMARY KEY(cnpj) ); Farmacias(cpnj, nome, dono) PROF.DANILO.MONTEIRO@GMAIL.COM 6
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) PROF.DANILO.MONTEIRO@GMAIL.COM 7
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 PROF.DANILO.MONTEIRO@GMAIL.COM 8
Modelo físico CREATE TABLE remedios ( id INT, Nome TEXT, Formula TEXT, Data_de_validade DATE, Valor float, PRIMARY KEY(id) ); remedios(id, nome, formula, data_de_validade, valor) PROF.DANILO.MONTEIRO@GMAIL.COM 9
Modelo físico CREATE TABLE farmacia_vende_remedios ( id INT, CNPJ INT, FOREIGN KEY (cnpj) references farmacias, FOREIGN KEY (id) references remedios, ); Farmacias_vende_remedios (cpnj, id) cnpj referencia farmácias, id referencia remédios PROF.DANILO.MONTEIRO@GMAIL.COM 10
O que veremos hoje? Comandos DML - Linguagem de manipulação de dados INSERT UPDATE DELETE (SELECT TAMBÉM É MAS NÃO VAMOS VER HOJE) PROF.DANILO.MONTEIRO@GMAIL.COM 11
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'); Campos podem ser omitidos... Mas será que devem? INSERT INTO fiscais VALUES (19, Ivan','m', Caruaru','PE',87369191, 1200 ); 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 Ex2: cidade = Rodelas Ex3: idade > 20...
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
Exercício Insira dados nas tabelas criadas no inicio da aula Efetue atualizações nos dados E por fim, faça algumas remoções de instâncias
PROF.DANILO.MONTEIRO@GMAIL.COM 20