Connector for Python

MySQL 是最流行的關係型數據庫管理系統,若是你不熟悉 MySQL,能夠閱讀 MySQL 教程。php

下面爲你們介紹使用 mysql-connector 來鏈接使用 MySQL, mysql-connector 是 MySQL 官方提供的驅動器。html

咱們可使用 pip 命令來安裝 mysql-connector:python

python -m pip install mysql-connector

使用如下代碼測試 mysql-connector 是否安裝成功:mysql

import mysql.connector

執行以上代碼,若是沒有產生錯誤,代表安裝成功。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()
try:
  sql_delete='delete from student where name = %(name)s and age < %(age)s'
  data={'name':'orange','age':24}
  cursor.execute(sql_delete,data)
except mysql.connector.Error as e:
  print('delete error!{}'.format(e))
finally:
  cursor.close()
  cnn.close()

相關文章
相關標籤/搜索