当我在PHP代码中执行SELECT语句时,我总是选择命名列,例如:
SELECT id, name from users;
而不是使用:
SELECT * from users;
这样做的好处是提供更多信息和可读性,并且如果将新列添加到表中,也可以避免以后出现问题。
我想知道的是,是否可以在INSERT语句中使用相同的想法?我想象它可能是这样的:
INSERT into people values (id=1, name="Fred");
我在这个例子中显示的语法不起作用,但我想知道是否有可能是等价的东西?如果没有,有谁知道为什么不呢?这是故意遗漏吗?
答案 0 :(得分:28)
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
INSERT INTO people (id, name)
VALUES (1, 'Fred');
答案 1 :(得分:5)
INSERT into people(id,name) values (1, 'Fred');
答案 2 :(得分:5)
你想要的是
INSERT INTO PEOPLE ( id, name ) VALUES ( 1, 'FRED' )
答案 3 :(得分:4)
INSERT INTO table (column_1, column_2, column_3, ...)
VALUES (value_1, value_2, value_3, ...)
答案 4 :(得分:4)
使用INSERT INTO <table> (col1, col2) VALUES (1,2)
。
答案 5 :(得分:3)
以这种方式尝试: INSERT INTO people(id,name)VALUES(1,“Fred”);
答案 6 :(得分:3)
此案例的语法是
INSERT into people(id,name)values(1,'Fred');
至少它适用于我使用的dbms(PostgreSQL)
答案 7 :(得分:3)
只有MySQL可以使用这种语法。 Afaik,其他RDBMS不允许这样做。这是语法:
INSERT INTO games SET yr = 2012, city = 'London';
我希望PostgreSQL能够促进这种插入语法
然而,标准ANSI语法将是
插入人(年,城)价值观(2012年,'伦敦');
答案 8 :(得分:2)
使用标准语法,您可以一次插入多行:
INSERT INTO Table (column1,...,columnN) VALUES
(r1v1, ..., r1vN),
(r2v1, ..., r2vN),
(r3v1, ..., r3vN).
这是MUCH faster way of importing data,而不是一行一次(特别是在MySQL中)!我不认为你可以使用
做同样的事情INSERT INTO Table SET column1 = r1v1, ..., columnN = r1vN
语法。
(从个人经验来看,每次插入300000行一次需要几分钟。当我将脚本更改为仅使用少量插入语句时,每次插入数千行,只需几秒钟即可全部导入,MySQL 5.0 )。