-
Postgres. Получить список таблиц базы данных и ее поля?
Типичной задачей в области работы с базами данных, в т.ч. Postgres, является получения списка таблиц базы данных, а также их колонок. Для этого нужно обратиться к служебным таблицам и выполнить следующие запросы: — Все таблицы в схеме public SELECT table_name FROM information_schema.tables WHERE table_schema=’public’ ORDER BY table_name; — Все таблицы и колонки в схеме public…
-
MySQL. Использование IF и CASE в SELECT.
Есть ситуации, когда в зависимости от определенных условий в блоке SELECT в запросе нужно возвращать определенные поля или же под один алиас возвращать разные значения. Как это сделать и в каких ситуациях это решает проблему я покажу в этой статье. Ситуация из реальной практики — в БД хранится цена и рядом с ней хранится валюта…
-
Yii2. Как получить название базы данных?
Сегодня стала очень простая задача для которой, как оказалось нет нативного решения в коробке Yii2. Но, ничего страшного и вариант, как получить название базы данных в Yii2 был найден на просторах Сети. Всего-то навсего следует написать вот такую функцию: private function getDsnAttribute($name, $dsn) { if (preg_match(‘/’ . $name . ‘=([^;]*)/’, $dsn, $match)) { return $match[1];…
-
Postgres. Как установить dblink (contrib)?
Для выполнения запросов между различными БД в postgres необходимо установить библиотеку dblink (contrib). Для этого необходимо выполнить несколько простых шагов: 1) Устанавливаем расширение sudo apt-get install postgresql-contrib 2) Далее в Navicat, pgAdmin или другом Вашем интерфейсе: CREATE EXTENSION dblink;
-
MySQL. Перевод строки в нижний\верхний регистр.
Никогда нельзя забывать о регистрозависимости и возможности случайных недопонимании при работе со строками. Это касается и Баз Данных, и языков программирования и т.д. Ниже приведу две функции MySQL для приведения текста в нижний и верхний регистр. Верхний регистр: функция UPPER SELECT UPPER(‘Hello’); — HELLO Нижний регистр: функция LOWER SELECT LOWER(‘HeLlO’); — hello
-
Yii2. Как указать алиас в joinWith?
Для удобства работы с запросом, фильтрации и сортировки в сложных реляционных запросах удобно использовать joinWith. Но здесь иногда возникают трудности ввиду не очевидного присвоения алиаса для подключаемой таблицы. На самом деле же все достаточно просто. Исходя из ответа qiang на github: joinWith([ ‘customer’ => function ($q) { $q->from(‘customer cu’); }, ]) Таким образом мы можем…
-
Yii2. Как указать условие NOT NULL?
Приведу простой, но не очень очевидный ответ на вопрос, как следует указывать условие NOT NULL при работе с query builder. Код, на самом деле, очень прост. $post = Post::find() ->where([‘not’,[‘content’=>null]]) ->all(); Данный код сгенерирует именно тот запрос, что нам нужен и выберет записи, у которых content не равен NULL. Удачи!
-
PostgreSQL. Как открыть удаленный доступ?
Открыть доступ к PostgreSQL извне достаточно просто и в этой статье я приведу пример, как предоставить удаленный доступ к базе данных. Для начала в postgresql.conf ставим следующую конфигурацию: listen_addresses = ‘*’ Следующий шаг можно пропустить, если Вам не нужно создавать дополнительного суперпользователя. # переключаемся на юзера postgres su postgres # создаем нового пользователя createuser -P…
-
PostgreSQL. Где находится файл pg_hba.conf?
-
MySQL. Как сделать заглавной только первую букву?
Функции и хаки работы с MySQL иногда очень облегчают жизнь. Об одном из таких хаков я расскажу в этой заметке. Речь пойдет о хаке, который позволяет сделать со строки «ПРИВЕТ» — «Привет». Т.е. независимо от регистра входной строки получить первую заглавную букву. Итак, код ниже: SELECT CONCAT( UPPER( LEFT( `text` , 1 ) ) ,…