SQL创建表和数据

时间:2018-09-17 10:15:44

标签: sql sql-insert create-table insert-into

我正在学习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;

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

您能帮我解决我的错误吗? 谢谢

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

一次尝试一个

Create table kante (v int, n int);
INSERT INTO kante (n,v) VALUES (1,2);
INSERT INTO kante (n,v) VALUES (2,6);

答案 2 :(得分:0)

问题是当您尝试一起运行3条语句时。尝试分别运行每个语句。也就是说,为清楚起见,首先运行CREATE语句,然后运行INSERT语句,最后运行SELECT查询。

答案 3 :(得分:0)

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

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