六 6 1Mysql運算元據

2022-08-28 13:27:14 字數 3089 閱讀 1198

沒有任何錯誤資訊,則模組正常

資料庫連線

mysqldb提供了connect方法用來和資料庫建立連線,接收數個引數,返回連線物件

mysqldb提供了connect方法用來和資料庫建立連線,接收數個引數,返回連線物件

例如:

#

coding:utf8

import

mysqldb

#連線資料庫

#host 資料庫ip

#port 資料庫監聽埠

#user 資料庫使用者

#passwd 使用者密碼

#db 資料庫名稱

#charset 字符集 utf-8

#conn = mysqldb.connect(host="",port="",user="",passwd="",db="",charset="")

defconnect_mysql():

db_config =

try:

cnx = mysqldb.connect(**db_config)

except

exception as e :

raise

e

return

cnxcon =connect_mysql()

print(con)

執行結果:

<_mysql.connection open to>

127.0.0.1

' at 2616b28>

mysql事務

mysql事務

mysql 事務主要用於處理操作量大,複雜度高的資料。比如,你操作乙個資料庫,公司的乙個員工離職了,你要在資料庫中刪除他的資料,也要刪除該人員相關的,比如郵箱,個人資產等。這些資料庫操作語言就構成了乙個事務。

在mysql中只有使用了innodb資料庫引擎的資料庫或表才支援事務,所以很多情況下我們都使用innodb引擎。

事務處理可以用來維護資料庫的完整性,保證成批的sql語句要麼全部執行,要麼全部不執行。

一般來說,事務是必須滿足4個條件(acid): atomicity(原子性)、consistency(穩定性)、isolation(隔離性)、durability(可靠性)

1、事務的原子性:一組事務,要麼成功;要麼撤回。

2、穩定性 : 有非法資料(外來鍵約束之類),事務撤回。

3、隔離性:事務獨立執行。乙個事務處理後的結果,影響了其他事務,那麼其他事務會撤回。事務的100%隔離,需要犧牲速度。

4、可靠性:軟、硬體崩潰後,innodb資料表驅動會利用日誌檔案重構修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit選項 決定什麼時候吧事務儲存到日誌裡。

而mysql在預設的情況下,他是把每個select,insert,update,delete等做為乙個事務的,登入mysql伺服器,進入mysql,執行以下命令:

mysql> show variables like 'auto%';

+--------------------------+-------+

| variable_name | value |

+--------------------------+-------+

| auto_increment_increment | 1 |

| auto_increment_offset | 1 |

| autocommit | on |

| automatic_sp_privileges | on |

+--------------------------+-------+

4 rows in set (0.00 sec)

如上所示: 有乙個引數autocommit就是自動提交的意思,每執行乙個msyql的select,insert,update等操作,就會進行自動提交。

如果把改選項關閉,我們就可以每次執行完一次**就需要進行手動提交,connect物件給我們提供了兩種辦法來操作提交資料。

d)mysql事務的方法

commit():提交當前事務,如果是支援事務的資料庫執行增刪改後沒有commit則資料庫預設回滾,白操作了

rollback():取消當前事務

mysql運算元據

import

mysqldb

defconnect_mysql():

db_config =

try:

cnx = mysqldb.connect(**db_config)

except

exception as e :

raise

e

return

cnxif

__name__ == "

__main__":

#sql = "create table test(id int not null) ;insert into test(id) values(1000);"

sql = "

insert into test(id) values(1001);

"cnx =connect_mysql()

#print(dir(cnx))

cus =cnx.cursor()

try:

cus.execute(sql)

cus.close()

cnx.commit()

except

exception as e :

raise

e cnx.rollback()

finally

: cnx.close()

執行結果:

MySQL 運算元據庫

資料庫是指長期儲存在計算機內,有組織的 可共享的資料集合。簡而言之,資料庫就是乙個儲存資料的地方。只是,其儲存方式有特定的規律。這樣可以方便處理資料。資料庫的操作包括建立資料庫和刪除資料庫。這些操作都是資料庫管理的基礎 建立資料庫是指在資料庫系統中劃分一塊空間,用來儲存相應的資料。這是進行表操作的基...

php運算元據庫mysql

mysql connect在將來的php版本會被廢棄,建議用mysqli或者pdo代替 mysql create table people id int unsigned primary key auto increment,name varchar 20 age int header conten...

flask運算元據庫MySQL

注意 與sqlite不同,flask sqlalchemy並不會為mysql 主動去建立乙個database。所以需要自己手動在mysql中建立乙個相應的資料庫,然後才能使用flask sqlalchemy對相應資料進行操作。如果沒有事先建立,是不能使用mysql的。1 修改mysql密碼 mysq...