TIL52. Django:ORMが実行する実際のSQL文を確認する方法
📌 本稿では、DjangoでORMを使用する場合、実際のSQL文としてこのORMを検証する方法についてまとめます.
次の勘定科目モデルがある場合、すべてのローのインポートにall()が使用されるとします.
✔""""""""
実際のSQL文では246142も使用できますが、すべての列を友好的にリストしてSQL文を表示できます.
✔」今回は、フィルタ構文がSQL文をどのように適用しているかをチェックします.1989年以上生年月日のrowを呼びに行きます.
АААААААААААААА
🌈 ORMが実行する実際のSQL文を決定します。
🤔 実際のSQLクエリーの確認
次の勘定科目モデルがある場合、すべてのローのインポートにall()が使用されるとします.
from django.db import models
class Accounts(models.Model):
username = models.CharField(max_length=50)
email = models.EmailField(unique=True)
password = models.CharField(max_length=100)
phone_number = models.CharField(max_length=30)
date_of_birth = models.DateField()
created_at = models.DateTimeField(auto_now_add=True)
modified_at = models.DateTimeField(auto_now=True)
class Meta:
db_table = "accounts"
✔¥まずはDjango Shellで確認してみます. ✔""""""""
>>> queryset = Account.object.all()
>>> str(queryset.query)
✔すぐこのORMのSQLでの構文を確認します. 実際のSQL文では246142も使用できますが、すべての列を友好的にリストしてSQL文を表示できます.
✔」今回は、フィルタ構文がSQL文をどのように適用しているかをチェックします.1989年以上生年月日のrowを呼びに行きます.
АААААААААААААА
>>> queryset = Accounts.objects.filter(date_of_birth__year__gte='1989')
✔querysetをこのquerysetに貼り付けてstrに変換します.>>> str(queryset.query)
Reference
この問題について(TIL52. Django:ORMが実行する実際のSQL文を確認する方法), 我々は、より多くの情報をここで見つけました https://velog.io/@jewon119/TIL52.-Django-ORM이-실행하는-실제-SQL문을-확인-방법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol