Spec-Zone.ru › Yii 2.0

Класс yii\db\oci\QueryBuilder

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

QueryBuilder — это билдер запросов для баз данных Oracle.

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

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

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

Свойство Тип Описание Определено в
$conditionBuilders array Карта условия запроса к методам-строителям. yii\db\QueryBuilder
$likeEscapeCharacter string|null Символ, используемый для экранирования специальных символов в условиях LIKE. yii\db\oci\QueryBuilder
$likeEscapingReplacements array \ инициализируется в методе buildLikeCondition(), так как нам нужно выбрать значение замены на основе yii\db\Schema::quoteValue(). yii\db\oci\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\oci\QueryBuilder
addPrimaryKey() Создаёт SQL-запрос для добавления ограничения первичного ключа к существующей таблице. yii\db\QueryBuilder
alterColumn() Создаёт SQL-запрос для изменения определения столбца. yii\db\oci\QueryBuilder
batchInsert() Генерирует SQL-запрос для пакетного вставки данных. yii\db\oci\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\oci\QueryBuilder
buildJoin() yii\db\QueryBuilder
buildLikeCondition() Создаёт SQL-выражение с оператором LIKE. yii\db\oci\QueryBuilder
buildLimit() yii\db\QueryBuilder
buildNotCondition() Инвертирует SQL-выражение с оператором NOT. yii\db\QueryBuilder
buildOrderBy() yii\db\QueryBuilder
buildOrderByAndLimit() Строит предложения ORDER BY и LIMIT/OFFSET и добавляет их к заданному SQL. yii\db\oci\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\oci\QueryBuilder
dropCommentFromTable() Создаёт SQL-команду для добавления комментария к таблице yii\db\oci\QueryBuilder
dropForeignKey() Создаёт SQL-запрос для удаления ограничения внешнего ключа. yii\db\QueryBuilder
dropIndex() Создаёт SQL-запрос для удаления индекса. yii\db\oci\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() Создаёт оператор INSERT SQL. yii\db\oci\QueryBuilder
renameColumn() Создаёт оператор SQL для переименования столбца. yii\db\QueryBuilder
renameTable() Создаёт оператор SQL для переименования таблицы БД. yii\db\oci\QueryBuilder
resetSequence() Создаёт оператор SQL для сброса значения последовательности первичного ключа таблицы. yii\db\oci\QueryBuilder
selectExists() Создаёт оператор SELECT EXISTS() SQL. yii\db\oci\QueryBuilder
truncateTable() Создаёт оператор SQL для обнуления таблицы БД. yii\db\QueryBuilder
update() Создаёт оператор UPDATE SQL. 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
splitInCondition() DBMS Oracle не поддерживает более 1000 параметров в условии IN. yii\db\oci\QueryBuilder

Константы

Константа Значение Описание Определено в
PARAM_PREFIX ':qp' Префикс для автоматически сгенерированных параметров связывания запроса. yii\db\QueryBuilder

Подробности свойств

$likeEscapeCharacter защищённое свойство

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

protected string|null $likeEscapeCharacter = '!'

$likeEscapingReplacements защищённое свойство

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

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

$typeMap общедоступное свойство

Сопоставление абстрактных типов столбцов (ключи) с физическими типами столбцов (значения).

public array $typeMap = [\yii\db\oci\Schema::TYPE_PK => 'NUMBER(10) NOT NULL PRIMARY KEY', \yii\db\oci\Schema::TYPE_UPK => 'NUMBER(10) UNSIGNED NOT NULL PRIMARY KEY', \yii\db\oci\Schema::TYPE_BIGPK => 'NUMBER(20) NOT NULL PRIMARY KEY', \yii\db\oci\Schema::TYPE_UBIGPK => 'NUMBER(20) UNSIGNED NOT NULL PRIMARY KEY', \yii\db\oci\Schema::TYPE_CHAR => 'CHAR(1)', \yii\db\oci\Schema::TYPE_STRING => 'VARCHAR2(255)', \yii\db\oci\Schema::TYPE_TEXT => 'CLOB', \yii\db\oci\Schema::TYPE_SMALLINT => 'NUMBER(5)', \yii\db\oci\Schema::TYPE_INTEGER => 'NUMBER(10)', \yii\db\oci\Schema::TYPE_BIGINT => 'NUMBER(20)', \yii\db\oci\Schema::TYPE_FLOAT => 'NUMBER', \yii\db\oci\Schema::TYPE_DOUBLE => 'NUMBER', \yii\db\oci\Schema::TYPE_DECIMAL => 'NUMBER', \yii\db\oci\Schema::TYPE_DATETIME => 'TIMESTAMP', \yii\db\oci\Schema::TYPE_TIMESTAMP => 'TIMESTAMP', \yii\db\oci\Schema::TYPE_TIME => 'TIMESTAMP', \yii\db\oci\Schema::TYPE_DATE => 'DATE', \yii\db\oci\Schema::TYPE_BINARY => 'BLOB', \yii\db\oci\Schema::TYPE_BOOLEAN => 'NUMBER(1)', \yii\db\oci\Schema::TYPE_MONEY => 'NUMBER(19,4)']

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

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-запрос для добавления ограничения внешнего ключа в существующую таблицу.

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-запрос для пакетной вставки

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

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

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

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

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\oci\Query::orderBy для получения более подробной информации о задании этого параметра.

$limit integer

Предельное количество строк. Смотрите \yii\db\oci\Query::limit для получения более подробной информации.

$offset integer

Смещение. Смотрите \yii\db\oci\Query::offset для получения более подробной информации.

return string

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

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

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

public string dropCommentFromColumn ( $table, $column )
$table string

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

$column string

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

return string

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

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

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

public string dropCommentFromTable ( $table )
$table string

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

return string

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

dropIndex() public method

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

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

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

$table string

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

return string

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

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

$params array

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

return string

SQL-запрос INSERT.

renameTable() public method

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

public string renameTable ( $table, $newName )
$table 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 (available since version 2.0.8)

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

public string selectExists ( $rawSql )
$rawSql string

Вложенный запрос в сыром виде для выборки.

return string

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

splitInCondition() protected method (available since version 2.0.12)

База данных Oracle не поддерживает более 1000 параметров в IN условии.

Этот метод разбивает длинное IN условие на серию более коротких.

protected null|string splitInCondition ( $operator, $operands, &$params )
$operator string
$operands array
$params array
return null|string

Null, если разделение не требуется. В противном случае — сгенерированное SQL-условие.

throws yii\db\Exception

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-oci-querybuilder.html

Spec-Zone.ru

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