在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python常用的數據庫。
一、關係型數據庫
關係型數據是以表格的形式管理數據的數據庫。這種數據庫最常用的編程語言是SQL。Python中常用的關係型數據庫有MySQL, PostgreSQL, SQLite等。
1. MySQL
MySQL是一個非常流行的關係型數據管理系統,由Oracle公司開發和維護。它是用C和C++編寫的,也是許多Web應用程序的首選數據庫之一。使用Python來操作MySQL,需要安裝MySQL Connector/Python,示例代碼如下:
import mysql.connector
# 創建 MySQL 連接
mydb = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="mydatabase"
)
# 執行查詢語句
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM customers")
myresult = mycursor.fetchall()
# 輸出結果
for x in myresult:
print(x)
2. PostgreSQL
PostgreSQL是一個免費的、開源的關係型數據庫管理系統,使用貼近SQL的語言。它是許多開源應用程序的首選數據庫之一,如Django。使用Python操作PostgreSQL,需要安裝psycopg2庫,示例代碼如下:
import psycopg2
# 創建 PostgreSQL 連接
conn = psycopg2.connect(database="mydatabase", user="username", password="password", host="localhost", port="5432")
# 執行查詢語句
cur = conn.cursor()
cur.execute("SELECT * FROM mytable")
rows = cur.fetchall()
# 輸出結果
for row in rows:
print row
二、非關係型數據庫
非關係型數據庫是一種靈活的、存儲非結構化或半結構化數據的數據庫類型,通常用於存儲大量數據。Python常用的非關係型數據庫有MongoDB、Redis等。
1. MongoDB
MongoDB是一種開源的文檔型數據庫,使用JSON樣式的結構代替了傳統的行列格式,使數據格式更加靈活。使用Python操作MongoDB,需要安裝PyMongo庫,示例代碼如下:
from pymongo import MongoClient
# 連接 MongoDB
client = MongoClient()
# 獲取數據庫句柄
db = client.test
# 獲取集合
collection = db.my_collection
# 插入文檔
post = {"author": "Mike",
"text": "My first blog post!",
"tags": ["mongodb", "python", "pymongo"]}
posts = collection.posts
post_id = posts.insert_one(post).inserted_id
# 查詢文檔
print(posts.find_one({"author": "Mike"}))
2. Redis
Redis是一個高性能的鍵值存儲數據庫,它支持多種數據類型,如字符串、列表、集合、排序集等。使用Python操作Redis,需要安裝redis-py庫,示例代碼如下:
import redis
# 創建Redis連接
r = redis.Redis(host='localhost', port=6379, db=0)
# 存儲一個鍵值對
r.set('foo', 'bar')
# 獲取鍵對應的值
value = r.get('foo')
print(value)
三、圖形數據庫
圖形數據庫是非關係型數據庫中的一類,主要是為了管理具有圖形結構數據的數據庫。Python中常用的圖形數據庫有Neo4j、OrientDB等。
1. Neo4j
Neo4j是一個高性能的圖形數據庫,使用節點和關聯構建數據模型,提供了SQL語言以及使用Java/C++/Python等語言的API。使用Python操作Neo4j,需要安裝Py2neo庫,示例代碼如下:
from py2neo import Graph, Node, Relationship
# 創建Neo4j連接
graph = Graph("bolt://localhost", auth=("username", "password"))
# 創建一個節點
a = Node("Person", name="Alice")
# 創建另一個節點
b = Node("Person", name="Bob")
# 建立關係
ab = Relationship(a, "KNOWS", b)
# 將節點和關係存入Neo4j
graph.create(ab)
2. OrientDB
OrientDB是一個面向文檔的圖形數據庫,由Java編寫。它支持SQL語言並提供了Java/C++/Python等語言的API。使用Python操作OrientDB,需要安裝PyOrient庫,示例代碼如下:
from pyorient import OrientDB
# 創建OrientDB連接
client = OrientDB("localhost", 2424)
session_id = client.connect("root", "password")
# 執行查詢操作
client.db_open("my_database", "admin", "password")
result = client.command("SELECT * FROM my_class")
for item in result:
print item.oRecordData['field_name']
四、小結
Python中常用的數據庫類型包括關係型數據庫、非關係型數據庫和圖形數據庫。在選擇數據庫時,需要根據應用場景和需求選擇適合自己的類型。
原創文章,作者:NMQAP,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/375540.html
微信掃一掃
支付寶掃一掃