Python中如何实现数据库操作

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

本文主要展示的是“如何用Python实现数据库操作”,简单易懂,条理清晰,希望能帮你解决疑惑。让边肖带领大家学习《如何用Python实现数据库操作》一文。

一、Mysql数据库:

安装pymysql:

pip安装pymysql

1.数据库连接对象连接的常见方法:

Cursor() #创建一个游标对象。

Commit() #提交事务。

Rollback() #事务回滚。

Close() #关闭数据库连接。

2.光标对象光标的常用方法:

Execute() #执行SQL语句。

execute multi-day用于执行多日SQL语句。

Close() #用于关闭光标。

Fetchone() #用于从结果中获取一条记录,并将光标指向下一条记录。

Fetchall() #从结果中获取所有记录。

Scroll() #用于光标滚动。

来自my KNN导入my KNN

Sql:类

def __init__(自身,db=无):

#初始化连接数据库。

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

#这是我自己的写作方法。通常情况下,安装pymysql并连接上面的句子。

self . conn=my KNN . get _ conn(db)if db!=没有其他my KNN . get _ conn()

def get_databases(self):

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

返回self.getSqlData('显示数据库')

def get_tables(self):

获取所有表名'''

返回self.getSqlData('显示表格')

def create_table(自身,表):

创建表“”

cur=self.conn.cursor()

# id:无符号整数,主键,自增;名称:字符串;年龄:无符号整数。

sql=' ' '创建表{} (id int无符号主键auto_increment name varchar(10),age int无符号)(' ')。格式(表格)

cur.execute(sql)

self.conn.commit()

极好的

insert_data(自身,表):

''向数据表中添加一段数据'''

cur=self.conn.cursor()

sql=“插入到{}(姓名,年龄)值(%s,%s)中”

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

self.conn.commit()

def update_data(自身,表):

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

cur=self.conn.cursor()

sql='update {}设置年龄=18,其中name='myName '。格式(表格)

cur.execute(sql)

self.conn.commit()

def select_data(自身,表):

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

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 '''

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

return data

def get_size(self):

''' 查询符合条件的文档条数 '''

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

return size

def get_names(self):

''' 查询所有 name 的值,不重复的。返回list '''

names = self.collection.distinct('name')

return names

def update_data(self):

''' 修改文档 '''

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

def delete_data(self):

''' 删除文档 '''

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

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

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/53561.html

(0)

相关推荐

  • arcsin0,arcsin0.9等于多少

    技术arcsin0,arcsin0.9等于多少题意是弦长,弦长是3,要将弦长换算成弧长,再算面积arcsin0。扇形面积等于弧长乘半径除2 。S=arcsin(L/2r)*πr/90*R/2=arcsin(3/2*9)*

    生活 2021年10月30日
  • 一句,你读过最美的一句话是什么

    技术一句,你读过最美的一句话是什么之一,友人在信中说:“那时只知沉湎于对生命的思考,常被一种极大的感召召唤到深邃中,思索一些人性与社会方面的东西”一句。许是源于对生命和理想的探索与追求,友人才作如此的叙述。哭墙隐现于生命

    生活 2021年10月20日
  • 2021-2022-1-diocs-TCP/IP和网络编程

    技术2021-2022-1-diocs-TCP/IP和网络编程 2021-2022-1-diocs-TCP/IP和网络编程一、任务详情
    自学教材第13章,提交学习笔记(10分)
    知识点归纳以及自己最有收

    礼包 2021年11月23日
  • Hibernate查询语句有哪些

    技术Hibernate查询语句有哪些小编给大家分享一下Hibernate查询语句有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. se

    攻略 2021年12月8日
  • oracle中数据泵dump文件存放nfs报ORA-27054错误怎么办

    技术oracle中数据泵dump文件存放nfs报ORA-27054错误怎么办小编给大家分享一下oracle中数据泵dump文件存放nfs报ORA-27054错误怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参

    攻略 2021年11月20日
  • 为您的物联网系统选择合适的数据库的4个步骤分别是什么

    技术为您的物联网系统选择合适的数据库的4个步骤分别是什么本篇文章为大家展示了为您的物联网系统选择合适的数据库的4个步骤分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。为物

    攻略 2021年12月2日