zoukankan      html  css  js  c++  java
  • 使用PyMySQL操作sql数据库

    PyMySQL是Python3.x版本中用于连接MySQL服务器的一个库,Python2中使用mysqldb。PyMySQL库安装命令:

    pip install pymysql

    一、pymysql的主要方法

    pymysql.connect()参数说明:(连接数据库时需要设置的参数)
    host(str): MySQL服务器地址
    port(int): MySQL服务器的端口号
    user(str): 数据库登录用户名
    passwd(str): 数据库登录密码
    db(str): 数据库名称
    charset(str): 连接编码

    connect()对象支持的方法:
    cursor() 使用该连接创建并返回游标
    commit() 提交当前事务
    rollback() 回滚当前事务
    close() 关闭连接

    cursor对象支持的方法
    execute(op) 执行一个数据库的查询命令
    fetchone() 取得结果集的下一行
    fetchmany(size) 获取结果集的下几行
    fetchhall() 获取结果集中的所有行
    rowcount() 返回数据条数或影响行数
    close() 关闭游标对象

    二、数据库基本操作案例

    # -*- coding:utf-8 -*-
    """
    __project_ = 'p_pymysql'
    __file_name__ = 'p_pymysql'
    __author__ = 'xbxia'
    __time__ = '2020/3/1 16:30'
    __product_name = PyCharm
    # code is far away from bugs with the god animal protecting
        I love animals. They taste delicious.
                  ┏┓      ┏┓
                ┏┛┻━━━┛┻┓
                ┃        ┃
                ┃  ┳┛  ┗┳  ┃
                ┃      ┻      ┃
                ┗━┓      ┏━┛
                    ┃      ┗━━━┓
                    ┃  神兽保佑    ┣┓
                    ┃ 永无BUG!   ┏┛
                    ┗┓┓┏━┳┓┏┛
                      ┃┫┫  ┃┫┫
                      ┗┻┛  ┗┻┛
    """
    
    import pymysql.cursors
    
    # 1、连接数据库
    conn = pymysql.connect(
        host='172.16.22.132',
        port=63306,
        user='root',
        passwd='sa',
        db='student',
        charset='utf8'
    )
    
    #创建一个可以执行SQL语句的光标对象
    cursor = conn.cursor()      #执行完毕返回的结果集默认以元组显示
    #cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)   #作为字典返回的游标
    
    # 定义要执行的SQL语句
    # 2、建库
    # sql_database = """
    # create database student;
    # """
    # cursor.execute(sql_database)
    # 3、建表
    # sql_table_student = """
    # create table student(
    # id int(12) not null PRIMARY key,
    # name varchar(12),
    # sex varchar(12),
    # class_id varchar(12),
    # school_id varchar(12),
    # address varchar(12),
    # create_date datetime,
    # update_date datetime
    # )DEFAULT CHARSET=utf8;
    # """
    # cursor.execute(sql_table_student)
    #
    # sql_table_grade = """
    # create table grade(
    # id int(12) not null PRIMARY key,
    # grade varchar(12)
    # )DEFAULT CHARSET=utf8;
    # """
    # cursor.execute(sql_table_grade)
    
    # 4、插入数据
    # sql_insert_grade = """
    # insert into grade(id,grade) values(1,'高一年级');
    # """
    # cursor.execute(sql_insert_grade)
    
    # 一次插入多条数据
    # sql_insert_student = """
    # insert into student(id,sex,create_date) values(1,'女',SYSDATE()),(2,'男',SYSDATE());
    # """
    # cursor.execute(sql_insert_student)
    
    # 5、修改数据
    # sql_update_student = "update student set sex='男/女';"
    # cursor.execute(sql_update_student)
    # 修改满足条件的数据记录
    # sql_update_student = "update student set sex='女' where id=2;"
    # cursor.execute(sql_update_student)
    
    # 6、查询数据
    sql_select_student = "select * from student;"
    cursor.execute(sql_select_student)
    # 查询所有数据,以默认元组形式返回,进行迭代处理
    for i in cursor.fetchall():
        print(i)
    print("共查询到:", cursor.rowcount, "条数据")
    # 获取第一行数据
    # result_1 = cursor.fetchone()
    # print(result_1)
    # 获取前n行数据
    # result_3 = cursor.fetchmany(3)
    # print(result_3)
    
    # 7、删除表里满足条件的数据
    # sql_delete_student = "delete from student where sex='男/女';"
    # cursor.execute(sql_delete_student)
    
    # 8、删表
    # sql_drop_table = "drop table grade;"
    # cursor.execute(sql_drop_table)
    
    # 9、删库
    # sql_drop_database = "drop database student;"
    # cursor.execute(sql_drop_database)
    
    conn.commit()     #提交,不然无法保存插入或修改的数据
    cursor.close()    #关闭游标
    conn.close()     #关闭连接
     
  • 相关阅读:
    mysql-workbench-community报错解决办法
    前端技术交流群
    h5页面在浏览器上好好的,到手机上熄火了又看不到报错信息怎么办?
    【面试篇】金九银十面试季,这些面试题你都会了吗?
    [译]8个惊人的HTML按钮悬停效果,不看后悔一辈子
    'Component' is defined but never used
    DNS协议
    HTTP协议
    套接字Socket
    GYM102219H Are You Safe?(凸包)
  • 原文地址:https://www.cnblogs.com/relustarry/p/12388832.html
Copyright © 2011-2022 走看看