Класс yii\db\pgsql\QueryBuilder
| Наследование | yii\db\pgsql\QueryBuilder » yii\db\QueryBuilder » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/db/pgsql/QueryBuilder.php |
QueryBuilder — это генератор запросов для баз данных PostgreSQL.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $db | yii\db\Connection | Подключение к базе данных. | yii\db\QueryBuilder |
| $separator | string | Разделитель между различными фрагментами SQL-запроса. | yii\db\QueryBuilder |
| $typeMap | array | Сопоставление абстрактных типов столбцов (ключи) с физическими типами столбцов (значения). | yii\db\pgsql\QueryBuilder |
Защищенные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $conditionBuilders | array | Карта условий запроса к методам-билдерам. | yii\db\pgsql\QueryBuilder |
| $likeEscapeCharacter | string|null | Символ, используемый для экранирования специальных символов в условиях LIKE. | yii\db\QueryBuilder |
| $likeEscapingReplacements | array | Карта символов и их замен в условиях LIKE. | yii\db\QueryBuilder |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\db\QueryBuilder |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| addColumn() | Создаёт SQL-запрос для добавления нового столбца БД. | yii\db\QueryBuilder |
| addCommentOnColumn() | Создаёт SQL-команду для добавления комментария к столбцу | yii\db\QueryBuilder |
| addCommentOnTable() | Создаёт SQL-команду для добавления комментария к таблице | yii\db\QueryBuilder |
| addForeignKey() | Создаёт SQL-запрос для добавления ограничения внешнего ключа к существующей таблице. | yii\db\QueryBuilder |
| addPrimaryKey() | Создаёт SQL-запрос для добавления ограничения первичного ключа к существующей таблице. | yii\db\QueryBuilder |
| alterColumn() | Создаёт SQL-запрос для изменения определения столбца. | yii\db\pgsql\QueryBuilder |
| batchInsert() | Генерирует SQL-запрос для пакетной вставки данных. | yii\db\pgsql\QueryBuilder |
| build() | Генерирует SQL-запрос SELECT из объекта yii\db\Query. | yii\db\QueryBuilder |
| buildAndCondition() | Соединяет два или более SQL-выражений с оператором AND или OR. | yii\db\QueryBuilder |
| buildBetweenCondition() | Создаёт SQL-выражение с оператором BETWEEN. | yii\db\QueryBuilder |
| buildColumns() | Обрабатывает столбцы и должным образом обрамляет их кавычками, если это необходимо. | yii\db\QueryBuilder |
| buildCondition() | Парсит условие и генерирует соответствующее SQL-выражение. | yii\db\QueryBuilder |
| buildExistsCondition() | Создаёт SQL-выражение с оператором EXISTS. | yii\db\QueryBuilder |
| buildFrom() | yii\db\QueryBuilder | |
| buildGroupBy() | yii\db\QueryBuilder | |
| buildHashCondition() | Создаёт условие на основе пар "столбец-значение". | yii\db\QueryBuilder |
| buildHaving() | yii\db\QueryBuilder | |
| buildInCondition() | Создаёт SQL-выражение с оператором IN. | yii\db\QueryBuilder |
| buildJoin() | yii\db\QueryBuilder | |
| buildLikeCondition() | Создаёт SQL-выражение с оператором LIKE. | yii\db\QueryBuilder |
| buildLimit() | yii\db\QueryBuilder | |
| buildNotCondition() | Инвертирует SQL-выражение с оператором NOT. | yii\db\QueryBuilder |
| buildOrderBy() | yii\db\QueryBuilder | |
| buildOrderByAndLimit() | Создаёт и добавляет в SQL-запрос ORDER BY и LIMIT/OFFSET. | yii\db\QueryBuilder |
| buildSelect() | yii\db\QueryBuilder | |
| buildSimpleCondition() | Создаёт SQL-выражение, подобное "column" operator value. | yii\db\QueryBuilder |
| buildUnion() | yii\db\QueryBuilder | |
| buildWhere() | yii\db\QueryBuilder | |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| checkIntegrity() | Создаёт SQL-запрос для включения или выключения проверки целостности. | yii\db\pgsql\QueryBuilder |
| className() | Возвращает полное квалифицированное имя класса. | yii\base\Object |
| createIndex() | Создаёт SQL-запрос для создания нового индекса. | yii\db\pgsql\QueryBuilder |
| createTable() | Создаёт SQL-запрос для создания новой таблицы БД. | yii\db\QueryBuilder |
| delete() | Создаёт SQL-запрос DELETE. | yii\db\QueryBuilder |
| dropColumn() | Создаёт SQL-запрос для удаления столбца БД. | yii\db\QueryBuilder |
| dropCommentFromColumn() | Создаёт SQL-команду для удаления комментария к столбцу | yii\db\QueryBuilder |
| dropCommentFromTable() | Создаёт SQL-команду для удаления комментария к таблице | yii\db\QueryBuilder |
| dropForeignKey() | Создаёт SQL-запрос для удаления ограничения внешнего ключа. | yii\db\QueryBuilder |
| dropIndex() | Создаёт SQL-запрос для удаления индекса. | yii\db\pgsql\QueryBuilder |
| dropPrimaryKey() | Создаёт SQL-запрос для удаления ограничения первичного ключа из существующей таблицы. | yii\db\QueryBuilder |
| dropTable() | Создаёт SQL-запрос для удаления таблицы БД. | yii\db\QueryBuilder |
| getColumnType() | Преобразует абстрактный тип столбца в физический тип столбца. | yii\db\QueryBuilder |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определён ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
| insert() | Создаёт SQL-запрос INSERT. | yii\db\pgsql\QueryBuilder |
| renameColumn() | Строит SQL-запрос для переименования столбца. | yii\db\QueryBuilder |
| renameTable() | Строит SQL-запрос для переименования таблицы БД. | yii\db\pgsql\QueryBuilder |
| resetSequence() | Создаёт SQL-запрос для сброса значения последовательности первичного ключа таблицы. | yii\db\pgsql\QueryBuilder |
| selectExists() | Создаёт SQL-запрос SELECT EXISTS(). | yii\db\QueryBuilder |
| truncateTable() | Строит SQL-запрос для обнуления таблицы БД. | yii\db\pgsql\QueryBuilder |
| update() | Создаёт SQL-запрос UPDATE. | yii\db\pgsql\QueryBuilder |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| buildCompositeInCondition() | Строит SQL для условия IN | yii\db\QueryBuilder |
| buildSubqueryInCondition() | Строит SQL для условия IN | yii\db\QueryBuilder |
| hasLimit() | Проверяет, является ли заданный лимит эффективным. | yii\db\QueryBuilder |
| hasOffset() | Проверяет, является ли заданный смещение эффективным. | yii\db\QueryBuilder |
| prepareInsertSelectSubQuery() | Подготавливает подзапрос select и имена полей для INSERT INTO. | yii\db\QueryBuilder |
Константы
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| INDEX_B_TREE | 'btree' | Определяет индекс B-дерева для createIndex(). | yii\db\pgsql\QueryBuilder |
| INDEX_GIN | 'gin' | Определяет индекс GIN для createIndex(). | yii\db\pgsql\QueryBuilder |
| INDEX_GIST | 'gist' | Определяет индекс GiST для createIndex(). | yii\db\pgsql\QueryBuilder |
| INDEX_HASH | 'hash' | Определяет хеш-индекс для createIndex(). | yii\db\pgsql\QueryBuilder |
| INDEX_UNIQUE | 'unique' | Определяет уникальный индекс для createIndex(). | yii\db\pgsql\QueryBuilder |
| PARAM_PREFIX | ':qp' | Префикс для автоматически сгенерированных параметров связи запроса. | yii\db\QueryBuilder |
Подробности свойств
$conditionBuilders защищённое свойство
Карта условия запроса к методам-строителям. Эти методы используются buildCondition() для построения SQL-условий из синтаксиса массивов.
protected array $conditionBuilders = ['NOT' => 'buildNotCondition', 'AND' => 'buildAndCondition', 'OR' => 'buildAndCondition', 'BETWEEN' => 'buildBetweenCondition', 'NOT BETWEEN' => 'buildBetweenCondition', 'IN' => 'buildInCondition', 'NOT IN' => 'buildInCondition', 'LIKE' => 'buildLikeCondition', 'ILIKE' => 'buildLikeCondition', 'NOT LIKE' => 'buildLikeCondition', 'NOT ILIKE' => 'buildLikeCondition', 'OR LIKE' => 'buildLikeCondition', 'OR ILIKE' => 'buildLikeCondition', 'OR NOT LIKE' => 'buildLikeCondition', 'OR NOT ILIKE' => 'buildLikeCondition', 'EXISTS' => 'buildExistsCondition', 'NOT EXISTS' => 'buildExistsCondition']
$typeMap публичное свойство
Сопоставление абстрактных типов столбцов (ключи) с физическими типами столбцов (значения).
public array $typeMap = [\yii\db\pgsql\Schema::TYPE_PK => 'serial NOT NULL PRIMARY KEY', \yii\db\pgsql\Schema::TYPE_UPK => 'serial NOT NULL PRIMARY KEY', \yii\db\pgsql\Schema::TYPE_BIGPK => 'bigserial NOT NULL PRIMARY KEY', \yii\db\pgsql\Schema::TYPE_UBIGPK => 'bigserial NOT NULL PRIMARY KEY', \yii\db\pgsql\Schema::TYPE_CHAR => 'char(1)', \yii\db\pgsql\Schema::TYPE_STRING => 'varchar(255)', \yii\db\pgsql\Schema::TYPE_TEXT => 'text', \yii\db\pgsql\Schema::TYPE_SMALLINT => 'smallint', \yii\db\pgsql\Schema::TYPE_INTEGER => 'integer', \yii\db\pgsql\Schema::TYPE_BIGINT => 'bigint', \yii\db\pgsql\Schema::TYPE_FLOAT => 'double precision', \yii\db\pgsql\Schema::TYPE_DOUBLE => 'double precision', \yii\db\pgsql\Schema::TYPE_DECIMAL => 'numeric(10,0)', \yii\db\pgsql\Schema::TYPE_DATETIME => 'timestamp(0)', \yii\db\pgsql\Schema::TYPE_TIMESTAMP => 'timestamp(0)', \yii\db\pgsql\Schema::TYPE_TIME => 'time(0)', \yii\db\pgsql\Schema::TYPE_DATE => 'date', \yii\db\pgsql\Schema::TYPE_BINARY => 'bytea', \yii\db\pgsql\Schema::TYPE_BOOLEAN => 'boolean', \yii\db\pgsql\Schema::TYPE_MONEY => 'numeric(19,4)']
Подробности методов
alterColumn() public method
Строит SQL-запрос для изменения определения столбца.
| public string alterColumn ( $table, $column, $type ) | ||
|---|---|---|
| $table | string |
Таблица, столбец которой необходимо изменить. Имя таблицы будет корректно обрамлено кавычками методом. |
| $column | string |
Имя столбца, который нужно изменить. Имя будет корректно обрамлено кавычками методом. |
| $type | string |
Новый тип столбца. Метод getColumnType() будет вызван для преобразования абстрактного типа столбца (если таковой имеется) в физический. Всё, что не распознаётся как абстрактный тип, будет сохранено в сгенерированном SQL. Например, 'string' будет преобразовано в 'varchar(255)', а 'string not null' — в 'varchar(255) not null'. Вы также можете использовать специфичную для PostgreSQL синтаксис, например |
| return | string |
SQL-запрос для изменения определения столбца. |
batchInsert() public method
Генерирует пакетный INSERT SQL-запрос.
Например,
$sql = $queryBuilder->batchInsert('user', ['name', 'age'], [
['Tom', 30],
['Jane', 20],
['Linda', 25],
]);
Обратите внимание, что значения в каждой строке должны соответствовать соответствующим именам столбцов.
Метод корректно обработает имена столбцов и приведёт значения, которые будут вставлены, к кавычкам.
| public string batchInsert ( $table, $columns, $rows ) | ||
|---|---|---|
| $table | string |
Таблица, в которую будут вставлены новые строки. |
| $columns | array |
Имена столбцов |
| $rows | array |
Строки, которые будут вставлены в таблицу в пакетном режиме. |
| return | string |
Пакетный INSERT SQL-запрос. |
checkIntegrity() public method
Строит SQL-запрос для включения или выключения проверки целостности.
| public string checkIntegrity ( $check = true, $schema = '', $table = '' ) | ||
|---|---|---|
| $check | boolean |
Включить или отключить проверку целостности. |
| $schema | string |
Схема таблиц. |
| $table | string |
Имя таблицы. |
| return | string |
SQL-запрос для проверки целостности. |
createIndex() public method
Строит SQL-запрос для создания нового индекса.
См. также http://www.postgresql.org/docs/8.2/static/sql-createindex.html.
| public string createIndex ( $name, $table, $columns, $unique = false ) | ||
|---|---|---|
| $name | string |
Имя индекса. Имя будет корректно обрамлено кавычками методом. |
| $table | string |
Таблица, для которой будет создан новый индекс. Имя таблицы будет корректно обрамлено кавычками методом. |
| $columns | string|array |
Столбец(ы), которые должны быть включены в индекс. Если столбцов несколько, разделите их запятыми или используйте массив. Каждое имя столбца будет корректно обрамлено кавычками методом, если в имени не обнаружены скобки. |
| $unique | boolean|string |
Указать, является ли это индексом UNIQUE. Вы можете передать |
| return | string |
SQL-запрос для создания нового индекса. |
dropIndex() public method
Строит SQL-запрос для удаления индекса.
| public string dropIndex ( $name, $table ) | ||
|---|---|---|
| $name | string |
Имя индекса, который необходимо удалить. Имя будет корректно обрамлено кавычками методом. |
| $table | string |
Таблица, индекс которой необходимо удалить. Имя таблицы будет корректно обрамлено кавычками методом. |
| return | string |
SQL-запрос для удаления индекса. |
insert() public method
Создаёт INSERT SQL-запрос.
Например,
$sql = $queryBuilder->insert('user', [
'name' => 'Sam',
'age' => 30,
], $params);
Метод корректно обработает имена таблиц и столбцов.
| public string insert ( $table, $columns, &$params ) | ||
|---|---|---|
| $table | string |
Таблица, в которую будут вставлены новые строки. |
| $columns | array|yii\db\Query |
Данные столбцов (имя => значение) для вставки в таблицу или экземпляр \yii\db\pgsql\yii\db\Query для выполнения INSERT INTO ... SELECT SQL-запроса. Передача \yii\db\pgsql\yii\db\Query доступна начиная с версии 2.0.11. |
| $params | array |
Параметры привязки, которые будут сгенерированы этим методом. Они должны быть привязаны к команде базы данных позже. |
| return | string |
SQL INSERT. |
renameTable() public method
Строит SQL-запрос для переименования таблицы базы данных.
| public string renameTable ( $oldName, $newName ) | ||
|---|---|---|
| $oldName | string |
Таблица, которую нужно переименовать. Имя будет корректно обрамлено кавычками методом. |
| $newName | string |
Новое имя таблицы. Имя будет корректно обрамлено кавычками методом. |
| return | string |
SQL-запрос для переименования таблицы базы данных. |
resetSequence() public method
Создаёт SQL-запрос для сброса значения последовательности первичного ключа таблицы.
Последовательность будет сброшена таким образом, что первичный ключ следующей новой вставленной строки будет иметь указанное значение или 1.
| public string resetSequence ( $tableName, $value = null ) | ||
|---|---|---|
| $tableName | string |
Имя таблицы, последовательность первичного ключа которой будет сброшена. |
| $value | mixed |
Значение первичного ключа следующей новой вставленной строки. Если это не задано, первичный ключ следующей новой строки будет иметь значение 1. |
| return | string |
SQL-запрос для сброса последовательности. |
| throws | yii\base\InvalidParamException |
если таблица не существует или с таблицей не связана последовательность. |
truncateTable() public method
Строит SQL-запрос для усечения таблицы базы данных.
Явно перезапускает идентификатор для PGSQL, чтобы обеспечить согласованность с другими базами данных, которые делают это по умолчанию.
| public string truncateTable ( $table ) | ||
|---|---|---|
| $table | string |
Таблица, которую нужно обнулить. Имя будет корректно обрамлено кавычками методом. |
| return | string |
SQL-запрос для усечения таблицы базы данных. |
update() public method
Создаёт SQL-запрос UPDATE.
Например,
$params = [];
$sql = $queryBuilder->update('user', ['status' => 1], 'age > 30', $params);
Метод корректно экранирует имена таблиц и столбцов.
| public string update ( $table, $columns, $condition, &$params ) | ||
|---|---|---|
| $table | string |
Таблица, которая будет обновлена. |
| $columns | array |
Данные столбцов (имя => значение) для обновления. |
| $condition | array|string |
Условие, которое будет помещено в часть WHERE. Обратитесь к \yii\db\pgsql\Query::where() для получения информации о том, как указать условие. |
| $params | array |
Параметры привязки, которые будут изменены этим методом, чтобы их можно было связать с командой базы данных позже. |
| return | string |
SQL-запрос UPDATE |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-pgsql-querybuilder.html