Skip to content

Commit

Permalink
Constructor de consultas 100%
Browse files Browse the repository at this point in the history
  • Loading branch information
montogeek committed May 10, 2014
1 parent 7151e3c commit 2e45dd8
Showing 1 changed file with 56 additions and 56 deletions.
112 changes: 56 additions & 56 deletions queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,20 @@
- [Updates](#updates)
- [Deletes](#deletes)
- [Unions](#unions)
- [Pessimistic Locking](#pessimistic-locking)
- [Cache de consultras](#caching-queries)
- [Bloqueo pesimista](#pessimistic-locking)
- [Cache de consultas](#caching-queries)

<a name="introduction"></a>
## Introducción

The database query builder provides a convenient, fluent interface to creating and running database queries. It can be used to perform most database operations in your application, and works on all supported database systems.
El constructor de consulta de base de datos ofrece una cómoda, conveniente y fluída forma para crear y ejecutar consultas de base de datos. Puede ser usado para ejecutar la mayoría de las operaciones con la base de datos en tu aplicación, y funciona en todos los motores de base de datos soportados.

> **Note:** The Laravel query builder uses PDO parameter binding throughout to protect your application against SQL injection attacks. There is no need to clean strings being passed as bindings.
> **Nota:** El constructor de consultas de Laravel usa vinculación de parámetros PDO en todas las consultas para proteger tu aplicación de ataques de inyección de SQL. No hay necesidad de limpiar las cadenas de texto que son pasadas como vínculos.
<a name="selects"></a>
## Selects

#### Retrieving All Rows From A Table
#### Obtener todas las filas de una tabla

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

Expand All @@ -32,104 +32,104 @@ The database query builder provides a convenient, fluent interface to creating a
var_dump($user->name);
}

#### Retrieving A Single Row From A Table
#### Obtener una sola fila de una tabla

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

var_dump($user->name);

#### Retrieving A Single Column From A Row
#### Obtener una sola columna de una fila

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

#### Retrieving A List Of Column Values
#### Obtener una lista de valores de una columna

$roles = DB::table('roles')->lists('title');

This method will return an array of role titles. You may also specify a custom key column for the returned array:
Éste método retornará una rreglo de títulos de roles. Puedes también especificar un índice de una columna personalizada para el arreglo retornado:

$roles = DB::table('roles')->lists('title', 'name');

#### Specifying A Select Clause
#### Especificar una sentencia Select

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

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

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

#### Adding A Select Clause To An Existing Query
#### Agregar una sentencia Select a una consulta previa

$query = DB::table('users')->select('name');

$users = $query->addSelect('age')->get();

#### Using Where Operators
#### Usar operadores Where

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

#### Or Statements
#### O sentencias

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

#### Using Where Between
#### Usar Where entre

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

#### Using Where Not Between
#### Usar Where no entre

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

#### Using Where In With An Array
#### Usar Where In en un array

$users = DB::table('users')
->whereIn('id', array(1, 2, 3))->get();

$users = DB::table('users')
->whereNotIn('id', array(1, 2, 3))->get();

#### Using Where Null To Find Records With Unset Values
#### Usar Where Null para encontrar registros con valores no definidos

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

#### Order By, Group By, And Having
#### Usar Order By, Group By, And Having

$users = DB::table('users')
->orderBy('name', 'desc')
->groupBy('count')
->having('count', '>', 100)
->get();

#### Offset & Limit
#### Usar Offset y Limit

$users = DB::table('users')->skip(10)->take(5)->get();

<a name="joins"></a>
## Joins
## Uniones

The query builder may also be used to write join statements. Take a look at the following examples:
El constructor de consultras puede además ser usado para escribir sentencias JOIN. Mira los siguientes ejemplos:

#### Basic Join Statement
#### Sentencia básica de Join

DB::table('users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.id', 'contacts.phone', 'orders.price')
->get();

#### Left Join Statement
#### Sentencia Left Join

DB::table('users')
->leftJoin('posts', 'users.id', '=', 'posts.user_id')
->get();

You may also specify more advanced join clauses:
Puedes también crear sentencias JOIN más avanzadas:

DB::table('users')
->join('contacts', function($join)
Expand All @@ -138,7 +138,7 @@ You may also specify more advanced join clauses:
})
->get();

If you would like to use a "where" style clause on your joins, you may use the `where` and `orWhere` methods on a join. Instead of comparing two columns, these methods will compare the column against a value:
Si deseas usar una sentencia estilo "where" en tus sentencias JOIN, puedes usar el método `where` y `orWhere` en el método `join`. En vez de comparar dos columnas, estos métodos compararán la columna contra un valor:

DB::table('users')
->join('contacts', function($join)
Expand All @@ -149,11 +149,11 @@ If you would like to use a "where" style clause on your joins, you may use the `
->get();

<a name="advanced-wheres"></a>
## Advanced Wheres
## Wheres Avanzados

Sometimes you may need to create more advanced where clauses such as "where exists" or nested parameter groupings. The Laravel query builder can handle these as well:
Algunas veces puedes necesitar la ccreación de sentencias where más avanzadas como "where exists" o agrupar jerarquicamente parámetros. El constructor de consultas de Laravel pueden manejar esto también:

#### Parameter Grouping
#### Agrupación de parámetros

DB::table('users')
->where('name', '=', 'John')
Expand All @@ -164,11 +164,11 @@ Sometimes you may need to create more advanced where clauses such as "where exis
})
->get();

The query above will produce the following SQL:
La consulta anterior generará la siguiente consulta SQL:

select * from users where name = 'John' or (votes > 100 and title <> 'Admin')

#### Exists Statements
#### Sentencias Exists

DB::table('users')
->whereExists(function($query)
Expand All @@ -179,7 +179,7 @@ The query above will produce the following SQL:
})
->get();

The query above will produce the following SQL:
La consulta anterior generará la siguiente consulta SQL:

select * from users
where exists (
Expand All @@ -189,9 +189,9 @@ The query above will produce the following SQL:
<a name="aggregates"></a>
## Aggregates

The query builder also provides a variety of aggregate methods, such as `count`, `max`, `min`, `avg`, and `sum`.
En constructor de consultas además ofrece una variedad de métodos de agregación, como `count`, `max`, `min`, `avg` y `sum`.

#### Using Aggregate Methods
#### Usando los métodos

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

Expand All @@ -206,17 +206,17 @@ The query builder also provides a variety of aggregate methods, such as `count`,
<a name="raw-expressions"></a>
## Expresiones planas

Sometimes you may need to use a raw expression in a query. These expressions will be injected into the query as strings, so be careful not to create any SQL injection points! To create a raw expression, you may use the `DB::raw` method:
Algunas veces puedes necesitar el uso de expresiones planas en una consulta. Dichas expresiones serán inyectadas dentro de la consulta como cadenas de texto, así que ten cuidado de no crear algún punto débil para inyecciones SQL! Para crear una expresión plana, puedes usar el método `DB::raw`:

#### Using A Raw Expression
#### Usar una expresión plana

$users = DB::table('users')
->select(DB::raw('count(*) as user_count, status'))
->where('status', '<>', 1)
->groupBy('status')
->get();

#### Incrementing or decrementing a value of a column
#### Aumentar o disminuir el valor de una columna:

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

Expand All @@ -233,23 +233,23 @@ You may also specify additional columns to update:
<a name="inserts"></a>
## Inserts

#### Inserting Records Into A Table
#### Insertando filas en una tabla

DB::table('users')->insert(
array('email' => '[email protected]', 'votes' => 0)
);

If the table has an auto-incrementing id, use `insertGetId` to insert a record and retrieve the id:
Si las tablas tienen un ID autoincrementable, usa el método `insertGetId` para insertar una fila y retornar el ID:

#### Inserting Records Into A Table With An Auto-Incrementing ID
#### Insertar filas en una tabla con un ID autoincrementable

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

> **Note:** When using PostgreSQL the insertGetId method expects the auto-incrementing column to be named "id".
> **Nota:** Cuando estés usando PostgreSQL el método `insertGetId` espera que la columna autoincrementable se llame "id".
#### Inserting Multiple Records Into A Table
#### Insertar múltiples filas en una tabla

DB::table('users')->insert(array(
array('email' => '[email protected]', 'votes' => 0),
Expand All @@ -259,7 +259,7 @@ If the table has an auto-incrementing id, use `insertGetId` to insert a record a
<a name="updates"></a>
## Updates

#### Updating Records In A Table
#### Actualizar filas en una tabla

DB::table('users')
->where('id', 1)
Expand All @@ -268,55 +268,55 @@ If the table has an auto-incrementing id, use `insertGetId` to insert a record a
<a name="deletes"></a>
## Deletes

#### Deleting Records In A Table
#### Eliminar filas en una tabla

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

#### Deleting All Records From A Table
#### Eliminar todas las filas de una tabla

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

#### Truncating A Table
#### Truncar una tabla

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

<a name="unions"></a>
## Unions

The query builder also provides a quick way to "union" two queries together:
El constructor de consultas también ofrece una forma rápida para "unir" dos consultas en una sola:

#### Performing A Query Union
#### Realizar la unión de dos consultas

$first = DB::table('users')->whereNull('first_name');

$users = DB::table('users')->whereNull('last_name')->union($first)->get();

The `unionAll` method is also available, and has the same method signature as `union`.
El método `unionAll` está también disponible, y tiene la misma síntaxis que `union`.

<a name="pessimistic-locking"></a>
## Pessimistic Locking
## Bloqueo pesimista

The query builder includes a few functions to help you do "pessimistic locking" on your SELECT statements.
El constructor de consultas incluye algunas funciones que te ayudan a realizar "bloqueos pesimistas" en tus sentencias SELECT.

To run the SELECT statement with a "shared lock", you may use the `sharedLock` method on a query:
Para ejecutar una sentencia SELECT con un "bloqueo compartido", puedes usar el método `sharedLock` en la consulta:

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

To "lock for update" on a SELECT statement, you may use the `lockForUpdate` method on a query:
Para "bloquear para actualizaciones" en una sentencia SELECT, puedes usar el método `lockForUpdate` en la consulta:

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

<a name="caching-queries"></a>
## Cache de consultas

You may easily cache the results of a query using the `remember` method:
Puedes fácilmente tener un cache de los resultados de una consulta con el método `remember`:

#### Caching A Query Result
#### Crear un cache de los resultados de una consulta:

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

In this example, the results of the query will be cached for ten minutes. While the results are cached, the query will not be run against the database, and the results will be loaded from the default cache driver specified for your application.
En este ejemplo, los resultados de la consulta serán guardados en cache durante diez minutos. Mientras los resultados estén guardados en cache, la consulta no se ejecutará otra vez en la base de datos, y los resultados será cargados del cache predeterminado configurado en tu aplicación.

If you are using a [supported cache driver](/docs/cache#cache-tags), you can also add tags to the caches:
Si estás usando un [controlador de cache soportado](/docs/cache#cache-tags), puedes además agregar etiquetas al caché:

$users = DB::table('users')->cacheTags(array('people', 'authors'))->remember(10)->get();

0 comments on commit 2e45dd8

Please sign in to comment.