本文目錄一覽:
- 1、python怎麼操作mysql數據庫
- 2、Python之MySQL操作
- 3、python怎麼操作mysql
- 4、python連接MySQL數據庫問題? cursor( ) 、execute()和fetc
- 5、怎麼用python連接mysql數據庫
- 6、Python 操作 MySQL 的5種方式
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-hk/n/270342.html