django执行原生sql_mysql语句执行顺序
2023-06-13 09:13:00 时间
大家好,又见面了,我是你们的朋友全栈君。
前言
Django
在查询数据时,大多数查询都能使用ORM提供的API方法,但对于一些复杂的查询可能难以使用ORM的API方法实现,因此Django引入了SQL语句的执行方法,有以下三种执行方式
- extra:结果集修改器,一种提供额外查询参数的机制。
- raw:执行原始SQL并返回模型实例对象。
- execute:直接执行自定义SQL
以上3种方式,这里只介绍raw
方式,用的最多,也最推荐使用
raw
只能实现数据查询操作,并且要依靠模型对象,在Pycharm里打开raw源码,如下图所示,它一共定义了4个参数,每个参数如下:
- raw_query:SQL语句
- params:如果
raw_query
设置字符串格式化%s
,那么该参数为raw_query
提供数值 - translations:为查询的字段设置别名
- using:数据库对象,即
Django
所连接的数据库
def raw(self, raw_query, params=None, translations=None, using=None):
if using is None:
using = self.db
qs = RawQuerySet(raw_query, model=self.model, params=params, translations=translations, using=using)
qs._prefetch_related_lookups = self._prefetch_related_lookups[:]
return qs
上述参数只有raw_query
是必选参数,其他参数可根据需求自行选择。我们以模型Student
为例,使用raw
实现数据查询,代码如下:
students = Student.objects.raw('select * from Student')
for student in students:
print(student)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166162.html原文链接:https://javaforall.cn
相关文章
- MySQL中评论表设计的研究(mysql评论表设计)
- 结构掌握MySQL时间数据结构的精髓(mysql时间sql)
- MySQL新用户权限授予指南(mysql新用户授权)
- tuningMySQL 日志分析指南:SQL 优化最佳实践(mysql日志sql)
- MySQL基础知识测验:挑战你的技能!(mysql基础试题)
- 远程MySQL连接的最佳实践:使用专业的工具(远程连接mysql工具)
- MySQL 使用别名:让SQL语句更加简洁易懂(mysql使用别名)
- MySQL维护之狐表优化(狐表mysql)
- Yum 升级 MySQL,走向新水平(yum升级mysql)
- MySQL SQL语句优化全方位指南(mysql语句优化)
- MySQL数据库文件类型:.sql.(mysql数据库后缀名)
- MySQL汉字拼音排序技巧及实践(mysql汉字拼音排序)
- Exploring Alternative SQL Databases to Replace MySQL(mysql替代)
- MySQL的PL/SQL:把数据库中的业务流程变得更简单!(mysql的pl sql)
- 最佳实践:MySQL分页SQL语句编写(mysql分页sql语句)
- serverMySQL 与 SQL Server 的比较与选择(mysql 和 sql)
- MySQL表格字段相乘的操作简要介绍(mysql两表字段相乘)
- 深入浅出从MySQL到Bit的转换方法(bit转换mysql)
- 如何在CMD管理器中新建MySQL数据表(cmd中mysql新建表)
- MYSQL收费了 了解MySQL开源版的最新政策(mysql不再免费了吗)
- 深入剖析MySQL的双重条件查询技巧(mysql两种条件查询)
- MySQL中有两种NULL,你知道吗(mysql 两种null)
- MySQL中使用Event定时执行SQL操作(mysql下的event)
- MySQL上传SQL文件过大处理方法(mysql上传sql大小)
- MySQL查询父子级关系的SQL语句(mysql 上下级sql)