【背景】

增/删/改/查 如何操作数据库

导入数据库的模型In [23]: from blog.models import People

【增加记录】--三种方法

方法一: 直接使用数据模对象的create函数

In [24]: People.objects.create(name='shuaige')

Out[24]:

注意:创建成功返回对象地址

方法二:In [6]: record = People(name='choubaguai')

In [7]: record.save()

方法三:In [9]: record = People()

In [10]: record.name ='andy'

In [11]: record.save()

【删除记录】--找对对象,使用delete() 进行删除

第一找出你要删除的对象集合(id大于2的)In [19]: r_d = People.objects.filter(id__gt =2)

使用delete对象将其删除In [20]: r_d.delete()

Out[20]: (3, {'blog.People': 3})

将返回珊瑚的条目数

【改记录】-先找出来,在将对象属性重新赋值

(将id=1的名字改成andyliu)In [21]: People.objects.values_list()

Out[21]: [(1, 'liudehua'), (2, 'zhangxueyou')]

In [22]: r_m = People.objects.get(id=1)

In [23]: r_m.name = 'andyliu'

In [24]: r_m.save()

In [25]: People.objects.values_list()

Out[25]: [(1, 'andyliu'), (2, 'zhangxueyou')]

【查】 这就相当于mysql中sql语句中的select语句,其中有很多字语句进行限制查询

1 获取所有记录对象

all_record = People.objects.all()

如果要获取对象值,需要先取出某一个对象,然后取出对象中的属性In [32]: for record in all_record:

....:     print(record.id)

....:     print(record.name)

....:

1

andyliu

2

zhangxueyou

2 获取某个域为指定值的对象In [11]: r_p = People.objects.get(name='zhangxueyou')

In [12]: r_p.id

Out[12]: 2

注意: 这个用法不常用,如果要用,你一定要保证,你查找的一定存在这样的一个记录,且必须是唯一,不然会报错哦

3 类似mysql中where进行的条件查询使用filter函数

第一: 整数的范围比较查询()

将id大于1的对象找出来,并以值列表的形式进行返回In [15]: People.objects.filter(id__gt=1).values_list()

Out[15]: [(2, 'zhangxueyou'), (6, 'andyliu')]

gt大于

gte大于等于

lt小于

lte小于等于

ne不等于

in(也可以是其他数据类型)位于给定列表中: People.objects.filter(id__in=[1, 3, 4]) 返回一个 polls 列表(ID 值分别是 1或3或4).In [16]: People.objects.filter(name__in=['andyliu','zhangxueyou'])

Out[16]: [, , ]

4 多过滤条件查询,有一种方法是,多次使用filter函数即可In [17]: People.objects.filter(id__gt=1).filter(name='andyliu')

Out[17]: []

In [18]: People.objects.filter(id__gt=1).filter(name='andyliku')

Out[18]: []

5 查找到的对象数据(即符合条件的记录的数目)

In [25]: People.objects.count()

Out[25]: 3

等于:

In [26]: People.objects.all().count()

Out[26]: 3

符合条件的长度In [24]: People.objects.filter(name='andyliu').count()

Out[24]: 2

6 order_by()函数,进行升序/降序

-负数表示要进行降序排序In [14]: p = People.objects.order_by('-id')

In [15]: for i in p:

print(i.id)

....:

6

2

1

7 in listIn [15]:

Person.objects.filter(id__in = [1,2]).values_list()

Out[15]: [(1,

'name1', 22), (2, 'name2', 22)]

8 not in list(这里没有直接的not in list) 但是可以使用exclude,除外来等价In [16]:

Person.objects.exclude(id__in = [1,2]).values_list()

Out[16]: [(3,

'name3', 22), (4, 'name3', 22)]

9. 包含关键字的(集合链式查询)

表中的所有数据:In [20]: Person.objects.values_list()

Out[20]: [(1, 'name1', 23), (2, 'name2', 22), (3, 'name3', 22), (4, 'name3', 22)]

name这个field包含name的关键字的record记录In [21]: Person.objects.filter(name__contains="name").values_list()

Out[21]: [(1, 'name1', 23), (2, 'name2', 22), (3, 'name3', 22), (4, 'name3', 22)]

name这个field包含name的关键字的record记录并且年龄age字段不能等于23的! 使用链式查询In [23]: Person.objects.filter(name__contains="name").exclude(age=23).values_list()

Out[23]: [(2, 'name2', 22), (3, 'name3', 22), (4, 'name3', 22)]

以上需求用filter进行等价操作,取出22岁的In [24]: Person.objects.filter(name__contains="name").filter(age=22).values_list()

Out[24]: [(2, 'name2', 22), (3, 'name3', 22), (4, 'name3',

10 对象索引,类似python 列表中的切片

In [29]: Person.objects.all()[1:3]

Out[29]: [, ]

In [30]: Person.objects.all()[1:3].values_list()

Out[30]: [(2, 'name2', 22), (3, 'name3', 22)]

但是不知持负索引(会报错),如

Person.objects.all()[-1]

取代的方法:使用reverse方法来解决

11. 哈哈接下来可能是关于时间的查询(待续)

django mysql api_Django的API操作mysql中常用的语句相关推荐

  1. c 获取mysql列数据_转 用C API 操作MySQL数据库

    用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,"C API函数描述". 函数 ...

  2. mysql可以操作指针么_使用C API操作mysql数据库

    使用C API操作mysql数据库 说明:使用mysql提供的C API编程实现数据库的最基本操作,算是抛砖引玉吧.如果想了解更多,请安装mysql(如何安装可以参考本人的"软件使用之:my ...

  3. Oracle中常用的语句

    Oracle中常用的语句 1.创建表的同时创建主键约束: 1)主键无命名:create table student(studentid int primary key not null,student ...

  4. mysql临时关闭索引功能_MYSQL中常用的强制性操作(例如强制索引)

    mysql常用的hint 对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法.同样,在mysql里,也有类似的hint功能.下面介绍一些常用的 ...

  5. 虚拟机开启mysql服务_远程操作虚拟机中的mysql服务器

    一.查看系统端口号开发状态: 查看 服务器端口号: grep servicename /etc/services: netstat -an | grep servicename 首先需要开启3306端 ...

  6. c web mysql数据库_C语言操作MySQL数据库

    原作者博客http://www.cnblogs.com/nliao/archive/2010/09/09/1822660.html 先看结构体 ---------------------------- ...

  7. python往mysql存入数据_Python操作mysql之插入数据

    之前有写过一篇python查询mysql数据的文章,今天写通过python插入数据到mysql数据库. 相关mysql视频教程推荐:<mysql教程> 先建库,建表,建用户mysql> ...

  8. golang MySQL 占内存_golang操作mysql使用总结

    前言 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们提供管理底层 ...

  9. mysql 导出数据字典_操作MySQL?这个库比pymysql香一百倍

    原创: 阿亮 Python极客社区 操作MySQL,我们都习惯于用pymsq,基本流程就是 创建连接 创建游标 执行SQL 关闭连接 代码是这样的 import pymysql# 1.创建连接conn ...

最新文章

  1. 苹果电脑安装python-mac电脑安装python
  2. hypermesh 复合材料_【技术邻】HyperMesh复合材料建模——坐标系调整
  3. 干货|训练神经网络时要知道的几个要点
  4. 用贪心策略均分纸牌(洛谷P1031题题解,Java语言描述)
  5. android9 前台服务通知_Android通知概览
  6. 纳达尔复出迎澳网开门红 直落三盘横扫本土选手
  7. 牛客网编程练习之编程马拉松:发工资
  8. Python空间分析| 03 利用Python进行地理加权回归(GWR)
  9. vcftools手册重要参数集合
  10. grub引导项修复详解_grub2修复引导 · LINCHUAN的小站
  11. 帝国cms会员中心1.2
  12. 教授专栏13 | 陈雷:数据科学助力AI落地
  13. 纯HTML和CSS实现精美点赞效果
  14. CSS 特异性 specificity
  15. java 文件路径读取,java中依据路径读取文件
  16. 计算机名称显示word作者,如何让word文档不显示作者名
  17. python数据分析与应用课后实训_python数据分析与应用
  18. UVA 537 解题报告
  19. AVFoundation开发秘籍笔记:第12章 动图层内容
  20. JavaScript中JSON字符串转JSON对象遇到的问题

热门文章

  1. SpringMVC + Apache POI 实现WEB中Excel下载功能
  2. linux下使用python操作mysql
  3. 音视频技术开发周刊 | 231
  4. FFmpeg Filter基本使用
  5. 提速 30%!腾讯TQUIC 网络传输协议
  6. 云调用,小程序鉴权正确姿势
  7. 世界正在走向实时化,谈谈Twitter对流处理的理解与思考
  8. 你不知道的127.0.0.1和0.0.0.0地址的区别
  9. 停课不停学,优酷直播如何将网课点名延迟降到0.6s?
  10. 手绘风格的数据可视化 (萌萌风)Sketchify,及其他可视化工具(商业风)