Как представлять значения с плавающей точкой в ​​SQL - PullRequest
1 голос
/ 28 апреля 2019

Я пытаюсь создать базу данных в Ubuntu, используя MySQL в командной строке, мне нужно создать таблицу со следующими данными:

CREATE TABLE Vehicles (
     Vehicle_ID int NOT NULL,
     Vehicle_Type VARCHAR(255) NOT NULL,
     Model_name VARCHAR(255) NOT NULL,
     Engine_Size float(1,1) NOT NULL,
     Condition VARCHAR(255) NOT NULL,
     Price float(9,2) NOT NULL,
     PRIMARY KEY (Vehicle_ID)
);

Он просто возвращает ошибку с сообщением «ОШИБКА 1064»(42000): у вас есть ошибка в вашем синтаксисе SQL; обратитесь к руководству, соответствующему вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования возле 'Условие varchar (255) NOT NULL, Float цены (9,2) NOT NULL, PRIMARYKEY (Vehicle 'в строке 6 "

Что не так с моим кодом? Столбцы" Price "и" Engine_Size "должны быть только значениями с плавающей запятой / десятичными, поэтому они не могут быть varchar, потому что я хочуможно только вводить цифры.

Ответы [ 2 ]

2 голосов
/ 28 апреля 2019

Это работает:

CREATE TABLE Vehicles (
     Vehicle_ID int NOT NULL,
     Vehicle_Type VARCHAR(255) NOT NULL,
     Model_name VARCHAR(255) NOT NULL,
     Engine_Size int NOT NULL,
     Vehicle_Condition VARCHAR(255) NOT NULL,
     Price numeric(9,2) NOT NULL,
     PRIMARY KEY (Vehicle_ID)
);

Примечания:

  • Для Price вы, похоже, хотите numeric, а не float, потому что вы указываете точность имасштаб.
  • Для Engine_Size я понятия не имею, что должно означать float(1, 1).Я предполагаю, что int является подходящим типом.
  • Condition является зарезервированным словом в MySQL, поэтому я изменил имя столбца.
1 голос
/ 28 апреля 2019

Единственная очевидная проблема в вашем коде - это использование 'condition' в качестве имени столбца, так как condition является зарезервированным словом в MySQL.Вы можете исправить это двумя способами:

  • Не использовать «условие» в качестве имени столбца:
CREATE TABLE Vehicles (
     Vehicle_ID int NOT NULL,
     Vehicle_Type VARCHAR(255) NOT NULL,
     Model_name VARCHAR(255) NOT NULL,
     Engine_Size float(1,1) NOT NULL,
     V_Condition VARCHAR(255) NOT NULL,       //Just an example feel free to use any another name
     Price float(9,2) NOT NULL,
     PRIMARY KEY (Vehicle_ID)
);
  • Поместить «условие» внутри обратных кавычек(``)
CREATE TABLE Vehicles (
     Vehicle_ID int NOT NULL,
     Vehicle_Type VARCHAR(255) NOT NULL,
     Model_name VARCHAR(255) NOT NULL,
     Engine_Size float(1,1) NOT NULL,
     `Condition` VARCHAR(255) NOT NULL,
     Price float(9,2) NOT NULL,
     PRIMARY KEY (Vehicle_ID)
);

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...