是否有可能告诉SQLite应该在哪个位置放置一个给定的条目?

时间:2015-07-25 23:30:58

标签: sql database sqlite

假设我在SQLite中有一个表,我已经添加了3行。假设现在我想添加一个新行,但不是将它“附加”到前三个(如果我只是调用INSERT INTO会发生这种情况),我希望新的条目放在当前第1行和第2行(出于我自己的原因)。

有可能吗?我无法在tutorials I had a look中找到这样的功能。

是否也可以直接“更新”已存在的行,以更改放置它的表中的位置? (“直接”是指执行此操作的命令,而不是先删除当前行,然后使用第一个问题的答案再次将其插入所需位置。

1 个答案:

答案 0 :(得分:2)

我希望所有好的评论都被添加为答案。

要回答有关您是否可以在SQLite中按特定顺序输入记录的问题 - 否,您不能。

创建表格时,请尽量normalize it。一个接一个地插入数据。这绝对没问题。检索数据时,您可以要求数据库以特定方式为您提供。例如:

create table students (id int, fullname varchar(100), age int);
insert into students (id, fullname, age) values (100, 'James Sherk', 25); 
insert into students (id, fullname, age) values (1, 'Matt Brown', 44);
insert into students (id, fullname, age) values (2, 'Darla Kunich', 10);

-- get data ordered by age (youngest first)
select * from students order by age;
-- get data ordered by age descending (oldest first)
select * from students order by age desc;
-- get data ordered by age and then name
select * from students order by age, fullname;

您可以更新记录吗?是的,一点没错。让我们说Darla不是10岁但是20岁。让我们更新这些数据。

update students set age = 20 where id = 2;

示例:http://sqlfiddle.com/#!5/b92d1/3