这是我在mySQL上学习SQL的第五天。
我不明白为什么系统告诉我以下是一个错误。
我的代码是:
CREATE TABLE elements(
Name VARCHAR(20),
Symbol VARCHAR(2) PRIMARY KEY,
AtomicNumber TINYINT,
AtomicMass DEC(4,2) -- ending doesn't need , similar to SAS
);
INSERT INTO elements
VALUES ('Actinium','Ac',89,227);
-- here we want to modify the field type of the existing table because Aluminum has decimal #'s in mass
ALTER TABLE elements
MODIFY AtomicMass DECIMAL(9,3);
-- Q: I do not understand this why this is an syntax error.系统消息:“语法错误:意外的'DECIMAL(decimal)'”它运行并更改字段约束,但错误消息仍然存在。
额外的问题(完全是菜鸟问题,请容忍我):如何在列的名称中加入“空格”?就像现在我用的是"AtomicNumber“,但我真的想要”原子数“。
谢谢!:)
发布于 2015-05-15 08:24:17
请咨询https://dev.mysql.com/doc/refman/5.6/en/alter-table.html。
您缺少COLUMN。
ALTER TABLE elements
MODIFY COLUMN `AtomicMass` DECIMAL(9,3); 发布于 2015-05-15 08:30:19
MySQL数据类型的名称是DECIMAL,而不是DEC。因此,原始表定义语句应如下所示:
CREATE TABLE elements(
Name VARCHAR(20),
Symbol VARCHAR(2) PRIMARY KEY,
AtomicNumber TINYINT,
AtomicMass DECIMAL(4,2) -- ending doesn't need , similar to SAS
);您的修改应如下所示:
ALTER TABLE elements
CHANGE COLUMN AtomicMass AtomicMass DECIMAL(10,2)但是,对于像原子量这样的值,您应该考虑使用FLOAT或DOUBLE而不是DECIMAL。精度的两位小数并不能很好地代表实际的科学事实。
最后,如果您想要将列名放在反引号中,如下所示
`Atomic Mass`无论你在哪里使用它们,你都可以在列名中加空格。但我怀疑,当你写代码时,这会让你抓狂。
https://stackoverflow.com/questions/30249244
复制相似问题