mysql(一)

一、安裝mysqlpython

  若是是windows系統:登陸https://pypi.python.org/pypi/MySQL-python/1.2.5找到.exe結尾的包,下載安裝就行了,而後配置環境變量便可。mysql

  若是是Linux系統,經過下載源碼包進行安裝。sql

二、鏈接mysql數據庫

 1 import MySQLdb
 2 #鏈接數據庫:
 3 # host 數據庫ip
 4 # user 鏈接數據庫用戶
 5 # passwd 用戶密碼
 6 # db     數據庫名字
 7 # charset字符集  utf-8
 8 # port   數據庫監聽端口
 9 
10 # conn=MySQLdb.connect(host="101.132.125.136",user="root",passwd="aisirea802311",db="python",charset="utf8")
11 # 規範:
12 def connect_mysql():
13     db_config={
14         "host":"101.132.125.136",
15         "user":"root",
16         "passwd":"aisirea820311",
17         "db":"python",
18         "charset":"utf-8"
19 
20     }
21     try:
22         aaa=MySQLdb.connect(**db_config)
23     except Exception as e:
24         raise e
25     return aaa

三、mysql事務windows

MySQL 事務主要用於處理操做量大,複雜度高的數據。
事務處理能夠用來維護數據庫的完整性,保證成批的SQL語句要麼所有執行,要麼所有不執行。
通常來講,事務是必須知足4個條件(ACID): Atomicity(原子性)、Consistency(穩定性)、Isolation(隔離性)、Durability(可靠性)
1、事務的原子性:一組事務,要麼成功;要麼撤回。
2、穩定性:有非法數據(外鍵約束之類),事務撤回。
三、隔離性:事務獨立運行。一個事務處理後的結果,影響了其餘事務,那麼其餘事務會撤回。事務的100%隔離,須要犧牲速度。
4、可靠性:軟、硬件崩潰後,InnoDB數據表驅動會利用日誌文件重構修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit選項決定何時吧事務保存到日誌裏。
mysql事務的方法
commit():提交當前事務,若是是支持事務的數據庫執行增刪改後沒有commit則數據庫默認回滾,白操做了
rollback():取消當前事務

四、遊標fetch

 1 # 遊標(cursor)
 2 # 遊標是系統爲用戶開設的一個數據緩衝區,存放SQL語句的執行結果
 3 # 用戶能夠用SQL語句逐一從遊標中獲取記錄,並賦給主變量,交由python進一步處理,一組主變量一次只能存放一條記錄
 4 # 僅使用主變量並不能徹底知足SQL語句嚮應用程序輸出數據的要求
 5 
 6 # 經常使用方法:
 7 # cursor():建立遊標對象
 8 # close():關閉此遊標對象
 9 # fetchone():獲得結果集的下一行
10 # fetchmany([size = cursor.arraysize]):獲得結果集的下幾行
11 # fetchall():獲得結果集中剩下的全部行
12 # excute(sql[, args]):執行一個數據庫查詢或命令
13 # executemany (sql, args):執行多個數據庫查詢或命令
14 
15 if __name__ == '__main__':
16     aaa = connect_mysql()
17     cus = aaa.cursor()
18     sql = " create table test(id int not null);insert into test(id) values (100);"
19     try:
20         cus.execute(sql)
21         #執行
22         cus.close()
23         aaa.commit()
24         #提交,沒有異常關閉,有異常except
25     except Exception as e:
26         aaa.rollback()
27         print('Error')
28         raise e
29     finally:
30         aaa.close()
相關文章
相關標籤/搜索