【发布时间】:2021-02-12 13:43:53
【问题描述】:
我已经手动填充了一个表格,如下所示:
INSERT INTO country VALUES
-- columns are countryid, name, continent, population, gdp, lifeexpectancy, founded
(1, 'Argentina', 36.3, 348.2, 70.75, 9/7/1816),
(2, 'Brazil', 183.3, 1004, 65.6, 9/7/1822),
(3, 'Canada', 30.1, 658, 77.08, 1/7/1867),
(4, 'England', 60.8, 1256, 75.15, NULL),
(5, 'France', 60, 1000, 75.15, 14/7/1789),
(6, 'Mexico', 107.5, 694.3, 69.36, 16/9/1821),
(7, 'USA', 270, 8003, 75.75, 4/7/1776),
(8, 'Cuba', 11.7, 16.9, 75.95, 24/2/1895),
(9, 'Guatemala', 20, 200, 60, 15/9/1821),
(10, 'Tanzania', 55.57, 47.43, 60.76, 9/12/1961),
(11, 'India', 1324, 2264, 68.35, NULL),
(12, 'South Africa', 55.91, 294.8, 57.44, 31/05/1910),
(13, 'Costa Rica', 4.86, 57.44, 79.59, 15/9/1821),
(14, 'Uganda', 41.49, 25.53, 59.18, NULL);
但是当我查询时
SELECT lifeexpectancy FROM country;
表格返回“0”和“[null]”值的组合。
我已尝试更改预期寿命的 data_type。文本和数字数据类型都不会返回已输入的值。
有什么建议吗?
【问题讨论】:
-
我可以看到几个问题:1)您说您的表有 7 列,但您的插入语句只有 6 列,2)您没有在插入时分隔日期值,3 ) 你没有规定插入语句的列顺序。如果您可以发布以下查询的输出,将会有所帮助:
SELECT * FROM country -
哪个数据库?如果是oracle,那么你必须在插入后
commit。 -
除了 e_i_pi 写的内容之外:4)您没有提供日期作为正确的日期文字(在标准 SQL 中,您可以使用例如
date '186-07-09') -
你真的应该养成在
INSERT语句中指定要插入的列的习惯,不仅仅是作为注释,而是作为语法的一部分。