# Conventions: Defining Eloquent model (will assume that DB table named is set as plural of class name and primary key named "id"): ```class Shop extends Eloquent {}``` Using custom table name ```protected $table = 'my_shops';``` Using custom primary key (instead of "id"): ```protected $primaryKey = 'my_key';``` Disabling use of "created_at" and "updated_at" columns: ```public $timestamps = false;``` # Retrieving records: Retrieving all records(rows) of a given model: ```$shops = Shop::all();``` Find and get a record by primary key: ```$shop = Shop::find(1);``` Retrieving single record that matches a certain column : ```$shop = Shop::where('name', 'Starbucks')->first();``` Retrieving specific columns of the result (by default get() returns all columns): ```$shops = Shop::where('name', 'Starbucks')->get('name','address','url');``` Retrieving single column of result : ```$shopAddresses = Shop::where('name', 'Starbucks')->pluck('address');``` Retrieving records matching a criteria: ```$profitableShops = Shop::where('orders_cache','>','100')->get();``` where() takes 3 parameters, name of the column, operator and value to be compared against. The operator can be one of the following: ```'=', '<', '>', '<=', '>=', '<>', '!=', 'like', 'not like', 'between', 'ilike'``` Retrieve only a specified number of records matching a criteria: ```$californianShops = Shop::where('state', 'CA')->take(10)->get();``` Skip a specified number of records: ```$someShops = Shops::where('name', 'Starbucks')->skip(10)->get();``` Combining "skip" and "take" (useful for making custom paginators): ```$shops = Shops::where('name', 'Starbucks')->skip(25)->take(25)->get();``` Using forPage() to accomplish the above statement: ```$shops = Shops::where('name', 'Starbucks')->forPage(2,25)->get();``` # Aggregates Counting the number of rows of the query results: ```$countStarbucks = Shop::where('name','Starbucks')->count();``` Getting a maximum value of the query result: ```$maxCoffeePrice = Product::where('name','Coffee')->max('price');``` Getting a minimum value of the query result: ```$minCoffeePrice = Product::where('name','Coffee')->min('price');``` Getting an average value of the query result: ```$averageCoffeePrice = Product::where('name','Coffee')->avg('price');``` Getting a sum of the query result: ```$totalWeight = Product::where('name','Coffee')->sum('weight');``` # Incrementing and decrementing values of a column: ``` Shop::where('orders_cache','>','100')->increment('orders_cache'); ``` ``` Shop::where('orders_cache','>','100')->decrement('orders_cache'); ```