zoukankan      html  css  js  c++  java
  • Python操作MySQL

    python连接数据库

    复制代码
    import pymysql
    
    db = pymysql.connect("数据库ip","用户","密码","数据库" ) # 打开数据库连接
    cursor.execute("SELECT VERSION()")                    # 使用 execute() 方法执行 SQL 查询
    data = cursor.fetchone()                              # 使用 fetchone() 方法获取单条数据
    print ("Database version : %s " % data)
    db.close()                                            # 关闭数据库连接
    复制代码
     更多参数

    创建表操作

    复制代码
    import pymysql
     
    # 打开数据库连接
    db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
     
    # 使用 execute() 方法执行 SQL,如果表存在则删除
    cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
     
    # 使用预处理语句创建表
    sql = """CREATE TABLE EMPLOYEE (
             FIRST_NAME  CHAR(20) NOT NULL,
             LAST_NAME  CHAR(20),
             AGE INT,  
             SEX CHAR(1),
             INCOME FLOAT )"""
     
    cursor.execute(sql)
     
    # 关闭数据库连接
    db.close()
    复制代码

    操作数据

    插入操作

    复制代码
    import pymysql
     
    # 打开数据库连接
    db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
     
    # SQL 插入语句
    sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
             LAST_NAME, AGE, SEX, INCOME)
             VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
    try:
       cursor.execute(sql) # 执行sql语句
       db.commit()         # 提交到数据库执行
    except:
       db.rollback()       # 如果发生错误则回滚
     
    # 关闭数据库连接
    db.close()
    复制代码
    import pymysql
     
    # 打开数据库连接
    db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
     
    # SQL 插入语句
    sql = "INSERT INTO EMPLOYEE(FIRST_NAME, 
           LAST_NAME, AGE, SEX, INCOME) 
           VALUES (%s, %s,  %s,  %s,  %s )" % 
           ('Mac', 'Mohan', 20, 'M', 2000)
    try:
       
       cursor.execute(sql)  # 执行sql语句
       db.commit()          # 执行sql语句
    except:
       db.rollback()        # 发生错误时回滚
     
    # 关闭数据库连接
    db.close()

    查询操作

    Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

    • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
    • fetchall(): 接收全部的返回结果行.
    • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
    复制代码
    import pymysql
     
    # 打开数据库连接
    db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
     
    # SQL 查询语句
    sql = "SELECT * FROM EMPLOYEE 
           WHERE INCOME > %s" % (1000)
    try:
       
       cursor.execute(sql)# 执行SQL语句
       results = cursor.fetchall()# 获取所有记录列表
       for row in results:
          fname = row[0]
          lname = row[1]
          age = row[2]
          sex = row[3]
          income = row[4]
           # 打印结果
          print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % 
                 (fname, lname, age, sex, income ))
    except:
       print ("Error: unable to fetch data")
     
    # 关闭数据库连接
    db.close()
    复制代码

    更新操作

    复制代码
    import pymysql
     
    # 打开数据库连接
    db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
     
    # SQL 更新语句
    sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
    try:
       cursor.execute(sql)  # 执行SQL语句
       db.commit()          # 提交到数据库执行
    except
       db.rollback()        # 发生错误时回滚
     
    # 关闭数据库连接
    db.close()
    复制代码

    删除操作

    复制代码
    import pymysql
     
    # 打开数据库连接
    db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
     
    # SQL 删除语句
    sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
    try
       cursor.execute(sql)  # 执行SQL语句
       db.commit()          # 提交修改
    except
       db.rollback()        # 发生错误时回滚
    db.close()         # 关闭连接
    复制代码

     sql注入

    import pymysql
    
    conn = pymysql.connect(host='127.0.0.1', user='root', password="123",
                     database='day43')
    cur = conn.cursor()
    user = "akhksh' or 1=1 ;-- "
    password = '*******'
    sql = "select * from userinfo where username = %s and password =%s;"
    print(sql)
    cur.execute(sql,(user,password))
    ret = cur.fetchone()
    print(ret)
    cur.close()
    conn.close()
  • 相关阅读:
    thinkphp5 tp5 命名空间 报错 Namespace declaration statement has to be the very first statement in the script
    开启 php 错误 提示 php-fpm 重启 nginx 500错误 解决办法 wdlinux lnmp 一键包 php脚本无法解析执行
    js 设置 cookie 定时 弹出层 提示层 下次访问 不再显示 弹窗 getCookie setCookie setTimeout
    php 二维数组 转字符串 implode 方便 mysql in 查询
    nginx 重启 ps -ef|grep nginx kill -HUP 主进程号
    jquery bootstrap help-block input 表单 提示 帮助 信息
    jquery 倒计时 60秒 短信 验证码 js ajax 获取
    jQuery如何获取同一个类标签的所有的值 遍历
    linux下C语言文件操作相关函数
    gcc,gdb用法
  • 原文地址:https://www.cnblogs.com/biulo/p/11291249.html
Copyright © 2011-2022 走看看