在Python中,我们可以使用各种库来导入数据库,以下是一些常见的数据库及其对应的Python库:

| 数据库类型 | Python库 |
| SQLite | sqlite3 |
| MySQL | mysqlconnectorpython |
| PostgreSQL | psycopg2 |
| MongoDB | pymongo |
| MS SQL Server | pyodbc |
1. SQLite
SQLite是一个轻量级的磁盘文件数据库,不需要一个单独的服务器进程,它允许将整个数据库存储在一个文件中,非常适合小型项目和开发环境。
import sqlite3
连接到SQLite数据库
如果数据库不存在,会自动创建
conn = sqlite3.connect('example.db')
创建一个游标对象
cursor = conn.cursor()
执行SQL语句
cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
提交事务
conn.commit()
关闭连接
conn.close()
2. MySQL
MySQL是一个关系型数据库管理系统,广泛应用于Web开发,要使用Python操作MySQL,需要安装mysqlconnectorpython库。
import mysql.connector
连接到MySQL数据库
conn = mysql.connector.connect(user='username', password='password', host='localhost', database='test_db')
创建一个游标对象
cursor = conn.cursor()
执行SQL语句
cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)''')
提交事务
conn.commit()
关闭连接
conn.close()
3. PostgreSQL
PostgreSQL是一个功能强大的开源对象关系型数据库系统,要使用Python操作PostgreSQL,需要安装psycopg2库。
import psycopg2
连接到PostgreSQL数据库
conn = psycopg2.connect(database="test_db", user="username", password="password", host="localhost", port="5432")
创建一个游标对象
cursor = conn.cursor()
执行SQL语句
cursor.execute('''CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR(255), age INT)''')
提交事务
conn.commit()
关闭连接
conn.close()
4. MongoDB
MongoDB是一个非关系型数据库,适用于存储大量数据,要使用Python操作MongoDB,需要安装pymongo库。
from pymongo import MongoClient
连接到MongoDB数据库
client = MongoClient('mongodb://localhost:27017/')
选择一个数据库
db = client['test_db']
创建一个集合(类似于关系型数据库中的表)
users = db['users']
插入一条数据
users.insert_one({"name": "张三", "age": 30})
关闭连接
client.close()
5. MS SQL Server
MS SQL Server是微软推出的的关系型数据库管理系统,要使用Python操作MS SQL Server,需要安装pyodbc库。
import pyodbc
连接到MS SQL Server数据库
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=localhost;DATABASE=test_db;UID=username;PWD=password')
创建一个游标对象
cursor = conn.cursor()
执行SQL语句
cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INT IDENTITY(1,1) PRIMARY KEY, name NVARCHAR(255), age INT)''')
提交事务
conn.commit()
关闭连接
conn.close()