python_操作linux上的mysql


在編寫初期,遇見一個問題,發現怎么連接不上mysql,一直報錯1045;

最后發現,只要下面的,連接寫正確,不會出現這個問題, 只要你保證你的user、pwd是正確的,

 

import pymysql
db_config = { 'user': 'root', 'password': 'qwe123', 'db': 'test', 'charset':'utf8' } # 連接mysql數據庫 con = pymysql.connect(**db_config) # 創建游標 , 利用游標來執行sql語句 cur = con.cursor()

基本連接是沒有問題的。

那我在重復下基本操作命令:

1、建立連接:pymysql.connect(**dbconfig)
       連接是不能操作數據庫的,需要用連接生成游標來操作
2、創建游標: connection.cursor()
3、執行SQL語句:cursor.execute(sql)
4、獲取結果:cur.fetchall()
5、事務的回滾: rollback()
6、事務的提交: commit()

 

這時,咱們在xshell_mysql 新建一些數據

新建表數據:

CREATE TABLE data_test(
                        id INT unique,
                        name VARCHAR(50), age INT, sex enum('','') );

 表內插入數據:

insert into data_test(id, name, age, sex) VALUES(1, '李牧', 18, ''),(2, '栗子', 20, ''),(3, '測試', 26, ''),(4, '尕娃', 30, '');

那么在xshell中查詢結果如下:

 

 那么我們在pycharm 怎么連接並查詢數據呢?

 1 import pymysql
 2 
 3 def tes_mysql():
 4     db_config = {
 5         'user': 'root',
 6         'password': 'qwe123',
 7         'db': 'test',
 8         'charset':'utf8'
 9     }
10     # 連接mysql數據庫
11     con = pymysql.connect(**db_config)
12     # 創建游標 , 利用游標來執行sql語句
13     cur = con.cursor()
14 
15     try:
16         # 執行sql語句,不會返回結果,返回其影響的行數
17         executes = cur.execute("select * from data_test")
18         # 獲取結果
19         values = cur.fetchall()
20         for value in values:
21             print(value)
22 
23         # 提交到數據庫,真正把數據插入或者更新到數據
24         con.commit()
25     except Exception as e:
26         print(e)
27         # 發生了異常,回滾
28         con.rollback()
29 
30     finally:
31         # 在最后使用完關閉游標和連接
32         # 關閉游標
33         cur.close()
34         # 關閉連接
35         con.close()

 

再進行個參數化把,

定義 test_base.py

 1 import pymysql
 2 
 3 def tes_mysql(sql):
 4     db_config = {
 5         'user': 'root',
 6         'password': 'qwe123',
 7         'db': 'test',
 8         'charset':'utf8'
 9     }
10     # 連接mysql數據庫
11     con = pymysql.connect(**db_config)
12     # 創建游標 , 利用游標來執行sql語句
13     cur = con.cursor()
14 
15     try:
16         # 執行sql語句,不會返回結果,返回其影響的行數
17         executes = cur.execute(sql)
18         # 獲取結果
19         values = cur.fetchall()
20         for value in values:
21             print(value)
22 
23         # 提交到數據庫,真正把數據插入或者更新到數據
24         con.commit()
25     except Exception as e:
26         print(e)
27         # 發生了異常,回滾
28         con.rollback()
29 
30     finally:
31         # 在最后使用完關閉游標和連接
32         # 關閉游標
33         cur.close()
34         # 關閉連接
35         con.close()

run_select.py

1 from day.test_base import tes_mysql
2 
3 sql = "select * from data_test"
4 # 實例化
5 a = tes_mysql(sql)

運行結果:

 

簡單記錄一下。

 

 

作者:含笑半步顛√

博客鏈接:https://www.cnblogs.com/lixy-88428977

聲明:本文為博主學習感悟總結,水平有限,如果不當,歡迎指正。如果您認為還不錯,歡迎轉載。轉載與引用請注明作者及出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM