DJANGO数据库操作

返回所有列表对象数据

objects.all()


返回按条件查找的列表对象数据

objects.filter()
ez:
objects.filter(id = 1)          sql:where id = 1
objects.filter(id__in = [1,2,3])    sql:where id in (1,2,3)
objects.filter(id__contains = 1)    sql:where id like %1%

objects.filter(**{'id':'1'})


排除按条件查找的列表对象数据

objects.exclude()



返回对象数据

objects.get()
ez:
objects.get(id = 1)

返回列表字典数据

objects.values()
ez:
object.values('os_id')            sql: select os_id

----------------------------------------------------------------------------------------------------
复杂
from django.db.models import Min,Max,Sum    
objects.all().aggregate(Max('guest_id'))
返回字典{'guest_id__max': 181}
----------------------------------------------------------------------------------------------------
特别
extra:(可以根据django规则,定义类SQL语句,两个表内连接,不能left join,不能多数据库连表查询,结果:列表形式的多个数据对象)(params , select , where , or tables)


raw:(能单数据库连表查询,可以自定义SQL语句,总计总数据不方便,结果:(RawQuerySet)一个数据对象,按列表索引,查出列表)
sql = ""
kvmGuestObjs = KvmGuest.objects.raw(sql)

cursor:(能多数据库连表查询,可以自定义SQL语句,统计总数据方便,结果:元组,按数字查出列表)
from django.db import connection
sql = ""
cursor = connection.cursor()
cursor.execute(sql)
temp_result = cursor.fetchall()
count = len(temp_result)

特殊
自己组装数据对象:()


from django.db.models import Q

sqlalchemy模块



你可能感兴趣的:(JOIN,sql,数据库,django,OS,import)