您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“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 '''
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中如何實現數據庫操作”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。