学分高考 Python

Python学习之数据库操作 详细讲解

发布时间: 2022-05-26 14:20:01

我们都知道,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盘建立datadb文件夹作为数据文件的存储路径,建立datalog文件夹存储日志文件。

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

4,开启服务:net start MongoDB

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

mongod --dbpath "C:datadb" ?--logpath "C:dataloglog.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数据库操作的详细讲解,还有对这个知识点不清楚的同学可以上教育培训网官网在线学习,有讲师在线为大家答疑解惑哦!

温馨提示:
本文【Python学习之数据库操作 详细讲解】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号