私はpythonが得意で、特にpandasでデータを処理するのが得意で、クエリ関数はSQLを使っていますが、pandasも同じようにデータをクエリできると思います。
したがって、SQL データ フレームを Python 環境にインポートし、クエリとフィルタリングを行うのは楽しいことではありません。
pymysql
主に pymysql ライブラリを使用して、
パッケージのインポート:
import pymysql
import pandas as pd
リンクされたデータフレーム オブジェクト
#账户密码
db = pymysql.connect(
host='127.0.0.1', port=3306,
user='root', passwd='****', # 输入自己的账户和密码
db ='college', charset='utf8' # db 输入数据库,有用到的就行
)
ローカル環境では、host と port の 2 つのパラメーターを変更する必要はありません。主な理由は、自分のパスワードとパラメーター db を変更することです。ここで、db はデータベースの名前を意味します。
SQLステートメントの実行を書く
sql = '''select * from student ;''' # SQL 代码
cursor = db.cursor() # 执行数据库的操作是由cursor完成的,使用cursor()方法获取操作游标
cursor.execute(sql) # 执行sql语句
データを取得する
datas = cursor.fetchall() # 获取查询的所有记录
cols_info = cursor.description # 获取行相关信息
cursor.close() # 关闭游标
db.close() # 关闭连接数据库
データフレームに変換
cols = [col[0] for col in cols_info] # 处理保留列名
df = pd.DataFrame(datas,columns=cols)
df
私は非常に便利だと感じており、大学で学生フォームを取得しました。
それを関数にカプセル化し、他のテーブルを取り出してみます。
def get_sql_data(sql_sence='''select * from course ''',sql_name='college'):
#账户密码
db = pymysql.connect(
host='127.0.0.1', port=3306,
user='root', passwd='****', # 输入自己的账户和密码
db =sql_name, charset='utf8' # db 输入数据库,有用到的就行
)
sql_course = sql_sence # SQL 代码
cursor = db.cursor() # 执行数据库的操作是由cursor完成的,使用cursor()方法获取操作游标
cursor.execute(sql_course) # 执行sql语句
datas = cursor.fetchall() # 获取查询的所有记录
cols_info = cursor.description # 获取行相关信息
cols = [col[0] for col in cols_info] # 处理保留列名
df = pd.DataFrame(datas,columns=cols)
cursor.close() # 关闭游标
db.close() # 关闭连接数据库
return df
コーススケジュールのエクスポート: コース
get_sql_data(sql_sence='''select * from course ''')
スコアシートのエクスポート:
get_sql_data(sql_sence='''select * from score ''')
次に、pandas を使用してフィルター処理とクエリを実行すると非常に便利です。