Изменение формата отображения столбца какой-либо таблицы в программе DB Browser for SQLite

В этой статье хотелось бы рассказать, как менять формат отображения столбца какой-либо таблицы в программе DB Browser for SQLite, и расскажу, для чего я это использую.

В программе DB Browser for SQLite мне часто приходится редактировать вручную какие-то значение таблицы. Но проблема в том, что некоторые поля таблицы — это ссылки на поле ID другой таблицы. В таком случае тяжело понять на какую строку таблицы идет ссылка. Было бы удобное вместо ID видеть значение какого то столбца той таблицы на которую идет ссылка по ID.

Объясню на примере

Есть База Данных в котором есть таблица Mark, в которой есть столбец (или поле) mCategory, которое ссылается ссылается на столбец ID из таблицы Category. Но проблема в том, что не совсем понятно на какую cтроку он ссылается:

db115128ac9069b6431dabb4fd99f5bc.png

Для того чтобы увидеть на какую строку из таблицы Category ссылается столбец Mark.mCategory нужно постоянно открывать таблицу Category и искать cтроку по ID, что крайне не удобно и занимает много времени.

f4c9fa5747a558ac659e50d2b0fd719b.png

Хотелось бы, чтобы в таблице Mark в столбце mCategory показывались значения столбца cName из таблицы Category (а не ID). Чтобы получилось как показано на следующем скриншоте:

5b5a980c91161f945dc81d444273b35f.png

Поиск решения данной проблемы в интернете не дал ничего дельного, поэтому решился поделиться этим howto, чтобы можно было удобно и наглядно редактировать таблицы в программе DB Browser for SQLite. Надеюсь данная статья вам пригодится.

Как это сделать

1) в вкладке «Данные» выбрать таблицу Mark,

2) нажать правой кнопки мыши на столбец mCategory и выбрать пункт Формат отображения

02bbd1faa365ac920af1773e075fcd5d.png

  1. Появится окно, где можно указать формат для отображения

d23ffd9a31c3120a9e97d306db951944.png

В выпадающем меню, вместо варианта «По умолчанию» можно выбрать различные форматы столбцов. Вот некоторые из этих форматов:

0d2d0f5eed89c8cd2a40a3b9925203fa.png7497447107929fb42712f05e4f9c9d43.png

Выберем вариант «Мой формат» и введём следующий запрос:

printf('%s', (SELECT cName FROM Category WHERE Category.ID ="mCategory")) 

Как это выглядит в окне:

e47b1714b3fc4ddac8b795f1e8abb94d.png

Как видим этот SQLite-запрос использует функцию printf(), которая форматирует строку, чтобы вернуть отформатированный результат. Давайте разберемся, что он делает:
SELECT cName FROM Category WHERE Category.ID =«mCategory»:
Эта часть запроса выбирает значение столбца cName из таблицы Category, где значение столбца ID равно "mCategory", которое будет подставлено на значение каждой строки из столбца mCategory.
printf (»%s», …):

Функция printf() принимает форматированную строку и аргументы для вставки в эту строку.

В данном случае, она использует формат %s, который означает, что она ожидает строковый аргумент.

Вместо многоточия (...) вставляется результат первой части запроса.

Итак, в итоге этот запрос выберет значение столбца cName из таблицы Category, где ID равно "mCategory", и отформатирует его как строку с помощью printf().

В результате мы получим желаемый результат, который позволит легко вручную редактировать нужные поля таблицы Mark, обладая столь необходимой информацией из столбца mCategory:

94ea68b5f07f12c57eb18fdd636a9db2.png

Надо отметить, что в нашем примере, не нужно менять значение из столбца mCategory, так как если мы это сделаем, то вместо ID будет записано наше отформатированное значение, а это будет ошибкой. Другие же столбцы (или поля) мы можем свободно редактировать, видя к чему они относятся, благодаря отформатированному полю mCategory.

Надеюсь вам пригодится это решение из этой статьи, если вам часто приходится редактировать вручную данные из таблицы SQLite.

© Habrahabr.ru