tecnologia em sistemas para internet projeto de banco de dados

Propaganda
 TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Exemplos de Scripts SQL (PostgreSQL)
Pizzaria
1 TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS 2 TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Criação de BANCO DE DADOS
CREATE DATABASE nome_do_banco;
CREATE DATABASE pizzaria;
Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA
CREATE TABLE nome_da_tabela (
nome_campo
tipo_de_dado NOT NULL,
outros_campos tipo_de_dado NOT NULL,
CONSTRAINT pk_nome_chave PRIMARY KEY (nome_campo)
);
CREATE TABLE pizzaria (
id
SERIAL NOT NULL,
nome
VARCHAR (50) NOT NULL,
endereco VARCHAR (100) NOT NULL,
telefone CHAR (15) NOT NULL,
CONSTRAINT pk_pizzaria PRIMARY KEY (id)
);
Ou
CREATE TABLE pizzaria (
id
SERIAL PRIMARY KEY NOT NULL,
nome
VARCHAR (50) NOT NULL,
endereco VARCHAR (100) NOT NULL,
telefone CHAR (15) NOT NULL
);
CREATE TABLE pizza (
numero_item SERIAL PRIMARY KEY NOT NULL,
nome
VARCHAR (20) NOT NULL,
preco_peq
NUMERIC (15,2) NOT NULL,
preco_med
NUMERIC (15,2) NOT NULL,
preco_grd
NUMERIC (15,2) NOT NULL
);
CREATE TABLE ingrediente (
id
SERIAL PRIMARY KEY NOT NULL,
nome
VARCHAR (20) NOT NULL,
unidade_medida VARCHAR (10) NOT NULL
);
Criação de TABELAS COM CHAVE ESTRANGEIRA
3 TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS CREATE TABLE nome_da_tabela (
nome_campo
tipo_de_dado NOT NULL,
outros_campos tipo_de_dado NOT NULL,
CONSTRAINT pk_nome_chave PRIMARY KEY (nome_campo),
CONSTRAINT fk_nome_chave FOREIGN KEY (nome_campo)
REFERENCES nome_tabela
);
CREATE TABLE cardapio (
id
SERIAL NOT NULL,
nome
VARCHAR (15) NOT NULL,
id_pizzaria INT NOT NULL,
CONSTRAINT pk_cardapio PRIMARY KEY (id),
CONSTRAINT fk_cardapio_pizzaria FOREIGN KEY (id_pizzaria)
REFERENCES pizzaria
);
Ou
CREATE TABLE cardapio (
id
SERIAL PRIMARY KEY NOT NULL,
nome
VARCHAR (15) NOT NULL,
id_pizzaria INT NOT NULL REFERENCES pizzaria (id)
);
Criação de TABELAS DE RELACIONAMENTO
CREATE TABLE nome_da_tabela (
campo_1
tipo_de_dado NOT NULL,
campo_2
tipo_de_dado NOT NULL,
CONSTRAINT pk_nome_chave PRIMARY KEY (campo1, campo_2),
CONSTRAINT fk_nome_chave_1 FOREIGN KEY (campo1)
REFERENCES nome_tabela_1
CONSTRAINT fk_nome_chave_2 FOREIGN KEY (campo_2)
REFERENCES nome_tabela_2
);
CREATE TABLE composicao (
numero_item
INT NOT NULL,
id_cardapio
INT NOT NULL,
CONSTRAINT pk_composicao
PRIMARY KEY (numero_item, id_cardapio),
CONSTRAINT fk_pizza FOREIGN KEY (numero_item)
REFERENCES pizza,
CONSTRAINT fk_cardapio FOREIGN KEY (id_cardapio)
REFERENCES cardapio
);
4 TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Ou
CREATE TABLE composicao (
numero_item
INT NOT NULL
REFERENCES pizza (numero_item),
id_cardapio
INT NOT NULL
REFERENCES cardapio (id),
CONSTRAINT pk_composicao
PRIMARY KEY (numero_item, id_cardapio)
);
CREATE TABLE ingrediente_pizza (
numero_item
INT NOT NULL
REFERENCES pizza (numero_item),
id_ingrediente INT NOT NULL
REFERENCES ingrediente (id),
quantidade
NUMERIC (15,2) NOT NULL,
CONSTRAINT pk_ingrediente_pizza
PRIMARY KEY (numero_item, id_ingrediente)
);
DML – Data Manipulation Language
2.1 Inclusão de dados - INSERT
INSERT INTO tabela (campo1, campo2 ...)
VALUES (valor1, valor2...);
INSERT
INTO pizzaria (nome, endereco, telefone)
VALUES ('Minha Pizzaria', 'Rua da Pizza', '04712345678');
OBS.: O campo id não foi adicionado pois ele é gerado automaticamente pelo BD
(SERIAL).
OBS.: Campos do tipo string ou date devem vir entre apóstrofo.
INSERT
INTO pizza (nome, preco_peq, preco_med, preco_grd)
VALUES ('Calabresa', 10.00, 15.00, 20.00);
OBS.: Campos numéricos aparecem SEM ASPAS.
INSERT
INTO cardapio (nome, id_pizzaria)
VALUES ('Primavera', 10)
OBS.: Os valores de chave-estrangeira devem ser iguais a valores existentes na
tabela referenciada.
2.2 Consulta simples - SELECT
5 TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS SELECT * FROM tabela;
SELECT campo1, campo2 ... FROM tabela;
SELECT * FROM tabela
WHERE campo = valor;
SELECT * FROM pizzaria;
SELECT nome, telefone
FROM pizzaria;
SELECT id, nome, telefone
FROM pizzaria;
SELECT nome, telefone
FROM pizzaria
WHERE id = 3;
2.3 Alteração de dados – UPDATE
UPDATE tabela SET campo1 = valor1, campo2 = valor2 ...
WHERE campo = valor;
UPDATE pizzaria SET nome = 'Pizza da Nona'
WHERE id = 1;
OBS.: Na cláusula WHERE são colocados um ou mais campos para seleção dos
registros a serem alterados. Normalmente se usa a chave primária.
2.4 Exclusão de registros – DELETE
DELETE FROM tabela
WHERE campo = valor;
DELETE FROM pizzaria
WHERE id = 20;
OBS.: Cuidado ao usar o DELETE. Não esquecer de colocar a cláusula WHERE,
indicando os campos de seleção do registro a ser excluído.
2.5 Consulta com mais de um campo seletor – SELECT, UPDATE e DELETE
6 TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS SELECT *
FROM tabela
WHERE campo1 = valor1
AND campo2 = valor2; // Pode usar AND ou OR
SELECT *
FROM pizza
WHERE preco_peq > 10.00
AND preco_grd < 30.00;
SELECT *
FROM pizza
WHERE preco_peq >= 10.00
AND preco_grd <= 30.00;
SELECT *
FROM pizza
WHERE preco_peq >= 10.00
OR preco_grd <= 30.00;
2.6 Seleção envolvendo mais de uma tabela
 Pesquise o use de JOIN

Ou, use da seguinte forma:
SELECT campos
FROM tabela1, tabela2 ...
WHERE pk_tabela1 = fk_tabela2;
-- Seleciona todos os cardápios de todas as pizzarias
SELECT *
FROM pizzaria, cardapio
WHERE pizzaria.id = cardapio.id_pizzaria;
-- Seleciona todas as pizzas, de todos os cardápios, de todas as pizzarias
SELECT *
FROM pizzaria, cardapio, composicao, pizza
WHERE pizzaria.id
= cardapio.id_pizzaria
AND
cardapio.id
= composicao.id_cardapio
AND
pizza.numero_item = composicao.numero_item;
SELECT *
FROM pizzaria p,
cardapio ca,
composicao co,
pizza pi
WHERE p.id
= ca.id_pizzaria
AND
ca.id
= co.id_cardapio
AND
pi.numero_item = co.numero_item;
2.7 Consulta com ORDENAÇÃO
7 TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS SELECT *
FROM tabela
ORDER BY campo1, campo2;
SELECT *
FROM pizzaria pi, cardapio ca
WHERE pi.id = ca.id_pizzaria
ORDER BY pi.nome;
8 
Download