Класс 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 |
Используемый оператор (например, |
| $operands | array |
Первый операнд — имя столбца. Если это массив, будет сгенерировано составное условие IN. Второй операнд — массив значений, среди которых должно находиться значение столбца. Если это пустой массив, сгенерированное выражение будет иметь значение |
| $params | array |
Связываемые параметры, которые нужно заполнить |
| return | string |
Сгенерированное SQL-выражение |
| throws | yii\db\Exception |
если указано неверное количество операндов. |
buildLikeCondition() public method
Создаёт SQL-выражение с оператором LIKE
| public string buildLikeCondition ( $operator, $operands, &$params ) | ||
|---|---|---|
| $operator | string |
Используемый оператор (например, |
| $operands | array |
Массив из двух или трёх операндов
|
| $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