在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/n/375540.html