BD - STAND

RUKA284 11/05/2014 17:14:53
#438089
Elaborei esta BD em MYSQL agora quero migrar para SQL.

Que código está errado e o que podia melhorar?

Alguma maneira de meter sqlserver em Portugues?

  
drop database if exists BD_Stand;
CREATE DATABASE BD_Stand;

USE BD_Stand;




drop table if exists clientes;

create table clientes(
ClienteId int Auto_increment PRIMARY KEY,
Nome varchar(255),
Morada varchar(255),
Localidade varchar(255),
CP numeric(7),
Telefone char(20),
Telemovel char(20),
Contribuinte char(20),
BI integer);

drop table if exists Combustivel;

create table Combustivel(
CombustivelID Int Auto_increment Primary Key,
Combustivel varchar(255));

drop table if exists Cor;

create table Cor(
CorID int auto_increment Primary Key,
Cor varchar(25));

drop table if exists marca;

create table Marca(
MarcaID int auto_increment Primary Key,
Marca char(255));

drop table if exists tipo;

create table Tipo(
TipoID int auto_increment Primary Key,
tipo char(255));

drop table if exists TipoDespesa;

create table TipoDespesa(
TipoDespesaID int auto_increment Primary Key,
tipo char(255));

drop table if exists Veiculo;

create table Veiculo(
veiculoID int auto_increment Primary Key,
marcaId int,
modelo char(25),
matricula char(25),
cilindrada char(25),
corID int,
tipoID int,
combustivelID int,
preco numeric(20.2),
dataEntrada date,
proprietarioanteriorID int,
foreign key (proprietarioanteriorID) references clientes (clienteID),
foreign key (MarcaID) references Marca (MarcaID),
foreign key (CorID) references Cor (CorID),
foreign key (TipoID) references Tipo (TipoID),
foreign key (CombustivelID) references Combustivel (CombustivelID));

drop table if exists despesas;

create table Despesas(
DespesasID int auto_increment Primary Key,
VeiculoID int,
TipoDespesaID int,
data_hora datetime(6),
Custo numeric(20.2),
foreign key (VeiculoID) references Veiculo (veiculoID),
foreign key (TipoDespesaID) references TipoDespesa (TipoDespesaID));

drop table if exists Vendas;

create table Vendas(
vendaID int auto_increment Primary Key,
compradorId int,
veiculoId int,
data_hora datetime(0),
valor numeric(20.2),
foreign key (compradorId) references clientes (clienteID),
foreign key (VeiculoId) references veiculo (veiculoID));


insert into Clientes (Nome,Localidade) values
([Ô]Ricardo[Ô],[Ô]Barreiro[Ô]),
([Ô]Marco[Ô],[Ô]Sintra[Ô]);

insert into Combustivel (CombustivelID,Combustivel) values
(1,[Ô]Gasolina[Ô]),
(2,[Ô]Gasoleo[Ô]);

insert into Cor (CorID,Cor) values
(1,[Ô]Preto[Ô]),
(2,[Ô]Branco[Ô]),
(3,[Ô]Vermelho[Ô]),
(4,[Ô]Azul[Ô]);

insert into marca (marcaID,marca) values
(1,[Ô]Audi[Ô]),
(2,[Ô]Opel[Ô]),
(3,[Ô]BMW[Ô]);

insert into despesas (DespesasID,custo) values
(1,500),
(2,600),
(3,1000);

insert into Tipo (TipoID,tipo) values
(1,[Ô]Carrinha[Ô]),
(2,[Ô]Carro[Ô]),
(3,[Ô]Triciclo[Ô]);

insert into TipoDespesa (TipoDespesaID,tipo) values
(1,[Ô]vidro partido[Ô]),
(2,[Ô]risco na pintura[Ô]),
(3,[Ô]espelho partido[Ô]);

insert into Veiculo (marcaId,modelo,matricula) values
(1, [Ô]A4[Ô], [Ô]25-83-RM[Ô]);

insert into vendas (vendaID,data_hora,valor) values
(1,[Ô]2013/06/05 13:00:00[Ô],1500);

SELECT Veiculo.VeiculoID, Marca.Marca, Veiculo.Modelo, Veiculo.Matricula
FROM Marca INNER JOIN Veiculo ON Marca.MarcaID = Veiculo.MarcaID;











RUKA284 12/05/2014 06:13:18
#438096
Alguem podia dar uma sugestão ou verificar esta BD?
FILMAN 12/05/2014 21:30:33
#438118
Cara não vou ter ajudar fazer tudo, mas vou te dar uns exemplos para você adaptar ao seus dados


if db_id([ô]BD_Stand[ô]) is not null
DROP DATABASE [BD_Stand]

CREATE DATABASE BD_Stand

USE [BD_Stand]

if OBJECT_ID([ô]clientes[ô], [ô]U[ô]) is not null
DROP TABLE clientes

CREATE TABLE clientes (
ClienteId int Identity constraint PK_clientes_ClienteId primary Key (ClienteId),
Nome varchar(255),
Morada varchar(255),
Localidade varchar(255),
CP Numeric(7,0),
Telefone nChar(20),
Telemovel nChar(20),
Contribuinte nChar(20),
BI int
)

CREATE TABLE vendas(
vendaId int Identity constraint PK_vendas_vendaId primary Key (vendaID),
compradorId int,
veiculoId int,
data_hora datetime,
valor numeric(18,2)
)


--Criar Chave Estrangeira FK
ALTER TABLE vendas
ADD CONSTRAINT FK_vendas_clientes
FOREIGN KEY (compradorId) REFERENCES clientes (ClienteId)


--Criar Indice na Tabela
CREATE INDEX idx_cliente_nome ON clientes (Nome)



Qualquer dúvida coloque aqui no fórum que tentaremos te ajudar!
RUKA284 13/05/2014 17:31:21
#438144
Ainda tenho duvidas num certos campos.
FILMAN 15/05/2014 20:24:38
#438274
Qual a sua duvida?
RUKA284 16/05/2014 03:47:04
#438279
  
Como faço a releção com as outras tabelas?

create table Veiculo(
veiculoID int auto_increment Primary Key,
marcaId int,
modelo char(25),
matricula char(25),
cilindrada char(25),
corID int,
tipoID int,
combustivelID int,
preco numeric(20.2),
dataEntrada date,
proprietarioanteriorID int,
foreign key (proprietarioanteriorID) references clientes (clienteID),
foreign key (MarcaID) references Marca (MarcaID),
foreign key (CorID) references Cor (CorID),
foreign key (TipoID) references Tipo (TipoID),
foreign key (CombustivelID) references Combustivel (CombustivelID));





FILMAN 16/05/2014 20:16:32
#438309
A maneira com que você esta fazendo é somente para MySQL na estrutura abaixo é para SQL Server

create table Veiculo(
veiculoID int Identity constraint PK_veiculos_veiculoID primary Key (veiculoID),
marcaId int,
modelo varchar(25),
matricula varchar(25),
cilindrada varchar(25),
corID int,
tipoID int,
combustivelID int,
preco numeric(20,2),
dataEntrada date,
proprietarioanteriorID int,
CONSTRAINT fk_vei_cli_propantID foreign key (proprietarioanteriorID) references clientes (clienteID),
CONSTRAINT fk_vei_marca_marcaID foreign key (MarcaID) references Marca (MarcaID),
CONSTRAINT fk_vei_cor_CorID foreign key (CorID) references Cor (CorID),
CONSTRAINT fk_vei_tipo_TipoId foreign key (TipoID) references Tipo (TipoID),
CONSTRAINT fk_vei_Combus_CombusID foreign key (CombustivelID) references Combustivel (CombustivelID)
);

ou assim

create table Veiculo(
veiculoID int Identity constraint PK_veiculos_veiculoID primary Key (veiculoID),
marcaId int,
modelo varchar(25),
matricula varchar(25),
cilindrada varchar(25),
corID int,
tipoID int,
combustivelID int,
preco numeric(20,2),
dataEntrada date,
proprietarioanteriorID int
);

ALTER TABLE Veiculo ADD
CONSTRAINT fk_vei_cli_propantID foreign key (proprietarioanteriorID) references clientes (clienteID),
CONSTRAINT fk_vei_marca_marcaID foreign key (MarcaID) references Marca (MarcaID),
CONSTRAINT fk_vei_cor_CorID foreign key (CorID) references Cor (CorID),
CONSTRAINT fk_vei_tipo_TipoId foreign key (TipoID) references Tipo (TipoID),
CONSTRAINT fk_vei_Combus_CombusID foreign key (CombustivelID) references Combustivel (CombustivelID);
Faça seu login para responder