●PostgreSQL
●Oracle Database
●Microsoft SQL Server
●SQLite
●支持复杂的查询,例如多表连接。
●具备数据一致性和完整性。
缺点:
●不够适用于存储大量非结构化数据,如文本、图像等。
●在大规模的数据集上可能性能较低。
常见的关系型数据库包括MySQL、PostgreSQL、Oracle等。
●列族数据库(Column-family Database):将数据存储为列族,如Apache Cassandra。
●键值对数据库(Key-Value Store):将数据存储为键值对,如Redis。
●图数据库(Graph Database):专门用于处理图结构数据,如Neo4j。
优点:
●适用于非结构化、分布式、高并发等场景。
●具备较高的可扩展性和性能。
缺点:
●数据模型和查询语言通常比较特定,学习和使用成本较高。
●不同类型的非关系型数据库之间差异较大,选择合适的数据库需要根据具体情况。
总结: 数据库是用于存储和管理数据的结构化集合,数据库管理系统(DBMS)是用于操作和管理数据库的软件系统。关系型数据库和非关系型数据库是两种不同类型的数据库模型,各自适用于不同的数据存储和处理需求。
●存储在单个文件中,适用于单用户和小规模应用。
●支持事务和多用户访问。
● 支持连接池、事务管理和批量操作。
● 适用于中小型应用和大规模项目。
●提供连接池、事务管理和异步查询支持。
●适用于复杂的数据处理和大规模应用。
●提供ORM支持,允许使用Python对象来表示数据库表和关系。
●支持灵活的查询、连接池和事务管理。
●支持SQLite、MySQL、PostgreSQL等多种数据库。
●提供数据模型定义、查询、事务管理等功能。
●支持连接池、事务管理等。
●适用于需要更精细控制数据库操作的场景。
这只是一些常见的Python数据库操作库的概述。选择适合你项目需求的库取决于项目的规模、性能要求和开发人员的熟悉程度。无论选择哪个库,了解其文档和示例是掌握数据库操作的关键。
import sqlite3
# 1. 导入数据库库
# 2. 建立数据库连接
conn = sqlite3.connect('mydatabase.db')
# 3. 创建游标对象
cursor = conn.cursor()
# 4. 执行SQL语句
cursor.execute("SELECT * FROM users")
# 5. 处理查询结果
rows = cursor.fetchall()
for row in rows:
print(row)
# 6. 提交事务(如果有修改操作)
conn.commit()
# 7. 关闭游标和连接
cursor.close()
conn.close()
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)''')
# 插入数据
cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
conn.commit()
# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
import mysql.connector
# 连接到MySQL数据库
conn = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="mydatabase"
)
cursor = conn.cursor()
# 执行SQL语句
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
import psycopg2
# 连接到PostgreSQL数据库
conn = psycopg2.connect(
host="localhost",
user="username",
password="password",
database="mydatabase"
)
cursor = conn.cursor()
# 执行SQL语句
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 创建数据库连接引擎
engine = create_engine('sqlite:///mydatabase.db', echo=True)
Base = declarative_base()
# 定义数据模型
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
# 创建数据表
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 插入数据
user = User(name='Alice')
session.add(user)
session.commit()
# 查询数据
users = session.query(User).all()
for user in users:
print(user.id, user.name)
# 关闭会话
session.close()
免责申明:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu
《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack