SQL创建表和数据

问题描述 投票:0回答:4

我正在学习SQL并想创建一个简单的表:

Create table kante (v int, n int);
INSERT INTO kante VALUES (1,2), (2,3), (3,4), (2,3), (4,5);
SELECT * from kante;

但是,在使用这些在线编辑器时,我总是收到错误消息。

你可以帮我解决我的错误吗?谢谢

sql sql-insert create-table insert-into
4个回答
0
投票

首先,每当使用insert时,学习列出要插入的列。所以insert应该是这样的:

INSERT INTO kante(v, n)
    VALUES (1,2), (2,3), (3,4), (2,3), (4,5);

这不会影响您的代码是否有效;这只是一个好主意。

想到两件事。如果从代码中调用它,那么您可能在一个只需要一个的调用中包含多个语句。但是,你没有提到任何这样的语言。

其次,并非所有数据库都支持使用VALUES进行多行插入。例如,您的代码肯定适用于MySQL(请参阅SQL Fiddle here)。但是,它在Oracle中不起作用。

所以,你可以通过使用多个INSERT语句来修复你的问题:

INSERT INTO kante(v, n) VALUES (1, 2);
INSERT INTO kante(v, n) VALUES (2, 3);
INSERT INTO kante(v, n) VALUES (3, 4);
INSERT INTO kante(v, n) VALUES (2, 3);
INSERT INTO kante(v, n) VALUES (4, 5);

0
投票

问题是当您尝试一起运行3个语句时。尝试单独运行每个语句。即,要清楚首先运行CREATE语句,然后INSERT语句,最后运行SELECT查询。


0
投票

我认为同时插入它是个坏主意,试试这个:

INSERT INTO kante(v,n) VALUES (1,2);
INSERT INTO kante(v,n) VALUES (2,3);....

0
投票

一次尝试一个

Create table kante (v int, n int);
INSERT INTO kante (n,v) VALUES (1,2);
INSERT INTO kante (n,v) VALUES (2,6);
© www.soinside.com 2019 - 2024. All rights reserved.