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() |