热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python中如何实现数据库操作

这篇文章主要为大家展示了“Python中如何实现数据库操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下

这篇文章主要为大家展示了“Python中如何实现数据库操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中如何实现数据库操作”这篇文章吧。

一、Mysql数据库:

安装pymysql:

pip install pymysql

1、数据库连接对象 connect 的常用方法:

cursor() # 创建一个游标对象

commit() # 提交事务

rollback() # 事务回滚

close() # 关闭数据库连接

2、游标对象 cursor 的常用方法:

execute() # 执行SQL语句

executemany() # 用来执行多天SQL语句

close() # 用来关闭游标

fetchone() # 用来从结果取出一条记录,并将游标指向下一条记录

fetchall() # 从结果中取出所有记录

scroll() # 用于游标滚动

from myconn import myconn

class Sql:

def __init__(self,db=None):

# 初始化连接数据库

# self.cOnn= pymysql.connect(db=dataName, user="user", passwd="passwd", host="host",charset='utf8')

# 这是我自己写的方法,平常的话,安装pymysql,用上面一句连接就可

self.cOnn= myconn.get_conn(db) if db!=None else myconn.get_conn()

def get_databases(self):

''' 获取所有数据库名 '''

return self.getSqlData("show databases")

def get_tables(self):

''' 获取所有表名 '''

return self.getSqlData("show tables")

def create_table(self,table):

''' 创建表 '''

cur = self.conn.cursor()

# id:无符号整数,主键,自增;name:字符串;age:无符号整数

sql = """create table {} (id int unsigned primary key auto_increment name varchar(10),age int unsigned)""".format(table)

cur.execute(sql)

self.conn.commit()

def

insert_data(self,table):

''' 增加一条数据到数据表 '''

cur = self.conn.cursor()

sql = "insert into {}(name,age) values(%s,%s)"

cur.execute(sql,('myName',80))

self.conn.commit()

def update_data(self,table):

''' 修改表中的数据 '''

cur = self.conn.cursor()

sql = "update {} set age=18 where name='myName'".format(table)

cur.execute(sql)

self.conn.commit()

def select_data(self, table):

''' 从数据库表查询数据 '''

cur = self.conn.cursor()

sql = "select name,age from {}".format(table)

cur.execute(sql)

return cur.fetchall()

def delete_data(self, table):

''' 从数据库表删除数据 '''

cur = self.conn.cursor()

sql = "delete from {} where name='myName'".format(table)

cur.execute(sql)

self.conn.commit()

def get_fields(self,table):

''' 获取指定表的字段 '''

cur = self.conn.cursor()

sql = "SELECT * FROM {} LIMIT 1".format(table)

cur.execute(sql)

v = cur.description

zds = [i[0] for i in v]

self.conn.commit()

return zds

def unique(self,table,*fields):

''' 唯一设置

table:表名,fields:字段名列表; '''

cur = self.conn.cursor()

if len(fields) == 1:

sql = "ALTER TABLE {} ADD unique(".format(table)

else:

sql = "ALTER TABLE {} ADD UNIQUE KEY(".format(table)

for i in fields:

sql += i

if i != fields[-1]:

sql += ','

else:

sql += ')'

try:

cur.execute(sql)

except Exception as exc:

print(exc)

else:

self.conn.commit()

def closeSql(self):

''' 关闭数据库连接 '''

self.conn.close()

二、MongoDB数据库

1,安装 mongodb:

到MongoDB官网下载对应版本的安装包: https://www.mongodb.com/download-center?jmp=nav#community

1,把MongoDB安装到C盘或者D盘都可以

2,在C盘建立data\db文件夹作为数据文件的存储路径,建立data\log文件夹存储日志文件。

3,安装服务:cmd 进入到MongoDB的bin目录,执行:mongod --dbpath "C:\data\db" ?--logpath "C:\data\log\log.txt" ?--install -serviceName "MongoDB"

4,开启服务:net start MongoDB

注:有时由于没有正常关闭MongoDB,导致开启服务失败,可尝试删除C:\data\db下的mongod.lock再开启服务

mongod --dbpath "C:\data\db" ?--logpath "C:\data\log\log.txt" ?--install -serviceName "MongoDB" 

2,安装 pymongo:

pip install pymongo

import pymongo

import datetime

class Mongodb:

""" Python MangoDB 的简单操作 """

def __init__(self):

# 1、建立连接

# client = pymongo.MongoClient('localhost',27017) # 第一种方法

client = pymongo.MongoClient('mongodb://localhost:27017') # 第二种方法

# 2、获取数据库

# db = client.db_name # 第一种方法

db = client['db_name'] # 第二种方法

# 3、获取一个集合

# self.collection = db.table # 第一种方法

self.collection = db['table'] # 第二种方法

def insert_data(self):

''' 插入文档 '''

# name:姓名;age:年龄;datetime:存储时间

user = {

"name":"myName",

"age":18,

"datetime":datetime.datetime.utcnow()

}

# 插入后,如果文档内没有_id这个键值,则系统会自动添加_id;其中user可以是多个user组成的列表

user_id = self.collection.insert(user)

return user_id

def find_one_data(self):

''' 查询一条文档 '''

data = self.collection.find_one({"name":"myName"}) # 查询name为myName的

return data

def find_data(self):

''' 查询多个文档 '''

# data = [d for d in self.collection.find()] # 查询所有

data = [d for d in self.collection.find({"name":"myName"})] # 查询所有指定name的文档

return data

def find_limit_data(self):

''' 根据条件查询数据:

MongoDB中条件操作符有:

(>) 大于 - $gt

(<) 小于 - $lt

(>=) 大于等于 - $gte

(<= ) 小于等于 - $lte &#39;&#39;&#39;

data = self.collection.find({"age":{"$gt": 12}}) # 查询年龄大于12岁的

return data

def get_size(self):

&#39;&#39;&#39; 查询符合条件的文档条数 &#39;&#39;&#39;

size = self.collection.find({"name":"myName"}).count()

return size

def get_names(self):

&#39;&#39;&#39; 查询所有 name 的值,不重复的。返回list &#39;&#39;&#39;

names = self.collection.distinct(&#39;name&#39;)

return names

def update_data(self):

&#39;&#39;&#39; 修改文档 &#39;&#39;&#39;

self.collection.update({"name":"myName"},{"$set":{"age":28}}) # 修改name为myName的年龄

def delete_data(self):

&#39;&#39;&#39; 删除文档 &#39;&#39;&#39;

self.collection.remove({"name":"myName"}) # 删除name为myName的文档

以上是“Python中如何实现数据库操作”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程笔记行业资讯频道!


推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 浅析Mysql数据回滚错误的解决方法_PHP教程:MYSQL的事务处理主要有两种方法。1、用begin,rollback,commit来实现begin开始一个事务rollback事 ... [详细]
author-avatar
dbvg2q
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有