django中使用原生sql
2016-11-25 00:06
483 查看
在Django中使用原生Sql主要有以下几种方式:
一:extra:结果集修改器,一种提供额外查询参数的机制
二:raw:执行原始sql并返回模型实例
三:直接执行自定义Sql
(
这种方式完全不依赖model,前两种还是要依赖于model
)
实例:
使用extra:
1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50'])
Book.objects.filter(publisher__name='广东人员出版社',price__gt=50)
2:Book.objects.extra(select={'count':'select count(*) from hello_Book'})
使用raw:
Book.objects.raw('select * from hello_Book')
自定义sql:
Book.objects.raw("insert into hello_author(name) values('测试')")
rawQuerySet为惰性查询,只有在使用时生会真正执行
执行自定义sql:
from django.db import connection
cursor=connection.cursor()
#插入操作
cursor.execute("insert into hello_author(name) values('郭敬明')")
#更新操作
cursor.execute('update hello_author set name='abc' where name='bcd'')
#删除操作
cursor.execute('delete from hello_author where name='abc'')
#查询操作
cursor.execute('select * from hello_author')
raw=cursor.fetchone() #返回结果行游标直读向前,读取一条
cursor.fetchall() #读取所有
一:extra:结果集修改器,一种提供额外查询参数的机制
二:raw:执行原始sql并返回模型实例
三:直接执行自定义Sql
(
这种方式完全不依赖model,前两种还是要依赖于model
)
实例:
使用extra:
1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50'])
Book.objects.filter(publisher__name='广东人员出版社',price__gt=50)
2:Book.objects.extra(select={'count':'select count(*) from hello_Book'})
使用raw:
Book.objects.raw('select * from hello_Book')
自定义sql:
Book.objects.raw("insert into hello_author(name) values('测试')")
rawQuerySet为惰性查询,只有在使用时生会真正执行
执行自定义sql:
from django.db import connection
cursor=connection.cursor()
#插入操作
cursor.execute("insert into hello_author(name) values('郭敬明')")
#更新操作
cursor.execute('update hello_author set name='abc' where name='bcd'')
#删除操作
cursor.execute('delete from hello_author where name='abc'')
#查询操作
cursor.execute('select * from hello_author')
raw=cursor.fetchone() #返回结果行游标直读向前,读取一条
cursor.fetchall() #读取所有
相关文章推荐
- django中使用原生sql
- Django中使用原生sql
- Django使用原生的SQL进行查询
- Django进阶Model篇008 - 使用原生sql
- Django 使用原生sql
- django中使用原生sql
- Django原生sql也能使用Paginator分页
- Django原生sql也能使用Paginator分页的示例代码
- 使用 JPQL 和原生 SQL 查询 JPA 实体
- 在 Core Data 应用中使用原生 SQL 功能
- tp5中使用原生sql语句
- Laravel框架执行原生SQL语句及使用paginate分页的方法
- 使用Hibernate SQLQuery执行原生SQL
- 【EF学习笔记03】----------使用原生Sql语句
- yii 原生sql使用数据库前缀
- Hibernate 使用原生SQL
- 关于Hibernate在使用原生SQL语句多表查询所遇到的问题
- hibernate使用原生sql查询Hibernate原生SQL多表查询字段名重复问题以及解决方法
- jpa或bernate使用原生sql进行关联查询org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join
- jpa使用原生SQL update和insert