Russian translation fixes and updates [skip ci]

This commit is contained in:
Aleksandr
2015-10-27 10:44:36 +06:00
committed by Alexander Makarov
parent 4c452d1b04
commit f3fddb2993
6 changed files with 128 additions and 71 deletions

View File

@@ -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()]].