Класс yii\db\mysql\QueryBuilder
| Наследование | yii\db\mysql\QueryBuilder » yii\db\QueryBuilder » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/db/mysql/QueryBuilder.php |
QueryBuilder — генератор запросов для баз данных MySQL.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $db | yii\db\Connection | Подключение к базе данных. | yii\db\QueryBuilder |
| $separator | string | Разделитель между различными фрагментами SQL-запроса. | yii\db\QueryBuilder |
| $typeMap | array | Сопоставление абстрактных типов столбцов (ключи) с физическими типами столбцов (значения). | yii\db\mysql\QueryBuilder |
Защищенные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $conditionBuilders | array | Карта условия запроса к методам-билдерам. | yii\db\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\mysql\QueryBuilder |
| addCommentOnTable() | Создаёт SQL-команду для добавления комментария к таблице | yii\db\mysql\QueryBuilder |
| addForeignKey() | Создаёт SQL-запрос для добавления ограничения внешнего ключа к существующей таблице. | yii\db\QueryBuilder |
| addPrimaryKey() | Создаёт SQL-запрос для добавления ограничения первичного ключа к существующей таблице. | yii\db\QueryBuilder |
| alterColumn() | Создаёт SQL-запрос для изменения определения столбца. | yii\db\QueryBuilder |
| batchInsert() | Генерирует пакетный SQL-запрос INSERT. | yii\db\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\mysql\QueryBuilder | |
| buildNotCondition() | Инвертирует SQL-выражение с оператором NOT . | yii\db\QueryBuilder |
| buildOrderBy() | yii\db\QueryBuilder | |
| buildOrderByAndLimit() | Строит пункты ORDER BY и LIMIT/OFFSET и добавляет их к заданному SQL-запросу. | 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\mysql\QueryBuilder |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| createIndex() | Создаёт SQL-запрос для создания нового индекса. | yii\db\mysql\QueryBuilder |
| createTable() | Создаёт SQL-запрос для создания новой таблицы базы данных. | yii\db\QueryBuilder |
| delete() | Создаёт SQL-запрос DELETE. | yii\db\QueryBuilder |
| dropColumn() | Создаёт SQL-запрос для удаления столбца базы данных. | yii\db\QueryBuilder |
| dropCommentFromColumn() | Создаёт SQL-команду для добавления комментария к столбцу | yii\db\mysql\QueryBuilder |
| dropCommentFromTable() | Создаёт SQL-команду для добавления комментария к таблице | yii\db\mysql\QueryBuilder |
| dropForeignKey() | Создаёт SQL-запрос для удаления ограничения внешнего ключа. | yii\db\mysql\QueryBuilder |
| dropIndex() | Создаёт SQL-запрос для удаления индекса. | yii\db\QueryBuilder |
| dropPrimaryKey() | Создаёт SQL-запрос для удаления ограничения первичного ключа из существующей таблицы. | yii\db\mysql\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\mysql\QueryBuilder |
| renameColumn() | Строит SQL-запрос для переименования столбца. | yii\db\mysql\QueryBuilder |
| renameTable() | Строит SQL-запрос для переименования таблицы БД. | yii\db\QueryBuilder |
| resetSequence() | Создаёт SQL-запрос для сброса значения последовательности первичного ключа таблицы. | yii\db\mysql\QueryBuilder |
| selectExists() | Создаёт SQL-запрос SELECT EXISTS(). | yii\db\QueryBuilder |
| truncateTable() | Строит SQL-запрос для обнуления таблицы БД. | yii\db\QueryBuilder |
| update() | Создаёт SQL-запрос UPDATE. | yii\db\QueryBuilder |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| buildCompositeInCondition() | Строит SQL для условия IN | yii\db\QueryBuilder |
| buildSubqueryInCondition() | Строит SQL для условия IN | yii\db\QueryBuilder |
| hasLimit() | Проверяет, эффективен ли заданный лимит. | yii\db\mysql\QueryBuilder |
| hasOffset() | Проверяет, эффективен ли заданный смещение. | yii\db\mysql\QueryBuilder |
| prepareInsertSelectSubQuery() | Подготавливает подзапрос select и имена полей для INSERT INTO. | yii\db\QueryBuilder |
Константы
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| PARAM_PREFIX | ':qp' | Префикс для автоматически генерируемых параметров связи запроса. | yii\db\QueryBuilder |
Подробности свойств
$typeMap общедоступное свойство
Сопоставление абстрактных типов столбцов (ключи) с физическими типами столбцов (значения).
public array $typeMap = [\yii\db\mysql\Schema::TYPE_PK => 'int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY', \yii\db\mysql\Schema::TYPE_UPK => 'int(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY', \yii\db\mysql\Schema::TYPE_BIGPK => 'bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY', \yii\db\mysql\Schema::TYPE_UBIGPK => 'bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY', \yii\db\mysql\Schema::TYPE_CHAR => 'char(1)', \yii\db\mysql\Schema::TYPE_STRING => 'varchar(255)', \yii\db\mysql\Schema::TYPE_TEXT => 'text', \yii\db\mysql\Schema::TYPE_SMALLINT => 'smallint(6)', \yii\db\mysql\Schema::TYPE_INTEGER => 'int(11)', \yii\db\mysql\Schema::TYPE_BIGINT => 'bigint(20)', \yii\db\mysql\Schema::TYPE_FLOAT => 'float', \yii\db\mysql\Schema::TYPE_DOUBLE => 'double', \yii\db\mysql\Schema::TYPE_DECIMAL => 'decimal(10,0)', \yii\db\mysql\Schema::TYPE_DATETIME => 'datetime', \yii\db\mysql\Schema::TYPE_TIMESTAMP => 'timestamp', \yii\db\mysql\Schema::TYPE_TIME => 'time', \yii\db\mysql\Schema::TYPE_DATE => 'date', \yii\db\mysql\Schema::TYPE_BINARY => 'blob', \yii\db\mysql\Schema::TYPE_BOOLEAN => 'tinyint(1)', \yii\db\mysql\Schema::TYPE_MONEY => 'decimal(19,4)']
Подробности методов
addCommentOnColumn() общедоступный метод (доступен с версии 2.0.8)
Строит SQL-команду для добавления комментария к столбцу
| общедоступный строка addCommentOnColumn ( $table, $column, $comment ) | ||
|---|---|---|
| $table | строка |
Название таблицы, к столбцу которой нужно добавить комментарий. Имя таблицы будет корректно обрамлено кавычками методом. |
| $column | строка |
Имя столбца, к которому нужно добавить комментарий. Имя столбца будет корректно обрамлено кавычками методом. |
| $comment | строка |
Текст комментария, который нужно добавить. Комментарий будет корректно обрамлён кавычками методом. |
| возвращает | строка |
SQL-запрос для добавления комментария к столбцу |
addCommentOnTable() общедоступный метод (доступен с версии 2.0.8)
Строит SQL-команду для добавления комментария к таблице
| общедоступный строка addCommentOnTable ( $table, $comment ) | ||
|---|---|---|
| $table | строка |
Название таблицы, к которой нужно добавить комментарий. Имя таблицы будет корректно обрамлено кавычками методом. |
| $comment | строка |
Текст комментария, который нужно добавить. Комментарий будет корректно обрамлён кавычками методом. |
| возвращает | строка |
SQL-запрос для добавления комментария к таблице |
buildLimit() общедоступный метод
| общедоступный строка buildLimit ( $limit, $offset ) | ||
|---|---|---|
| $limit | целое число | |
| $offset | целое число | |
| возвращает | строка |
Оператор LIMIT и OFFSET |
checkIntegrity() общедоступный метод
Строит SQL-запрос для включения или выключения проверки целостности.
| общедоступный строка checkIntegrity ( $check = true, $schema = '', $table = '' ) | ||
|---|---|---|
| $check | булево |
Включить или выключить проверку целостности. |
| $schema | строка |
Схема таблиц. Не имеет смысла для MySQL. |
| $table | строка |
Имя таблицы. Не имеет смысла для MySQL. |
| возвращает | строка |
SQL-запрос для проверки целостности |
createIndex() общедоступный метод
Строит SQL-запрос для создания нового индекса.
См. также https://bugs.mysql.com/bug.php?id=48875.
| общедоступный строка createIndex ( $name, $table, $columns, $unique = false ) | ||
|---|---|---|
| $name | строка |
Имя индекса. Имя будет корректно обрамлено кавычками методом. |
| $table | строка |
Таблица, для которой будет создан новый индекс. Имя таблицы будет корректно обрамлено кавычками методом. |
| $columns | строка|массив |
Столбец(ы), которые должны быть включены в индекс. Если столбцов несколько, разделите их запятыми или используйте массив. Каждое имя столбца будет корректно обрамлено кавычками методом, если в имени не встречаются скобки. |
| $unique | булево |
Добавить ограничение UNIQUE на созданный индекс. |
| возвращает | строка |
SQL-запрос для создания нового индекса. |
dropCommentFromColumn() общедоступный метод (доступен с версии 2.0.8)
Строит SQL-команду для добавления комментария к столбцу
| общедоступный строка dropCommentFromColumn ( $table, $column ) | ||
|---|---|---|
| $table | строка |
Таблица, к столбцу которой нужно добавить комментарий. Имя таблицы будет корректно обрамлено кавычками методом. |
| $column | строка |
Имя столбца, к которому нужно добавить комментарий. Имя столбца будет корректно обрамлено кавычками методом. |
| возвращает | строка |
SQL-запрос для добавления комментария к столбцу |
dropCommentFromTable() общедоступный метод (доступен с версии 2.0.8)
Строит SQL-команду для добавления комментария к таблице
| общедоступный строка dropCommentFromTable ( $table ) | ||
|---|---|---|
| $table | строка |
Таблица, к столбцу которой нужно добавить комментарий. Имя таблицы будет корректно обрамлено кавычками методом. |
| возвращает | строка |
SQL-запрос для добавления комментария к столбцу |
dropForeignKey() общедоступный метод
Строит SQL-запрос для удаления внешнего ключа.
| общедоступный строка dropForeignKey ( $name, $table ) | ||
|---|---|---|
| $name | строка |
Имя внешнего ключа, который нужно удалить. Имя будет корректно обрамлено кавычками методом. |
| $table | строка |
Таблица, из которой нужно удалить внешний ключ. Имя таблицы будет корректно обрамлено кавычками методом. |
| возвращает | строка |
SQL-запрос для удаления внешнего ключа. |
dropPrimaryKey() общедоступный метод
Строит SQL-запрос для удаления ограничения первичного ключа из существующей таблицы.
| общедоступный строка dropPrimaryKey ( $name, $table ) | ||
|---|---|---|
| $name | строка |
Имя ограничения первичного ключа, которое нужно удалить. |
| $table | строка |
Таблица, из которой нужно удалить ограничение первичного ключа. |
| возвращает | строка |
SQL-запрос для удаления ограничения первичного ключа из существующей таблицы. |
hasLimit() защищённый метод
Проверяет, эффективно ли заданный лимит.
| защищённый булево hasLimit ( $limit ) | ||
|---|---|---|
| $limit | смешанный тип |
Заданный лимит |
| возвращает | булево |
Эффективен ли лимит |
hasOffset() защищённый метод
Проверяет, эффективно ли заданный смещение.
| защищённый булево hasOffset ( $offset ) | ||
|---|---|---|
| $offset | смешанный тип |
Заданное смещение |
| возвращает | булево |
Эффективно ли смещение |
insert() общедоступный метод
Создаёт SQL-запрос INSERT.
Например,
$sql = $queryBuilder->insert('user', [
'name' => 'Sam',
'age' => 30,
], $params);
Метод корректно обработает имена таблиц и столбцов.
| public string insert ( $table, $columns, &$params ) | ||
|---|---|---|
| $table | string |
Таблица, в которую будут добавлены новые строки. |
| $columns | array|yii\db\Query |
Данные столбцов (имя => значение), которые будут добавлены в таблицу, или экземпляр \yii\db\mysql\yii\db\Query для выполнения SQL-запроса INSERT INTO ... SELECT. Передача \yii\db\mysql\yii\db\Query доступна начиная с версии 2.0.11. |
| $params | array |
Параметры привязки, которые будут сгенерированы этим методом. Они должны быть привязаны к команде БД позже. |
| return | string |
SQL-запрос INSERT |
renameColumn() public method
Создаёт SQL-запрос для переименования столбца.
| public string renameColumn ( $table, $oldName, $newName ) | ||
|---|---|---|
| $table | string |
Таблица, столбец которой нужно переименовать. Имя будет корректно обрамлено кавычками методом. |
| $oldName | string |
Старое имя столбца. Имя будет корректно обрамлено кавычками методом. |
| $newName | string |
Новое имя столбца. Имя будет корректно обрамлено кавычками методом. |
| return | string |
SQL-запрос для переименования столбца БД. |
| throws | yii\db\Exception | |
resetSequence() public method
Создаёт SQL-запрос для сброса значения последовательности первичного ключа таблицы.
Последовательность будет сброшена так, что первичный ключ следующей новой строки будет иметь указанное значение или 1.
| public string resetSequence ( $tableName, $value = null ) | ||
|---|---|---|
| $tableName | string |
Имя таблицы, последовательность первичного ключа которой будет сброшена |
| $value | mixed |
Значение первичного ключа следующей новой строки. Если это не задано, первичный ключ следующей новой строки будет иметь значение 1. |
| return | string |
SQL-запрос для сброса последовательности |
| throws | yii\base\InvalidParamException |
если таблица не существует или с таблицей не связана последовательность. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-mysql-querybuilder.html