在Python中,将数据存入数据库通常需要以下步骤:
1. 导入数据库连接库。
2. 建立数据库连接。
3. 创建数据库表(如果需要)。
4. 插入数据。
5. 提交更改并关闭连接。
使用sqlite3模块
import sqlite3
连接到SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
''')
插入数据
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Alice', 25))
提交更改
conn.commit()
关闭连接
conn.close()
使用pymysql模块
import pandas as pd
import pymysql
读入数据
filepath = 'E:\_DataSet\catering_sale.xls'
data = pd.read_excel(filepath)
建立数据库连接
db = pymysql.connect('localhost', 'root', '1234', 'python_analysis')
cursor = db.cursor()
创建数据库
try:
cursor.execute('CREATE TABLE catering_sale (num int PRIMARY KEY, date datetime, sale float)')
except:
print('数据库已存在!')
插入数据
query = 'INSERT INTO catering_sale (num, date, sale) VALUES (%s, %s, %s)'
values = [(data.iloc[r, 0], data.iloc[r, 1], data.iloc[r, 2]) for r in range(len(data))]
批量插入数据
cursor.executemany(query, values)
提交事务
db.commit()
关闭游标和连接
cursor.close()
db.close()
使用psycopg2模块
import psycopg2
连接到PostgreSQL数据库
conn = psycopg2.connect(
host='localhost',
database='your_database',
user='your_username',
password='your_password'
)
创建游标
cursor = conn.cursor()
创建表
create_table_query = '''
CREATE TABLE IF NOT EXISTS your_table (
id SERIAL PRIMARY KEY,
column1 VARCHAR(255),
column2 VARCHAR(255)
)
'''
cursor.execute(create_table_query)
插入数据
insert_data_query = 'INSERT INTO your_table (column1, column2) VALUES (%s, %s)'
data = [
('value1', 'value2'),
('value3', 'value4')
]
cursor.executemany(insert_data_query, data)
提交事务
conn.commit()
关闭游标和连接
cursor.close()
conn.close()
使用pandas和SQLAlchemy批量插入数据
import pandas as pd
from sqlalchemy import create_engine
读入数据
df = pd.read_csv('file.csv')
创建数据库连接
engine = create_engine('sqlite:///example.db')
将数据批量插入数据库
df.to_sql('table_name', engine, if_exists='append', index=False)