MySQL 是最流行的關係型數據庫管理系統,若是你不熟悉 MySQL,能夠閱讀 MySQL 教程。php
下面爲你們介紹使用 mysql-connector 來鏈接使用 MySQL, mysql-connector 是 MySQL 官方提供的驅動器。html
咱們可使用 pip 命令來安裝 mysql-connector:python
python -m pip install mysql-connector
使用如下代碼測試 mysql-connector 是否安裝成功:mysql
執行以上代碼,若是沒有產生錯誤,代表安裝成功。sql
一、數據庫鏈接數據庫
鏈接數據庫的代碼以下ide
代碼以下 | 複製代碼 |
import mysql.connector config={'host':'127.0.0.1',#默認127.0.0.1 'user':'root', 'password':'123456', 'port':3306 ,#默認即爲3306 'database':'test', 'charset':'utf8'#默認即爲utf8 } try: cnn=mysql.connector.connect(**config) except mysql.connector.Error as e: print('connect fails!{}'.format(e)) |
鏈接方法上和MySQLdb模塊略有不一樣。MySQLdb使用的是=號,這裏使用的是 : 號。測試
二、建立表spa
下面咱們根據上面新建的一個數據庫鏈接建立一張名爲student的表:.net
代碼以下 | 複製代碼 |
sql_create_table='CREATE TABLE `student` \ (`id` int(10) NOT NULL AUTO_INCREMENT,\ `name` varchar(10) DEFAULT NULL,\ `age` int(3) DEFAULT NULL,\ PRIMARY KEY (`id`)) \ ENGINE=MyISAM DEFAULT CHARSET=utf8' cursor=cnn.cursor() try: cursor.execute(sql_create_table) except mysql.connector.Error as e: print('create table orange fails!{}'.format(e)) |
三、插入數據
插入數據的語法上和MySQLdb上基本上是同樣的:
代碼以下 | 複製代碼 |
cursor=cnn.cursor() try: '第一種:直接字符串插入方式' sql_insert1="insert into student (name, age) values ('orange', 20)" cursor.execute(sql_insert1) '第二種:元組鏈接插入方式' sql_insert2="insert into student (name, age) values (%s, %s)" #此處的%s爲佔位符,而不是格式化字符串,因此age用%s data=('shiki',25) cursor.execute(sql_insert2,data) '第三種:字典鏈接插入方式' sql_insert3="insert into student (name, age) values (%(name)s, %(age)s)" data={'name':'mumu','age':30} cursor.execute(sql_insert3,data) #若是數據庫引擎爲Innodb,執行完成後需執行cnn.commit()進行事務提交 except mysql.connector.Error as e: print('insert datas error!{}'.format(e)) finally: cursor.close() cnn.close() |
一樣,MySQL Connector也支持屢次插入,一樣其使用的也是cursor.executemany,示例以下:
代碼以下 | 複製代碼 |
stmt='insert into student (name, age) values (%s,%s)' data=[ ('Lucy',21), ('Tom',22), ('Lily',21)] cursor.executemany(stmt,data) |
四、查詢操做
代碼以下 | 複製代碼 |
cursor=cnn.cursor() try: sql_query='select id,name from student where age > %s' cursor.execute(sql_query,(21,)) for id,name in cursor: print ('%s\'s age is older than 25,and her/his id is %d'%(name,id)) except mysql.connector.Error as e: print('query error!{}'.format(e)) finally: cursor.close() cnn.close() |
五、刪除操做
代碼以下 | 複製代碼 |
cursor=cnn.cursor() |