mysql的python操作的簡單介紹

本文目錄一覽:

python怎麼操作mysql數據庫

#連接數據庫

conn = MySQLdb.Connect(

host = ‘localhost’,

port = 3306,

user = ‘root’,

passwd = ”,

db = ‘mytest’,

charset = ‘utf8’

)

cursor = conn.cursor()

#創建一個表存儲數據

sql_create = “create table if not exists account(nameid int, money varchar(100)) “

#插入兩條數據

sql_insert1 = “insert into account(nameid,money) values(13,120)”

sql_insert2 = “insert into account(nameid,money) values(14,10)”

#執行上述sql語句

cursor.execute(sql_create)

cursor.execute(sql_insert1)

cursor.execute(sql_insert2)

conn.close()

python操作mysql數據庫的完整demo與知識點講解

Python之MySQL操作

MySQL 是目前使用最廣泛的數據庫之一,它有着良好的性能,能夠跨平台,支持分布式,能夠承受高並發。下載地址: MySQL :: Download MySQL Community Server 安裝參考: 圖解MySQL5.7.20免安裝版配置方法-百度經驗 (baidu.com)

Python 大致有如下 5 種方式操作 MySQL。

先使用如下建表語句創建一張簡單的數據庫表。

2.1 mysqlclient

執行 pip install mysqlclient 進行安裝,看一下具體操作。

新增

查詢

cursor 查看方法

修改

刪除

2.2 PyMySQL

執行 pip install pymysql 進行安裝,使用方式與 mysqlclient 基本類似。

2.3 peewee

執行 pip install peewee 進行安裝,看一下具體操作。

定義映射類

新增

查詢

修改

刪除

2.4 SQLAlchemy

執行 pip install sqlalchemy 進行安裝,看一下具體操作。

定義映射類

新增

查詢

修改

刪除

Python學習日記

python怎麼操作mysql

我採用的是MySQLdb操作的MYSQL數據庫。先來一個簡單的例子吧:

import MySQLdb

try:

conn=MySQLdb.connect(host=’localhost’,user=’root’,passwd=’root’,db=’test’,port=3306)

cur=conn.cursor()

cur.execute(‘select * from user’)

cur.close()

conn.close()

except MySQLdb.Error,e:

print “Mysql Error %d: %s” % (e.args[0], e.args[1])

請注意修改你的數據庫,主機名,用戶名,密碼。

下面來大致演示一下插入數據,批量插入數據,更新數據的例子吧:

import MySQLdb

try:

conn=MySQLdb.connect(host=’localhost’,user=’root’,passwd=’root’,port=3306)

cur=conn.cursor()

cur.execute(‘create database if not exists python’)

conn.select_db(‘python’)

cur.execute(‘create table test(id int,info varchar(20))’)

value=[1,’hi rollen’]

cur.execute(‘insert into test values(%s,%s)’,value)

values=[]

for i in range(20):

values.append((i,’hi rollen’+str(i)))

cur.executemany(‘insert into test values(%s,%s)’,values)

cur.execute(‘update test set info=”I am rollen” where id=3’)

conn.commit()

cur.close()

conn.close()

except MySQLdb.Error,e:

print “Mysql Error %d: %s” % (e.args[0], e.args[1])

請注意一定要有conn.commit()這句來提交事務,要不然不能真正的插入數據。

運行之後我的MySQL數據庫的結果就不上圖了。

import MySQLdb

try:

conn=MySQLdb.connect(host=’localhost’,user=’root’,passwd=’root’,port=3306)

cur=conn.cursor()

conn.select_db(‘python’)

count=cur.execute(‘select * from test’)

print ‘there has %s rows record’ % count

result=cur.fetchone()

print result

print ‘ID: %s info %s’ % result

results=cur.fetchmany(5)

for r in results:

print r

print ‘==’*10

cur.scroll(0,mode=’absolute’)

results=cur.fetchall()

for r in results:

print r[1]

conn.commit()

cur.close()

conn.close()

except MySQLdb.Error,e:

print “Mysql Error %d: %s” % (e.args[0], e.args[1])

運行結果就不貼了,太長了。

查詢後中文會正確顯示,但在數據庫中卻是亂碼的。經過我從網上查找,發現用一個屬性有可搞定:

在Python代碼

conn = MySQLdb.Connect(host=’localhost’, user=’root’, passwd=’root’, db=’python’) 中加一個屬性:

改為:

conn = MySQLdb.Connect(host=’localhost’, user=’root’, passwd=’root’, db=’python’,charset=’utf8′)

charset是要跟你數據庫的編碼一樣,如果是數據庫是gb2312 ,則寫charset=’gb2312’。

下面貼一下常用的函數:

然後,這個連接對象也提供了對事務操作的支持,標準的方法

commit() 提交

rollback() 回滾

cursor用來執行命令的方法:

callproc(self, procname, args):用來執行存儲過程,接收的參數為存儲過程名和參數列表,返回值為受影響的行數

execute(self, query, args):執行單條sql語句,接收的參數為sql語句本身和使用的參數列表,返回值為受影響的行數

executemany(self, query, args):執行單挑sql語句,但是重複執行參數列表裡的參數,返回值為受影響的行數

nextset(self):移動到下一個結果集

cursor用來接收返回值的方法:

fetchall(self):接收全部的返回結果行.

fetchmany(self, size=None):接收size條返回結果行.如果size的值大於返回的結果行的數量,則會返回cursor.arraysize條數據.

fetchone(self):返回一條結果行.

scroll(self, value, mode=’relative’):移動指針到某一行.如果mode=’relative’,則表示從當前所在行移動value條,如果 mode=’absolute’,則表示從結果集的第一行移動value條.

參考資料:

MySQLdb‘s user guide

package MySQLdb

python連接MySQL數據庫問題? cursor( ) 、execute()和fetc

MySQLdb.connect是python 連接MySQL數據庫的方法,在Python中 import MySQLdb即可使用,至於connect中的參數很簡單:\x0d\x0ahost:MySQL服務器名\x0d\x0auser:數據庫使用者\x0d\x0apassword:用戶登錄密碼\x0d\x0adb:操作的數據庫名\x0d\x0acharset:使用的字符集(一般是gb2312)\x0d\x0acursor = db.cursor() 其實就是用來獲得python執行Mysql命令的方法,也就是\x0d\x0a我們所說的操作游標\x0d\x0a下面cursor.execute則是真正執行MySQL語句,即查詢TABLE_PARAMS表的數據。\x0d\x0a至於fetchall()則是接收全部的返回結果行 row就是在python中定義的一個變量,用來接收返回結果行的每行數據。同樣後面的r也是一個變量,用來接收row中的每個字符,如果寫成C的形式就更好理解了\x0d\x0afor(string row = ”; row

回答於 2022-11-16

怎麼用python連接mysql數據庫

在 Python 語言環境下我們這樣連接數據庫。

In [1]: from mysql import connector

In [2]: cnx = connector.connect(host=”172.16.192.100″,port=3306,user=”appuser”,password=”xxxxxx”)

但是連接數據庫的背後發生了什麼呢?

答案

當我們通過驅動程序(mysql-connector-python,pymysql)連接 MySQL 服務端的時候,就是把連接參數傳遞給驅動程序,驅動程序再根據參數會發起到 MySQL 服務端的 TCP 連接。當 TCP 連接建立之後驅動程序與服務端之間會按特定的格式和次序交換數據包,數據包的格式和發送次序由 MySQL 協議 規定。MySQL 協議:整個連接的過程中 MySQL 服務端與驅動程序之間,按如下的次序發送了這些包。

MySQL 服務端向客戶端發送一個握手包,包里記錄了 MySQL-Server 的版本,默認的授權插件,密碼鹽值(auth-data)。

2. MySQL 客戶端發出 ssl 連接請求包(如果有必要的話)。

3. MySQL 客戶端發出握手包的響應包,這個包時記錄了用戶名,密碼加密後的串,客戶端屬性,等等其它信息。

4. MySQL 服務端發出響應包,這個包里記錄了登錄是否成功,如果沒有成功也會給出錯誤信息。

Python 操作 MySQL 的5種方式

1、MySQLdb

# 前置條件

sudo apt-get install python-dev libmysqlclient-dev # Ubuntu

sudo yum install python-devel mysql-devel # Red Hat / CentOS

# 安裝

pip install MySQL-python

Windows 直接通過下載 exe 文件安裝

#!/usr/bin/python

import MySQLdb

db = MySQLdb.connect(

host = “localhost”, # 主機名

user = “root”, # 用戶名

passwd = “pythontab.com”, # 密碼

db = “testdb”) # 數據庫名稱

# 查詢前,必須先獲取游標

cur = db.cursor()

# 執行的都是原生SQL語句

cur.execute(“SELECT * FROM mytable”)

for row in cur.fetchall():

print(row[0])

db.close()

2、mysqlclient

# Windows安裝

pip install some-package.whl

# linux 前置條件

sudo apt-get install python3-dev # debian / Ubuntu

sudo yum install python3-devel # Red Hat / CentOS

brew install mysql-connector-c # macOS (Homebrew)

pip install mysqlclient

3、PyMySQL

pip install PyMySQL

# 為了兼容mysqldb,只需要加入

pymysql.install_as_MySQLdb()

import pymysql

conn = pymysql.connect(host = ‘127.0.0.1’, user = ‘root’, passwd = “pythontab.com”, db = ‘testdb’)

cur = conn.cursor()

cur.execute(“SELECT Host,User FROM user”)

for r in cur:

print(r)

cur.close()

conn.close()

4、peewee

pip install peewee

import peewee

from peewee import *

db = MySQLDatabase(‘testdb’, user = ‘root’, passwd = ‘pythontab.com’)

class Book(peewee.Model):

author = peewee.CharField()

title = peewee.TextField()

class Meta:

database = db

Book.create_table()

book = Book(author = “pythontab”, title = ‘pythontab is good website’)

book.save()

for book in Book.filter(author = “pythontab”):

print(book.title)

5、SQLAlchemy

from sqlalchemy import create_engine

from sqlalchemy.orm import sessionmaker

from sqlalchemy_declarative import Address, Base, Person

class Address(Base):

__tablename__ = ‘address’

id = Column(Integer, primary_key = True)

street_name = Column(String(250))

engine = create_engine(‘sqlite:///sqlalchemy_example.db’)

Base.metadata.bind = engine

DBSession = sessionmaker(bind = engine)

session = DBSession()

# Insert a Person in the person table

new_person = Person(name = ‘new person’)

session.add(new_person)

session.commit()

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/270342.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-16 13:36
下一篇 2024-12-16 13:36

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論