Python史上最全种类数据库操作方法,你能想到的数据库类型都在里面!甚至还有云数据库!1

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: Python史上最全种类数据库操作方法,你能想到的数据库类型都在里面!甚至还有云数据库!

本文将详细探讨如何在Python中连接全种类数据库以及实现相应的CRUD(创建,读取,更新,删除)操作。我们将逐一解析连接MySQL,SQL Server,Oracle,PostgreSQL,MongoDB,SQLite,DB2,Redis,Cassandra,Microsoft Access,ElasticSearch,Neo4j,InfluxDB,Snowflake,Amazon DynamoDB,Microsoft Azure CosMos DB数据库的方法,并演示相应的CRUD操作。

MySQL

连接数据库

Python可以使用mysql-connector-python库连接MySQL数据库:

import mysql.connector
conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database')
print("Opened MySQL database successfully")
conn.close()

CRUD操作

接下来,我们将展示在MySQL中如何进行基本的CRUD操作。

创建(Create)

conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database')
cursor = conn.cursor()
cursor.execute("CREATE TABLE Employees (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT, ADDRESS CHAR(50), SALARY REAL)")
print("Table created successfully")
conn.close()

读取(Retrieve)

conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database')
cursor = conn.cursor()
cursor.execute("SELECT id, name, address, salary from Employees")
rows = cursor.fetchall()
for row in rows:
    print("ID = ", row[0])
    print("NAME = ", row[1])
    print("ADDRESS = ", row[2])
    print("SALARY = ", row[3])
conn.close()

更新(Update)

conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database')
cursor = conn.cursor()
cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :", cursor.rowcount)
conn.close()

删除(Delete)

conn = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='my_database')
cursor = conn.cursor()
cursor.execute("DELETE from Employees where ID = 1")
conn.commit()
print("Total number of rows deleted :", cursor.rowcount)
conn.close()

SQL Server

连接数据库

Python可以使用pyodbc库连接SQL Server数据库:

import pyodbc
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password')
print("Opened SQL Server database successfully")
conn.close()

CRUD操作

接下来,我们将展示在SQL Server中如何进行基本的CRUD操作。

创建(Create)

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password')
cursor = conn.cursor()
cursor.execute("CREATE TABLE Employees (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(20) NOT NULL, AGE INT, ADDRESS CHAR(50), SALARY REAL)")
conn.commit()
print("Table created successfully")
conn.close()

读取(Retrieve)

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password')
cursor = conn.cursor()
cursor.execute("SELECT id, name, address, salary from Employees")
rows = cursor.fetchall()
for row in rows:
    print("ID = ", row[0])
    print("NAME = ", row[1])
    print("ADDRESS = ", row[2])
    print("SALARY = ", row[3])
conn.close()

更新(Update)

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password')
cursor = conn.cursor()
cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :", cursor.rowcount)
conn.close()

删除(Delete)

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;UID=username;PWD=password')
cursor = conn.cursor()
cursor.execute("DELETE from Employees where ID = 1")
conn.commit()
print("Total number of rows deleted :", cursor.rowcount)
conn.close()

Oracle

连接数据库

Python可以使用cx_Oracle库连接Oracle数据库:

import cx_Oracle
dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') 
conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns)
print("Opened Oracle database successfully")
conn.close()

CRUD操作

接下来,我们将展示在Oracle中如何进行基本的CRUD操作。

创建(Create)

dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') 
conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns)
cursor = conn.cursor()
cursor.execute("CREATE TABLE Employees (ID NUMBER(10) NOT NULL PRIMARY KEY, NAME VARCHAR2(20) NOT NULL, AGE NUMBER(3), ADDRESS CHAR(50), SALARY NUMBER(10, 2))")
conn.commit()
print("Table created successfully")
conn.close()

读取(Retrieve)

dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') 
conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns)
cursor = conn.cursor()
cursor.execute("SELECT id, name, address, salary from Employees")
rows = cursor.fetchall()
for row in rows:
    print("ID = ", row[0])
    print("NAME = ", row[1])
    print("ADDRESS = ", row[2])
    print("SALARY = ", row[3])
conn.close()

更新(Update)

dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') 
conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns)
cursor = conn.cursor()
cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :", cursor.rowcount)
conn.close()

删除(Delete)

dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='my_database') 
conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns)
cursor = conn.cursor()
cursor.execute("DELETE from Employees where ID = 1")
conn.commit()
print("Total number of rows deleted :", cursor.rowcount)
conn.close()

PostgreSQL

连接数据库

Python可以使用psycopg2库连接PostgreSQL数据库:

import psycopg2
conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432")
print("Opened PostgreSQL database successfully")
conn.close()

CRUD操作

接下来,我们将展示在PostgreSQL中如何进行基本的CRUD操作。

创建(Create)

conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432")
cursor = conn.cursor()
cursor.execute('''CREATE TABLE Employees
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);''')
conn.commit()
print("Table created successfully")
conn.close()

读取(Retrieve)

conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432")
cursor = conn.cursor()
cursor.execute("SELECT id, name, address, salary from Employees")
rows = cursor.fetchall()
for row in rows:
    print("ID = ", row[0])
    print("NAME = ", row[1])
    print("ADDRESS = ", row[2])
    print("SALARY = ", row[3])
conn.close()

更新(Update)

conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432")
cursor = conn.cursor()
cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :", cursor.rowcount)
conn.close()

删除(Delete)

conn = psycopg2.connect(database="my_database", user="username", password="password", host="127.0.0.1", port="5432")
cursor = conn.cursor()
cursor.execute("DELETE from Employees where ID = 1")
conn.commit()
print("Total number of rows deleted :", cursor.rowcount)
conn.close()

MongoDB

连接数据库

Python可以使用pymongo库连接MongoDB数据库:

from pymongo import MongoClient
client = MongoClient("mongodb://localhost:27017/")
db = client["my_database"]
print("Opened MongoDB database successfully")
client.close()

CRUD操作

接下来,我们将展示在MongoDB中如何进行基本的CRUD操作。

创建(Create)

在MongoDB中,文档的创建操作通常包含在插入操作中:

client = MongoClient("mongodb://localhost:27017/")
db = client["my_database"]
employees = db["Employees"]
employee = {"id": "1", "name": "John", "age": "30", "address": "New York", "salary": "1000.00"}
employees.insert_one(employee)
print("Document inserted successfully")
client.close()

读取(Retrieve)

client = MongoClient("mongodb://localhost:27017/")
db = client["my_database"]
employees = db["Employees"]
cursor = employees.find()
for document in cursor:
    print(document)
client.close()

更新(Update)

client = MongoClient("mongodb://localhost:27017/")
db = client["my_database"]
employees = db["Employees"]
query = { "id": "1" }
new_values = { "$set": { "salary": "25000.00" } }
employees.update_one(query, new_values)
print("Document updated successfully")
client.close()

删除(Delete)

client = MongoClient("mongodb://localhost:27017/")
db = client["my_database"]
employees = db["Employees"]
query = { "id": "1" }
employees.delete_one(query)
print("Document deleted successfully")
client.close()

SQLite

连接数据库

Python使用sqlite3库连接SQLite数据库:

import sqlite3
conn = sqlite3.connect('my_database.db')
print("Opened SQLite database successfully")
conn.close()

CRUD操作

接下来,我们将展示在SQLite中如何进行基本的CRUD操作。

创建(Create)

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE Employees
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);''')
conn.commit()
print("Table created successfully")
conn.close()

读取(Retrieve)

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
cursor.execute("SELECT id, name, address, salary from Employees")
rows = cursor.fetchall()
for row in rows:
    print("ID = ", row[0])
    print("NAME = ", row[1])
    print("ADDRESS = ", row[2])
    print("SALARY = ", row[3])
conn.close()

更新(Update)

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :", cursor.rowcount)
conn.close()

删除(Delete)

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
cursor.execute("DELETE from Employees where ID = 1")
conn.commit()
print("Total number of rows deleted :", cursor.rowcount)
conn.close()

DB2

连接数据库

Python可以使用ibm_db库连接DB2数据库:

import ibm_db
dsn = (
    "DRIVER={{IBM DB2 ODBC DRIVER}};"
    "DATABASE=my_database;"
    "HOSTNAME=127.0.0.1;"
    "PORT=50000;"
    "PROTOCOL=TCPIP;"
    "UID=username;"
    "PWD=password;"
)
conn = ibm_db.connect(dsn, "", "")
print("Opened DB2 database successfully")
ibm_db.close(conn)

CRUD操作

接下来,我们将展示在DB2中如何进行基本的CRUD操作。

创建(Create)

conn = ibm_db.connect(dsn, "", "")
sql = '''CREATE TABLE Employees
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           VARCHAR(20)    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         DECIMAL(9, 2));'''
stmt = ibm_db.exec_immediate(conn, sql)
print("Table created successfully")
ibm_db.close(conn)

读取(Retrieve)

conn = ibm_db.connect(dsn, "", "")
sql = "SELECT id, name, address, salary from Employees"
stmt = ibm_db.exec_immediate(conn, sql)
while ibm_db.fetch_row(stmt):
    print("ID = ", ibm_db.result(stmt, "ID"))
    print("NAME = ", ibm_db.result(stmt, "NAME"))
    print("ADDRESS = ", ibm_db.result(stmt, "ADDRESS"))
    print("SALARY = ", ibm_db.result(stmt, "SALARY"))
ibm_db.close(conn)

更新(Update)

conn = ibm_db.connect(dsn, "", "")
sql = "UPDATE Employees set SALARY = 25000.00 where ID = 1"
stmt = ibm_db.exec_immediate(conn, sql)
ibm_db.commit(conn)
print("Total number of rows updated :", ibm_db.num_rows(stmt))
ibm_db.close(conn)

删除(Delete)

conn = ibm_db.connect(dsn, "", "")
sql = "DELETE from Employees where ID = 1"
stmt = ibm_db.exec_immediate(conn, sql)
ibm_db.commit(conn)
print("Total number of rows deleted :", ibm_db.num_rows(stmt))
ibm_db.close(conn)

Microsoft Access

连接数据库

Python可以使用pyodbc库连接Microsoft Access数据库:

import pyodbc
conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=path_to_your_access_file.accdb;'
)
conn = pyodbc.connect(conn_str)
print("Opened Access database successfully")
conn.close()

CRUD操作

接下来,我们将展示在Access中如何进行基本的CRUD操作。

创建(Create)

conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
cursor.execute('''CREATE TABLE Employees
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         DECIMAL(9, 2));''')
conn.commit()
print("Table created successfully")
conn.close()

读取(Retrieve)

conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
cursor.execute("SELECT id, name, address, salary from Employees")
rows = cursor.fetchall()
for row in rows:
    print("ID = ", row[0])
    print("NAME = ", row[1])
    print("ADDRESS = ", row[2])
    print("SALARY = ", row[3])
conn.close()

更新(Update)

conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
cursor.execute("UPDATE Employees set SALARY = 25000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :", cursor.rowcount)
conn.close()

删除(Delete)

conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
cursor.execute("DELETE from Employees where ID = 1")
conn.commit()
print("Total number of rows deleted :", cursor.rowcount)
conn.close()
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
11天前
|
关系型数据库 数据库 数据安全/隐私保护
云数据库实战:基于阿里云RDS的Python应用开发与优化
在互联网时代,数据驱动的应用已成为企业竞争力的核心。阿里云RDS为开发者提供稳定高效的数据库托管服务,支持多种数据库引擎,具备自动化管理、高可用性和弹性扩展等优势。本文通过Python应用案例,从零开始搭建基于阿里云RDS的数据库应用,详细演示连接、CRUD操作及性能优化与安全管理实践,帮助读者快速上手并提升应用性能。
|
13天前
|
索引 Python
python字符串类型及操作
本文主要讲解字符串类型的表示、操作符、处理函数、处理方法及格式化。内容涵盖字符串的定义、表示方法(单双引号、三引号)、索引与切片、特殊字符转义、常见操作符(如+、*、in等)、处理函数(如len()、str()、chr()等)、处理方法(如.lower()、.split()等)以及格式化方式(如.format())。通过实例代码详细介绍了字符串的各种用法和技巧,帮助读者全面掌握字符串操作。
python字符串类型及操作
|
13天前
|
数据库
【YashanDB 知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
**数据库主备切换简介** 在数据库正常或异常情况下,实现主备切换至关重要。若配置不当,主节点故障将影响业务使用,尤其在23.2版本中。原因包括资源紧张或主节点异常。解决方法涵盖手动和自动切换: 1. **一主一备部署**: - **手动切换**:支持Switchover(同步正常时)和Failover(主库损坏时)。 - **自动切换**:启用yasom仲裁选主开关。 2. **一主两备部署**: - 默认最大保护模式,自动切换开启。 需检查并配置自动切换以确保高可用性。经验总结:一主一备默认关闭自动切换,需手动开启;一主两备默认开启。
|
19天前
|
SQL 关系型数据库 MySQL
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
|
27天前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
92 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
1月前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
2月前
|
数据挖掘 数据处理 开发者
Python3 自定义排序详解:方法与示例
Python的排序功能强大且灵活,主要通过`sorted()`函数和列表的`sort()`方法实现。两者均支持`key`参数自定义排序规则。本文详细介绍了基础排序、按字符串长度或元组元素排序、降序排序、多条件排序及使用`lambda`表达式和`functools.cmp_to_key`进行复杂排序。通过示例展示了如何对简单数据类型、字典、类对象及复杂数据结构(如列车信息)进行排序。掌握这些技巧可以显著提升数据处理能力,为编程提供更强大的支持。
47 10
|
2月前
|
人工智能 自然语言处理 算法
随机的暴力美学蒙特卡洛方法 | python小知识
蒙特卡洛方法是一种基于随机采样的计算算法,广泛应用于物理学、金融、工程等领域。它通过重复随机采样来解决复杂问题,尤其适用于难以用解析方法求解的情况。该方法起源于二战期间的曼哈顿计划,由斯坦尼斯拉夫·乌拉姆等人提出。核心思想是通过大量随机样本来近似真实结果,如估算π值的经典示例。蒙特卡洛树搜索(MCTS)是其高级应用,常用于游戏AI和决策优化。Python中可通过简单代码实现蒙特卡洛方法,展示其在文本生成等领域的潜力。随着计算能力提升,蒙特卡洛方法的应用范围不断扩大,成为处理不确定性和复杂系统的重要工具。
90 21
|
2月前
|
数据采集 数据库 Python
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
164 75
|
3月前
|
弹性计算 关系型数据库 数据库
自建数据库迁移到云数据库实操
本课程详细介绍了自建数据库迁移到阿里云RDS的实操步骤。主要内容包括:创建实例资源、安全设置、配置自建的MySQL数据库、数据库的迁移、从自建数据库切换到RDS以及清理资源。通过这些步骤,学员可以掌握如何将自建数据库安全、高效地迁移到云端,并确保应用的正常运行。
198 26

热门文章

最新文章

推荐镜像

更多