diff --git a/Captura de tela 2026-05-15 103223.png b/Captura de tela 2026-05-15 103223.png new file mode 100644 index 0000000..b792648 Binary files /dev/null and b/Captura de tela 2026-05-15 103223.png differ diff --git a/Captura de tela 2026-06-23 154645.png b/Captura de tela 2026-06-23 154645.png new file mode 100644 index 0000000..329c602 Binary files /dev/null and b/Captura de tela 2026-06-23 154645.png differ diff --git a/Ecercicio.modulo1.txt b/Ecercicio.modulo1.txt new file mode 100644 index 0000000..b904771 --- /dev/null +++ b/Ecercicio.modulo1.txt @@ -0,0 +1,89 @@ +Ecercicio +Roteiro sugerido +1:explicar o que é uma entidade; + é algo que existe no mundo real e que precisa ser representada representado em um sistema + +2. listar as entidades do negócio; + cliente/vendedor/pedido/ produto/pedido item + +3. identificar atributos de cada entidade; + Cliente; + id do cliente + tipo de pessoa (física ou jurídica) + nome social + nome fantasia + CPF ou CNPJ + Email + telefone + criado + atualizado + +Vendedor; + id do vendedor + nome do vendedor + email + telefone + ativo + Criado + atualizado + +Produto; + Id do produto + Sku(código de barra do produto) + Descrição + Valor unitário + ativo, + estoque + Criado em + Atualizado em + +Pedido + Id vendedor + Id clienta + Id pedido + obs + Valor total + Status + Hora e data + Quando criado + Atualizado em + +Pedido item + Id + Id produto + Ide pedido + Quantidade + Valor unitário + Valor total + Status + Criado em + Atualizado em + +4. desenhar o modelo em papel ou quadro;já +• desenhei mas não no papel, então refazer + +5. classificar os relacionamentos; + Cliente para pedido = 1:n + Vendedor para pedido =1:n + Pidido para produto = 1:n + Produto para pedido – n:n + +6. discutir obrigatoriedades e nulabilidade. + Vendedor, obrigatório = um pedido nunca poderá ser feito sem um cliente + Cliente = não é onbrigatorio = o vendedor pode ser opcional se vai ou não ser declarado + Pedido = o predido é obrigatório, é o cabeçario da compra, com dados e td la + Produto= obrigatório, é o item em questão sendo negociado + Pedido item =obrigatório = é onde fica todos os produtos da vendas + +4.7 Exercícios do módulo 1 + +1. Desenhar o modelo de dados em papel. + (feito no brwm) +2. Dizer qual é a chave primária de cada tabela. + (feito) +3. Dizer quais são as chaves estrangeiras. + (feito) +4. Classificar todos os relacionamentos como 1:1, 1:N ou N:N. + (feito) +5. Explicar, em voz alta, o papel de cada tabela. + diff --git a/exe_modulo.2.3.sql b/exe_modulo.2.3.sql new file mode 100644 index 0000000..e5c1c1c --- /dev/null +++ b/exe_modulo.2.3.sql @@ -0,0 +1,79 @@ +CREATE TABLE vendedores ( + id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, + nome VARCHAR(150) NOT NULL, + email VARCHAR(150) DEFAULT NULL, + telefone VARCHAR(20) DEFAULT NULL, + ativo TINYINT(1) NOT NULL DEFAULT '1', + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +); + +CREATE TABLE clientes( + id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, + tipo_pessoa ENUM('FISICA','JURIDICA') NOT NULL, + pessoa_razao_social VARCHAR(150) NOT NULL, + nome_fantasia VARCHAR(150) DEFAULT NULL, + cpf_cnpj VARCHAR(18) NOT NULL, + email VARCHAR(150) DEFAULT NULL, + telefone VARCHAR(25) DEFAULT NULL, + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + data_nascimento DATE DEFAULT NULL, + UNIQUE KEY uk_clientes_cpf_cnpj (cpf_cnpj) +); + +CREATE TABLE `produtos` ( + id BIGINT unsigned NOT NULL AUTO_INCREMENT, + sku VARCHAR(50) NOT NULL, + descricao VARCHAR(200) NOT NULL, + valor_unitario DECIMAL(10,2) NOT NULL, + estoque_atual DECIMAL(10,2) NOT NULL DEFAULT 0.00, + ativo TINYINT(1) NOT NULL DEFAULT 1, + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + categoria VARCHAR(150) DEFAULT NULL, + UNIQUE KEY uk_produtos_sku (sku) +); + +CREATE TABLE `pedidos` ( + id BIGINT unsigned NOT NULL AUTO_INCREMENT, + cliente_id BIGINT unsigned NOT NULL, + vendedor_id BIGINT unsigned NOT NULL, + data_hora DATETIME NOT NULL, + status enum('ABERTO','FATURADO','CANCELADO') NOT NULL DEFAULT 'ABERTO', + observacaos VARCHAR(250) DEFAULT NULL, + valor_total DECIMAL(12,2) NOT NULL DEFAULT 0.00, + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + CONSTRAINT fk_pedidos_clientes FOREIGN KEY (cliente_id) REFERENCES clientes (id), + CONSTRAINT fk_pedidos_vendedores FOREIGN KEY (vendedor_id) REFERENCES vendedores (id) +); + +CREATE TABLE `pedidos_itens` ( + id BIGINT unsigned NOT NULL AUTO_INCREMENT, + pedido_id BIGINT unsigned NOT NULL, + produto_id BIGINT unsigned NOT NULL, + quantidade DECIMAL(10,2) NOT NULL, + valor_unitario DECIMAL(10,2) NOT NULL, + valor_total DECIMAL(12,2) NOT NULL, + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + CONSTRAINT fk_pedido_itens_pedidos FOREIGN KEY (pedido_id) REFERENCES pedidos (id), + CONSTRAINT fk_pedido_itens_produtos FOREIGN KEY (produto_id) REFERENCES produtos (id) +); + + + +/*comando de alterçaõ de tabela*/ + +ALTER TABLE clientes +ADD COLUMN data_nascimento DATE NULL; + +ALTER TABLE produtos +ADD COLUMN categoria VARCHAR(150) NULL; + +ALTER TABLE clientes +MODIFY COLUMN telefone VARCHAR(25); + +ALTER TABLE pedidos +ADD INDEX idx_pedidos_data_hora (data_hora); \ No newline at end of file