mysql-connector

mysql-connector是一个Python模块

1.安装

python -m pip install mysql-connector

测试是否安装成功

import mysql.connector

test数据库结构

2.建立数据库连接

db.py

复制代码
import mysql.connector
import time
#数据库连接
def conn():
    mydb = mysql.connector.connect(
        host="localhost",
        user="用户名",
        passwd="密码",
        database="数据库名"
    )
    return mydb
print(conn())
复制代码

执行结果

python db.py
<mysql.connector.connection.MySQLConnection object at 0x000001FF13E240F0>

3.数据插入

(1)单条插入

复制代码
import mysql.connector
import time
#数据库连接
def conn():
    mydb = mysql.connector.connect(
        host="localhost",
        user="用户名",
        passwd="密码",
        database="数据库名"
    )
    return mydb

def insert(name,now):
    mydb = conn()
    mycursor = mydb.cursor()
    sql = "INSERT INTO test (name, create_time) VALUES (%s, %s)"
    val = (name, now)
    mycursor.execute(sql, val)
    mydb.commit()
    return mycursor.rowcount
now = int(time.time())
print(insert('ABC',now))
复制代码

执行结果

python db.py
1

(2)批量插入

复制代码
import mysql.connector
import time
#数据库连接
def conn():
    mydb = mysql.connector.connect(
        host="localhost",
        user="用户名",
        passwd="密码",
        database="数据库名"
    )
    return mydb

def insertMore(val_list):
    mydb = conn()
    mycursor = mydb.cursor()
    table_name = "test"
    ins_sql = "INSERT INTO {}(name, create_time)VALUES ({}, {});"
    sql = ins_sql.format(table_name, '%s', '%s')
    mycursor.executemany(sql, val_list)
    mydb.commit()
    return mycursor.rowcount

name_list = ["AA", "BB", "CC", "DD"]
now = int(time.time())
val_list = [[name_list[i], now]
            for i in range(len(name_list))]
print(insertMore(val_list))
复制代码

执行结果

python db.py
4

4.数据查询

(1)查询部分字段的全部数据 fetchall()

复制代码
import mysql.connector
import time
#数据库连接
def conn():
    mydb = mysql.connector.connect(
        host="localhost",
        user="用户名",
        passwd="密码",
        database="数据库名"
    )
    return mydb

def findAll():
    mydb = conn()
    mycursor = mydb.cursor()
    table_name = "test"
    ins_sql = "SELECT name,from_unixtime(create_time,'%Y-%m-%d %H:%i:%s') FROM {}"
    sql = ins_sql.format(table_name)
    mycursor.execute(sql)
    rs = mycursor.fetchall()     # 获取所有记录
    return rs

rs = findAll()
for x in rs:
  print(x)
复制代码

执行结果

python db.py
('ABC', '2022-09-16 11:17:32')
('AA', '2022-09-16 11:18:06')
('BB', '2022-09-16 11:18:06')
('CC', '2022-09-16 11:18:06')
('DD', '2022-09-16 11:18:06')

(2)查询一条数据 fetchone()

复制代码
import mysql.connector
import time
#数据库连接
def conn():
    mydb = mysql.connector.connect(
        host="localhost",
        user="用户名",
        passwd="密码",
        database="数据库名"
    )
    return mydbdef findOne():
    mydb = conn()
    mycursor = mydb.cursor()
    table_name = "test"
    ins_sql = "SELECT name,from_unixtime(create_time,'%Y-%m-%d %H:%i:%s') FROM {}"
    sql = ins_sql.format(table_name)
    mycursor.execute(sql)
    rs = mycursor.fetchone()
    return rs

rs = findOne()
print(rs)
复制代码

执行结果

python db.py
('ABC', '2022-09-16 11:17:32')

(3)按条件获取数据

复制代码
import mysql.connector
import time
#数据库连接
def conn():
    mydb = mysql.connector.connect(
        host="localhost",
        user="用户名",
        passwd="密码",
        database="数据库名"
    )
    return mydb
def findSome(val):
    mydb = conn()
    mycursor = mydb.cursor()
    table_name = "test"
    ins_sql = "SELECT name,from_unixtime(create_time,'%Y-%m-%d %H:%i:%s') FROM {} where name like '%{}%'"
    sql = ins_sql.format(table_name,val)
    mycursor.execute(sql)
    rs = mycursor.fetchall()
    return rs

rs = findSome('A')
for x in rs:
  print(x)
复制代码

执行结果

python db.py
('ABC', '2022-09-16 11:17:32')
('AA', '2022-09-16 11:18:06')

5.数据更新

(1)单条更新

复制代码
import mysql.connector
import time
#数据库连接
def conn():
    mydb = mysql.connector.connect(
        host="localhost",
        user="用户名",
        passwd="密码",
        database="数据库名"
    )
    return mydbdef update(val,id):
    mydb = conn()
    mycursor = mydb.cursor()
    table_name = "test"
    ins_sql = "UPDATE {} SET name = {},update_time = {}  WHERE id = {}"
    sql = ins_sql.format(table_name, '%s', '%s', id)
    mycursor.execute(sql, val)
    mydb.commit()
    return mycursor.rowcount
now = int(time.time())
val = ('XYZ', now)
print(update(val,1))
复制代码

执行结果

python db.py
1

(2)批量更新

复制代码
import mysql.connector
import time
#数据库连接
def conn():
    mydb = mysql.connector.connect(
        host="localhost",
        user="用户名",
        passwd="密码",
        database="数据库名"
    )
    return mydbdef updateMore(val_list):
    mydb = conn()
    mycursor = mydb.cursor()
    table_name = "test"
    ins_sql = "UPDATE {} SET name = {},update_time = {}  WHERE id = {}"
    sql = ins_sql.format(table_name, '%s', '%s', '%s')
    mycursor.executemany(sql, val_list)
    mydb.commit()
    return mycursor.rowcount

ids = ["2","3","4","5"]
name_list = ["AA1", "BB1", "CC1", "DD1"]
now = int(time.time())
val_list = [(name_list[i], now,ids[i])
            for i in range(len(name_list))]
print(updateMore(val_list))
复制代码

执行结果

python db.py
4

6.数据删除

复制代码
import mysql.connector
import time
#数据库连接
def conn():
    mydb = mysql.connector.connect(
        host="localhost",
        user="用户名",
        passwd="密码",
        database="数据库名"
    )
    return mydbdef delete(val):
    mydb = conn()
    mycursor = mydb.cursor()
    table_name = "test"
    ins_sql = "DELETE FROM {} where name like '%{}%'"
    sql = ins_sql.format(table_name, val)
    mycursor.execute(sql)
    mydb.commit()
    return mycursor.rowcount

print(delect("A"))
复制代码

执行结果

python db.py
1

 

posted @   慕尘  阅读(1480)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2016-09-16 Ubuntu下sphinx使用
点击右上角即可分享
微信分享提示