ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Python操作数据库增删查改

2022-01-19 13:00:18  阅读:149  来源: 互联网

标签:execute Python res db cursor print 查改 增删 password


import pymysql

def opop1():
    """
    创建一个表
    :return:
    """
    try:
        db = pymysql.connect(host="localhost", user="root", password="root", database="lzy",charset="utf8")
        #host 链接本机  user账户 password密码 database索要打开的库 charestUTF8
        print("数据库链接成功!")
        cursor = db.cursor()
        #使用cursor()方法创建一个游标
        cursor.execute("DROP TABLE IF EXISTS booksss")
        #使用execute()方法执行SQL,如果表存在则删除
        sql = """
        CREATE TABLE booksss(
            编号 int(8) NOT NULL,
            书名 varchar (50) NOT NULL,
            作者 varchar (50) NOT NULL,
            价格 decimal(10,2) DEFAULT NULL, 
            出版日期 date DEFAULT NULL
        ) 
        """
        #使用预处理语句创建表
        cursor.execute(sql)
        #执行sql语句
        db.close()
        #关闭数据库
    except pymysql.Error as e:
            print("数据库链接失败:"+str(e))

def opop2():
    """
    向表里插入信息
    :return:
    """
    try:
        db = pymysql.connect(host="localhost", user="root", password="root", database="lzy",charset="utf8")
        #host 链接本机  user账户 password密码 database索要打开的库 charestUTF8
        print("数据库链接成功!")
        cursor = db.cursor()
        #使用cursor()方法创建一个游标
        data = [("1","《红楼梦》","曹雪芹","810","1990-1-5"),
                ("2","《三国演义》","罗贯中","820","1990-6-5"),
                ("3","《西游记》","吴承恩","801","1990-5-5"),
                ("4","《水浒传》","施耐庵","803","1990-4-5"),
                ("5","《神雕侠侣》","金庸","840","1990-2-5")
                ]
        try:
                cursor.executemany("insert into booksss(编号,书名,作者,价格,出版日期)values (%s,%s,%s,%s,%s)",data)
                #执行sql语句,插入多条数据
                db.commit()
                #提交数据
        except :
            db.rollback()
            #发生错误时回滚
        db.close()
        #关闭数据库连接
    except pymysql.Error as e:
            print("数据库链接失败:"+str(e))

def opop3():
    """
    查询数据
    :return:
    """
    db = pymysql.connect(host="localhost", user="root", password="root", database="lzy", charset="utf8")
    # host 链接本机  user账户 password密码 database索要打开的库 charestUTF8
    print("数据库链接成功!")
    cursor = db.cursor()
    # 使用cursor()方法创建一个游标
    cursor.execute("select * from booksss;")
    while 1:
        res = cursor.fetchone()
        if res is None:
            # 表示已经取完结果集
            break
        print(res)
    cursor.close()
    db.commit()
    db.close()
    print('sql执行成功')


def opop4():
    """
    删除数据
    :return:
    """
    db = pymysql.connect(host="localhost", user="root", password="root", database="lzy", charset="utf8")
    # host 链接本机  user账户 password密码 database索要打开的库 charestUTF8
    print("数据库链接成功!")
    cursor = db.cursor()

    # 删除前查询所有数据
    cursor.execute("select * from booksss;")
    print('删除前的数据为:')
    for res in cursor.fetchall():
        print(res)

    print('*' * 40)
    # 删除1条数据
    sql = "delete from booksss where 作者 like '施耐庵';"
    cursor.execute(sql)

    # 删除后查询所有数据
    cursor.execute("select * from booksss;")
    print('删除后的数据为:')
    for res in cursor.fetchall():
        print(res)
    cursor.close()
    db.commit()
    db.close()
    print('sql执行成功')


def opop5():
    """
    修改数据
    :return:
    """
    db = pymysql.connect(host="localhost", user="root", password="root", database="lzy", charset="utf8")
    # host 链接本机  user账户 password密码 database索要打开的库 charestUTF8
    print("数据库链接成功!")
    cursor = db.cursor()

    # 修改前查询所有数据
    cursor.execute("select * from booksss;")
    print('修改前的数据为:')
    for res in cursor.fetchall():
        print(res)

    print('*' * 40)
    # 更新表中第1条数据
    cursor.execute("update booksss set 作者 = '李自扬' where 编号=3")

    # 修改后查询所有数据
    cursor.execute("select * from booksss;")
    print('修改后的数据为:')
    for res in cursor.fetchall():
        print(res)

    cursor.close()
    db.commit()
    db.close()
    print('sql执行成功')


if __name__ == '__main__':
    opop5()

标签:execute,Python,res,db,cursor,print,查改,增删,password
来源: https://blog.csdn.net/weixin_56705224/article/details/122578379

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有