12.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()

 


免責聲明!

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



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