Django數據庫操作(執行原生SQL的幾種方法)

1.使用extra方法

  解釋:結果集修改器,一種提供額外查詢參數的機制

  說明:依賴model模型

  用在where後:

    Book.objects.filter(publisher_id="1").extra(where=["title='python學習1'"])    

  用在select後  

    Book.objects.filter(publisher_id="1").extra(select={"count":"select count(*) from hello_book"})

 

2.使用raw方法

  解釋:執行原始sql並返回模型

  說明:依賴model多用於查詢

  用法:

    book = Book.objects.raw("select * from hello_book")
    for item in book:
      print(item.title)

 

3.執行自定義SQL

  解釋:利用遊標執行

  導入:from django.db import connection

  說明:不依賴model

  用法:  

    from django.db import connection

    cursor = connection.cursor()
    #插入
    cursor.execute("insert into hello_author(name) values('xiaol')")
    #更新
    cursor.execute("update hello_author set name='xiaol' where id=1")
    #刪除
    cursor.execute("delete from hello_author where name='xiaol'")
    #查詢
    cursor.execute("select * from hello_author")
    #返回一行
    raw = cursor.fetchone()
    print(raw)
    # #返回所有
    # cursor.fetchall()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章