当前位置:K88软件开发文章中心编程语言PythonPython01 → 文章内容

Python MySQL - mysql-connector 驱动

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-10 11:00:29

Python MySQL - mysql-connector 驱动MySQL 是最流行的关系型数据库管理系统,如果你不不熟悉 MySQL,可以阅读我们的 MySQL 教程。本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql-connector 是 MySQL 官方提供的驱动器。我们可以使用 pip 命令来安装 mysql-connector:python -m pip install mysql-connector使用以下代码测试 mysql-connector 是否安装成功:demo_mysql_test.py:


import mysql.connector执行以上代码,如果没有产生错误,表明安装成功。创建数据库连接可以使用以下代码来连接数据库:demo_mysql_test.py:


import mysql.connectormydb = mysql.connector.connect(host="localhost",


# 数据库主机地址user="yourusername",


# 数据库用户名passwd="yourpassword"


# 数据库密码)print(mydb)创建数据库创建数据库使用 "CREATE DATABASE" 语句,以下创建一个名为 k88_db 的数据库:demo_mysql_test.py:


import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456")mycursor = mydb.cursor()mycursor.execute("CREATE DATABASE k88_db")创建数据库前我们也可以使用 "SHOW DATABASES" 语句来查看数据库是否存在:demo_mysql_test.py:


输出所有数据库列表:import mysql.connectormydb = 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.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")创建数据表创建数据表使用 "CREATE TABLE" 语句,创建数据表前,需要确保数据库已存在,以下创建一个名为 sites 的数据表:demo_mysql_test.py:


import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()mycursor.execute("CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))")执行成功后,我们可以看到数据库创建的数据表 sites,字段为 name 和 url。我们也可以使用 "SHOW TABLES" 语句来查看数据表是否已存在:demo_mysql_test.py:


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


print(x)主键设置创建表的时候我们一般都会设置一个主键(PRIMARY KEY),我们可以使用 "INT AUTO_INCREMENT PRIMARY KEY" 语句来创建一个主键,主键起始值为 1,逐步递增。如果我们的表已经创建,我们需要使用 ALTER TABLE 来给表添加主键:demo_mysql_test.py:


给 sites 表添加主键。import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()mycursor.execute("ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")如果你还未创建 sites 表,可以直接使用以下代码创建。demo_mysql_test.py:


给表创建主键。import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()mycursor.execute("CREATE TABLE sites (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), url VARCHAR(255))")插入数据插入数据使用 "INSERT INTO" 语句:demo_mysql_test.py:


向 sites 表插入一条记录。import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"val = ("RUNOOB", "https:


//www.k88.net")mycursor.execute(sql, val)mydb.commit()


# 数据表内容有更新,必须使用到该语句print(mycursor.rowcount, "记录插入成功。")执行代码,输出结果为:1 记录插入成功批量插入批量插入使用 executemany() 方法,该方法的第二个参数是一个元组列表,包含了我们要插入的数据:demo_mysql_test.py:


向 sites 表插入多条记录。import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"val = [('Google', 'https:


//www.google.com'),('Github', 'https:


//www.github.com'),('Taobao', 'https:


//www.taobao.com'),('stackoverflow', 'https:


//www.stackoverflow.com/')]mycursor.executemany(sql, val)mydb.commit()


# 数据表内容有更新,必须使用到该语句print(mycursor.rowcount, "记录插入成功。")执行代码,输出结果为:4 记录插入成功。执行以上代码后,我们可以看看数据表的记录:如果我们想在数据记录插入后,获取该记录的 ID ,可以使用以下代码:demo_mysql_test.py:


import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"val = ("Zhihu", "https:


//www.zhihu.com")mycursor.execute(sql, val)mydb.commit()print("1 条记录已插入, ID:


", mycursor.lastrowid)执行代码,输出结果为:1 条记录已插入, ID:


6查询数据查询数据使用 SELECT 语句:demo_mysql_test.py:


import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",passwd="123456",database="k88_db")mycursor = mydb.cursor()mycursor.execute("SELECT * FROM sites")myresult = mycursor.fetchall()


# fetchall() 获取所有记录for x in myresult:


print(x)执行代码,输出结果为:(1, 'RUNOOB', 'https:


//www.k88.net')(2, 'Google', 'https:


//www.google.com')(3, 'Github', 'https:


//www.github.com')(4, 'Taobao', 'https:


//www.taobao.com')(5, 'stackoverflow', 'https:


//www.stackoverflow.com/')(6, 'Zhihu', 'https:


//ww

[1] [2] [3]  下一页


Python MySQL - mysql-connector 驱动