Django執行源生mysql語句實現過程解析
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()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. MySQL導入sql文件的三種方法小結2. MySQL數據庫表空間回收的解決3. MySQL Threads_running飆升與慢查詢的相關問題解決4. Navicat Premium操作MySQL數據庫(執行sql語句)5. Sql Server中通過sql命令獲取cpu占用及產生鎖的sql6. 簡單了解mysql InnoDB MyISAM相關區別7. MySQL分支選擇參考:Percona還是MariaDB8. MySQL中的 inner join 和 left join的區別解析(小結果集驅動大結果集)9. sql查詢一個數組中是否包含某個內容find_in_set問題10. MySQL外鍵約束的實例講解
