为什么我不能将这些值插入到我添加到此数据库的 table 中?
Why can't I insert these values into the table I added to this database?
我是 SQL 的新手,正在学习它的基本功能,我被指示创建一个 table 并将其添加到我的数据库,同时向每个字段添加适当的值在 table。但是我一直在行中收到语法错误:
INSERT into Weather_db.client_data
到目前为止,这是我的代码。让我知道我应该改变什么:
Q1.) 使用 CREATE TABLE 语句,创建一个名为 client_data 的 table 字段
CREATE TABLE Weather_db.client_data (
ID int PRIMARY KEY,
First_name varchar(40) NOT NULL,
Last_name varchar(40),
Nationality varchar(40),
Age Float Check (age>18))
Q2.) 使用INSERT语句在数据库中插入如下记录
INSERT into Weather_db.client_data
VALUES ('John', 'S',
'British', 'null'),
('Peter', 'Jackson', 'null', '20'),
('Tom', 'W', 'null', '20'),
('Jack', 'Patrick', 'American', '30');
ID int PRIMARY KEY,
此列定义是合法的,但它没有任何自动生成唯一值的行为。因此,您必须自己在 INSERT 语句中提供一个值,并由您来确保该值是唯一的,即它尚未用于此 table.
中的任何现有行
MySQL 为整数主键提供了自动生成新的唯一值的选项:
ID int AUTO_INCREMENT PRIMARY KEY,
通过使用它,您不必在 INSERT 语句中指定值。
您可能想阅读此手册页以获取更多信息:https://dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html
您的语句有一些语法问题。
首先,您没有为所有定义的列提供值。
始终在插入语句中专门列出列也是一个好习惯。
您不应引用数值或空值。
您可能应该将 ID 定义为 auto_increment,这意味着数据库将提供默认值。
看到一个working example
CREATE TABLE client_data (
ID int PRIMARY key auto_increment,
First_name varchar(40) NOT NULL,
Last_name varchar(40),
Nationality varchar(40),
Age Float Check (age>18));
INSERT into client_data (first_name, last_name, Nationality, Age)
VALUES ('John', 'S','British', null),
('Peter', 'Jackson', null, 20),
('Tom', 'W', null, 20),
('Jack', 'Patrick', 'American', 30);
我是 SQL 的新手,正在学习它的基本功能,我被指示创建一个 table 并将其添加到我的数据库,同时向每个字段添加适当的值在 table。但是我一直在行中收到语法错误:
INSERT into Weather_db.client_data
到目前为止,这是我的代码。让我知道我应该改变什么:
Q1.) 使用 CREATE TABLE 语句,创建一个名为 client_data 的 table 字段
CREATE TABLE Weather_db.client_data (
ID int PRIMARY KEY,
First_name varchar(40) NOT NULL,
Last_name varchar(40),
Nationality varchar(40),
Age Float Check (age>18))
Q2.) 使用INSERT语句在数据库中插入如下记录
INSERT into Weather_db.client_data
VALUES ('John', 'S',
'British', 'null'),
('Peter', 'Jackson', 'null', '20'),
('Tom', 'W', 'null', '20'),
('Jack', 'Patrick', 'American', '30');
ID int PRIMARY KEY,
此列定义是合法的,但它没有任何自动生成唯一值的行为。因此,您必须自己在 INSERT 语句中提供一个值,并由您来确保该值是唯一的,即它尚未用于此 table.
中的任何现有行MySQL 为整数主键提供了自动生成新的唯一值的选项:
ID int AUTO_INCREMENT PRIMARY KEY,
通过使用它,您不必在 INSERT 语句中指定值。
您可能想阅读此手册页以获取更多信息:https://dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html
您的语句有一些语法问题。
首先,您没有为所有定义的列提供值。
始终在插入语句中专门列出列也是一个好习惯。
您不应引用数值或空值。
您可能应该将 ID 定义为 auto_increment,这意味着数据库将提供默认值。
看到一个working example
CREATE TABLE client_data (
ID int PRIMARY key auto_increment,
First_name varchar(40) NOT NULL,
Last_name varchar(40),
Nationality varchar(40),
Age Float Check (age>18));
INSERT into client_data (first_name, last_name, Nationality, Age)
VALUES ('John', 'S','British', null),
('Peter', 'Jackson', null, 20),
('Tom', 'W', null, 20),
('Jack', 'Patrick', 'American', 30);