zoukankan      html  css  js  c++  java
  • 数据库操作

    一、引入pymysql

     import pymysql

    二、获取与数据库的连接

    两种方法

    1.连接数据库

    import pymysql
    
    conn = pymysql.connect(
                    host="*.*.*.*",#数据库IP
                    user="*",#数据库的用户名
                    password="*",#密码
                    db="*",#数据库名
                    port=3306,#数据库端口
                    charset="utf8",#字符集
                    autocommit=True #自动提交
                    )#连接数据库

    2.连接数据库

    import pymysql
    
    mysql_info = {
        "host":"*.*.*.*",#数据库IP
        "user":"*",#数据库的用户名
        "password":"*",#密码
        "db":"*",#数据库名
        "port":3306,#数据库端口
        "charset":"utf8",#字符集
        "autocommit":True #自动提交
    }
    def execute_sql(sql,more=True,db_info=None):
        if db_info:
            conn = pymysql.connect(**db_info)
        else:
            conn = pymysql.connect(**mysql_info) 

    三、执行SQL语句和存储过程

    1.建立游标,获得一个cursor对象,

    cursor = conn.cursor(pymysql.cursors.DictCursor) #建立游标

    2.接下来,我们会使用cursor提供的方法来进行工作.,这些方法包括两大类

    1.执行命令

    callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
    execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
    executemany(self, query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
    nextset(self):移动到下一个结果集

    cursor.execute('insert into students (name,phone,age,sex) values ("华华","13712312321",18,"女");' )#
    cursor.execute('update students set name = "小白" where id = 1')#
    cursor.execute("select * from students;") #
    cursor.execute('select * from students where phone="13712312321";'#
    cursor.execute("show tables;")#查看当前所有表
    conn.commit() #提交,若连接数据时已设置自动提交,则不需要执行再次执行提交,否则需要提交才能真正执行sql语句

    2.接收返回值

    fetchall(self):接收全部的返回结果行.
    fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
    fetchone(self):返回一条结果行.
    scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一 行移动value条.

    result = cursor.fetchone()#获取单条
    result = cursor.fetchmany(5) #获取n条
    result = cursor.fetchall()#获取sql执行的结果
    print(result)
    
    for line in cursor:#表数据比较多的时候就用它
        print(line)
    
    print(cursor.description) #表的字段信息

    四、关闭数据库连接

    cursor.close()#关闭指针对象
    conn.close()#关闭连接对象
    加油
  • 相关阅读:
    How to become a hacker
    逻辑地址、线性地址、物理地址和虚拟地址
    java configuration
    Java 理论与实践: 变还是不变?
    Teach Yourself Programming in Ten Years
    border padding margin , the difference among them
    hashCode方法,equals方法,HashSet,HasMap之间的关系
    工程名 显示红色叹号
    记The_C_Programming_Language的错误
    VIM简单介绍学习1
  • 原文地址:https://www.cnblogs.com/huahuacheng/p/14320306.html
Copyright © 2011-2022 走看看