RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

solowey
Статус: Академик
Рейтинг: 7
∙ повысить рейтинг »
Alexander Babich
Статус: Профессор
Рейтинг: 0
∙ повысить рейтинг »
SAW
Статус: Студент
Рейтинг: 0
∙ повысить рейтинг »

Базы данных

Номер выпуска:557
Дата выхода:23.09.2021, 19:45
Администратор рассылки:Коцюрбенко Алексей Владимирович (Старший модератор)
Подписчиков / экспертов:3 / 15
Вопросов / ответов:3 / 13

Консультация # 106489: Добрый день! Интересует вопрос оператор лог. ИЛИ (OR) по идее дает 1 если хотя бы 1 единица. А в БД проверяет значение обоих операндов, по идее если первый в условии истинен то второго касаться проверка вообще не должна... Или это зависит от настройки СУБД?...
Консультация # 78200: Здраствуйте! Нужна помощь. Скажите пожалуйста как в MS Access 2003 сделать операции: редактирование данных, добавление и удаление. Как сделать так, чтобы таблицы, запросы и т.д. хранить не в одном файле, а в разных и как их можно хранить в модулях. Как говорят, чтобы легче можно было модернизировать базу и работать. БД будет в месяц пополняться при...
Консультация # 106054: Здравствуйте! Подскажите, пожалуйста, как отсортировать строки по текстовому полю, в котором хранятся числа? При этом чтобы сравнение происходило, именно как с числами. Т.е. натуральная сортировка... Спасибо...

Консультация # 106489:

Добрый день!
Интересует вопрос оператор лог. ИЛИ (OR) по идее дает 1 если хотя бы 1 единица. А в БД проверяет значение обоих операндов, по идее если первый в условии истинен то второго касаться проверка вообще не должна...
Или это зависит от настройки СУБД?

Дата отправки: 23.10.2007, 15:03
Вопрос задал: Hoolio
Всего ответов: 4
Страница онлайн-консультации »


Консультирует Powoditch konstantin:

Здравствуйте, Hoolio!
Вы не совсем правы. Если, допустим, первый операнд 1, то проверка не доходит до второго. Если 0, то проверяется следующий, и т.д. То есть OR возвращает 1 только в случае того как в условии будет найдена первая 1. (имеется в виду булевы значения).

Консультировал: Powoditch konstantin
Дата отправки: 23.10.2007, 15:24
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Тесленко Евгений Алексеевич:

Здравствуйте, Hoolio!
В СУДБ логические выражения работают по обычной логике (AND, OR)
При этом если выражение состоит из нескольких операторов, проверку на истиность пройдут все.
Исключение составляет значение содержащее Null, при нем логические выражения ведут себя по правилам конкретной СУБД.

Консультировал: Тесленко Евгений Алексеевич
Дата отправки: 23.10.2007, 16:51
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Nomadfromx2007:

Здравствуйте, Hoolio!
Небольшое замечание по Oracle - проверка идет с конца и как только встретиться выражение, дающее TRUE, то остальные проверки уже не выполняются

Консультировал: Nomadfromx2007
Дата отправки: 24.10.2007, 05:38
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Челноков Виктор Альбертович:

Здравствуйте, Hoolio!

Наиболее часто лог. операторы используются в предложении where для выборки определенных значений и поэтому проверяются все выражения.
Пример:
tabl1
id int

select * from tabl1
where (id=3) or (id=7)
выбираются строки со значениями id 3 или 7
от настроек СУБД это не зависит.

Консультировал: Челноков Виктор Альбертович
Дата отправки: 24.10.2007, 07:44
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 78200:

Здраствуйте! Нужна помощь. Скажите пожалуйста как в MS Access 2003 сделать операции: редактирование данных, добавление и удаление. Как сделать так, чтобы таблицы, запросы и т.д. хранить не в одном файле, а в разных и как их можно хранить в модулях. Как говорят, чтобы легче можно было модернизировать базу и работать. БД будет в месяц пополняться примерно на 260 записей. Ваши ответы очень мне помогут. Всех благодарю.

Дата отправки: 14.03.2007, 08:56
Вопрос задал: Попов Николай
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Архангельский Андрей Германови:

Здравствуйте, Попов Николай!

1) 260 записей в месяц - это такие мелочи, что и говорить не стоит
2) При разделении БД на несколько частей нарушаются правила целостности, даже если СУБД это поддерживает.
3) MSAccess - рассматривает БД как один файл, кроме того в нем же лежат элементы управления.
Конечно из VB можно обратится к другому файлу, но проверка целостности лежит на программисте.

Консультировал: Архангельский Андрей Германови
Дата отправки: 14.03.2007, 10:50
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Grigory:

Здравствуйте, Попов Николай!
1. Для выборки данных надо использовать команду SELECT - как это делается можно посмотреть в Help\'е MS Access 2003, набрав в поиске слово Select, и выбрать в результатах SELECT STATEMENT
2. Для редактирования используется команда UPDATE - как пользоваться этой командой можно посмотреть в том же help\'е, набрав в поиске update statement
3. Для удаления данных используется команда DELETE - как пользоваться этой командой можно посмотреть в том же help\'е, набрав в поиске delete statement

Консультировал: Grigory
Дата отправки: 14.03.2007, 18:26
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Игорь Елизаров:

Здравствуйте, Попов Николай!
Действительно, для удобства модернизации интерфейса и работы с базами ACCESS рекомендуется размещать их в разных файлах., например, собственно базу в одном файле, а интерфейс пользователя - в другом. при этом можно легко изменить интерфейс пользователя не затрагивая данных или , наоборот, изменять данные, не затрагивая интерфейс пользователя.
Это делается СВЯЗЫВАНИЕМ таблиц.
Этапность следующая.
допустим, есть Proect.mdb который включает и базу и элементы интерфейса пользователя в "одном флаконе"

таблицы данных называются table1 table2

Делаем следующим образом
1. Копируем Proekt.mdb -> Proekt_user.mdb

понятно, что сейчас этот проект полностью аналогичен первоначальному
2. В проекте Proekt_user переименовываем таблицу table1 -> table1_old
3. Далее в проекте Proekt_user делаем связь с таблицей table1 проекта Proekt

- Таблицы
- связь с таблицами
- выбираем проект Proekt
- выбираем таблицу table1

все, связь с table1 установлена

аналогично делаем и для table2
После этого проверяем работу Proekt_user

Если все работает нормально, то таблицы table1_old и table2_old можно удалить.

В дальнейшем можно менять интерфейс пользователя (Proekt_user) независимо от собственно данных ( базы Proekt) .

С уважением, Игорь

Консультировал: Игорь Елизаров
Дата отправки: 14.03.2007, 20:09
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 106054:

Здравствуйте!
Подскажите, пожалуйста, как отсортировать строки по текстовому полю, в котором хранятся числа? При этом чтобы сравнение происходило, именно как с числами.

Т.е. натуральная сортировка...
Спасибо

Дата отправки: 19.10.2007, 13:41
Вопрос задал: Stals
Всего ответов: 6
Страница онлайн-консультации »


Консультирует Vas177:

Здравствуйте, Stals!

Например, в ORACLE:

order by To_Number( СТРОКА )

Консультировал: Vas177
Дата отправки: 19.10.2007, 13:53
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Delph:

Здравствуйте, Stals!

Строго говоря нужно использовать функцию Cast, но её формат зависит от используемой СУБД. К тому же строка в принципе может содержать не только числа, но и нечисловые символы (знаки препинания, буквы... всё что угодно). Впрочем, попробуйте такой обобщённый вариант:

SELECT ...
FROM ...
ORDER BY Length(Field_Name), Field_Name

Этот оператор отсортирует сначала по длине строк, а строки с одинаковыми длинами - по содержимому этих строк. Должно сработать. Вместо Field_Name подставьте реальное название Вашего текстового поля.

Консультировал: Delph
Дата отправки: 19.10.2007, 14:15
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Тесленко Евгений Алексеевич:

Здравствуйте, Stals!
..
ORDER BY Field * 1
Не знаю примет ли MySql, MsSQL эту строку понимает.
Евгений.

Консультировал: Тесленко Евгений Алексеевич
Дата отправки: 19.10.2007, 20:38
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Errandir:

Здравствуйте, Stals!

Вот это должно работать почти на всём:

SELECT * FROM tab ORDER BY CAST(strnum AS INTEGER);

Консультировал: Errandir
Дата отправки: 19.10.2007, 23:20
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Челноков Виктор Альбертович:

Здравствуйте, Stals!
Попробуйте для sql2000-2005
order by convert(int, id)
т.е. преобразовать поле к числовому типу, но если в поле будут значения не числового типа то будет ошибка.

Консультировал: Челноков Виктор Альбертович
Дата отправки: 21.10.2007, 11:43
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Dubrovin:

Здравствуйте, Stals!

конвертни строку в число и сортируй )

Консультировал: Dubrovin
Дата отправки: 22.10.2007, 12:45
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное