MySQL之mysql-connector-python的安装使用

MySQL 是最流行的关系型数据库管理系统,关于数据库以及MySQL相关知识,此处不再赘述。本篇介绍使用 mysql-connector-python 来连接使用 MySQL。

1. 安装mysql-connector-python

执行以下代码,没有报错,证明安装成功。

import mysql.connector

# 连接数据库
Mysql = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456"
)
1
2
3
4
5
6
7
8
2. 安装MySQL
只有安装了MySQL,才能使用mysql-connector-python包提供的接口去操作数据库。关于MySQL的安装,参考另一篇博客:MySQL8.0解压版本的安装。
本机上安装的版本是 8.0.16版本。


3. 数据库可视化工具Navicat的安装
注意,我们通过Navicat可以以可视化的行为去操控数据库,更方便简洁,关于Navicat的安装,此处不再赘述,之前写过一篇详细的安装文章,但是无法审核过去,所以迟迟没有发布。此处读者可联系我索要安装步骤,也可以自行百度解决。
值得说明的是,安装Navicat并不是必须的,也可以不安装,后续直接使用SQL语句在终端中进行数据库的操作。
本篇将基于Navicat进行讲解。

4. mysql-connector-python包的使用
# 导入包
import mysql.connector

# 连接数据库
Mysql = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456"
)

# 首先获取游标对象
cursor = Mysql.cursor()

# 数据库操作
cursor.execute("CREATE DATABASE IF NOT EXISTS testDB;") # 创建数据库
cursor.execute("SHOW DATABASES;") # 显示数据库
for item in cursor: print(item)

cursor.execute("USE testdb;") # 选中数据库
cursor.execute("CREATE TABLE IF NOT EXISTS usermanage (name VARCHAR(255), passwd VARCHAR(255));") # 创建表
cursor.execute("DELETE FROM usermanage;") # 删除表中的内容

# 插入一条数据
sql = "INSERT INTO usermanage(name, passwd) VALUES(%s, %s);"
cursor.execute(sql, ("zhang", "123456"))
Mysql.commit() # 必须使用此命令, 否则无法插入成功
print(cursor.rowcount, "插入数据成功.")

# 批量插入数据
val = [
('wang', '222222'),
('li', '333333'),
('zhao', '444444')
]
cursor.executemany(sql, val)
Mysql.commit()
print(cursor.rowcount, "批量插入数据成功.")

# 数据库查询
cursor.execute("SELECT * FROM usermanage;")
result = cursor.fetchall()

 

 

 

 

https://blog.csdn.net/TianYanRen111/article/details/128763175

 

mysql.connector

一、基本操作

import mysql.connector                                                                        #导入MySQL驱动              
                                                                                                               #打开数据库 first
conn = mysql.connector.connect(user='root', password='password', database='first')
cursor = conn.cursor()                                                                          #创建一个浮标

cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')    #创建user表

cursor.execute('insert into user (id,name) values (%s, %s)',['1', 'Guoguo'])          #插入一行数据
#注意MySQL的占位符是%s

cursor.rowcount                                                                       #返回操作的行数
#1
cursor.execute('update user set name = %s where id = 1',('LinYun',))                  #更改表中数据

cursor.execute('delete from user where id = 1')                                       #删除表中数据

conn.commit()                                                                         #将操作提交到数据库
cursor.close()                                                                         #关闭连接



cursor = conn.cursor()                                                                #重新建立连接
cursor.execute('select * from user where id = %s',('1',))          #运行查询
values = cursor.fetchall()                                                            #取出所查询到的
values                                                                                          #输出所查询到的

cursor.close()                                                                        #关闭cursor
conn.close()                                                                          #关闭connection

二、多线程存取Mysql数据

创建表

>>> import mysql.connector
>>> conn = mysql.connector.connect(user='root', password='password', database='thread')  # 打开数据库 thread
>>> cursor = conn.cursor()
>>> cursor.execute('create table threading (operation varchar(100) primary key, name varchar(500))')   # 创建 threading 表
>>> conn.commit()
>>> cursor.close()
True

(一)多线程存入数据

import mysql.connector
import datetime
import time
import threading

def insert(io):
        time_now = datetime.datetime.now()
        print(io, time_now)
        conn = mysql.connector.connect(user='root', password='password', database='thread')
        cursor = conn.cursor()
        cursor.execute("insert into threading values (%s, %s)",[io ,time_now])
        cursor.close()
        conn.commit()
        time.sleep(5)

if __name__ == "__main__":
    t = threading.Thread(target=insert, args=('in',))
    t.start()

    t = threading.Thread(target=insert, args=('out',))
    t.start()

    t.join()
 
 

这是在一个表中多线程插入数据
最好是多线程建表和插入 数据

(二)读取数据



作者:交易狗二哈
链接:https://www.jianshu.com/p/b49f3c09fa85
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2023-07-04 13:49  qhlhaylee  阅读(168)  评论(0编辑  收藏  举报