tecnologia em sistemas para internet projeto de banco de dados

Transcrição

tecnologia em sistemas para internet projeto de banco de dados
 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 

Documentos relacionados

MySql Operações com SQL básico continuação

MySql Operações com SQL básico continuação 4- Vamos criar uma tabela no banco de dados Teste. Para isto usamos o comando Create Table com a seguinte sintaxe: CREATE TABLE table_name (column_name1 type [modifiers] [, column_name2 type [modif...

Leia mais

BancoDados - WordPress.com

BancoDados - WordPress.com WHERE column_name operator value; Conector

Leia mais