假设我在SQLite中有一个表,我已经添加了3行。假设现在我想添加一个新行,但不是将它“附加”到前三个(如果我只是调用INSERT INTO
会发生这种情况),我希望新的条目放在当前第1行和第2行(出于我自己的原因)。
有可能吗?我无法在tutorials I had a look中找到这样的功能。
是否也可以直接“更新”已存在的行,以更改放置它的表中的位置? (“直接”是指执行此操作的命令,而不是先删除当前行,然后使用第一个问题的答案再次将其插入所需位置。
答案 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;