Spec-Zone.ru › Yii 2.0

Класс yii\db\QueryBuilder

Все классы | Свойства | Методы | Константы
Наследование yii\db\QueryBuilder » yii\base\Object
Реализует yii\base\Configurable
Подклассы yii\db\cubrid\QueryBuilder, yii\db\mssql\QueryBuilder, yii\db\mysql\QueryBuilder, yii\db\oci\QueryBuilder, yii\db\pgsql\QueryBuilder, yii\db\sqlite\QueryBuilder
Доступен с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/db/QueryBuilder.php

QueryBuilder строит SQL-запрос SELECT на основе спецификации, заданной объектом yii\db\Query.

SQL-запросы создаются из объектов yii\db\Query с помощью метода build().

QueryBuilder также используется классом yii\db\Command для построения SQL-запросов типа INSERT, UPDATE, DELETE, CREATE TABLE.

Дополнительную информацию и примеры использования QueryBuilder можно найти в статье руководства по билдерам запросов.

Публичные свойства

Свойство Тип Описание Определено в
$db yii\db\Connection Подключение к базе данных. yii\db\QueryBuilder
$separator строка Разделитель между различными фрагментами SQL-запроса. yii\db\QueryBuilder
$typeMap массив Типы абстрактных столбцов, сопоставленные с физическими типами столбцов. yii\db\QueryBuilder

Защищенные свойства

Свойство Тип Описание Определено в
$conditionBuilders массив Карта условия запроса к методам билдера. yii\db\QueryBuilder
$likeEscapeCharacter строка|null Символ, используемый для экранирования специальных символов в условиях LIKE. yii\db\QueryBuilder
$likeEscapingReplacements массив Карта символов к их заменителям в условиях 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\QueryBuilder
batchInsert() Генерирует SQL-запрос для пакетной вставки данных. 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\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\QueryBuilder
className() Возвращает полное имя этого класса. yii\base\Object
createIndex() Создает SQL-запрос для создания нового индекса. yii\db\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\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\QueryBuilder
renameColumn() Создаёт SQL-запрос для переименования столбца. yii\db\QueryBuilder
renameTable() Создаёт SQL-запрос для переименования таблицы БД. yii\db\QueryBuilder
resetSequence() Создаёт SQL-запрос для сброса последовательности значений первичного ключа таблицы. yii\db\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\QueryBuilder
hasOffset() Проверяет, действует ли заданный смещение. yii\db\QueryBuilder
prepareInsertSelectSubQuery() Подготавливает подзапрос select и имена полей для INSERT INTO. yii\db\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', 'NOT LIKE' => 'buildLikeCondition', 'OR LIKE' => 'buildLikeCondition', 'OR NOT LIKE' => 'buildLikeCondition', 'EXISTS' => 'buildExistsCondition', 'NOT EXISTS' => 'buildExistsCondition']

$db публичное свойство

Подключение к базе данных.

public yii\db\Connection $db = null

$likeEscapeCharacter защищённое свойство (доступно начиная с версии 2.0.12)

Символ, используемый для экранирования специальных символов в условиях LIKE. По умолчанию предполагается, что это \.

protected string|null $likeEscapeCharacter = null

$likeEscapingReplacements защищённое свойство (доступно начиная с версии 2.0.12)

Карта символов и их замещений в условиях LIKE. По умолчанию настроено на экранирование %, _ и \ с \.

protected array $likeEscapingReplacements = ['%' => '\%', '_' => '\_', '\\' => '\\\\']

$separator публичное свойство

Разделитель между различными фрагментами SQL-запроса. По умолчанию пустое пространство. Это используется главным образом build() при генерации SQL-запроса.

public string $separator = ' '

$typeMap публичное свойство

Абстрактные типы столбцов, сопоставленные с физическими типами столбцов. Это в основном используется для поддержки создания/модификации таблиц с помощью независимых от БД спецификаций типов данных. Подклассы должны переопределять это свойство для объявления поддерживаемых сопоставлений типов.

public array $typeMap = []

Подробности методов

__construct() public method

Конструктор.

public void __construct ( $connection, $config = [] )
$connection yii\db\Connection

Подключение к базе данных.

$config array

Параметры (имя-значение), которые будут использованы для инициализации свойств объекта.

addColumn() public method

Создаёт SQL-запрос для добавления нового столбца в базу данных.

public string addColumn ( $table, $column, $type )
$table string

Таблица, в которую будет добавлен новый столбец. Имя таблицы будет корректно обрамлено кавычками.

$column string

Имя нового столбца. Имя будет корректно обрамлено кавычками.

$type string

Тип столбца. Метод getColumnType() будет вызван для преобразования абстрактного типа столбца (если он есть) в физический. Всё, что не распознаётся как абстрактный тип, сохранится в сгенерированном SQL. Например, 'string' преобразуется в 'varchar(255)', а 'string not null' — в 'varchar(255) not null'.

return string

SQL-запрос для добавления нового столбца.

addCommentOnColumn() public method (доступно начиная с версии 2.0.8)

Создаёт SQL-команду для добавления комментария к столбцу.

public string addCommentOnColumn ( $table, $column, $comment )
$table string

Таблица, к столбцу которой нужно добавить комментарий. Имя таблицы будет корректно обрамлено кавычками.

$column string

Имя столбца, к которому нужно добавить комментарий. Имя столбца будет корректно обрамлено кавычками.

$comment string

Текст комментария, который нужно добавить. Комментарий будет корректно обрамлён кавычками.

return string

SQL-запрос для добавления комментария к столбцу.

addCommentOnTable() public method (доступно начиная с версии 2.0.8)

Создаёт SQL-команду для добавления комментария к таблице.

public string addCommentOnTable ( $table, $comment )
$table string

Таблица, к которой нужно добавить комментарий. Имя таблицы будет корректно обрамлено кавычками.

$comment string

Текст комментария, который нужно добавить. Комментарий будет корректно обрамлён кавычками.

return string

SQL-запрос для добавления комментария к таблице.

addForeignKey() public method

Создаёт SQL-запрос для добавления внешнего ключа к существующей таблице.

Метод корректно обрамит имена таблиц и столбцов кавычками.

public string addForeignKey ( $name, $table, $columns, $refTable, $refColumns, $delete = null, $update = null )
$name string

Имя внешнего ключа.

$table string

Таблица, к которой добавляется внешний ключ.

$columns string|array

Имя столбца, к которому добавляется ограничение. Если столбцов несколько, разделяйте их запятыми или используйте массив.

$refTable string

Таблица, к которой ссылается внешний ключ.

$refColumns string|array

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

$delete string

Опция ON DELETE. Большинство СУБД поддерживают эти опции: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL

$update string

Опция ON UPDATE. Большинство СУБД поддерживают эти опции: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL

return string

SQL-запрос для добавления внешнего ключа к существующей таблице.

addPrimaryKey() public method

Создаёт SQL-запрос для добавления первичного ключа к существующей таблице.

public string addPrimaryKey ( $name, $table, $columns )
$name string

Имя первичного ключа.

$table string

Таблица, к которой добавляется первичный ключ.

$columns string|array

Строка с перечислением столбцов через запятую или массив столбцов, из которых состоит первичный ключ.

return string

SQL-запрос для добавления первичного ключа к существующей таблице.

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'.

return string

SQL-запрос для изменения определения столбца.

batchInsert() public method

Генерирует 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

SQL-запрос для пакетной вставки.

build() public method

Генерирует SQL-запрос SELECT из объекта yii\db\Query.

public массив build ( $query, $params = [] )
$query yii\db\Query

Объект yii\db\Query, из которого будет сгенерировано SQL-выражение.

$params массив

Параметры, которые будут привязаны к сгенерированному SQL-выражению. Эти параметры будут включены в результат вместе с дополнительными параметрами, сгенерированными во время процесса построения запроса.

return массив

Сгенерированное SQL-выражение (первый элемент массива) и соответствующие параметры, которые должны быть привязаны к SQL-выражению (второй элемент массива). Возвращаемые параметры включают те, которые были предоставлены в $params.

buildAndCondition() public method

Соединяет два или более SQL-выражений с оператором AND или OR.

public строка buildAndCondition ( $operator, $operands, &$params )
$operator строка

Оператор, используемый для соединения заданных операндов

$operands массив

SQL-выражения, которые необходимо соединить.

$params массив

Параметры привязки, которые нужно заполнить

return строка

Сгенерированное SQL-выражение

buildBetweenCondition() public method

Создаёт SQL-выражение с оператором BETWEEN.

public строка buildBetweenCondition ( $operator, $operands, &$params )
$operator строка

Оператор для использования (например, BETWEEN или NOT BETWEEN)

$operands массив

Первый операнд — имя столбца. Второй и третий операнды описывают интервал, в котором должно находиться значение столбца.

$params массив

Параметры привязки, которые нужно заполнить

return строка

Сгенерированное SQL-выражение

throws yii\base\InvalidParamException

если предоставлено неверное количество операндов.

buildColumns() public method

Обрабатывает столбцы и должным образом обрамляет их кавычками, если это необходимо.

Объединяет все столбцы в строку с запятыми в качестве разделителей.

public строка buildColumns ( $columns )
$columns строка|массив

Столбцы, которые нужно обработать

return строка

Результат обработки

buildCompositeInCondition() protected method

Строит SQL для условия IN

protected строка buildCompositeInCondition ( $operator, $columns, $values, &$params )
$operator строка
$columns массив|Перебираемый
$values массив
$params массив
return строка

SQL

buildCondition() public method

Парсит условие и генерирует соответствующее SQL-выражение.

public строка buildCondition ( $condition, &$params )
$condition строка|массив|yii\db\Expression

Условие. См. yii\db\Query::where() для информации о том, как указать условие.

$params массив

Параметры привязки, которые нужно заполнить

return строка

Сгенерированное SQL-выражение

buildExistsCondition() public method

Создаёт SQL-выражение с оператором EXISTS.

public строка buildExistsCondition ( $operator, $operands, &$params )
$operator строка

Используемый оператор (например, EXISTS или NOT EXISTS)

$operands массив

Содержит только один элемент, который является объектом yii\db\Query, представляющим подзапрос.

$params массив

Параметры привязки, которые нужно заполнить

return строка

Сгенерированное SQL-выражение

throws yii\base\InvalidParamException

если операнд не является объектом yii\db\Query.

buildFrom() public method

public строка buildFrom ( $tables, &$params )
$tables массив
$params массив

Параметры привязки, которые нужно заполнить

return строка

Запрос FROM, построенный из yii\db\Query::$from.

buildGroupBy() public method

public строка buildGroupBy ( $columns )
$columns массив
return строка

Запрос GROUP BY

buildHashCondition() public method

Создаёт условие на основе пар "имя столбца-значение".

public строка buildHashCondition ( $condition, &$params )
$condition массив

Условие.

$params массив

Параметры привязки, которые нужно заполнить

return строка

Сгенерированное SQL-выражение

buildHaving() public method

public строка buildHaving ( $condition, &$params )
$condition строка|массив
$params массив

Параметры привязки, которые нужно заполнить

return строка

Запрос HAVING, построенный из yii\db\Query::$having.

buildInCondition() public method

Создаёт SQL-выражение с оператором IN.

public string buildInCondition ( $operator, $operands, &$params )
$operator string

Оператор для использования (например, IN или NOT IN)

$operands array

Первый операнд — имя столбца. Если это массив, будет сгенерировано составное условие IN. Второй операнд — массив значений, среди которых должно находиться значение столбца. Если это пустой массив, сгенерированное выражение будет значением false, если оператор IN, и пустым, если оператор NOT IN.

$params array

Параметры привязки для заполнения

return string

Сгенерированное SQL-выражение

throws yii\db\Exception

если было передано неверное количество операндов.

buildJoin() public method

public string buildJoin ( $joins, &$params )
$joins array
$params array

Параметры привязки для заполнения

return string

Запрос JOIN, построенный из yii\db\Query::$join.

throws yii\db\Exception

если параметр $joins имеет неправильный формат

buildLikeCondition() public method

Создаёт SQL-выражение с оператором LIKE

public string buildLikeCondition ( $operator, $operands, &$params )
$operator string

Используемый оператор (например, LIKE, NOT LIKE, OR LIKE или OR NOT LIKE)

$operands array

Массив из двух или трёх операндов

  • Первый операнд — имя столбца.
  • Второй операнд — единственное значение или массив значений, с которыми должно сравниваться значение столбца. Если это пустой массив, сгенерированное выражение будет значением false, если оператор LIKE или OR LIKE, и пустым, если оператор NOT LIKE или OR NOT LIKE.
  • Дополнительный третий операнд может быть указан для указания способа экранирования специальных символов в значении (значениях). Этот операнд должен быть массивом сопоставлений специальных символов и их экранированных аналогов. Если этот операнд не указан, будет использовано значение по умолчанию. Вы можете использовать false или пустой массив, чтобы указать, что значения уже экранированы и никакое экранирование не должно применяться. Обратите внимание, что при использовании сопоставления экранирования (или если третий операнд не указан), значения автоматически будут заключены в пару символов процента.
$params array

Параметры привязки для заполнения

return string

Сгенерированное SQL-выражение

throws yii\base\InvalidParamException

если было передано неверное количество операндов.

buildLimit() public method

public string buildLimit ( $limit, $offset )
$limit integer
$offset integer
return string

Ограничения LIMIT и OFFSET

buildNotCondition() public method

Инвертирует SQL-выражение с оператором NOT

public string buildNotCondition ( $operator, $operands, &$params )
$operator string

Оператор для соединения заданных операндов

$operands array

SQL-выражения для соединения.

$params array

Параметры привязки для заполнения

return string

Сгенерированное SQL-выражение

throws yii\base\InvalidParamException

если было передано неверное количество операндов.

buildOrderBy() public method

public string buildOrderBy ( $columns )
$columns array
return string

Оператор ORDER BY, построенный из yii\db\Query::$orderBy.

buildOrderByAndLimit() public method

Строит операторы ORDER BY и LIMIT/OFFSET и добавляет их к заданному SQL.

public string buildOrderByAndLimit ( $sql, $orderBy, $limit, $offset )
$sql string

Существующий SQL (без ORDER BY/LIMIT/OFFSET)

$orderBy array

Столбцы сортировки. Подробнее о способах задания см. yii\db\Query::orderBy()

$limit integer

Число ограничений. Подробнее см. yii\db\Query::limit()

$offset integer

Число смещения. Подробнее см. yii\db\Query::offset()

return string

SQL с добавленными ORDER BY/LIMIT/OFFSET (если они есть)

buildSelect() public method

public string buildSelect ( $columns, &$params, $distinct = false, $selectOption = null )
$columns array
$params array

Параметры привязки для заполнения

$distinct boolean
$selectOption string
return string

Оператор SELECT, построенный из yii\db\Query::$select.

buildSimpleCondition() public method

Создаёт SQL-выражение типа "column" operator value

public string buildSimpleCondition ( $operator, $operands, &$params )
$operator string

Используемый оператор. Например, >, <=, и т.д.

$operands array

Содержит два имени столбцов.

$params array

Параметры привязки для заполнения

return string

Сгенерированное SQL-выражение

throws yii\base\InvalidParamException

если было передано неверное количество операндов.

buildSubqueryInCondition() protected method

Строит SQL для условия IN

protected строка buildSubqueryInCondition ( $operator, $columns, $values, &$params )
$operator строка
$columns массив
$values yii\db\Query
$params массив
return строка

SQL

buildUnion() public метод

public строка buildUnion ( $unions, &$params )
$unions массив
$params массив

Параметры привязки, которые нужно заполнить

return строка

Запрос UNION, построенный из yii\db\Query::$union.

buildWhere() public метод

public строка buildWhere ( $condition, &$params )
$condition строка|массив
$params массив

Параметры привязки, которые нужно заполнить

return строка

Запрос WHERE, построенный из yii\db\Query::$where.

checkIntegrity() public метод

Создаёт SQL-запрос для включения или выключения проверки целостности.

public строка checkIntegrity ( $check = true, $schema = '', $table = '' )
$check boolean

Включить или выключить проверку целостности.

$schema строка

Схема таблиц. По умолчанию пустая строка, что означает текущую или по умолчанию схему.

$table строка

Имя таблицы. По умолчанию пустая строка, что означает, что таблица не будет изменена.

return строка

SQL-запрос для проверки целостности

throws yii\base\NotSupportedException

если это не поддерживается используемой СУБД

createIndex() public метод

Создаёт SQL-запрос для создания нового индекса.

public строка createIndex ( $name, $table, $columns, $unique = false )
$name строка

Имя индекса. Имя будет корректно обрамлено кавычками методом.

$table строка

Таблица, для которой будет создан новый индекс. Имя таблицы будет корректно обрамлено кавычками методом.

$columns строка|массив

Столбец(ы), которые должны быть включены в индекс. Если столбцов несколько, разделяйте их запятыми или используйте массив. Каждое имя столбца будет корректно обрамлено кавычками методом, если в названии не встречаются скобки.

$unique boolean

Добавить ограничение UNIQUE к созданному индексу.

return строка

SQL-запрос для создания нового индекса.

createTable() public метод

Создаёт SQL-запрос для создания новой базы данных таблицы.

Столбцы новой таблицы должны быть указаны как пары имя-определение (например, 'name' => 'string'), где имя — это имя столбца, которое будет корректно обрамлено кавычками методом, а определение — это тип столбца, который может содержать абстрактный тип БД. Метод getColumnType() будет вызван для преобразования любого абстрактного типа в физический.

Если столбец указан только с определением (например, 'PRIMARY KEY (name, type)'), он будет непосредственно вставлен в сгенерированный SQL.

Например,

$sql = $queryBuilder->createTable('user', [
 'id' => 'pk',
 'name' => 'string',
 'age' => 'integer',
]);
public строка createTable ( $table, $columns, $options = null )
$table строка

Имя таблицы, подлежащей созданию. Имя будет корректно обрамлено кавычками методом.

$columns массив

Столбцы (имя => определение) в новой таблице.

$options строка

Дополнительный фрагмент SQL, который будет добавлен к сгенерированному SQL.

return строка

SQL-запрос для создания новой таблицы БД.

delete() public метод

Создаёт SQL-запрос DELETE.

Например,

$sql = $queryBuilder->delete('user', 'status = 0');

Метод будет корректно экранировать имена таблиц и столбцов.

public строка delete ( $table, $condition, &$params )
$table строка

Таблица, из которой будут удалены данные.

$condition массив|строка

Условие, которое будет помещено в часть WHERE. Обратитесь к yii\db\Query::where() для указания условия.

$params массив

Параметры привязки, которые будут изменены этим методом, чтобы они могли быть привязаны к команде БД позже.

return строка

SQL-запрос DELETE

dropColumn() public метод

Создаёт SQL-запрос для удаления столбца БД.

public строка dropColumn ( $table, $column )
$table строка

Таблица, из которой будет удалён столбец. Имя будет корректно обрамлено кавычками методом.

$column строка

Имя столбца, который нужно удалить. Имя будет корректно обрамлено кавычками методом.

return строка

SQL-запрос для удаления столбца БД.

dropCommentFromColumn() public метод (доступен с версии 2.0.8)

Создаёт SQL-команду для удаления комментария из столбца

public строка dropCommentFromColumn ( $table, $column )
$table строка

Таблица, из которой нужно удалить комментарий. Имя таблицы будет корректно обрамлено кавычками методом.

$column строка

Имя столбца, из которого нужно удалить комментарий. Имя столбца будет корректно обрамлено кавычками методом.

return строка

SQL-запрос для удаления комментария из столбца

dropCommentFromTable() public метод (доступен с версии 2.0.8)

Создаёт SQL-команду для удаления комментария из таблицы

public строка dropCommentFromTable ( $table )
$table строка

Таблица, из которой нужно удалить комментарий. Имя таблицы будет корректно обрамлено кавычками методом.

return строка

SQL-запрос для удаления комментария из таблицы

dropForeignKey() public метод

Создаёт SQL-запрос для удаления внешнего ключа.

public string dropForeignKey ( $name, $table )
$name string

Имя ограничения внешнего ключа, которое нужно удалить. Метод правильно обработает имя.

$table string

Таблица, из которой нужно удалить внешнее ограничение. Метод правильно обработает имя.

return string

SQL-запрос для удаления ограничения внешнего ключа.

dropIndex() public method

Создаёт SQL-запрос для удаления индекса.

public string dropIndex ( $name, $table )
$name string

Имя индекса, который нужно удалить. Метод правильно обработает имя.

$table string

Таблица, из которой нужно удалить индекс. Метод правильно обработает имя.

return string

SQL-запрос для удаления индекса.

dropPrimaryKey() public method

Создаёт SQL-запрос для удаления ограничения первичного ключа из существующей таблицы.

public string dropPrimaryKey ( $name, $table )
$name string

Имя ограничения первичного ключа, которое нужно удалить.

$table string

Таблица, из которой нужно удалить ограничение первичного ключа.

return string

SQL-запрос для удаления ограничения первичного ключа из существующей таблицы.

dropTable() public method

Создаёт SQL-запрос для удаления таблицы БД.

public string dropTable ( $table )
$table string

Таблица, которую нужно удалить. Метод правильно обработает имя.

return string

SQL-запрос для удаления таблицы БД.

getColumnType() public method

Преобразует абстрактный тип столбца в физический.

Преобразование выполняется с использованием карты типов, заданной в $typeMap. Поддерживаются следующие абстрактные типы столбцов (на примере MySQL, чтобы пояснить соответствующие физические типы):

  • pk: тип автоинкрементного первичного ключа, преобразуется в "int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY"
  • bigpk: тип автоинкрементного первичного ключа, преобразуется в "bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY"
  • unsignedpk: тип автоинкрементного первичного ключа без знака, преобразуется в "int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY"
  • char: тип char, преобразуется в "char(1)"
  • string: тип string, преобразуется в "varchar(255)"
  • text: тип длинной строки, преобразуется в "text"
  • smallint: тип малого целого числа, преобразуется в "smallint(6)"
  • integer: тип целого числа, преобразуется в "int(11)"
  • bigint: тип большого целого числа, преобразуется в "bigint(20)"
  • boolean: тип булево, преобразуется в "tinyint(1)"
  • float`: тип числа с плавающей точкой, преобразуется в "float"
  • decimal: тип десятичного числа, преобразуется в "decimal"
  • datetime: тип datetime, преобразуется в "datetime"
  • timestamp: тип timestamp, преобразуется в "timestamp"
  • time: тип time, преобразуется в "time"
  • date: тип date, преобразуется в "date"
  • money: тип денежного значения, преобразуется в "decimal(19,4)"
  • binary: тип двоичных данных, преобразуется в "blob"

Если абстрактный тип содержит две или более части, разделённые пробелами (например, "string NOT NULL"), то только первая часть будет преобразована, а остальные части будут добавлены к результату преобразования. Например, 'string NOT NULL' преобразуется в 'varchar(255) NOT NULL'.

Для некоторых абстрактных типов также можно указать ограничения длины или точности, добавив их в круглые скобки непосредственно к типу. Например, string(32) преобразуется в "varchar(32)" в базе данных MySQL. Если подлежащая СУБД не поддерживает такие ограничения для типа, они будут проигнорированы.

Если тип не найден в $typeMap, он будет возвращён без изменений.

public string getColumnType ( $type )
$type string|yii\db\ColumnSchemaBuilder

Абстрактный тип столбца

return string

Физический тип столбца.

hasLimit() protected method

Проверяет, эффективен ли заданный лимит.

protected boolean hasLimit ( $limit )
$limit mixed

Заданный лимит

return boolean

Является ли лимит эффективным

hasOffset() protected method

Проверяет, эффективен ли заданный смещение.

protected boolean hasOffset ( $offset )
$offset mixed

Заданное смещение

return boolean

Является ли смещение эффективным

insert() public method

Создаёт 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\yii\db\Query для выполнения SQL-запроса INSERT INTO ... SELECT. Передача \yii\db\yii\db\Query доступна начиная с версии 2.0.11.

$params array

Параметры связывания, которые будут сгенерированы этим методом. Они должны быть связаны с командой БД позже.

return string

SQL-запрос INSERT

prepareInsertSelectSubQuery() protected method (available since version 2.0.11)

Подготавливает запрос select-подзапрос и имена полей для INSERT INTO .

.. SELECT SQL-запрос.

protected array prepareInsertSelectSubQuery ( $columns, $schema, $params = [] )
$columns yii\db\Query

Объект, представляющий запрос select.

$schema yii\db\Schema

Объект схемы для обработки имён столбцов.

$params array

Параметры, которые будут связаны с сгенерированным SQL-запросом. Эти параметры будут включены в результат вместе с дополнительными параметрами, сгенерированными во время процесса построения запроса.

throws yii\base\InvalidParamException

если запрос select содержит только именованные параметры.

renameColumn() public method

Создаёт SQL-запрос для переименования столбца.

public string renameColumn ( $table, $oldName, $newName )
$table string

Таблица, столбец которой необходимо переименовать. Название будет корректно обрамлено кавычками методом.

$oldName string

Старое имя столбца. Имя будет корректно обрамлено кавычками методом.

$newName string

Новое имя столбца. Имя будет корректно обрамлено кавычками методом.

return string

SQL-запрос для переименования столбца БД.

renameTable() public method

Создаёт SQL-запрос для переименования таблицы БД.

public string renameTable ( $oldName, $newName )
$oldName string

Таблица, подлежащая переименованию. Название будет корректно обрамлено кавычками методом.

$newName string

Новое имя таблицы. Имя будет корректно обрамлено кавычками методом.

return string

SQL-запрос для переименования таблицы БД.

resetSequence() public method

Создаёт SQL-запрос для сброса значения последовательности первичного ключа таблицы.

Последовательность будет сброшена таким образом, что первичный ключ следующей новой вставленной строки будет иметь указанное значение или 1.

public string resetSequence ( $table, $value = null )
$table string

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

$value array|string

Значение для первичного ключа следующей новой вставленной строки. Если это не задано, первичный ключ следующей новой строки будет иметь значение 1.

return string

SQL-запрос для сброса последовательности.

throws yii\base\NotSupportedException

если это не поддерживается основной СУБД

selectExists() public method (доступно с версии 2.0.8)

Создаёт SQL-запрос SELECT EXISTS().

public string selectExists ( $rawSql )
$rawSql string

Подзапрос в сыром виде для выбора.

return string

SQL-запрос SELECT EXISTS().

truncateTable() public method

Создаёт SQL-запрос для удаления всех данных из таблицы БД.

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\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-querybuilder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API