您好,登錄后才能下訂單哦!
本篇內容主要講解“Python數據庫MYSQL的用法講解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python數據庫MYSQL的用法講解”吧!
import mysql.connector config = { 'host': 'localhost', 'port': '3306', 'user': 'root', 'password': '', 'database': 'python' } con = mysql.connector.connect(**config) cursor = con.cursor() #游標,用于執行sql語句
create_table_sql = "CREATE TABLE `browser` (">
3、創建索引
_index1 = "ALTER TABLE `browser` ADD UNIQUE INDEX name(name)" #唯一索引 _index2 = "CREATE INDEX url ON `browser`(url)" #普通索引 for sql in [_index1, _index2]: cursor.execute(sql)
創建表結構和添加字段索引個人建議客戶端手動操作,一行一行代碼操作效率實在太低。這邊公眾號回復"mysql"獲取相關資源。
4、數據增刪查改
#插入單條數據 insert_sql = "INSERT INTO `browser`(name, url) VALUES (%s, %s)" values = ('Chrome', "http://www.google.cn/chrome/") cursor.execute(insert_sql, values) #插入多條數據 values = [ ('Chrome', "http://www.google.cn/chrome/"), ('Firefox', "http://www.firefox.com/"), ('Safari2', "https://www.apple.com.cn/safari/") ] cursor.executemany(insert_sql, values) #查詢數據 select_sql = "SELECT * FROM `browser`" cursor.execute(select_sql) print(cursor.fetchone()) #獲取單條數據 print(cursor.fetchall()) #獲取全部數據 #更新數據 update_sql = "UPDATE `browser` SET `url`='http://www.firefox.com.cn' WHERE `name`='Firefox';" cursor.execute(update_sql) #刪除數據 delete_sql = "DELETE FROM `browser` WHERE `name` = %s" cursor.execute(delete_sql, ['Safari'])
5、關于抵御注入攻擊
由于Sql語句是解釋性語言,所以在拼接Sql語句的時候,容易被注入惡意的Sql語句。
sql語句編譯過程中,關鍵字被解析過,所以向編譯后的sql語句傳入參數,都被當字符串處理,數據庫不會解析其中注入的sql語句。
6、事務控制與異常處理
try: con.start_transaction() cursor = con.cursor() delete_sql = "DELETE FROM `browser` WHERE `name` = %s" cursor.execute(delete_sql, ['Firefox']) except Exception as e: con.rollback() #回滾 else: con.commit() #提交
7、實現數據庫連接池
如果每次進行操作前都去做連接請求,是非常消耗資源的,尤為考慮到并發問題的時候。
數據庫連接池預先創建出一些數據庫連接,然后緩存起來,避免出現重復創建和銷毀連接付出昂貴的代價,很好的解決這個問題。
import mysql.connector.pooling config = {...} pool = mysql.connector.pooling.MySQLConnectionPool( **config, pool_size=10 ) con_pool = pool.get_connection()
到此,相信大家對“Python數據庫MYSQL的用法講解”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。