Skip to content

Commit

Permalink
Merge pull request #147 from helysousa/5.1
Browse files Browse the repository at this point in the history
[5.1] Revisão da tradução. Issue #131
  • Loading branch information
vluzrmos committed Feb 27, 2016
2 parents d93e1ed + 8d2bdbf commit 41d8876
Showing 1 changed file with 17 additions and 16 deletions.
33 changes: 17 additions & 16 deletions pt_BR/queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
- [Inserts](#inserts)
- [Updates](#updates)
- [Deletes](#deletes)
- [Pessimistic Locking](#pessimistic-locking)
- [Bloqueio Pessimista](#pessimistic-locking)

<a name="introduction"></a>
## Introdução
Expand Down Expand Up @@ -50,15 +50,15 @@ Para começar uma consulta utilize o método `table` do facade `DB`. O método `
}
}

Assim como utilizar [SQL puro](/docs/{{version}}/database), o método `get` retorna um `array` de resultados onde cada um é um objeto da classe PHP `StdClass`. Você pode acessar o valor de cada coluna da tabela como uma propriedade do objeto, que possui o mesmo nome da coluna:
Da mesma forma de quando se utiliza [SQL puro](/docs/{{version}}/database), o método `get` retorna um `array` de resultados onde cada resultado é uma instância da classe PHP `StdClass`. Você pode acessar o valor de cada coluna através da propriedade do objeto, que possui o mesmo nome da coluna:

foreach ($users as $user) {
echo $user->name;
}

#### Recuperando Um Único Registro / Coluna De Uma Tabela

Se você precisar recuperar um único registro de uma tabela do banco, você pode utilizar o método `first` . Este método irá retornar um único objeto `StdClass`:
Se você precisar recuperar um único registro de uma tabela do banco de dados, você pode utilizar o método `first` . Este método irá retornar um único objeto `StdClass`:

$user = DB::table('users')->where('name', 'John')->first();

Expand Down Expand Up @@ -129,7 +129,7 @@ Você nem sempre precisará recuperar todas as colunas de sua tabela. Usando o m

$users = DB::table('users')->select('name', 'email as user_email')->get();

O método `distinct` possibilita que você obrigue a query a retornar resultados distintos:
O método `distinct` possibilita que você obrigue a query a retornar apenas resultados distintos:

$users = DB::table('users')->distinct()->get();

Expand Down Expand Up @@ -215,7 +215,7 @@ Por exemplo, aqui temos uma consulta que verifica se o valor da coluna "votes"

$users = DB::table('users')->where('votes', '=', 100)->get();

Por conveniência, se você quer simplesmente verificar se uma coluna é igual a um valor , pode passar o valor diretamente no segundo parâmetro do método `where`, suprimindo o operador:
Por conveniência, se você quer simplesmente verificar se uma coluna é igual a um valor, pode passar o valor diretamente no segundo parâmetro do método `where`, suprimindo o operador:

$users = DB::table('users')->where('votes', 100)->get();

Expand Down Expand Up @@ -281,7 +281,7 @@ O método `whereNull` verifica se o valor da coluna informada é `NULL`:
->whereNull('updated_at')
->get();

O método `whereNotNull` verifica se o valor da coluna informada **not** é `NULL`:
O método `whereNotNull` verifica se o valor da coluna informada **não** é `NULL`:

$users = DB::table('users')
->whereNotNull('updated_at')
Expand Down Expand Up @@ -345,7 +345,7 @@ Os métodos `groupBy` e `having` podem ser usados para agrupar resultados da con
->having('account_id', '>', 100)
->get();

O método `havingRaw` pode ser usado para executar um comando SQL passando-o como parâmetro da cláusula `having`. Por exemplo, nós podemos recuperar todos os departamentos com vendas maiores que $2,500:
O método `havingRaw` pode ser usado para executar um comando SQL passando-o como parâmetro da cláusula `having`. Por exemplo, nós podemos recuperar todos os departamentos com vendas maiores que $2.500:

$users = DB::table('orders')
->select('department', DB::raw('SUM(price) as total_sales'))
Expand Down Expand Up @@ -377,28 +377,29 @@ Se precisar inserir muitos registros em uma tabela você pode chamar o método `

#### IDs com Incremento Automático

Se a tabela possuir uma coluna id auto-increment, utilize o método `insertGetId` para inserir um registro e recuperar o id:
Se a tabela possuir uma coluna id auto-incrementada, utilize o método `insertGetId` para inserir um registro e recuperar o id:

$id = DB::table('users')->insertGetId(
['email' => '[email protected]', 'votes' => 0]
);

> **Nota:** Ao utilizar PostgreSQL o método insertGetId espera que a coluna com nome `id` seja auto increment. If you would like to retrieve the ID from a different "sequence", you may pass the sequence name as the second parameter to the `insertGetId` method.
> **Nota:** Ao utilizar PostgreSQL o método insertGetId espera que a coluna com auto incremento seja chamada `id`. Se você gostaria de recuperar a ID de uma "sequência" diferente, você deverá passar o nome da sequência como o segundo parâmetro para o método `insertGetId`.
<a name="updates"></a>
## Updates

Assim como inserir dados no banco, a query builder também pode atualizar registros usando o método `update`. O método `update`, assim como o método `insert`, aceita um array de colunas e valores a serem atualizados. Você pode criar regras em consultas `update` usando cláusulas `where`:
Assim como inserir dados no banco, a query builder também pode atualizar registros usando o método `update`. O método `update`, assim como o método `insert`, aceita um array de colunas e valores a serem atualizados. Você pode criar restringir a query `update` usando cláusulas `where`:

DB::table('users')
->where('id', 1)
->update(['votes' => 1]);

#### Increment / Decrement

A query builder fornece muitos métodos para aumentar ou diminuir o valor de uma determinada coluna. Isto é simplesmente um atalho, provendo uma interface mais espressiva comparada a escrever manualmente uma condição `update`.
A query builder também provê métodos convenientes para incrementar e decrementar o valor de uma determinada coluna. Isso é apenas um atalho, fornecendo uma interface mais expressiva e concisa quando comparada a manualmente escrever uma cláusula `update`.

Ambos os métodos aceitam pelo menos um argumento: a coluna que se deseja modificar. Um segundo argumento pode ser passado opcionalmente para se informar o valor com o qual a coluna deverá ser incrementada / decrementada.

Ambos os métodos precisam de um argumento: a coluna a ser modificada. O segundo parâmetro é opcional e controla a quantia que a coluna será acrescida / diminuída.

DB::table('users')->increment('votes');

Expand All @@ -419,7 +420,7 @@ A query builder também pode ser usada para deletar registros de uma tabela atra

DB::table('users')->delete();

Você pode customizar as regras do `delete` acrescentando cláusulas `where` antes de chamar o método `delete`:
Você pode especificar as regras do `delete` acrescentando cláusulas `where` antes de chamar o método `delete`:

DB::table('users')->where('votes', '<', 100)->delete();

Expand All @@ -428,12 +429,12 @@ Se precisar truncar uma tabela, remover todos os registros e resetar as colunas
DB::table('users')->truncate();

<a name="pessimistic-locking"></a>
## Pessimistic Locking
## Bloqueio Pessimista

A query builder inclui também algumas funções para ajudá-lo a "pessimistic locking" nas suas cláusulas `select`. Para executar uma cláusula com "shared lock" você pode utilizar o método `sharedLock` na consulta. A shared lock previne que os registros selecionados sejam modificados until your transaction commits:
A query builder também inclui algumas funções para lhe ajudar a realizar um "bloqueio pessimista" nas suas declarações `select`. Para executar uma sentença com um "bloqueio compartilhado", você pode usar o método `sharedLock` na consulta. Um bloqueio compartilhado previne que as linhas selecionadas sejam modificadas até que a sua transação seja efetivada (commited):

DB::table('users')->where('votes', '>', 100)->sharedLock()->get();

Alternativamente, você pode utilizar o método `lockForUpdate`. A "for update" lock previne que registros sejam modificados ou sejam selecionados em outra shared lock:
Alternativamente, você pode utilizar o método `lockForUpdate`. Um bloqueio "para atualização" previne que as linhas sejam modificadas ou de serem selecionadas através de outro bloqueio compartilhado:

DB::table('users')->where('votes', '>', 100)->lockForUpdate()->get();

0 comments on commit 41d8876

Please sign in to comment.