python连接数据库,相关数据处理

随机生成一千个数据插入large_db中

# 这是一个示例 Python 脚本。

# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。
import pandas as pd
from sqlalchemy import create_engine
from faker import Faker

# 初始化faker对象
faker = Faker()
data = []

# 生成虚拟数据
for _ in range(1000):
    data.append([faker.name(), faker.address(), faker.email()])

df = pd.DataFrame(data, columns=['name', 'address', 'email'])

# 创建数据库引擎
engine = create_engine("mysql+pymysql://root:123456@localhost/large_db")

# 将DataFrame写入MySQL数据库中的'users'表
df.to_sql('users', con=engine, if_exists='append', index=False, chunksize=100)
# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助

优化查询

分页查询:

USE large_db;
SET @start_time=Now0;
SELECT SOL_NO_CACHE *FROM users  Limit 100 OFFSET 1000;
SET @end_time=Nowd;
SELECT TIMEDIFF(@end_time,@start_time)AS query_duration;

索引查询:

CREATE INDEX idx_ name ON user(name);
CREATE INDEX idx_email ON users(email);
SET @start_time=Now();
SEIELCT SOL_NO_CACHE*FROM users WHERE name=“John Doe”;
SET @end_time=Now();
SELECT TIMEDIFF(@end_time,@start_time)AS query_duration;

在pycharm中版本查询:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL查询
        sql = "SELECT VERSION()"
        cursor.execute(sql)
        result = cursor.fetchone()
        print("Database version:", result['VERSION()'])

finally:
    connection.close()

单字段查询:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL查询
        sql = "SELECT * FROM users WHERE name = %s"
        cursor.execute(sql, ('John Doe',))
        result = cursor.fetchall()
        for row in result:
            print(row)

finally:
    connection.close()

插入数据:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL插入
        sql = "INSERT INTO users (name, address, email) VALUES (%s, %s, %s)"
        cursor.execute(sql, ('John Doe', '123 Main St', 'john.doe@example.com'))
    
    # 提交事务
    connection.commit()

finally:
    connection.close()

数据更新:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL更新
        sql = "UPDATE users SET address = %s WHERE name = %s"
        cursor.execute(sql, ('456 Oak St', 'John Doe'))
    
    # 提交事务
    connection.commit()

finally:
    connection.close()

删除数据:

import pymysql

# 连接MySQL数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',    # 替换为你的MySQL用户名
    password='your_password',  # 替换为你的MySQL密码
    db='your_database',      # 替换为你的数据库名称
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 执行SQL删除
        sql = "DELETE FROM users WHERE name = %s"
        cursor.execute(sql, ('John Doe',))
    
    # 提交事务
    connection.commit()

finally:
    connection.close()

单字段查询:

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要通过Python连接数据库,需要使用相应的数据库驱动程序。以下是连接常见数据库的基本示例: 1. MySQL 使用PythonMySQL驱动程序 `mysql-connector-python` 来连接MySQL数据库。首先需要安装驱动程序,可以使用 `pip` 命令安装: ``` pip install mysql-connector-python ``` 连接MySQL数据库的示例代码如下: ```python import mysql.connector # 连接数据库 cnx = mysql.connector.connect(user='root', password='password', host='localhost', database='mydatabase') # 查询数据 cursor = cnx.cursor() query = ("SELECT id, name, age FROM mytable") cursor.execute(query) # 处理数据 for (id, name, age) in cursor: print("{} - {} - {}".format(id, name, age)) # 关闭连接 cursor.close() cnx.close() ``` 2. SQLite 使用Python的SQLite驱动程序 `sqlite3` 来连接SQLite数据库,这个驱动程序是Python标准库的一部分,不需要额外安装。连接SQLite数据库的示例代码如下: ```python import sqlite3 # 连接数据库 conn = sqlite3.connect('example.db') # 查询数据 cursor = conn.cursor() query = ("SELECT id, name, age FROM mytable") cursor.execute(query) # 处理数据 for (id, name, age) in cursor: print("{} - {} - {}".format(id, name, age)) # 关闭连接 cursor.close() conn.close() ``` 3. PostgreSQL 使用Python的PostgreSQL驱动程序 `psycopg2` 来连接PostgreSQL数据库。首先需要安装驱动程序,可以使用 `pip` 命令安装: ``` pip install psycopg2 ``` 连接PostgreSQL数据库的示例代码如下: ```python import psycopg2 # 连接数据库 conn = psycopg2.connect(database="mydatabase", user="myusername", password="mypassword", host="localhost", port="5432") # 查询数据 cursor = conn.cursor() query = ("SELECT id, name, age FROM mytable") cursor.execute(query) # 处理数据 for (id, name, age) in cursor: print("{} - {} - {}".format(id, name, age)) # 关闭连接 cursor.close() conn.close() ``` 以上示例代码只是演示如何连接数据库和查询数据,实际的查询语句和操作方式需要根据具体的数据库和表结构进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值