laravel基礎課程---13、數據庫基本操作2(lavarel數據庫操作和tp對比)


laravel基礎課程---13、數據庫基本操作2(lavarel數據庫操作和tp對比)

一、總結

一句話總結:

非常非常接近:也是分為兩大類,原生SQL數據庫鏈式操作
學習方法:使用時 多看手冊即可 ,【和tp的區別不大,功能增加了很多,文檔更加完善

 

1、數據最基礎的鏈式操作?

注意這里找表是table方法:\DB::table("user")->where("id",'=',3)->first();

 

2、lavarel數據庫操作中如何獲取某列的值?

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

若你想要獲取一個包含單個字段值的數組,你可以使用 pluck 方法。在這個例子中,我們將取出 roles 數據表 title 字段的數組:

$titles = DB::table('roles')->pluck('title'); foreach ($titles as $title) { echo $title; }

你也可以在返回的數組中指定自定義的鍵值字段:

$roles = DB::table('roles')->pluck('title', 'name'); foreach ($roles as $name => $title) { echo $title; }

 

3、lavarel數據庫操作中如何從數據表中獲取單個列或行?

value方法獲取單個字段:$email = DB::table('users')->where('name', 'John')->value('email');
first方法獲取單行數據:$user = DB::table('users')->where('name', 'John')->first();

若你只需從數據表中取出單行數據,則可以使用 first 方法。這個方法會返回單個 StdClass 對象:

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

若你不想取出完整的一行,則可以使用 value 方法來從單條記錄中取出單個值。這個方法會直接返回字段的值:

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

 

4、lavarel數據庫操作中如何 取出 id為1的一條數據?

find(1):發現ID是1的數據

 

 

5、lavarel數據庫操作中如何 操作數千條數據庫記錄(結果分塊)及實例?

使用 chunk 方法。這個方法一次只取出一小「塊」結果,並會將每個區塊傳給一個閉包進行處理:
分塊實例:比如每次處理 100 條記錄:DB::table('users')->orderBy('id')->chunk(100, function($users) {

若你需要操作數千條數據庫記錄,則可考慮使用 chunk 方法。這個方法一次只取出一小「塊」結果,並會將每個區塊傳給一個閉包進行處理。這個方法對於要編寫處理數千條記錄的 Artisan 命令 非常有用。例如,讓我們將整個 users 數據表進行分塊,每次處理 100 條記錄:

DB::table('users')->orderBy('id')->chunk(100, function($users) { foreach ($users as $user) { // } });

你可以從閉包中返回 false,以停止對后續分塊的處理:

DB::table('users')->orderBy('id')->chunk(100, function($users) { // Process the records... return false; });

 

6、lavarel數據庫操作中如何 取某個字段兩個之間的值?

 where+數組條件:\DB::table("user")->where([['id','>=',2],['id','<=',5]])->get();
 whereBetween:$data=\DB::table("User")->whereBetween('id',[10,15])->get();

 

 

7、lavarel數據庫操作中如何 判斷字段是否為空?

whereNull方法+get方法:$data=\DB::table("User")->whereNull("pass")->get();
whereNull 和 whereNotNull
    $data=\DB::table("User")->whereNull("pass")->get();
    $data=\DB::table("User")->whereNotNull("pass")->get();

 

 

8、lavarel數據庫操作中如何 判斷字段是否在某個數組中?

whereIn方法:$data=\DB::table("User")->whereIn("id",[2,5,12,15])->get();
whereIn 和 whereNotIn
    $data=\DB::table("User")->whereIn("id",[2,5,12,15])->get();
    $data=\DB::table("User")->whereNotIn("id",[2,5,12,15])->get();

 

 

9、lavarel數據庫操作中如何 獲取某個表所有數據?

get方法:$users = DB::table('users')->get();
    public function index()
    {
        $users = DB::table('users')->get();

        return view('user.index', ['users' => $users]);
    }

 

 

10、lavarel數據庫操作中如何 使用mysql原生函數?

DB:raw方法:表達式會被當作字符串注入到查找:DB::table("User")->select(DB::raw("count(*) tot"))->first();

 

11、lavarel數據庫操作中如何 查詢特定字段?

select方法:有點相當於tp的field字段:->select('users.*', 'contacts.phone', 'orders.price')
$users = DB::table('users')
            ->join('contacts', 'users.id', '=', 'contacts.user_id')
            ->join('orders', 'users.id', '=', 'orders.user_id')
            ->select('users.*', 'contacts.phone', 'orders.price')
            ->get();

 

12、lavarel數據庫操作中如何 從數據庫 指定偏移處截取多少個?

offset方法:表示偏移
limit方法:表示截取幾個

 

 13、lavarel數據庫刪除操作中 where條件和update的位置關系 ?

where要放在update前面,不然可能出錯
DB::table('users')
            ->where('id', 1)
            ->update(['votes' => 1]);

 

 

 

二、內容在總結中

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM