|
| 1 | +-- CRIA BANCO DE DADOS |
| 2 | +CREATE DATABASE CRYPTO_DATABASE; |
| 3 | + |
| 4 | +-- CRIA TABELAS E INDICES |
| 5 | +CREATE TABLE Moeda ( |
| 6 | + CodigoMoeda VARCHAR(3) PRIMARY KEY, |
| 7 | + Nome VARCHAR(255) |
| 8 | +); |
| 9 | +CREATE INDEX IDX_Moeda_CodigoMoeda ON Moeda(CodigoMoeda); |
| 10 | + |
| 11 | +CREATE TABLE ParesMoedas ( |
| 12 | + CodigoMoedaBase VARCHAR(3), |
| 13 | + CodigoMoedaCotacao VARCHAR(3), |
| 14 | + Valor FLOAT, |
| 15 | + PRIMARY KEY (CodigoMoedaBase, CodigoMoedaCotacao), |
| 16 | + FOREIGN KEY (CodigoMoedaBase) REFERENCES Moeda(CodigoMoeda), |
| 17 | + FOREIGN KEY (CodigoMoedaCotacao) REFERENCES Moeda(CodigoMoeda) |
| 18 | +); |
| 19 | +CREATE INDEX IDX_ParesMoedas_CodigoMoedaBase_CodigoMoedaCotacao ON ParesMoedas(CodigoMoedaBase, CodigoMoedaCotacao); |
| 20 | + |
| 21 | +CREATE TABLE Corretora ( |
| 22 | + CodigoCorretora INT PRIMARY KEY, |
| 23 | + Nome VARCHAR(255) |
| 24 | +); |
| 25 | +CREATE INDEX IDX_Corretora_CodigoCorretora ON Corretora(CodigoCorretora); |
| 26 | + |
| 27 | +CREATE TABLE Cliente ( |
| 28 | + CodigoCliente INT PRIMARY KEY, |
| 29 | + Nome VARCHAR(255), |
| 30 | + Email VARCHAR(255), |
| 31 | + Celular VARCHAR(20), |
| 32 | + PassHash VARCHAR(255), |
| 33 | + MoedaPrincipal VARCHAR(3), |
| 34 | + FOREIGN KEY (MoedaPrincipal) REFERENCES Moeda(CodigoMoeda) |
| 35 | +); |
| 36 | +CREATE INDEX IDX_Cliente_CodigoCliente ON Cliente(CodigoCliente); |
| 37 | + |
| 38 | +CREATE TABLE Carteira ( |
| 39 | + Endereco VARCHAR(255) PRIMARY KEY, |
| 40 | + CodigoCorretora INT, |
| 41 | + CodigoCliente INT, |
| 42 | + FOREIGN KEY (CodigoCorretora) REFERENCES Corretora(CodigoCorretora), |
| 43 | + FOREIGN KEY (CodigoCliente) REFERENCES Cliente(CodigoCliente) |
| 44 | +); |
| 45 | +CREATE INDEX IDX_Carteira_Endereco ON Carteira(Endereco); |
| 46 | + |
| 47 | +CREATE TABLE ItemCarteira ( |
| 48 | + CodigoItemCarteira INT PRIMARY KEY, |
| 49 | + Endereco VARCHAR(255), |
| 50 | + CodigoMoeda VARCHAR(3), |
| 51 | + Quantidade FLOAT, |
| 52 | + FOREIGN KEY (Endereco) REFERENCES Carteira(Endereco), |
| 53 | + FOREIGN KEY (CodigoMoeda) REFERENCES Moeda(CodigoMoeda) |
| 54 | +); |
| 55 | +CREATE INDEX IDX_ItemCarteira_CodigoItemCarteira ON ItemCarteira(CodigoItemCarteira); |
| 56 | + |
| 57 | + |
| 58 | +-- INSERE DADOS NAS TABELAS |
| 59 | +INSERT INTO Moeda (CodigoMoeda, Nome) VALUES ('BTC', 'Bitcoin'); |
| 60 | +INSERT INTO Moeda (CodigoMoeda, Nome) VALUES ('ETH', 'Ethereum'); |
| 61 | +INSERT INTO Moeda (CodigoMoeda, Nome) VALUES ('BRL', 'Brazilian Real'); |
| 62 | + |
| 63 | +-- Valores do dia 01/09/2024 |
| 64 | +INSERT INTO ParesMoedas (CodigoMoedaBase, CodigoMoedaCotacao, Valor) VALUES ('BTC', 'ETH', 23.65); |
| 65 | +INSERT INTO ParesMoedas (CodigoMoedaBase, CodigoMoedaCotacao, Valor) VALUES ('ETH', 'BRL', 13616.22); |
| 66 | +INSERT INTO ParesMoedas (CodigoMoedaBase, CodigoMoedaCotacao, Valor) VALUES ('BTC', 'BRL', 322156.60); |
| 67 | + |
| 68 | +INSERT INTO Corretora (CodigoCorretora, Nome) VALUES (1, 'Nuinvest'); |
| 69 | +INSERT INTO Corretora (CodigoCorretora, Nome) VALUES (2, 'Binance'); |
| 70 | +INSERT INTO Corretora (CodigoCorretora, Nome) VALUES (3, 'XP Investimentos'); |
| 71 | + |
| 72 | +INSERT INTO Cliente (CodigoCliente, Nome, Email, Celular, PassHash, MoedaPrincipal) |
| 73 | +VALUES (1, 'John Doe', 'johndoe@example.com', '1234567890', 'hashedpassword1', 'BTC'); |
| 74 | +INSERT INTO Cliente (CodigoCliente, Nome, Email, Celular, PassHash, MoedaPrincipal) |
| 75 | +VALUES (2, 'Jane Smith', 'janesmith@example.com', '0987654321', 'hashedpassword2', 'ETH'); |
| 76 | +INSERT INTO Cliente (CodigoCliente, Nome, Email, Celular, PassHash, MoedaPrincipal) |
| 77 | +VALUES (3, 'Alice Johnson', 'alicejohnson@example.com', '5555555555', 'hashedpassword3', 'LTC'); |
| 78 | + |
| 79 | +INSERT INTO Carteira (Endereco, CodigoCorretora, CodigoCliente) |
| 80 | +VALUES ('wallet123', 1, 1); |
| 81 | +INSERT INTO Carteira (Endereco, CodigoCorretora, CodigoCliente) |
| 82 | +VALUES ('wallet456', 2, 2); |
| 83 | +INSERT INTO Carteira (Endereco, CodigoCorretora, CodigoCliente) |
| 84 | +VALUES ('wallet789', 3, 3); |
| 85 | + |
| 86 | +INSERT INTO ItemCarteira (CodigoItemCarteira, Endereco, CodigoMoeda, Quantidade) |
| 87 | +VALUES (1, 'wallet123', 'BTC', 1.5); |
| 88 | +INSERT INTO ItemCarteira (CodigoItemCarteira, Endereco, CodigoMoeda, Quantidade) |
| 89 | +VALUES (2, 'wallet456', 'ETH', 10.0); |
| 90 | +INSERT INTO ItemCarteira (CodigoItemCarteira, Endereco, CodigoMoeda, Quantidade) |
| 91 | +VALUES (3, 'wallet789', 'LTC', 50.0); |
0 commit comments