pymysql的使用

pymysql的使用

 

安裝

使用pip安裝python

pip install pymysql

  

pycham模塊安裝mysql

[File] >> [settings] >> [Project: python] >> [Project Interpreter] >> [Install按鈕]

  

 

pymysql的方法

Python統一了數據庫鏈接的接口,因此 pymysql 和 MySQLdb 在使用方式上是相似的:

pymysql.Connect()參數說明
host(str):      MySQL服務器地址
port(int):      MySQL服務器端口號
user(str):      用戶名
passwd(str):    密碼
db(str):        數據庫名稱
charset(str):   鏈接編碼

connection對象支持的方法
cursor()        使用該鏈接建立並返回遊標
commit()        提交當前事務
rollback()      回滾當前事務
close()         關閉鏈接

cursor對象支持的方法
execute(op)     執行一個數據庫的查詢命令
fetchone()      取得結果集的下一行
fetchmany(size) 獲取結果集的下幾行
fetchall()      獲取結果集中的全部行
rowcount()      返回數據條數或影響行數
close()         關閉遊標對象

  

 

pymysql的使用

# 導入pymysql模塊
import pymysql

# 鏈接database
conn = pymysql.connect(
    host="123.207.251.121",
    user="root",
    password="159357",
    db ="test",
    charset ="utf8")

# 獲得一個能夠執行SQL語句的光標對象
cursor = conn.cursor()  # 執行完畢返回的結果集默認以元組顯示
# 獲得一個能夠執行SQL語句而且將結果做爲字典返回的遊標
# cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 定義要執行的SQL語句
sql = "select version()"

# 執行SQL語句
cursor.execute(sql)

# #使用fetchone()方法獲取一條數據
data = cursor.fetchone()
print("Mysql version : %s"%data)


#插入數據
sql = "INSERT INTO account (id, name, balance) VALUES ( '%d', '%s', %.2f )"
data = (3, 'xinyi', 5000)
cursor.execute(sql % data)
conn.commit()
print('成功插入', cursor.rowcount, '條數據')


# 修改數據
sql = "UPDATE account SET balance = %.2f WHERE name = '%s' "
data = (8888, 'lili')
cursor.execute(sql % data)
conn.commit()
print('成功修改', cursor.rowcount, '條數據')


# 刪除數據
sql = "DELETE FROM account WHERE name = '%s' "
data = ("alex")
cursor.execute(sql % data)
conn.commit()
print('成功刪除', cursor.rowcount, '條數據')


# 查詢數據
sql = "SELECT name,balance FROM account "
cursor.execute(sql)
for row in cursor.fetchall():
    print("Name:%s\tSaving:%.2f" % row)
print('共查找出', cursor.rowcount, '條數據')

# 遊標的移動
# 回滾
# 相對位置
sql = "SELECT name,balance FROM account "
cursor.execute(sql)
print(cursor.fetchone())
print(cursor.fetchone())
cursor.scroll(-1,mode="relative")
print(cursor.fetchone())


# 絕對位置
sql = "SELECT name,balance FROM account "
cursor.execute(sql)
print(cursor.fetchone())
print(cursor.fetchone())
cursor.scroll(0,mode="absolute")
print(cursor.fetchone())


# 關閉光標對象
cursor.close()

# 關閉數據庫鏈接
conn.close()

 

 

演示結果

 原始數據:sql

 

插入:數據庫

 

修改:服務器

 

刪除:fetch

 

查詢:編碼

 

遊標移動:對象

相對位置:blog

Mysql version : 5.5.60-MariaDB
('lili', 8888.0)
('xinyi', 5000.0)
('xinyi', 5000.0)

  

絕對位置:接口

Mysql version : 5.5.60-MariaDB
('lili', 8888.0)
('xinyi', 5000.0)
('lili', 8888.0)
相關文章
相關標籤/搜索