python 与 mysql 连接(增删改查)

35 篇文章 0 订阅
4 篇文章 0 订阅

1、

查询数据库的某一张表

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#  查询数据库的某一张表
import MySQLdb

db = ""


def mysql_conn():
    global db
    try:
        # 打开数据库连接
        db = MySQLdb.connect("localhost", "root", "dong2025", "mysql8", charset='utf8')
        # 使用cursor()方法获取操作游标
        cursor = db.cursor()
        # SQL 查询数据库中的某一张表
        sql = "SELECT * FROM BOOK WHERE BOOK_ID > 3"
        # 执行sql语句
        cursor.execute(sql)
        # fetchall():接收全部的返回结果行.
        # alldata = cursor.fetchall()
        # return alldata
        # fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
        onedate = cursor.fetchone()
        return onedate


    except:
        # Rollback in case there is any error
        db.rollback()
    finally:
        db.close()


my_con = mysql_conn()
print(my_con)

2、

SQL 插入语句

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#  SQL 插入语句
import MySQLdb

db = ""


def mysql_conn():
    global db
    try:
        # 打开数据库连接
        db = MySQLdb.connect("localhost", "root", "dong2025", "mysql8", charset='utf8')
        # 使用cursor()方法获取操作游标
        cursor = db.cursor()
        # SQL 插入语句
        sql = """
                 INSERT INTO BOOK(book_id, SORT, book_name, writer, OUTPUT, price)
                 VALUES (11, 'T8988', '数据科学家', '作者_李克强', '深圳出版社', 666.00)
              """
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
    except:
        # Rollback in case there is any error
        db.rollback()
    finally:
        db.close()


mysql_conn()


总结:如果是插入带变量的字段,写法要注意(加上单引号):

abc = "我会努力"
ggo = 9588
sql2 = F"INSERT INTO t_yjw(tag_name, n_num) VALUES ('{abc}', '{ggo}')"
cursor.execute(sql2)

3、

 SQL update更新语句

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#  SQL update更新语句
import MySQLdb

db = ""


def mysql_conn():
    global db
    try:
        # 打开数据库连接
        db = MySQLdb.connect("localhost", "root", "dong2025", "mysql8", charset='utf8')
        # 使用cursor()方法获取操作游标
        cursor = db.cursor()
        # SQL update更新语句
        sql = "UPDATE BOOK SET book_name = 'python算法导论' WHERE book_id= 9"
        print(sql)
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
    except:
        # Rollback in case there is any error
        db.rollback()
    finally:
        db.close()


mysql_conn()


4、

SQL 删除语句

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#  SQL 删除语句
import MySQLdb

db = ""


def mysql_conn():
    global db
    try:
        # 打开数据库连接
        db = MySQLdb.connect("localhost", "root", "dong2025", "mysql8", charset='utf8')
        # 使用cursor()方法获取操作游标
        cursor = db.cursor()
        # SQL delete语句
        str_num = 8
        sql = F"DELETE FROM BOOK  WHERE book_id= {str_num}"
        print(sql)
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
    except:
        # Rollback in case there is any error
        db.rollback()
    finally:
        db.close()


mysql_conn()


5、

# cursorclass=pymysql.cursors.DictCursor
# 与
# cursor=pymysql.cursors.DictCursor
# 的用法及区别

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#  查询数据库的某一张表

# cursorclass=pymysql.cursors.DictCursor
# 与
# cursor=pymysql.cursors.DictCursor
# 的用法及区别
import pymysql

db = ""


def mysql_conn():
    global db
    try:
        # 打开数据库连接
        # db = pymysql.connect("localhost", "root", "dong2025", "mysql8", charset='utf8')
        db = pymysql.connect(
            host="localhost",
            port=3306,
            user="root",
            password="dong2025",
            database="mysql8",
            charset="utf8",
            # cursorclass=pymysql.cursors.DictCursor # 可以返回字典数据(包含字段名字),

        )
        # 使用cursor()方法获取操作游标
        # cursor = db.cursor()
        cursor = db.cursor(cursor=pymysql.cursors.DictCursor)  # 可以返回字典数据(包含字段名字)

        # SQL 查询数据库中的某一张表
        sql = "SELECT * FROM BOOK WHERE BOOK_ID > 3"
        # 执行sql语句
        cursor.execute(sql)
        # fetchall():接收全部的返回结果行.
        # alldata = cursor.fetchall()
        # return alldata
        # fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
        onedate = cursor.fetchone()
        return onedate


    except:
        # Rollback in case there is any error
        db.rollback()
    finally:
        db.close()


my_con = mysql_conn()
print(my_con)

5.1,pymysql,pandas,mysql一起来操作数据库

import pandas as pd
import pymysql

db = ""


def mysql_conn():
    global db
    try:
        # 打开数据库连接
        db = pymysql.connect(
            host="localhost",
            port=3306,
            user="root",
            password="dong2025",
            database="mysql8",
            charset="utf8",

        )
        sql = "SELECT * FROM BOOK"
        df_sql = pd.read_sql(sql, db)

        # return df_sql  # 展示所有结果
        # return df_sql.head()  # 默认展示前5行
        # return df_sql.head(2)  # 展示前2行
        # return df_sql.shape   # 统计行和列数。
        return df_sql.info()  # info()方法可以查看数据表中的数据类型

    except:
        # Rollback in case there is any error
        db.rollback()
    finally:
        db.close()


my_con = mysql_conn()
print(my_con)


5.2、pymysql,pandas,mysql一起来操作数据库,并保存在excel中

import pandas as pd
import pymysql

db = ""


def mysql_conn():
    global db
    try:
        # 打开数据库连接
        db = pymysql.connect(
            host="localhost",
            port=3306,
            user="root",
            password="dong2025",
            database="mysql8",
            charset="utf8",

        )
        sql = "SELECT * FROM BOOK"
        df_sql = pd.read_sql(sql, db)

        # return df_sql  # 展示所有结果
        return df_sql.head()  # 默认展示前5行
        # return df_sql.head(2)  # 展示前2行
        # return df_sql.shape   # 统计行和列数。
        # return df_sql.info()  # info()方法可以查看数据表中的数据类型

    except:
        # Rollback in case there is any error
        db.rollback()
    finally:
        db.close()


my_cons = mysql_conn()
my_cons.to_excel('C:/Users/Administrator/Desktop/456999/python_mysql.xlsx')
print(my_cons)

  5.3、创建一个字典,把数据放在字典里,字段名称是key,字段内容是values

          pymysql,pandas,mysql一起来操作数据库,并保存在excel中

import pandas as pd
import pymysql

db = ""


def mysql_conn():
    global db
    try:
        # 打开数据库连接
        db = pymysql.connect(
            host="localhost",
            port=3306,
            user="root",
            password="dong2025",
            database="mysql8",
            charset="utf8",

        )
        sql = "SELECT * FROM BOOK"
        df_sql = pd.read_sql(sql, db)
        # return df_sql  # 展示所有结果
        return df_sql.head()  # 默认展示前5行
        # return df_sql.head(2)  # 展示前2行
        # return df_sql.shape   # 统计行和列数。
        # return df_sql.info()  # info()方法可以查看数据表中的数据类型
        # return df_sql.describe()  # 对BOOK表的描述

    except:
        # Rollback in case there is any error
        db.rollback()
    finally:
        db.close()


my_con = mysql_conn()
my_con.to_excel("C:/Users/Administrator/Desktop/123456/202201101647.xlsx")
print(my_con)
print("***************************")

# 创建一个字典,把数据放在字典里,字段名称是key,字段内容是values
t_dict = {}
for x, y in my_con.items():
    print("x=", x, "y=", list(y.values))
    t_dict[x] = list(y.values)
print("t_dict=", t_dict)
print("**********************")

# 根据字段名称取数据
print(my_con["book_name"] + " " + my_con["writer"])

6、更新 pymysql_pymysql操作mysql_weixin_39753616的博客-CSDN博客https://blog.csdn.net/weixin_39753616/article/details/112628169

7、Python连接MySQL数据库方法介绍(超详细!手把手项目案例操作) - 哔哩哔哩https://www.bilibili.com/read/cv3418619

8、Python3下不同MySQL驱动的性能对比_Python小屋-CSDN博客

9、

mysql客户端pymysql在python下性能比较_得救之道就在其中-CSDN博客

10、

python3 操作mysql数据库(mysql.connector 和 pymysql )_whatday的专栏-CSDN博客_pymysql和mysqlconnectorhttps://blog.csdn.net/whatday/article/details/102796789

11、

python的mysql-connector和pymysql - chengxuyonghu - 博客园https://www.cnblogs.com/chengxuyonghu/p/13533629.html

12、

Python:连接mysql数据库的三种方式,mysql.connector, pymysql, MYSQLdb_JacksonKim的博客-CSDN博客https://blog.csdn.net/qq_40765537/article/details/105876121

13、Python之安装MySQLdb遇到的问题

        Python之安装MySQLdb_My木岩的博客-CSDN博客_python 安装mysqldbhttps://blog.csdn.net/weixin_42840933/article/details/85274313

   

14、Python_数据结构_字典和集合的差异对比

      Python_数据结构_字典和集合的差异对比_飞Link的博客-CSDN博客_python集合和字典的区别https://blog.csdn.net/feizuiku0116/article/details/119777675?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22119777675%22%2C%22source%22%3A%22weixin_54217632%22%7D

15、在Python中分词

     在Python中分词_程序鸡的博客-CSDN博客https://blog.csdn.net/weixin_44611096/article/details/109694186

16、如何用python将数据写入Excel文件中

如何用python将数据写入Excel文件中_Chen三变的博客-CSDN博客_python把数据存入excelhttps://blog.csdn.net/weixin_43401773/article/details/127620341

17、读excel的时候有乱码后面要加上  .astype(str)

      

      

# !/usr/bin/python
# -*- coding: UTF-8 -*-
#  SQL 插入语句
import MySQLdb

import pandas as pd
import xlwt

import jieba

df = pd.read_excel("C:/Users/jack2035/Desktop/abc.xlsx", sheet_name="Sheet1").astype(str)

# print(df)
pdd = pd.DataFrame(df)
sts = ""

db = ""


# 检验是否全是中文字符
def isAllChinese(s):
    for c in s:
        if not ('\u4e00' <= c <= '\u9fa5'):
            return False
    return True


def mysql_conn(sts, n_num):
    global db
    try:
        # 打开数据库连接
        db = MySQLdb.connect("localhost", "root", "123456", "test_sql", charset='utf8')
        # 使用cursor()方法获取操作游标
        cursor = db.cursor()
        # SQL 插入语句
        sql = F"INSERT INTO t_yjw(tag_name, n_num) VALUES ('{sts}', '{n_num}')"
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
    except:
        # Rollback in case there is any error
        db.rollback()
    finally:
        db.close()


sf_list = []

for i_num in range(len(pdd["地址"])):
    for i_li in list(jieba.cut(pdd["地址"][i_num], cut_all=True)):
        if isAllChinese(i_li) and len(i_li) > 1:
            sf_list.append(i_li)
            # print(i_li)
        else:
            pass
# print(sf_list)
# 定义字典用来排序
# 定义集合用来过滤重复
set_st = set()
dc_dict = {}
for ts in sf_list:
    set_st.add(ts)
# print(set_st)

for i_se in set_st:
    # 执行insert语句的函数
    mysql_conn(i_se, sf_list.count(i_se))
    # print(i_se, "=", sf_list.count(i_se))
    # dc_dict[i_se] = sf_list.count(i_se)

#   对字典值进行排序(倒序)
# re_dic = sorted(dc_dict.items(), key=lambda x: x[1], reverse=True)
# 输出结果
# for k, v in dict(re_dic).items():
#     print(k, v)


# mysql_conn("努力", 999)

18、

19、

20、

21、

22、

23、

24、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值