Урок 35. SQLite. Методы update и delete с указанием условия

Обсуждение уроков
Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Foenix » 06 май 2014, 21:55

а говоришь хочу
хочу получить количество сложенных строк
у меня это не согласуется как-то.
Фигня какая-то.
Посчитать строки того же запроса будет count(...) ну используй его, я бы подсказала, но не въеду что нужно..причем тут удаление..
если нужно действительно удалить все одинаковые строки - это другой запрос..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
alexmx
Сообщения: 193
Зарегистрирован: 10 мар 2014, 08:14

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение alexmx » 07 май 2014, 13:53

Подожди родная, а как методом count(...) выдернуть количество нужных строк. В офф доках в курсоре есть метод getCount() но он возвращает общее количество строк в курсоре, а мне надо количество строк с определенным значением вот и начал извращаться через удаление))).

Мне в принципе подходит метод delete, так как в любом случае я буду чистить таблицу
Последний раз редактировалось alexmx 07 май 2014, 17:23, всего редактировалось 1 раз.

Аватара пользователя
alexmx
Сообщения: 193
Зарегистрирован: 10 мар 2014, 08:14

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение alexmx » 07 май 2014, 17:15

С ошибкой разобрался, но метод count(...) актуален)))

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Foenix » 07 май 2014, 19:07

это не метод! это язык такой) язык запросов.
select count * from .... where .... я тебе могу таким образом что хочешь посчитать) ну или почти все
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
alexmx
Сообщения: 193
Зарегистрирован: 10 мар 2014, 08:14

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение alexmx » 07 май 2014, 19:34

Ну ты то можешь посчитать, а я то нет))) Единственное что я знаю это:
execSQL("ЗАПРОС КАКОЙ НИДЬ"). Ты мне лучше ссылку для вразумления кинь, по запросам sql)))

Viewer
Сообщения: 180
Зарегистрирован: 30 апр 2014, 11:42

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Viewer » 07 май 2014, 21:04

За 5 минут на пальцах язык запросов sql не объяснить, на изучение нужно потратить время. Можно книжки почитать. Желательно скачать какую-нибудь удобную программку для экспериментов, создать простенькую БД и потренироваться строить запросы сразу видя результаты. Правда многие из этих программ, наиболее функциональных, платные.
А справочник по запросам есть на оф сайте SQLite - http://www.sqlite.org/lang_expr.html если в нем хорошо разберетесь, то тоже сможете
таким образом что хочешь посчитать) ну или почти все
Я экспериментировал с этой утилитой - http://sqlitedog.com/ru/idx.html она тоже платная, но есть триал, кажется на месяц, потом часть функционала обрезается, но этого времени вполне может хватить на обучение.

SQLite вещь конечно хорошая запросы выполняет быстро, даже при достаточно больших объемах. Но это когда база уже готовая, либо заполняется пользователем постепенно (как телефонный справочник или блокнот). Но когда необходимо сформировать базу и вставлять большое количество данных, то тут могут быть тормоза, хотя есть приемы увеличить производительность insert-ов, я перепробовал все, но приемлемого результата добиться так и не удалось.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Foenix » 07 май 2014, 21:35

alexmx писал(а):Ну ты то можешь посчитать, а я то нет))) Единственное что я знаю это:
execSQL("ЗАПРОС КАКОЙ НИДЬ"). Ты мне лучше ссылку для вразумления кинь, по запросам sql)))
да я не по интернету про запросы училась, даже не знаю что посоветовать
поинтересуюсь, может и найду что-нибудь
Справочник - дали выше, но это не учит делать запросы. Программа (даже если там есть построитель запросов - тоже особо не поможет) я уже поняла, тебе разобраться надо)
Поможем)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Дмитрий Х.
Сообщения: 4
Зарегистрирован: 15 май 2014, 12:26

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Дмитрий Х. » 15 май 2014, 12:31

А как обстоят дела с Bind - переменными и индексами?
Предусмотрено ли их использование в SQLite?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Foenix » 15 май 2014, 12:40

что это такое?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Дмитрий Х.
Сообщения: 4
Зарегистрирован: 15 май 2014, 12:26

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Дмитрий Х. » 15 май 2014, 13:57

вот хорошая статься про связанные переменные http://habrahabr.ru/post/148446/

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Foenix » 15 май 2014, 22:12

параметры в запросе - есть.
С какой целью вам нужны эти переменные?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

sievmi
Сообщения: 2
Зарегистрирован: 10 июн 2014, 10:08

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение sievmi » 10 июн 2014, 10:11

Здравствуйте. У меня в базе есть таблица, но в ней нет поля id, как мне удалять или обновлять строку зная ее содержимое?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Foenix » 11 июн 2014, 07:49

id в каждой таблице необходим. ЭТо простой искусственный ключ каждой строки. Но есть и естественные ключи, т.е. те, которые есть и однозначно идентифицируют строку таблицы (т.е. не могут повторяться для других строчек). По ним тоже можно удалять.
Если таблица не ваша, и добавить нету возможности - можно удалять в общем случае добавив в условие те поля, которые для этой строки уникальны (полный естественный ключ). Их может быть несколько. Например, если это таблица с данными личностей, то вариантом может быть - 1) паспортные данные 2) фио и дата рождения 3) фио и адрес жительства , но 2 и 3 тоже могут повторяться для разных людей, поэтому и нужен id
В безвыходных ситуациях можно все поля добавить в условие. Но все равно это будет неправильно с точки зрения ключей.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

sievmi
Сообщения: 2
Зарегистрирован: 10 июн 2014, 10:08

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение sievmi » 12 июн 2014, 10:03

Вроде бы понял вас, но все-таки не совсем ясно как мне решить мою проблему.
Таблица моя и я могу добавить в нее поле id. Но у меня следующая ситуация: мне приходит строка s, и я должен из базы получить данные из строки, в которой поле name равно s(гарантированно, что все значения в полях name уникальны).
Я пишу вот так: db.delete("names","name="+s, null); но это не работает.
И еще один вопрос по такой же ситуации, как мне получить id нужной мне строчки?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение KamiSempai » 12 июн 2014, 10:09

sievmi писал(а):Я пишу вот так: db.delete("names","name="+s, null); но это не работает.
Нужно так:

Код: Выделить всё

db.delete("names","name=?", new String[] {s});
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение Foenix » 12 июн 2014, 10:16

как получить id, если у вас его нет в таблице?
странный вопрос. Никак.
Второе, если таблица ваша, то добавляйте id.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

finberg
Сообщения: 51
Зарегистрирован: 11 мар 2013, 14:20

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение finberg » 30 июн 2014, 20:40

Rover писал(а):У меня в приложении будет несколько Activity, поочередно работающих с базой данных.
Вопрос: когда я подключаюсь к БД в главной Activity, это подключение создается для приложения в целом или только для текущей Activity?
Т.е. надо ли переподключаться при смене Activity, и что происходит с текущим подключением, когда я перемещаюсь между разными активностями?
Кто-нибудь может просвятить по этой ситуации?

allexan
Сообщения: 23
Зарегистрирован: 03 июл 2014, 16:32

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение allexan » 06 авг 2014, 11:31

Можно ли в методе delete указать сложное условие для удаления записей
Пример из следующего урока:
- удалить все страны Азии с населением больше 100

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение KamiSempai » 06 авг 2014, 12:19

allexan писал(а):Можно ли в методе delete указать сложное условие для удаления записей
Пример из следующего урока:
- удалить все страны Азии с населением больше 100
Можно. Нужно прописать это в параметрах условия:
[syntax=java]db.delete("mytable", "region = ? AND people > ?", new String[] {"Азия" , Integer.toString(100)});[/syntax]
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 35. SQLite. Методы update и delete с указанием усло

Сообщение klblk » 06 авг 2014, 12:25

allexan писал(а):Можно ли в методе delete указать сложное условие для удаления записей
Пример из следующего урока:
- удалить все страны Азии с населением больше 100
http://www.sqlite.org/lang_delete.html

Ответить