Scripts SQL – Banco de Dados
Restaurante
1. Criação do Banco de Dados
Criação do banco de dados e seleção para uso.
CREATE DATABASE Restaurante;
GO
USE Restaurante;
GO
2. Tabela TipoDoPrato
Armazena categorias dos pratos (ex: sobremesa, principal).
CREATE TABLE TipoDoPrato (
cod_tipo INT NOT NULL,
descricao VARCHAR(100),
CONSTRAINT pkTipo PRIMARY KEY (cod_tipo)
);
3. Tabela Prato
Contém os pratos disponíveis no restaurante. Inclui restrições de integridade referencial e
de valor para o preço.
CREATE TABLE Prato (
cod_prato INT NOT NULL,
cod_tipo INT NOT NULL,
descricao VARCHAR(200) NOT NULL,
preco DECIMAL(10, 2) NOT NULL CHECK (preco >= 0),
CONSTRAINT pkPrato PRIMARY KEY (cod_prato),
CONSTRAINT fkPratoTipo FOREIGN KEY (cod_tipo) REFERENCES
TipoDoPrato(cod_tipo)
);
4. Tabela Cliente
Armazena informações dos clientes, como nome (obrigatório) e endereço.
CREATE TABLE Cliente (
cod_cli INT NOT NULL,
nome VARCHAR(150) NOT NULL,
endereco VARCHAR(200),
CONSTRAINT pkCli PRIMARY KEY (cod_cli)
);
5. Tabela Pedido
Registra os pedidos feitos pelos clientes. A chave primária é composta por cod_pedido,
cod_cli e data.
CREATE TABLE Pedido (
cod_pedido INT NOT NULL,
cod_cli INT NOT NULL,
data DATE NOT NULL,
CONSTRAINT pkPedido PRIMARY KEY (cod_pedido, cod_cli, data),
CONSTRAINT fkPedidoCliente FOREIGN KEY (cod_cli) REFERENCES
Cliente(cod_cli)
);
6. Tabela ItensDoPedido
Detalha os itens (pratos) de cada pedido. Inclui verificação de quantidade maior que zero.
CREATE TABLE ItensDoPedido (
cod_item INT NOT NULL,
cod_pedido INT NOT NULL,
qtd INT NOT NULL CHECK (qtd > 0),
desconto DECIMAL(5,2),
CONSTRAINT pkItens PRIMARY KEY (cod_item, cod_pedido),
CONSTRAINT fkItemPedido FOREIGN KEY (cod_pedido) REFERENCES
Pedido(cod_pedido)
);