Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#751: 2011-10-07 16:03:14 ЛС | профиль | цитата
А мозги, у работающего с БД, зачем ?
А VACUUM зачем ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 758
Рейтинг: 112
#752: 2011-10-07 16:39:15 ЛС | профиль | цитата
Tad писал(а):
[compound-op select]*

Можете расказать что этот оператор означает
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#753: 2011-10-07 16:57:20 ЛС | профиль | цитата
miver, посмотри здесь http://www.sql.ru/docs/sql/u_sql/ch14.shtml если что-то будет непонятно тогда прийдется пример сделать
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#754: 2011-10-07 18:58:21 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2022-04-03 00:49:21
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#755: 2011-10-07 19:03:29 ЛС | профиль | цитата
miver, вот во второй колонке StringTable выведены названия групп и названия компонент + информация о компонентах, т.е. в одну колонку из двух разных таблиц.
code_25405.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1code_25405.txt [767B] [361]
Голосовали:miver
Ответов: 5446
Рейтинг: 323
#756: 2011-10-07 20:03:26 ЛС | профиль | цитата
Tad писал(а):
А мозги, у работающего с БД, зачем ?
А VACUUM зачем ?

При чём тут мозги - поясни, плиз. А VACUUM - да, перенумерует. А кстати, мы ведь так и не выяснили у топикстартера, что в его понимании есть "5я запись" - может, это 5я по алфавиту по какой-нибудь колонке?
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#757: 2011-10-07 20:17:24 ЛС | профиль | цитата
Tad писал(а):
А мозги, у работающего с БД, зачем ?
Мозги нужны для того, чтобы правильно поставить задачу.
Да и Vacuum ничего не переименует. Просто удалит пустые места.
А порядок rowid как был, так и останется. И если удалена 5-я запись, то так и будет 1,2,3,4,6,7 и т.д.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1528
Рейтинг: 57
#758: 2011-10-08 16:38:38 ЛС | профиль | цитата
Tad писал(а):
Мозги нужны для того, чтобы правильно поставить задачу.

Ну раз так, вот задача
code_25413.txt
Теперь нужно тоже самое только на sqlite.
карма: 0

0
файлы: 1code_25413.txt [756B] [213]
Ответов: 16884
Рейтинг: 1239
#759: 2011-10-08 19:48:50 ЛС | профиль | цитата
hitman249 писал(а):
Ну раз так, вот задача
Это не задача для БД.
Это издевательство над БД.
testbd.rar

Если захочешь каждый раз начинать с 15-и строк - включи Check
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1testbd.rar [1KB] [222]
Голосовали:hitman249
Ответов: 1528
Рейтинг: 57
#760: 2011-10-09 10:11:42 ЛС | профиль | цитата
остался replace
тоже самое только с перезаписью ячейки др. данными
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#761: 2011-10-09 11:13:14 ЛС | профиль | цитата
hitman249,
БД - это не мусорка. БД - это набор уникальных (неповторяющихся) записей.
Для того, чтобы запись стала уникальной, при создании таблицы добавляют ещё колонку "Номер записи".
CREATE TABLE test(nzap INTEGER PRIMARY KEY, asd INTEGER);
Вот это PRIMARY KEY и укажет, что колонка nzap будет ПЕРВИЧНЫМ (неповторяющимся) КЛЮЧОМ.
А для модификации записей БД есть всего четыре команды (кстати прекрасно описанные в нашем Wiki):
Добавить INSERT
Удалить DELETE
Изменить UPDATE
Заменить REPLACE

testbd2.rar
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1testbd2.rar [1.2KB] [381]
Ответов: 5446
Рейтинг: 323
#762: 2011-10-09 12:00:34 ЛС | профиль | цитата
Tad, для упрощения жизни пользователю лучше так:
CREATE TABLE test(nzap INTEGER PRIMARY KEY AUTOINCREMENT, asd INTEGER);
Тогда более новые записи будут иметь гарантированно бОльшие номера, чем старые (без AUTOINCREMENT SQLite может повторно использовать индексы).
(Примечание: впрочем, вероятность повторного использования невелика: нужно добавить очень много записей - около 9,000,000,000,000,000,000)
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#763: 2011-10-09 12:29:52 ЛС | профиль | цитата
iarspider, ну давай поспорим.
1. Основной принцип БД : Чтобы поддерживать максимальную гибкость БД, строки таблицы, по определению, не должны находиться ни в каком определенном порядке.
2. Если я удалил (в процессе работы с БД) первых 8,999,999,999,999,999 то у меня (при AUTOINCREMENT) останется только доступными 1000 номеров.
3. Какое мне дело - какой уникальный ID будет присвоен следующей записи ? И в чем я выиграю со словом AUTOINCREMENT ?
4. Встречал ещё и такой совет:
CREATE TABLE test(nzap INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, asd INTEGER);
смеялся долго5.
iarspider писал(а):
без AUTOINCREMENT SQLite может повторно использовать индексы
всё верно - свободные на данный момент, что совершенно не нарушает
Основной принцип БД : Чтобы поддерживать максимальную гибкость БД, строки таблицы, по определению, не должны находиться ни в каком определенном порядке.
и всегда иметь уникальный (невидимый) ROWID
вы должны иметь столбец в вашей таблице который бы уникально идентифицировал каждую строку
к которому в SQLite можно всегда обратиться.


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 5446
Рейтинг: 323
#764: 2011-10-09 13:00:17 ЛС | профиль | цитата
Tad,
1. Это из "Понимание SQL" цитата, да? Тогда ровно через один параграф читаем: "<...> вы должны иметь столбец в вашей таблице который бы уникально идентифицировал каждую строку."
2. А ты доживи до такого числа записей
3. Связывание таблиц (см. того же Грабера)
4. Согласен, это уже лишнее.
5. Опять же согласен, не внимательно прочитал.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#765: 2011-10-09 13:28:03 ЛС | профиль | цитата
Без AUTOINCREMENT : Если значение ROWID равно максимально возможному числу (9223372036854775807), то ядро базы данных начинает рандомно искать свободный ROWID.
С AUTOINCREMENT получишь сообщение об ошибке.
AUTOINCREMENT - это команда для ROWID.
iarspider писал(а):
А ты доживи до такого числа записей
если записывать в БД по 292 471 208 678 записей в секунду , то ничего невозможного - за год управишься.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)