国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python使用pymysql和sqlalchemy訪問MySQL的區(qū)別

這篇具有很好參考價(jià)值的文章主要介紹了Python使用pymysql和sqlalchemy訪問MySQL的區(qū)別。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Python使用pymysql和sqlalchemy訪問MySQL的區(qū)別

1. 兩個(gè)數(shù)據(jù)庫連接工具的對(duì)比

pymysql和sqlalchemy是兩個(gè)Python中經(jīng)常用于與MySQL數(shù)據(jù)庫交互的庫。都可以連接MySQL數(shù)據(jù)庫,但它們有明顯的區(qū)別。

(1)特點(diǎn)

pymysql是一個(gè)Python模塊,它可以用作一個(gè)獨(dú)立的Python文件或作為Python程序中的一個(gè)模塊。安裝pymysql之后,需要導(dǎo)入它并連接到一個(gè)MySQL數(shù)據(jù)庫,以開始與之交互。
sqlalchemy是一個(gè)Python庫和一個(gè)ORM(對(duì)象關(guān)系映射器)。通過SQLAlchemy,可以將Python對(duì)象映射到MySQL數(shù)據(jù)庫表中。這種方法可以使MySQL與Python代碼的交互更直觀和更簡(jiǎn)單。
SQLAlchemy的優(yōu)點(diǎn):
減少SQL語句的使用,使代碼、模型更加直觀、清晰;
性能損耗小;設(shè)計(jì)靈活;可移植性強(qiáng);

(2)區(qū)別

pymysql已經(jīng)足夠適合連接到MySQL數(shù)據(jù)庫并執(zhí)行基本的SQL查詢和命令,而sqlalchemy提供了更多的功能。

sqlalchemy包括ORM,它負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)換和類型處理。sqlalchemy ORM使用Python類來表示數(shù)據(jù)庫表,這使得查詢和數(shù)據(jù)處理變得無比容易。此外,sqlalchemy還支持高級(jí)查詢和SQL語句生成,可以在處理復(fù)雜查詢時(shí)更加便捷。

2.訪問方式

(1)pymysql

import pymysql
 
host = "127.0.0.1:3306"
user = "root"
password = "root"
database = "test"
mysql_db = pymysql.connect(host=host,
                                user=user,
                                password=password,
                                database=database,
                                charset="utf8")
mysql_cursor = mysql_db.cursor()
mysql_cursor.execute('select * from mytable')
cur_rows = mysql_cursor.fetchall()
mysql_cursor.close()

(2)sqlalchemy

from sqlalchemy import create_engine
 
host = "127.0.0.1:3306"
user = "root"
password = "root"
database = "test"
 
mysql_engine = create_engine("mysql+pymysql://{user}:{password}@{host}/{database}")
result = mysql_engine.execute('select * from mytable')

# 輸出查詢結(jié)果
for row in result:
    print(row)

3.Python對(duì)象映射SQLAlchemy

dataframe對(duì)象可以通過SQLAlchemy直接保存到MySQL數(shù)據(jù)庫。

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(20).reshape(5,4),
                  columns=['a','b','c','d'],
                  index=[1,2,3,4,5])
df.index.name = 'idx'

df.to_sql(
    'test_drop',  # 定義MySQL表名
    mysql_engine ,
    index=True,  # df 是否包括索引列
    if_exists='append',  # 追加數(shù)據(jù)模式
    chunksize=20000)  # 批量20000條

直接將dataframe保存到MySQL數(shù)據(jù)庫,索引和表結(jié)構(gòu)都字段建成。

idx	bigint(20)	YES	MUL		
a	bigint(20)	YES			
b	bigint(20)	YES			
c	bigint(20)	YES			
d	bigint(20)	YES			

更多SQLAlchemy的ORM操作文章來源地址http://www.zghlxwxcb.cn/news/detail-657002.html

到了這里,關(guān)于Python使用pymysql和sqlalchemy訪問MySQL的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python + pymysql 之 MySQL 查詢操作

    Python + pymysql 之 MySQL 查詢操作

    在MySQL中構(gòu)建一個(gè)測(cè)試表,如下: ?打印輸出結(jié)果: 從中可以看出,默認(rèn)情況下,查詢結(jié)果返回的是元組tuple形式 返回元組會(huì)有一個(gè)問題,當(dāng)你只查詢一個(gè)屬性字段時(shí),返回的結(jié)果會(huì)是有逗號(hào)的元組 例如:sql改變一下 此時(shí),打印輸出結(jié)果: 此時(shí),建議return前,簡(jiǎn)單處理一下

    2024年02月13日
    瀏覽(21)
  • 【Python筆記】Python + xlrd + pymysql讀取excel文件數(shù)據(jù)并且將數(shù)據(jù)插入到MySQL數(shù)據(jù)庫里面

    【Python筆記】Python + xlrd + pymysql讀取excel文件數(shù)據(jù)并且將數(shù)據(jù)插入到MySQL數(shù)據(jù)庫里面

    這篇文章,主要介紹Python + xlrd + pymysql讀取excel文件數(shù)據(jù)并且將數(shù)據(jù)插入到MySQL數(shù)據(jù)庫里面。 目錄 一、Python讀取excel 1.1、安裝xlrd庫 1.2、打開excel工作簿 1.3、獲取sheet工作表 1.4、操作row數(shù)據(jù)行 1.5、操作column數(shù)據(jù)列 1.6、操作單元格 二、讀取excel數(shù)據(jù)保存到MySQL 2.1、完整代碼 2.

    2024年02月15日
    瀏覽(27)
  • 如何利用Python中的pymysql庫來操作Mysql數(shù)據(jù)庫,看這篇就夠啦~

    如何利用Python中的pymysql庫來操作Mysql數(shù)據(jù)庫,看這篇就夠啦~

    ?為了使python連接上數(shù)據(jù)庫,你需要一個(gè)驅(qū)動(dòng),這個(gè)驅(qū)動(dòng)是用于與數(shù)據(jù)庫交互的庫,本文是向大家介紹了如何利用python中的pymysql庫來操作mysql數(shù)據(jù)庫。 1、什么是pymysql? pymysql是從python連接到mysql數(shù)據(jù)庫服務(wù)器的接口, 簡(jiǎn)單理解就是,pymysql是python操作mysql數(shù)據(jù)庫的三方模塊,可

    2024年02月06日
    瀏覽(27)
  • python——數(shù)據(jù)庫操作PyMysql使用詳解

    勸君惜取少年時(shí) 在編寫小腳本時(shí),PyMysql是快速連接并操作數(shù)據(jù)庫的一個(gè)不錯(cuò)選擇。 連接數(shù)據(jù)庫 使用connect函數(shù)創(chuàng)建連接對(duì)象,此連接對(duì)象提供關(guān)閉數(shù)據(jù)庫、事務(wù)回滾等操作 一般傳參為:host, user, password, port(默認(rèn)為3306), database(想要連接的數(shù)據(jù)庫名) 連接對(duì)象的常見方法 :

    2024年02月02日
    瀏覽(21)
  • 大白話說Python+Flask入門(六)Flask SQLAlchemy操作mysql數(shù)據(jù)庫

    大白話說Python+Flask入門(六)Flask SQLAlchemy操作mysql數(shù)據(jù)庫

    這篇文章被擱置真的太久了,不知不覺拖到了周三了,當(dāng)然,也算跟falsk系列說再見的時(shí)候,真沒什么好神秘的,就是個(gè)數(shù)據(jù)庫操作,就大家都知道的 CRUD 吧。 1、Flask SQLAlchemy簡(jiǎn)介 Flask SQLAlchemy 是基于 Flask web 框架和 SQLAlchemy ORM (對(duì)象關(guān)系映射)的工具。它旨在為 Flask web 應(yīng)用

    2024年02月05日
    瀏覽(31)
  • sqlalchemy.exc.operationalerror: (pymysql.err.operationalerror) (1045, 報(bào)錯(cuò) (已解決)

    sqlalchemy.exc.operationalerror: (pymysql.err.operationalerror) (1045, 報(bào)錯(cuò) (已解決)

    sqlalchemy.exc.operationalerror: (pymysql.err.operationalerror) (1045, \\\"access denied for user \\\'root\\\'@\\\'localhost\\\' (using password: yes)\\\")? ? 代碼如下: ?報(bào)錯(cuò)如下: ?報(bào)錯(cuò)分析: 1.密碼錯(cuò)誤? ?2. 字符編碼 錯(cuò)誤? 3.版本問題 ,4 權(quán)限問題 1.密碼錯(cuò)誤: 可以通過 cmd 嘗試登入mysql 如果可以登入可以排除? mysq

    2024年02月15日
    瀏覽(28)
  • Python 進(jìn)階(三):Python使用ORM框架SQLAlchemy操作Oracle數(shù)據(jù)庫

    Python 進(jìn)階(三):Python使用ORM框架SQLAlchemy操作Oracle數(shù)據(jù)庫

    要詳細(xì)連接Oracle數(shù)據(jù)庫并使用SQLAlchemy進(jìn)行操作,按照以下步驟進(jìn)行配置和編寫代碼: Oracle Instant Client:Oracle 提供的客戶端庫,可用于在 Python 中連接和操作 Oracle 數(shù)據(jù)庫 訪問 Oracle 官方網(wǎng)站:前往 Oracle 官方網(wǎng)站(instant-client/winx64-64-downloads) 可能需要?jiǎng)?chuàng)建一個(gè)免費(fèi)的 Oracle

    2024年02月11日
    瀏覽(38)
  • python:使用Flask-SQLAlchemy對(duì)數(shù)據(jù)庫增刪改查的簡(jiǎn)單示例

    python:使用Flask-SQLAlchemy對(duì)數(shù)據(jù)庫增刪改查的簡(jiǎn)單示例

    以下將介紹Flask-SQLAlchemy對(duì)數(shù)據(jù)庫增刪改查的簡(jiǎn)單示例。 一、安裝所需的庫 pip install flask flask-sqlalchemy flask-mysql 二、創(chuàng)建數(shù)據(jù)表 本示例使用mysql創(chuàng)建數(shù)據(jù)庫和表 CREATE TABLE `user` ( ? `id` int(11) NOT NULL AUTO_INCREMENT, ? `name` varchar(255) DEFAULT NULL, ? `age` int(11) DEFAULT NULL, ? PRIMARY KEY (`id

    2024年02月07日
    瀏覽(36)
  • python------Pymysql模塊

    總結(jié): fetchall(): 獲取所有查詢到的內(nèi)容。返回結(jié)果是嵌套的元組 fetchone(): 獲取一條數(shù)據(jù)。返回結(jié)果就是一個(gè)非嵌套的元組 fetchmany(num): 返回結(jié)果是元組嵌套,底層也是有游標(biāo)的。如果不傳遞參數(shù)num,默認(rèn)讀取一條數(shù)據(jù) 注意: 與文件讀取類似,讀取查詢的數(shù)據(jù)內(nèi)容的時(shí)候,底層

    2024年02月04日
    瀏覽(21)
  • Python模塊—PyMySQL模塊

    Python模塊—PyMySQL模塊

    Python—連接mysql數(shù)據(jù)庫代碼。 原理圖 標(biāo)準(zhǔn)化數(shù)據(jù)庫連接格式(后續(xù)會(huì)持續(xù)更新)

    2024年02月16日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包