Pandas在数据库中执行SQL语句并加载结果

提示

建议采用 try…except…finally… 或者 try…finally… ,保证与数据库的连接被关闭。

SQL语句入门很简单 (精深很难) ,不会的自己去简单学学。

建库建表

注意connect()如果没对应.db库的话会自动建一个。

import sqlite3

try:
    connection = sqlite3.connect('sample.db')
    print("Opened database successfully")
    cursor = connection.cursor()
    cursor.execute('''CREATE TABLE COMPANY
           (ID INT PRIMARY KEY     NOT NULL,
           NAME           TEXT    NOT NULL,
           AGE            INT     NOT NULL,
           ADDRESS        CHAR(50),
           SALARY         REAL);''')
    print("Table created successfully")
    connection.commit()
finally:
    connection.close()

插入四行数据

import sqlite3

try:
    connection = sqlite3.connect('sample.db')
    cursor = connection.cursor()
    print("Opened database successfully")
    cursor.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Sam', 32, 'BeiJing', 20000.00)")
    cursor.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Bob', 25, 'ShangHai', 15000.00)")
    cursor.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Jack', 23, 'Norway', 20000.00)")
    cursor.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Tom', 25, 'GuangZhou', 65000.00)")
    connection.commit()
    print("Records created successfully")
finally:
    connection.close()

使用pandas的read_sql_query执行SQL语句并加载结果

使用create_engine,定义了一个到SQLite数据库引擎的连接,然后使用pandas库中的read_sql_query,通过SQL语句查询数据库,并将结果存入一个DataFrame中。

import pandas as pd
from sqlalchemy import create_engine

# 创建一个数据库连接
database_connection = create_engine('sqlite:///sample.db')

# 加载数据
dataframe = pd.read_sql_query('SELECT * FROM COMPANY', database_connection)

# 查看前两行数据
print(dataframe.head(2))

查询结果

   ID NAME  AGE   ADDRESS   SALARY
0   1  Sam   32   BeiJing  20000.0
1   2  Bob   25  ShangHai  15000.0
发布了599 篇原创文章 · 获赞 1211 · 访问量 43万+

猜你喜欢

转载自blog.csdn.net/weixin_43896318/article/details/104529540
今日推荐