Connector for Python

建立數據庫鏈接

能夠使用如下代碼來鏈接數據庫:html

demo_mysql_test.py:

import mysql.connector mydb = mysql.connector.connect( host="localhost", # 數據庫主機地址 user="yourusername", # 數據庫用戶名 passwd="yourpassword" # 數據庫密碼 ) print(mydb)

建立數據庫

建立數據庫使用 "CREATE DATABASE" 語句,如下建立一個名爲 runoob_db 的數據庫:python

demo_mysql_test.py:

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456" ) mycursor = mydb.cursor() mycursor.execute("CREATE DATABASE runoob_db")

建立數據庫前咱們也能夠使用 "SHOW DATABASES" 語句來查看數據庫是否存在:mysql

demo_mysql_test.py:

輸出全部數據庫列表:sql

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456" ) mycursor = mydb.cursor() mycursor.execute("SHOW DATABASES") for x in mycursor: print(x)

或者咱們能夠直接鏈接數據庫,若是數據庫不存在,會輸出錯誤信息:數據庫

demo_mysql_test.py:

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="runoob_db" )

建立數據表

建立數據表使用 "CREATE TABLE" 語句,建立數據表前,須要確保數據庫已存在,如下建立一個名爲 sites 的數據表:ide

demo_mysql_test.py:

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="runoob_db" ) mycursor = mydb.cursor() mycursor.execute("CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))")

執行成功後,咱們能夠看到數據庫建立的數據表 sites,字段爲 name 和 url。url

插入數據

插入數據使用 "INSERT INTO" 語句:spa

demo_mysql_test.py:

向 sites 表插入一條記錄。code

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="runoob_db" ) mycursor = mydb.cursor() sql = "INSERT INTO sites (name, url) VALUES (%s, %s)" val = ("RUNOOB", "https://www.runoob.com") mycursor.execute(sql, val) mydb.commit() # 數據表內容有更新,必須使用到該語句 print(mycursor.rowcount, "記錄插入成功。")

執行代碼,輸出結果爲:htm

1 記錄插入成功

查詢數據

查詢數據使用 SELECT 語句:

排序

查詢結果排序能夠使用 ORDER BY 語句,默認的排序方式爲升序,關鍵字爲 ASC,若是要設置降序排序,能夠設置關鍵字 DESC

Limit

若是咱們要設置查詢的數據量,能夠經過 "LIMIT" 語句來指定

也能夠指定起始位置,使用的關鍵字是 OFFSET

刪除記錄

刪除記錄使用 "DELETE FROM" 語句:

demo_mysql_test.py

刪除 name 爲 stackoverflow 的記錄:

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="runoob_db" ) mycursor = mydb.cursor() sql = "DELETE FROM sites WHERE name = 'stackoverflow'" mycursor.execute(sql) mydb.commit() print(mycursor.rowcount, " 條記錄刪除")

執行代碼,輸出結果爲:

1 條記錄刪除

注意:要慎重使用刪除語句,刪除語句要確保指定了 WHERE 條件語句,不然會致使整表數據被刪除。

爲了防止數據庫查詢發生 SQL 注入的攻擊,咱們能夠使用 %s 佔位符來轉義刪除語句的條件:

demo_mysql_test.py

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="runoob_db" ) mycursor = mydb.cursor() sql = "DELETE FROM sites WHERE name = %s" na = ("stackoverflow", ) mycursor.execute(sql, na) mydb.commit() print(mycursor.rowcount, " 條記錄刪除")

執行代碼,輸出結果爲:

1 條記錄刪除

更新表數據

數據表更新使用 "UPDATE" 語句:

demo_mysql_test.py

將 name 爲 Zhihu 的字段數據改成 ZH:

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="runoob_db" ) mycursor = mydb.cursor() sql = "UPDATE sites SET name = 'ZH' WHERE name = 'Zhihu'" mycursor.execute(sql) mydb.commit() print(mycursor.rowcount, " 條記錄被修改")

執行代碼,輸出結果爲:

1 條記錄被修改

注意:UPDATE 語句要確保指定了 WHERE 條件語句,不然會致使整表數據被更新。

爲了防止數據庫查詢發生 SQL 注入的攻擊,咱們能夠使用 %s 佔位符來轉義更新語句的條件:

demo_mysql_test.py

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="runoob_db" ) mycursor = mydb.cursor() sql = "UPDATE sites SET name = %s WHERE name = %s" val = ("Zhihu", "ZH") mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, " 條記錄被修改")

執行代碼,輸出結果爲:

1 條記錄被修改

刪除表

刪除表使用 "DROP TABLE" 語句, IF EXISTS 關鍵字是用於判斷表是否存在,只有在存在的狀況才刪除:

demo_mysql_test.py

import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="runoob_db" ) mycursor = mydb.cursor() sql = "DROP TABLE IF EXISTS sites" # 刪除數據表 sites mycursor.execute(sql)
相關文章
相關標籤/搜索