Без предложения ORDER BY
база данных может возвращать строки в любом порядке. Нет гарантии, что строки будут возвращены в том порядке, в котором они были вставлены.
При MySQL (InnoDB) мы наблюдаем, что строки обычно возвращаются в порядке по индексу, используемому в плане выполнения, или по ключу кластера таблицы.
Это нетрудно создать пример ...
CREATE TABLE foo
( id INT NOT NULL
, val VARCHAR(10) NOT NULL DEFAULT ''
, UNIQUE KEY (id,val)
) ENGINE=InnoDB;
INSERT INTO foo (id, val) VALUES (7,'seven') ;
INSERT INTO foo (id, val) VALUES (4,'four') ;
SELECT id, val FROM foo ;
MySQL может возвращать строки в любом порядке, но в этом случае мы обычно наблюдаем, что MySQL будет обращаться к строкам через ключ кластера InnoDB.
id val
---- -----
4 four
7 seven
Не совсем ясно, какой смысл пытался сделать интервьюер. Если интервьюер пытается продать идею, учитывая требование вернуть строки из таблицы в том порядке, в котором они были вставлены, запрос без предложения ORDER BY
будет ever правильным решением. не покупая его.
Мы можем создать примеры, в которых строки возвращаются в том порядке, в котором они были вставлены, но это побочный продукт реализации, ... не гарантированное поведение, и мы должны никогда полагаться на это поведение для удовлетворения спецификации.