mysql - oracle中的默认检索顺序可能吗?

标签 mysql database oracle

假设我创建一个表并执行以下插入:

insert mango,4
insert apple,1
insert pear,3
insert banana,2

执行时:从fruit_table中选择水果,id。给出以下结果:

**fruit    id**
apple    1
pear     3
mango    4
banana   2
...

这与它们最初插入的方式不同。在不使用 order by 的情况下,是否有一种方法可以指定(也许在创建表或执行插入时)该位置相对于它们的插入?因此,当执行 selectfruit, id fromfruit_table 时,我会按照插入的顺序获取记录。

最佳答案

在 Oracle 中,您可以使用 ORDER BY 定义表的 View 。

create table fruit_table (
  id number,
  name varchar2(30));

create view  fruit
as
select *
from   fruit_table
order by id;


insert into fruit values (4,'mango');
insert into fruit values (1,'apple');
insert into fruit values (3,'pear');
insert into fruit values (2,'banana');

select * from fruit_table;

select * from fruit;

SQL fiddle :http://sqlfiddle.com/#!4/1b24f/1

我想不出在什么情况下这是一个好主意,而且我不相信它对于除琐碎情况之外的任何事情都是万无一失的。

关于mysql - oracle中的默认检索顺序可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15945421/

相关文章:

mysql - 棘手的数据库设计

sql - Oracle中的标识符太长

php - MYSQL 从另一个表中排序

mysql - 获取记录 Eloqouent laravel 5 的部分

mysql - 选择每个月,即使 mysql 表中不存在该月

ruby-on-rails - Rails 中的多个 has_many 关联

MySQL。仅从一行中选择少量数据

HAVING 子句中的 Oracle PL/SQL 变量

asp.net - 如何将 oracle 数据库与 asp.net web 应用程序集成?

mysql - 我可以在 MYSQL 数据库表中插入图像吗?