mirror of
https://github.com/yiisoft/yii2.git
synced 2025-12-19 07:07:58 +08:00
Russian translation fixes and updates [skip ci]
This commit is contained in:
committed by
Alexander Makarov
parent
4c452d1b04
commit
f3fddb2993
@@ -2,8 +2,8 @@
|
||||
====================
|
||||
|
||||
Построенный поверх [DAO](db-dao.md), построитель запросов позволяет конструировать SQL выражения в программируемом и
|
||||
независимом от СУБД виде. В сравнении с написанием чистого SQL, использование построителя помогает вам писать
|
||||
более читаемый связанный с SQL код и генерировать более безопасные SQL выражения.
|
||||
независимом от СУБД виде. В сравнении с написанием чистого SQL выражения, использование построителя помогает
|
||||
вам писать более читаемый связанный с SQL код и генерировать более безопасные SQL выражения.
|
||||
|
||||
Использование построителя запросов, как правило, включает два этапа:
|
||||
|
||||
@@ -31,7 +31,7 @@ LIMIT 10
|
||||
```
|
||||
|
||||
> Информация: В основном вы будете работать с [[yii\db\Query]] вместо [[yii\db\QueryBuilder]]. Последний вызывается
|
||||
неявно при вызове одного из методов запроса. [[yii\db\QueryBuilder]] это класс отвечающий за генерацию зависимого
|
||||
неявно при вызове одного из методов запроса. [[yii\db\QueryBuilder]] это класс, отвечающий за генерацию зависимого
|
||||
от СУБД SQL выражения (такие как экранирование имён таблиц/столбцов) из независимых от СУБД объектов [[yii\db\Query]].
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ $query->select(['id', 'email']);
|
||||
$query->select('id, email');
|
||||
```
|
||||
|
||||
Имена столбцов могут быть выбраны вместе с префиксами таблиц и/или алиасами столбцов, также как при записи обычного SQL.
|
||||
Имена столбцов могут быть выбраны вместе с префиксами таблиц и/или алиасами столбцов, также как при записи обычного SQL выражения.
|
||||
Например,
|
||||
|
||||
```php
|
||||
@@ -80,14 +80,14 @@ $query->select(['user_id' => 'user.id', 'email']);
|
||||
выбрать *все* столбцы.
|
||||
|
||||
Кроме имён столбцов, вы можете также использовать SQL выражения. Вы должны использовать формат массива для использования
|
||||
выражений, которые содержат запятые для предотвращения некорректного автоматического экранирования. Например:
|
||||
выражений, которые содержат запятые для предотвращения некорректного автоматического экранирования. Например,
|
||||
|
||||
```php
|
||||
$query->select(["CONCAT(first_name, ' ', last_name) AS full_name", 'email']);
|
||||
```
|
||||
|
||||
Начиная с версии 2.0.1, вы также можете использовать подзапросы. Вы должны указывать каждый подзапрос в выражении как
|
||||
объект [[yii\db\Query]]. Например:
|
||||
объект [[yii\db\Query]]. Например,
|
||||
|
||||
```php
|
||||
$subQuery = (new Query())->select('COUNT(*)')->from('user');
|
||||
@@ -103,7 +103,7 @@ $query = (new Query())->select(['id', 'count' => $subQuery])->from('post');
|
||||
$query->select('user_id')->distinct();
|
||||
```
|
||||
|
||||
Вы можете вызвать [[yii\db\Query::addSelect()|addSelect()]] для добавления полей. Например:
|
||||
Вы можете вызвать [[yii\db\Query::addSelect()|addSelect()]] для добавления полей. Например,
|
||||
|
||||
```php
|
||||
$query->select(['id', 'username'])
|
||||
@@ -113,7 +113,7 @@ $query->select(['id', 'username'])
|
||||
|
||||
### [[yii\db\Query::from()|from()]] <span id="from"></span>
|
||||
|
||||
Метод [[yii\db\Query::from()|from()]] указывает фрагмент `FROM` SQL запроса. Например:
|
||||
Метод [[yii\db\Query::from()|from()]] указывает фрагмент `FROM` SQL запроса. Например,
|
||||
|
||||
```php
|
||||
// SELECT * FROM `user`
|
||||
@@ -121,7 +121,7 @@ $query->from('user');
|
||||
```
|
||||
|
||||
Вы можете указать имена таблиц в виде строки или массива. Имена таблиц могут содержать префикс схемы и/или алиасы
|
||||
таблиц, как при написании обычного SQL. Например:
|
||||
таблиц, как при написании обычного SQL выражения. Например,
|
||||
|
||||
```php
|
||||
$query->from(['public.user u', 'public.post p']);
|
||||
@@ -137,7 +137,7 @@ $query->from('public.user u, public.post p');
|
||||
$query->from(['u' => 'public.user', 'p' => 'public.post']);
|
||||
```
|
||||
|
||||
Кроме имён таблиц, вы можете, также как и в select, указывать подзапросы в виде объекта [[yii\db\Query]].
|
||||
Кроме имён таблиц, вы можете, также, как и в select, указывать подзапросы в виде объекта [[yii\db\Query]].
|
||||
|
||||
```php
|
||||
$subQuery = (new Query())->select('id')->from('user')->where('status=1');
|
||||
@@ -152,14 +152,14 @@ $query->from(['u' => $subQuery]);
|
||||
Метод [[yii\db\Query::where()|where()]] определяет фрагмент `WHERE` SQL выражения. Вы можете использовать один из
|
||||
трёх форматов:
|
||||
|
||||
- строковый формат, например: `'status=1'`
|
||||
- формат массива, например: `['status' => 1, 'type' => 2]`
|
||||
- формат операторов, например: `['like', 'name', 'test']`
|
||||
- строковый формат, Например, `'status=1'`
|
||||
- формат массива, Например, `['status' => 1, 'type' => 2]`
|
||||
- формат операторов, Например, `['like', 'name', 'test']`
|
||||
|
||||
|
||||
#### Строковый формат <span id="string-format"></span>
|
||||
|
||||
Строковый формат - это лучший выбор для простых условий. Он работает так, будто вы просто пишете SQL запрос. Например:
|
||||
Строковый формат - это лучший выбор для простых условий. Он работает так, будто вы просто пишете SQL запрос. Например,
|
||||
|
||||
```php
|
||||
$query->where('status=1');
|
||||
@@ -281,7 +281,7 @@ $query->where(['id' => $userQuery]);
|
||||
|
||||
Вы можете использовать [[yii\db\Query::andWhere()|andWhere()]] или [[yii\db\Query::orWhere()|orWhere()]] для добавления
|
||||
дополнительных условий. Вы можете использовать эти вызовы несколько раз для добавления нескольких условий.
|
||||
Например:
|
||||
Например,
|
||||
|
||||
```php
|
||||
$status = 10;
|
||||
@@ -317,7 +317,7 @@ $query->filterWhere([
|
||||
```
|
||||
|
||||
Единственное отличие между [[yii\db\Query::filterWhere()|filterWhere()]] и [[yii\db\Query::where()|where()]]
|
||||
заключается в игнорировании пустых значений переданных в условие в [форме массива](#hash-format). Таким образом
|
||||
заключается в игнорировании пустых значений, переданных в условие в [форме массива](#hash-format). Таким образом
|
||||
если `$email` будет пустым, а `$username` нет, то приведённый выше код сформирует `...WHERE username=:username`.
|
||||
|
||||
> Информация: значение признаётся пустым, если это null, пустой массив, пустая строка или строка состоящая из одних пробельных символов.
|
||||
@@ -339,7 +339,7 @@ $query->orderBy([
|
||||
]);
|
||||
```
|
||||
|
||||
В данном коде, ключи массива это имена столбцов, а значения массива это соответствующее направление сортировки.
|
||||
В данном коде, ключи массива - это имена столбцов, а значения массива - это соответствующее направление сортировки.
|
||||
PHP константа `SORT_ASC` определяет сортировку по возрастанию и `SORT_DESC` сортировка по умолчанию.
|
||||
|
||||
Если `ORDER BY` содержит только простые имена столбцов, вы можете определить их с помощью столбцов, также
|
||||
@@ -369,7 +369,7 @@ $query->groupBy(['id', 'status']);
|
||||
```
|
||||
|
||||
Если фрагмент `GROUP BY` содержит только простые имена столбцов, вы можете указать их используя строку, также как в
|
||||
обычном SQL.
|
||||
обычном SQL выражении.
|
||||
|
||||
```php
|
||||
$query->groupBy('id, status');
|
||||
@@ -501,7 +501,7 @@ $query1->union($query2);
|
||||
[[yii\db\Query::max()|max($q)]], [[yii\db\Query::min()|min($q)]]. Параметр `$q` обязателен для этих методов и могут
|
||||
содержать либо имя столбца, либо выражение БД.
|
||||
|
||||
Например:
|
||||
Например,
|
||||
|
||||
```php
|
||||
// SELECT `id`, `email` FROM `user`
|
||||
@@ -520,7 +520,7 @@ $row = (new \yii\db\Query())
|
||||
> Примечание: метод [[yii\db\Query::one()|one()]] вернёт только первую строку результата запроса. Он НЕ добавляет
|
||||
`LIMIT 1` в генерируемый SQL. Это хорошо и предпочтительно если вы знаете, что запрос вернёт только одну или несколько
|
||||
строк данных (например, при запросе по первичному ключу). Однако, если запрос потенциально может вернут много
|
||||
строк данных, вы должны вызвать `limit(1)` для повышения производительности, Например:
|
||||
строк данных, вы должны вызвать `limit(1)` для повышения производительности, Например,
|
||||
`(new \yii\db\Query())->from('user')->limit(1)->one()`.
|
||||
|
||||
Все методы выборки могут получать необязательный параметр `$db`, представляющий [[yii\db\Connection|соединение с БД]],
|
||||
@@ -566,7 +566,7 @@ $rows = $command->queryAll();
|
||||
### Индексация результатов запроса <span id="indexing-query-results"></span>
|
||||
|
||||
При вызове [[yii\db\Query::all()|all()]] возвращается массив строк индексированный последовательными целыми числами.
|
||||
Иногда вам может потребоваться индексировать его по другому, например сделать индекс по указанному столбцу или
|
||||
Иногда вам может потребоваться индексировать его по-другому, например, сделать индекс по указанному столбцу или
|
||||
значением выражения. Вы можете реализовать такое поведение через вызов [[yii\db\Query::indexBy()|indexBy()]] перед
|
||||
вызовом [[yii\db\Query::all()|all()]].
|
||||
|
||||
|
||||
Reference in New Issue
Block a user