数据库之对表的增删改查

ORM--对象关系映射
创建表

from django.db import models<br>
class Publisher(models.Model):
    name = models.CharField(max_length=30, verbose_name="名称")
    address = models.CharField("地址", max_length=50)
    city = models.CharField(‘城市‘,max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

    class Meta:
        verbose_name = ‘出版商‘
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

class Author(models.Model):
    name = models.CharField(max_length=30)
    def __str__(self):
        return self.name

class AuthorDetail(models.Model):
    sex = models.BooleanField(max_length=1, choices=((0, ‘男‘),(1, ‘女‘),))
    email = models.EmailField()
    address = models.CharField(max_length=50)
    birthday = models.DateField()
    author = models.OneToOneField(Author)

class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()
    price=models.DecimalField(max_digits=5,decimal_places=2,default=10)
    def __str__(self):
        return self.title

复制代码

单表
    关联表:一对一
            一对多(ForeignKey)
            多对多(ManyToMany)

操作表(行对象操作):
        增---create
                    方式一
                    models.book.objects.create(title="python",price=12)
                    方式二
                    dic={"title":"go","price":45}
                    models.bol.objects.create(**dic)
                    
                    如果有外键:
                    一对多:
                            (1)models.Book.objects.create(title="python",price=12,publish=2)
                             (2) models.Book.objects.create(title="python",price=12,publish=obj)   ---推荐
              save
                    方式一
                    obj=Book(title="python",price=12)
                    obj.save()
                    方式二
                    obj=Book()
                    obj.title="go"
                    obj.price=45
                    obj.save()
        
        删除----delete
                    models.book.objects.filter(id=7).delete()
        
        改----update
                    models.book.objects.filter(id=12).update(title="c++",page_num=320)
        
        查----filter 返回一个valuequeryset序列
          ----all    查所有数据
          ----get()查的是一个对象,否则返回错误

对查询的结果再进行处理

1 values(*kwarge)   返回一个valuequeryset——运行后得到一个可迭代的字典序列
2 order_by()            对查询结果进行排序     object1=models.book.objects.order_by("-price")
3 reverse()            对查询结果反向排序
4 distinct()          从返回的结果中剔除重复记录
5 value_list()        返回的一个是元祖序列
6 count()            返回数据库中匹配查询的对象数量
7 first()            返回第一条数据
8 last()            返回最后一条记录
9 exists()            如果queryset包含数据,就返回true,否者返回false

单表查询

1 models.book.objects.filter(id_gt=1,id_it=10)    #获取ID大于1,小于10的值
2
3 models.book.objects.filter(id_in=[1,3,6])       #获取id=1,3,6的值
4 models.book.objects.exclude(id_in=[1,3,6])      #not in
5
6 models.book.objects.filter(title_icontains="p")    #title包含p的值
7 models.book.objects.filter(title_statwith="p")    #title以p开头的值

原文地址:https://www.cnblogs.com/yehost/p/10258201.html

时间: 2024-10-29 21:59:40

数据库之对表的增删改查的相关文章

MySQL数据库之表的增删改查

目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是硬盘上的一个文件夹,表table就是文件夹里面的一个文件 2.表中的一条记录就相当于文件中的一行内容,与excel表类似,表table中有不同的标题,称之为字段 3.本节对表结构做增删改查,即创建表.删除表.修改表.查看表结构,至于表中数据的增删改查日后单独总结 2 创建表 1.创建一张表,需要建一

Android中使用Sqlite数据库 (二) 增删改查

定义接口 package com.example.android_db.service; import java.util.List; import java.util.Map; public interface PersonService { public boolean addPerson(Object[] params); public boolean deletePerson(Object[] params); public boolean updatePerson(Object[] p

【ASP】ASP对Access数据库的连接、增删改查及ASP的基本语法

本文讨论的是ASP,而不是Visual Studio写出来的.ASPX也就是ASP.NET. ASP不需要任何插件的支持,关键你是配置好WINDOWS的IIS服务器,把页面扔在上面执行就可以了. 不同WINDOWS系统的IIS服务器配置,除了某些被阉割的WINXP装机版系统之外,都支持IIS服务器配置,都在WINDOWS的组件中,不需要下载任何东西.如何配置IIS服务器不是本文讨论的重点. 一.基本目标 假设Access2007数据库database.mdb中存在表test如下: id为自增列,

java H2数据库使用并实现增删改查功能

原文:java H2数据库使用并实现增删改查功能 代码下载地址:http://www.zuidaima.com/share/1550463278058496.htm package com.zuidaima.h2sql.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.St

Django 连接数据库,数据库表字段的增删改查

如何获取前端数据 request方法: 获取前端数据的方式: request.POST(获取表单中发送的数据).request.GET  (获取的是url后面跟的数据) 前端:注意name属性的值即为后台大字典的key ,即通过key来取到前端发过来的数据 后端: views :  request.POST.get()  方法默认取列表中的最后一个值,request.POST.getlist()    取列表 数据库:Django连接数据库配置: 1.   setting.py : 配置数据库

使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的MySQL Community Server 选择想要的版本进行下载 之后的步骤,因为本人已经安装过MySQL数据库,而卸载重装会比较麻烦,卸载不干净会导致新的装不上,所以可以参考下面的博客,因为官网的改动,前面的部分已经与该博客不符,按照本人在上面的介绍寻找即可 https://blog.csdn

【andorid基础篇】数据库的创建以及增删改查

I,安卓下的数据库 安卓下使用的数据库是SQLite,安卓为我们提供的API是SQLiteOpenHelper. 1,创建一个数据库 1)写一类去继承抽象类SQLiteOpenHelper,我们需要复写相关的方法: 1 public WcxSQLite(Context context, String name, CursorFactory factory,int version) { super(context, name, factory, version); 3 } 4 5 public v

数据库中简单的增删改查(CRUD)

一切都是基于数据,而对数据的管理都离不开数据库.最近学到数据库的简单操作,所以写下这篇文章,总结一下学习到的知识.浅陋之处,多多见谅. 补充一下:一直弄不清SQL Server,Mysql ,以及Oracle的关系.SQL Server是微软的,因为微软系统的市场占有额,所以这款软件在市场上也占用很大份额,而Mysql是一款开源免费的数据库,我们知道关系型数据库最开始是IBM的一个实验室提出的理论,但是当时并没有被IBM公司重视,被Oracle的创始人劳伦斯·埃里森重视,发展壮大起来.但是Ora

C#在winform中操作数据库,实现数据增删改查

1.前言: 运行环境:VS2013+SQL2008+Windows10 程序界面预览: 使用的主要控件:dataGridview和menuStrip等. 2.功能具体介绍: 1.首先,我们要先实现基本的数据操作,增删改查这几个操作. (1)先定义一个数据库操作的公共类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks