Tipos
1-Para me usar num atributo preco q tipo tenho q usar?(real, float, etc?)
eu to colocando float e os numeros q eu to inserindo esta aparecendo assim:
se eu inseriro 1.5 aparece 1.5000000000111111
2-por q?
3-por exemplo se eu coloquei integer como q eu faço pra mudar pra float em sql?
eu tentei
alter table Produtos alter Column preco type float
e não funcionou....
4-como q eu faço para alterar o nome de uma coluna da tabela em sql por exemplo de preco para precos????
5-e para alter o nome de uma tabela?
agradeço desde já!
eu to colocando float e os numeros q eu to inserindo esta aparecendo assim:
se eu inseriro 1.5 aparece 1.5000000000111111
2-por q?
3-por exemplo se eu coloquei integer como q eu faço pra mudar pra float em sql?
eu tentei
alter table Produtos alter Column preco type float
e não funcionou....
4-como q eu faço para alterar o nome de uma coluna da tabela em sql por exemplo de preco para precos????
5-e para alter o nome de uma tabela?
agradeço desde já!
Heero
Curtidas 0
Respostas
Heero
16/10/2003
eh o interbase q eu estou usando...
GOSTEI 0
Mateus_henriques
16/10/2003
Caro Heero...
sou iniciante não sei se posso te ajudar muito mais vai no site: www.delphibr.com.br na parte de apostilas, la tem uma apostilas com tudo que é tipo de comando sql pra interbase... explica tudo, eu recomendo, estou estudando por ele. :)
sou iniciante não sei se posso te ajudar muito mais vai no site: www.delphibr.com.br na parte de apostilas, la tem uma apostilas com tudo que é tipo de comando sql pra interbase... explica tudo, eu recomendo, estou estudando por ele. :)
GOSTEI 0
Afarias
16/10/2003
|1-Para me usar num atributo preco q tipo tenho q usar?(real, float, etc?)
|eu to colocando float e os numeros q eu to inserindo esta aparecendo
NÃO USE FLOAT. Float é só para números *MUITO* grandes e nunca deve ser usado quando é necessário precisão.
defina seu tipo como NUMERIC .. ex:: NUMERIC(9,2)
|3-por exemplo se eu coloquei integer como q eu faço pra mudar pra
|float em sql? eu tentei alter table Produtos alter Column preco type float
|e não funcionou....
tenho certeza q funciona. qual o erro q vc recebeu??
mas, use numeric::
ALTER TABLE PRODUTOS ALTER PRECO TYPE NUMERIC(9,2)
|como q eu faço para alterar o nome de uma coluna da tabela em sql por
|exemplo de preco para precos????
dê uma lida no SQL HELP do INTERBASE -- veja o comando ALTER TABLE
alter table nome_tabela alter nome_coluna to novo_nome;
|5-e para alter o nome de uma tabela?
humm... acho q nào é possível.
T+
|eu to colocando float e os numeros q eu to inserindo esta aparecendo
NÃO USE FLOAT. Float é só para números *MUITO* grandes e nunca deve ser usado quando é necessário precisão.
defina seu tipo como NUMERIC .. ex:: NUMERIC(9,2)
|3-por exemplo se eu coloquei integer como q eu faço pra mudar pra
|float em sql? eu tentei alter table Produtos alter Column preco type float
|e não funcionou....
tenho certeza q funciona. qual o erro q vc recebeu??
mas, use numeric::
ALTER TABLE PRODUTOS ALTER PRECO TYPE NUMERIC(9,2)
|como q eu faço para alterar o nome de uma coluna da tabela em sql por
|exemplo de preco para precos????
dê uma lida no SQL HELP do INTERBASE -- veja o comando ALTER TABLE
alter table nome_tabela alter nome_coluna to novo_nome;
|5-e para alter o nome de uma tabela?
humm... acho q nào é possível.
T+
GOSTEI 0
Heero
16/10/2003
usei quantidade q eh integer pra passar pra float deu esse erro:
Unsuccessful metadata update
Cannot change datatype for QUANTIDADE. Conversion from base type INTEGER to FLOAT is not supported
Statement: ALTER TABLE PRODUTOS ALTER quantidade TYPE float
eu to pensando em usar float pois estou interagindo com linguagem de programacao java, pois pra me receber esse valor acho q tinha q ser do tipo float, ou tem outra solucao? vai poder usar numeric mesmo? ou float?
e me explica melhor uma coisa o Double precision eh o doblo do float não eh?
obrigado pela ajuda foi de grande valia!!!
Unsuccessful metadata update
Cannot change datatype for QUANTIDADE. Conversion from base type INTEGER to FLOAT is not supported
Statement: ALTER TABLE PRODUTOS ALTER quantidade TYPE float
eu to pensando em usar float pois estou interagindo com linguagem de programacao java, pois pra me receber esse valor acho q tinha q ser do tipo float, ou tem outra solucao? vai poder usar numeric mesmo? ou float?
e me explica melhor uma coisa o Double precision eh o doblo do float não eh?
obrigado pela ajuda foi de grande valia!!!
GOSTEI 0
Afarias
16/10/2003
como disse use NUMERIC !!
quando se usa NUMERIC o INTERBASE escolhe qual tipo será armazenado internamente de acordo com a precisão e escala fornecidos. Assim vc estará mais ´otimizado´
Mas... se quer usar FLOAT vá em frente... crie um novo campo FLOAT e migre seus values integer para lá.
T+
quando se usa NUMERIC o INTERBASE escolhe qual tipo será armazenado internamente de acordo com a precisão e escala fornecidos. Assim vc estará mais ´otimizado´
Mas... se quer usar FLOAT vá em frente... crie um novo campo FLOAT e migre seus values integer para lá.
T+
GOSTEI 0
Heero
16/10/2003
entendi q q vc quiz dizer...
o problema meu eh q eu não sei se o java aceita receber numeric numa variavel dele, vc sabe? pois ele não tem o tipo numeric. vc sabe como q eu faço pra receber um valor numeric? eu posso declarar no java float e receber um valor do interbase numeric?
essa duvida permaneceu
o problema meu eh q eu não sei se o java aceita receber numeric numa variavel dele, vc sabe? pois ele não tem o tipo numeric. vc sabe como q eu faço pra receber um valor numeric? eu posso declarar no java float e receber um valor do interbase numeric?
essa duvida permaneceu
GOSTEI 0
Afarias
16/10/2003
Veja... o tipo de dados do banco de dados não tem q ser o mesmo (em NOME) da linguagem de programação!!
FLOAT no IB não é necessáriamente IGUAL ao FLOAT no Java... são coisas distintas.
qualquer valor como FLOAT, NUMERIC, DECIMAL ou outro, provavelmente poderá ser carregado no tipo Float do Java, blz?!
T+
FLOAT no IB não é necessáriamente IGUAL ao FLOAT no Java... são coisas distintas.
qualquer valor como FLOAT, NUMERIC, DECIMAL ou outro, provavelmente poderá ser carregado no tipo Float do Java, blz?!
T+
GOSTEI 0
Heero
16/10/2003
obrigado pela ajuda entendi muito bem!!!!
vou te mostrar minha tabela ateh fiz umas modificacoes nelas , vc dah uma ajuda pra mim pra ver se tah certo? eu quebrei a cabeca pra fazer ela e o maximo da laranja q eu consegui ispremer foi isso:
* = chave primária
^ = chave extrangeira
Produtos (*codigoproduto, nomeproduto, tipo, Preço, Quantidade, Preço de Custo)
Fornecedores (*Codigofornecedor, nomefornecedor, tipo, Endereço, Cidade, Telefone)
Itenspedidos (*codigoItempedido, ^Codigoproduto, Quantidade, Sub-Total)
A tabela a cima eu cadastro os produtos a serem pedidos pela empresa
No caso o código do produto acima pode ser soh estrangeira ou tem q ser primaria tbm?
Por q?
Pedidos (*codigopedido,^codigoItempedido, ^codigofornecedor, Data)
A tabela acima relaciona os pedidos pedidos aos seus fornecedores, pois vários pedidos podem ser feitos a um fornecedor.
No caso o códigoItemPedido e códigofornecedor pode ser soh estrangeira acima pode ser soh estrangeira ou tem q ser primaria tbm?
Por q?
Empregado(*codigoempregado, nomeempregado, endereço, Telefone, Identidade, cargo)
Clientes (*codigocliente, nomecliente, endereço, Telefone, Identidade)
ItensVendas (*CodigoVenda, ^codigoproduto, ^codigocliente, quantidade)
Mesmo tipo de pergunta feito acima
Vendas (*^codigoVenda,^codigoempregado,total,data)
Mesmo tipo de pergunta feito acima
Está certo?
Eu tenho que agrupar alguma chave tipo agrupar códigovenda com código do empregado? Pra q q serve agrupar? como q eu faço isso?
vou te mostrar minha tabela ateh fiz umas modificacoes nelas , vc dah uma ajuda pra mim pra ver se tah certo? eu quebrei a cabeca pra fazer ela e o maximo da laranja q eu consegui ispremer foi isso:
* = chave primária
^ = chave extrangeira
Produtos (*codigoproduto, nomeproduto, tipo, Preço, Quantidade, Preço de Custo)
Fornecedores (*Codigofornecedor, nomefornecedor, tipo, Endereço, Cidade, Telefone)
Itenspedidos (*codigoItempedido, ^Codigoproduto, Quantidade, Sub-Total)
A tabela a cima eu cadastro os produtos a serem pedidos pela empresa
No caso o código do produto acima pode ser soh estrangeira ou tem q ser primaria tbm?
Por q?
Pedidos (*codigopedido,^codigoItempedido, ^codigofornecedor, Data)
A tabela acima relaciona os pedidos pedidos aos seus fornecedores, pois vários pedidos podem ser feitos a um fornecedor.
No caso o códigoItemPedido e códigofornecedor pode ser soh estrangeira acima pode ser soh estrangeira ou tem q ser primaria tbm?
Por q?
Empregado(*codigoempregado, nomeempregado, endereço, Telefone, Identidade, cargo)
Clientes (*codigocliente, nomecliente, endereço, Telefone, Identidade)
ItensVendas (*CodigoVenda, ^codigoproduto, ^codigocliente, quantidade)
Mesmo tipo de pergunta feito acima
Vendas (*^codigoVenda,^codigoempregado,total,data)
Mesmo tipo de pergunta feito acima
Está certo?
Eu tenho que agrupar alguma chave tipo agrupar códigovenda com código do empregado? Pra q q serve agrupar? como q eu faço isso?
GOSTEI 0
Afarias
16/10/2003
hummmm... vc está quase lá... ;-)
A relação entre PEDIDOS e ITENS_PEDIDOS é de 1 para N (1 pedido pode conter vários ítens) sendo assim, a chave estrangeira deve ficar em ITENS_PEDIDOS e não em PEDIDOS (^CodigoItemPedido) ... ex::
Pedidos (*CodigoPedido, ^CodigoFornecedor, Data)
ItensPedidos (*CodigoItemPedido, ^CodigoPedido, ^CodigoProduto, Quantidade, SubTotal)
bom, isso se vc terá um CodigoItemPedido independente (único) -- agora, algumas pessoas preferem ter códigos de ítens de pedido POR pedido (tipo: pedido 1, ítens 1, 2, 3 -- pedido 2, ítens 1, 2)
dessa forma ItensPedidos ficaria::
ItensPedidos (*^CodigoPedido, *CodigoItemPedido, ^CodigoProduto, Quantidade, SubTotal)
neste caso, CodigoPedido e CodigoItemPedido fazem parte da chave primária (composta) pois CodigoItemPedido se repete para Pedidos diferentes. -- E, é claro, CodigoPedido continua sendo chave estrangeira TAMBEM para manter a integridade da relação entre as entidades.
T+
A relação entre PEDIDOS e ITENS_PEDIDOS é de 1 para N (1 pedido pode conter vários ítens) sendo assim, a chave estrangeira deve ficar em ITENS_PEDIDOS e não em PEDIDOS (^CodigoItemPedido) ... ex::
Pedidos (*CodigoPedido, ^CodigoFornecedor, Data)
ItensPedidos (*CodigoItemPedido, ^CodigoPedido, ^CodigoProduto, Quantidade, SubTotal)
bom, isso se vc terá um CodigoItemPedido independente (único) -- agora, algumas pessoas preferem ter códigos de ítens de pedido POR pedido (tipo: pedido 1, ítens 1, 2, 3 -- pedido 2, ítens 1, 2)
dessa forma ItensPedidos ficaria::
ItensPedidos (*^CodigoPedido, *CodigoItemPedido, ^CodigoProduto, Quantidade, SubTotal)
neste caso, CodigoPedido e CodigoItemPedido fazem parte da chave primária (composta) pois CodigoItemPedido se repete para Pedidos diferentes. -- E, é claro, CodigoPedido continua sendo chave estrangeira TAMBEM para manter a integridade da relação entre as entidades.
T+
GOSTEI 0
Heero
16/10/2003
deixa eu ver se eu entendi, por exemplo se eu tiver duas chaves primarias (ex: codVenda , codProduto) eu posso ter 1 2, 1 3, 1 4 , 2 2, 2 3 (valores integer de cada chave) porem eu não posso ter 1 2, 1 2, certo?
por exemplo se eu colocar duas primary key numa tabela elas jah ficam compostas? se não como q eu faço pra deixar elas compostas?
por exemplo se eu colocar duas primary key numa tabela elas jah ficam compostas? se não como q eu faço pra deixar elas compostas?
GOSTEI 0
Afarias
16/10/2003
|deixa eu ver se eu entendi, por exemplo se eu tiver duas chaves
|primarias (ex: codVenda , codProduto) eu posso ter 1 2, 1 3, 1 4 , 2 2, 2
|3 (valores integer de cada chave) porem eu não posso ter 1 2, 1 2,
|certo?
Certo!
Mas não são 2 chaves primárias! é apenas 1 sendo q composta por 2 campos.
|por exemplo se eu colocar duas primary key numa tabela elas jah ficam
|compostas? se não como q eu faço pra deixar elas compostas?
vc somente pode ter 1 chave primária em uma tabela. entretanto, esta chave primária pode ser composta ou seja, pode ter 2 ou mais campos participando de sua formação.
T+
|primarias (ex: codVenda , codProduto) eu posso ter 1 2, 1 3, 1 4 , 2 2, 2
|3 (valores integer de cada chave) porem eu não posso ter 1 2, 1 2,
|certo?
Certo!
Mas não são 2 chaves primárias! é apenas 1 sendo q composta por 2 campos.
|por exemplo se eu colocar duas primary key numa tabela elas jah ficam
|compostas? se não como q eu faço pra deixar elas compostas?
vc somente pode ter 1 chave primária em uma tabela. entretanto, esta chave primária pode ser composta ou seja, pode ter 2 ou mais campos participando de sua formação.
T+
GOSTEI 0
Heero
16/10/2003
valeu carah! to começando a fragar o movimento de chave primaria... e olha q eu fiquei um tempão estudando bd, e soh agora entendi o movimento...
olha soh então, se eu decrar 2 chaves primarias em uma tabela automaticamente elas vão ser compostas, eh isso? então elas se interagem pra formar uma soh, chamada de chave composta? uma não sobrevive sem a outra certo?
valeu!
olha soh então, se eu decrar 2 chaves primarias em uma tabela automaticamente elas vão ser compostas, eh isso? então elas se interagem pra formar uma soh, chamada de chave composta? uma não sobrevive sem a outra certo?
valeu!
GOSTEI 0
Afarias
16/10/2003
|olha soh então, se eu decrar 2 chaves primarias em uma tabela
|automaticamente elas vão ser compostas, eh isso? {...}
NÃO!!
como disse antes, vc só pode declarar 1 chave primária na tabela e PRONTO!!!
exemplo::
alter table nome_tabela add constraint pk_nome primary key (campo1);
ou, caso vc queira (ou precise de) uma chave composta::
alter table nome_tabela add constraint pk_nome primary key (campo1, campo2); // ou mais campos se desejar
se vc definiu uma chave de forma incorreta (ou, suas necessidades mudaram) e vc precisa redefinir a chave primária, vc tem q 1º destruir a que já existe e então criá-la novamente::
alter table nome_tabela drop constraint pk_nome;
alter table nome_tabela add constraint pk_nome primary key (campo3, campo4);
só uma dica:: evite a todo custo chaves primárias compostas -- acredito q vai te livrar de muitas dores de cabeça no futuro!!!
blz?!?! T+
|automaticamente elas vão ser compostas, eh isso? {...}
NÃO!!
como disse antes, vc só pode declarar 1 chave primária na tabela e PRONTO!!!
exemplo::
alter table nome_tabela add constraint pk_nome primary key (campo1);
ou, caso vc queira (ou precise de) uma chave composta::
alter table nome_tabela add constraint pk_nome primary key (campo1, campo2); // ou mais campos se desejar
se vc definiu uma chave de forma incorreta (ou, suas necessidades mudaram) e vc precisa redefinir a chave primária, vc tem q 1º destruir a que já existe e então criá-la novamente::
alter table nome_tabela drop constraint pk_nome;
alter table nome_tabela add constraint pk_nome primary key (campo3, campo4);
só uma dica:: evite a todo custo chaves primárias compostas -- acredito q vai te livrar de muitas dores de cabeça no futuro!!!
blz?!?! T+
GOSTEI 0