Django與MySQL之間的,增刪改查

2021-10-02 06:05:34 字數 3576 閱讀 3082

查詢資料

all()方法

返回值: queryset容器物件,內部存放 mymodel 例項

示例:

from bookstore import models

books = models.book.objects.

all(

)for book in books:

print

("書名"

, book.title,

'出版社:'

, book.pub)

在模型類中定義def __str__(self):方法可以將自定義預設的字串

class

book

(models.model)

: title =..

.def

__str__

(self)

:return

"書名: %s, 出版社: %s, 定價: %s"

%(self.title, self.pub, self.price)

查詢返回指定列(字典表示)

返回值: queryset

示例:

from bookstore import models

books = models.book.objects.values(

"title"

,"pub"

)for book in books:

print

("書名"

, book[

"title"],

'出版社:'

, book[

'pub'])

print

("book="

, book)

查詢返回指定列(元組表示)

返回值: queryset容器物件,內部存放元組

print(all_books.query),列印出對應的sql語句

示例:

from bookstore import models

books = models.book.objects.values_list(

"title"

,"pub"

)for book in books:

print

("book="

, book)

# ('python', '清華大學出版社')...

排序查詢

說明:​ 預設是按照公升序排序,降序排序則需要在列前增加』-'表示

示例:

from bookstore import models

books = models.book.objects.order_by(

"price"

)for book in books:

print

("書名:"

, book.title,

'定價:'

, book.price)

根據條件查詢多條記錄

說明:示例:

# 查詢書**版社為"清華大學出版社"的圖書

from bookstore import models

books = models.book.objects.

filter

(pub=

"清華大學出版社"

)for book in books:

print

("書名:"

, book.title)

2. 查詢author實體中id為1並且isactive為true的

- authors=author.objects.

filter(id

=1,isactive=

true

)

查詢謂詞

__exact: 等值匹配

author.objects.

filter

(id__exact=1)

# 等同於select * from author where id = 1

__contains: 包含指定值

author.objects.

filter

(name__contains=

'w')

# 等同於 select * from author where name like '%w%'

__startswith: 以 *** 開始

__endswith: 以 *** 開始

__gt: 大於指定值

author.objects.filer(age__gt=50)

# 等同於 select * from author where age > 50

__gte: 大於等於

__lt: 小於

__lte: 小於等於

__in: 查詢資料是否在指定範圍內

author.objects.

filter

(country__in=

['中國'

,'日本'

,'南韓'])

# 等同於 select * from author where country in ('中國','日本','南韓')

__range: 查詢資料是否在指定的區間範圍內

# 查詢年齡在某一區間內的所有作者

author.objects.

filter

(age__range=(35

,50))

# 等同於 select ... where author between 35 and 50;

詳細內容參見:

不等的條件篩選

示例:

books = models.book.objects.exclude(pub=

"清華大學出版社"

, price__gt=50)

for book in books:

print

(book)

查詢指定的一條資料

返回值:

說明:示例:

from bookstore import models

book = models.book.objects.get(id=

1)print

(book.title)

修改單個實體的某些字段值的步驟:

儲存

通過 queryset 批量修改 對應的全部字段

刪除單個物件

刪除查詢結果集

hibernate與mysql之間的查詢總結

hibernate與mysql之間的查詢 簡單的查詢 test public void testhql 01 session.gettransaction commit session.close 條件查詢 test public void testhql 02 session.gettransac...

MySQL與PG之間的區別

innodb的基於回滾段實現的mvcc機制,相對pg新老資料一起存放的基於xid的mvcc機制,是佔優的。新老資料一起存放,需要定時觸 發vacuum,會帶來多餘的io和資料庫物件加鎖開銷,引起資料庫整體的併發能力下降。而且vacuum清理不及時,還可能會引發資料膨脹。2 mysql採用索引組織表,...

Django利用ORM建立表與表之間的外來鍵關係

引子 我們先用乙個案例來捋一下表與表之間的關係 然後再通過 實現。book書籍表 1 水滸傳 10000 2 西遊記 20000 3 三國演義 30000 4 紅樓夢 40000 author作者表 1 gary 18 2 jack 20 publish出版社表 1 新華出版社 北京 2 西方出版社...