Показать сообщение отдельно
Старый 19.06.2008, 22:43     # 29
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Emelman, нельзя обсуждать эти вопросы не зная конкретную используемую СУБД. Тут надо думать не на уровне программы, а на уровне СУБД.

Если это какая-то элементарная файловая БД типа .dbf, то вполне возможно что ее драйвер позволяет физически втиснуть новую запись между двумя старыми, при этом, что естественно, ему придется физически перечитать и перезаписать со сдвигом на диск всю часть файла-БД после этой новой записи, что несет большие накладные расходы.

В серьезных же СУБД, типа MS SQL Server / Oracle такого не происходит. Единственный язык, который они понимают - это SQL, который для записи новых данных использует только одну команду - INSERT, без всякого указания места, куда эту запись вставить. Только сервер решает куда она физически будет записана, и это вполне может оказаться вообще другой диск, если так сконфигурирована база. Соответственно при следующей выборке данных трудно говорить о порядке и полагаться на что-то. Для достижения нужного результата лучше самому указывать сортировку по некому признаку.

Что касается сортировки по умолчанию и сравнения строчных и прописных букв - это опять же настройки collation конкретного драйвера/СУБД, хотя указывая сортировку в SQL-запросе всегда можно задать и свои условия, что-то типа ORDER BY UPPER(Name).
ЕЖ вне форума