Django執(zhí)行源生mysql語句實(shí)現(xiàn)過程解析
1.使用extra方法
解釋:結(jié)果集修改器,一種提供額外查詢參數(shù)的機(jī)制
說明:依賴model模型
使用方式:
用在where后:
Book.objects.filter(publisher_id='1').extra(where=['title=’python學(xué)習(xí)1’'])
用在select后
Book.objects.filter(publisher_id='1').extra(select={'count':'select count(*) from hello_book'})
2.使用raw方法
解釋:執(zhí)行原始sql并返回模型
說明:依賴model多用于查詢
使用方式:
book = Book.objects.raw('select * from hello_book') #返回模型實(shí)例for item in book:print(item.title)
3.執(zhí)行自定義SQL
解釋:利用游標(biāo)執(zhí)行
導(dǎo)入: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()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. SQLite 性能優(yōu)化實(shí)例分享2. 高并發(fā)狀態(tài)下Replace Into造成的死鎖問題解決3. centos 7安裝mysql5.5和安裝 mariadb使用的命令4. MySQL實(shí)現(xiàn)批量推送數(shù)據(jù)到Mongo5. SQL數(shù)據(jù)庫連接超時(shí)時(shí)間已到的問題6. SQLite教程(二):C/C++接口簡介7. SQLSERVER 臨時(shí)表和表變量的區(qū)別匯總8. sql語句LEFT JOIN拼接表詳解9. SQLite3 命令行操作指南10. Oracle常見分析函數(shù)實(shí)例詳解
