python操作mysql数据库,python如何给mysql增加数据

时间:2025-09-15 01:35:51  阅读量:  分类:标签:

本节课主要介绍了:安装数据库、用navicat链接数据库、用python链接数据库、python创建数据库表、增加字段、批量增加变量随机字段、

mysql数据库安装

官网https://www.mysql.com/ 

安装教程:https://www.51zxw.net/Show.aspx?cid=1310&id=149959

使用navicat操作数据库如果是链接本地数据库就使用默认localhost就可以,不需要填远程IP

pyton链接mysql数据库:

import pymysql #引入python mysql库

class main():
    #-------以下这些数据,都赋值给了相应的变量,
    host="localhost"   #链接本地mysql,赋值给变量host
    port=3306 #记得使用数字,端口号赋值给变量port
    user="zhanghao"  #账号赋值给变量用户
    password="mima"   #密码赋值给变量password
    db="data" #数据库名称
    charset="utf8"   #数据库编码

    #创建数据库连接对象,建立连接,把变量等于相对应的参数。
    conn=pymysql.Connect(host=host,port=port,user=user,password=password,db=db,charset=charset)
    try:
        print("数据库已连接.....")
        #......相关操作
    except Exception as e:
        print("出现异常:",e)
    finally:
        conn.close() #关闭数据库连接
#---------------------------
if __name__ == '__main__':
    main()

# python创建mysql表,和删除msql 表。:

import pymysql

# 获取数据库连接公共方法
def getConnection():
    host = "localhost"
    port = 3306  # 记得使用数字
    user = "zhanghao"
    password = "mima"
    db = "data"  # 数据库名称
    charset = "utf8"

    # 创建数据库连接对象,建立连接
    conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
    return conn


def main():
    conn = getConnection()
    # 创建游标对象(1.执行sql语句;2.处理查询结果)
    cursor = conn.cursor()
    try:
        print("数据库已连接.....")
        # 编写sql语句1,创建一个表
        sql1 = '''
        CREATE TABLE stu2 (
              id int(11) NOT NULL AUTO_INCREMENT,
              name varchar(255) DEFAULT NULL,
              age int(11) DEFAULT NULL,
              hobby varchar(255) DEFAULT NULL,
              PRIMARY KEY (id)
            )
        '''
        # 编写sql语句2,删除一个表
        sql2 = '''
        drop table stu2    
        '''

        # 这两句话那句取消注释了,就会执行那句sql语句。
        cursor.execute(sql1)
        # cursor.execute(sql2)   #这句话如果取消注释,sql语句2,的删除表语句也会被执行。
        # 提交数据
        conn.commit()
    except Exception as e:
        print("出现异常:", e)
    finally:
        cursor.close()  # 关闭游标
        conn.close()  # 关闭数据库连接


# ---------------------------
if __name__ == '__main__':
    main()

pyton给数据库的表增加字段:

import pymysql
# 获取数据库连接公共方法
def getConnection():
    host = "localhost"
    port = 3306  # 记得使用数字
    user = "zhanghao"
    password = "mima"
    db = "data"  # 数据库名称
    charset = "utf8"

    # 创建数据库连接对象,建立连接
    conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
    return conn


def main():
    conn = getConnection()
    # 创建游标对象(1.执行sql语句;2.处理查询结果)
    cursor = conn.cursor()
    try:
        print("数据库已连接.....")
        # 编写sql语句1,创建一个表
        sql1 = '''
        CREATE TABLE stu2 (
              id int(11) NOT NULL AUTO_INCREMENT,
              name varchar(255) DEFAULT NULL,
              age int(11) DEFAULT NULL,
              hobby varchar(255) DEFAULT NULL,
              PRIMARY KEY (id)
            )
        '''
        #INSERT INTO stu(name, age, hobby) VALUES('张三', 12, '打球')  这句话就是给表新增了一个字段。
        zid = '''
        INSERT INTO stu2(name, age, hobby) VALUES('张三', 12, '打球')
        '''

        # 编写sql语句2,删除一个表
        sql2 = '''
        drop table stu2    
        '''

        # 执行SQL语句
        #cursor.execute(sql1)  #执行sql1语句
        cursor.execute(zid)   #执行zid 语句,插入字段。
        # cursor.execute(sql2)   #有注释,所以sql2语句不会被执行
        # 提交数据
        conn.commit()
    except Exception as e:
        print("出现异常:", e)
    finally:
        cursor.close()  # 关闭游标
        conn.close()  # 关闭数据库连接


# ---------------------------
if __name__ == '__main__':
    main()


pyton给数据库的表增加字段:但是字段由变量定义

import pymysql


# 获取数据库连接公共方法
def getConnection():
    host = "localhost"
    port = 3306  # 记得使用数字
    user = "zhanghao"
    password = "mima"
    db = "data"  # 数据库名称
    charset = "utf8"

    # 创建数据库连接对象,建立连接
    conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
    return conn


def main():
    conn = getConnection()
    # 创建游标对象(1.执行sql语句;2.处理查询结果)
    cursor = conn.cursor()
    try:
        print("数据库已连接.....")
        # 编写sql语句1,创建一个表
        sql1 = '''
        CREATE TABLE stu2 (
              id int(11) NOT NULL AUTO_INCREMENT,
              name varchar(255) DEFAULT NULL,
              age int(11) DEFAULT NULL,
              hobby varchar(255) DEFAULT NULL,
              PRIMARY KEY (id)
            )
        '''
        # INSERT INTO stu(name, age, hobby) VALUES('张三', 12, '打球')  这句话就是给表新增了一个字段。
        name="王五"
        age=14
        hobby="看书"
        zid ="INSERT INTO stu2(name, age, hobby) VALUES('"+name+"', "+str(age)+", '"+hobby+"')"
        # 编写sql语句2,删除一个表
        sql2 = '''
        drop table stu2    
        '''

        # 执行SQL语句
        #cursor.execute(sql1)  # 执行sql1语句
        cursor.execute(zid)  # 执行zid 语句,插入字段。
        # cursor.execute(sql2)   #有注释,所以sql2语句不会被执行
        # 提交数据
        conn.commit()
    except Exception as e:
        print("出现异常:", e)
    finally:
        cursor.close()  # 关闭游标
        conn.close()  # 关闭数据库连接


# ---------------------------
if __name__ == '__main__':
    main()

随机案例:pyton给数据库的表增加字段:字段由变量定义,批量增加100条。并且,姓名、年龄、爱好,都是随机的。

import random

import pymysql


# 获取数据库连接公共方法
def getConnection():
    host = "localhost"
    port = 3306  # 记得使用数字
    user = "zhanghao"
    password = "mima"
    db = "data"  # 数据库名称
    charset = "utf8"

    # 创建数据库连接对象,建立连接
    conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
    return conn


def main():
    conn = getConnection()
    # 创建游标对象(1.执行sql语句;2.处理查询结果)
    cursor = conn.cursor()
    try:
        print("数据库已连接.....")
        # 编写sql语句1,创建一个表
        sql1 = '''
        CREATE TABLE stu2 (
              id int(11) NOT NULL AUTO_INCREMENT,
              name varchar(255) DEFAULT NULL,
              age int(11) DEFAULT NULL,
              hobby varchar(255) DEFAULT NULL,
              PRIMARY KEY (id)
            )
        '''
        # INSERT INTO stu(name, age, hobby) VALUES('张三', 12, '打球')  这句话就是给表新增了一个字段。
        for i in range(100):
            name = random.choice(["王五","赵六","吴芳","张三"])
            age = random.choice([23,26,24,21])
            hobby = random.choice(["看书","听歌","打球","跑步"])
            zid = "INSERT INTO stu2(name, age, hobby) VALUES('" + name + "', " + str(age) + ", '" + hobby + "')"
            # 编写sql语句2,删除一个表
            sql2 = '''
            drop table stu2    
            '''

            # 执行SQL语句
            # cursor.execute(sql1)  # 执行sql1语句
            cursor.execute(zid)  # 执行zid 语句,插入字段。
            # cursor.execute(sql2)   #有注释,所以sql2语句不会被执行
            # 提交数据
            conn.commit()
    except Exception as e:
        print("出现异常:", e)
    finally:
        cursor.close()  # 关闭游标
        conn.close()  # 关闭数据库连接


# ---------------------------
if __name__ == '__main__':
    main()

随机案例:【优化版】pyton给数据库的表增加字段:字段由变量定义,批量增加100条。并且,姓名、年龄、爱好,都是随机的。

优化了拼接:

以前的拼接:zid = "INSERT INTO stu2(name, age, hobby) VALUES('" + name + "', " + str(age) + ", '" + hobby + "')" ,拼接非常麻烦。

现在的拼接:zid1 = "INSERT INTO stu2(name, age, hobby) VALUES((%s),(%s),(%s))",拼接变得简单。

现在修改了执行语句:cursor.execute(zid1,[name,age,hobby])    #cursor.execute  尾部增加了拼接的变量。

import random

import pymysql


# 获取数据库连接公共方法
def getConnection():
    host = "localhost"
    port = 3306  # 记得使用数字
    user = "zhanghao"
    password = "mima"
    db = "data"  # 数据库名称
    charset = "utf8"

    # 创建数据库连接对象,建立连接
    conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=db, charset=charset)
    return conn


def main():
    conn = getConnection()
    # 创建游标对象(1.执行sql语句;2.处理查询结果)
    cursor = conn.cursor()
    try:
        print("数据库已连接.....")
        # 编写sql语句1,创建一个表
        sql1 = '''
        CREATE TABLE stu2 (
              id int(11) NOT NULL AUTO_INCREMENT,
              name varchar(255) DEFAULT NULL,
              age int(11) DEFAULT NULL,
              hobby varchar(255) DEFAULT NULL,
              PRIMARY KEY (id)
            )
        '''
        # INSERT INTO stu(name, age, hobby) VALUES('张三', 12, '打球')  这句话就是给表新增了一个字段。
        for i in range(100):
            name = random.choice(["王五","赵六","吴芳","张三"])
            age = random.choice([23,26,24,21])
            hobby = random.choice(["看书","听歌","打球","跑步"])
            zid1 = "INSERT INTO stu2(name, age, hobby) VALUES((%s),(%s),(%s))"
            # 编写sql语句2,删除一个表
            sql2 = '''
            drop table stu2    
            '''

            # 执行SQL语句
            # cursor.execute(sql1)  # 执行sql1语句
            cursor.execute(zid1,[name,age,hobby])  # 执行zid 语句,插入字段。
            # cursor.execute(sql2)   #有注释,所以sql2语句不会被执行
            # 提交数据
            conn.commit()
    except Exception as e:
        print("出现异常:", e)
    finally:
        cursor.close()  # 关闭游标
        conn.close()  # 关闭数据库连接


# ---------------------------
if __name__ == '__main__':
    main()