zoukankan      html  css  js  c++  java
  • Python全栈开发之---mysql数据库

    1、数据库的安装和连接

     1 #数据库安装
     2 pip install PyMySQL
     3 
     4 #数据库操作
     5 import pymysql
     6 
     7 db = pymysql.connect("数据库ip","用户","密码","数据库" ) # 打开数据库连接
     8 cursor.execute("SELECT VERSION()")                    # 使用 execute() 方法执行 SQL 查询
     9 data = cursor.fetchone()                              # 使用 fetchone() 方法获取单条数据
    10 print ("Database version : %s " % data)
    11 db.close()                                            # 关闭数据库连接
    12 
    13 import pymysql
    14 
    15 conn = pymysql.connect(
    16         host='localhost', user='root', password="root",
    17         database='db', port=3306, charset='utf-8',
    18 )
    19 
    20 cur = conn.cursor(cursor=pymysql.cursors.DictCursor)

    2、创建表操作

     1 import pymysql
     2  
     3 # 打开数据库连接
     4 db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     5  
     6 # 使用cursor()方法获取操作游标 
     7 cursor = db.cursor()
     8  
     9 # SQL 插入语句
    10 sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
    11          LAST_NAME, AGE, SEX, INCOME)
    12          VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
    13 try:
    14    cursor.execute(sql) # 执行sql语句
    15    db.commit()         # 提交到数据库执行
    16 except:
    17    db.rollback()       # 如果发生错误则回滚
    18  
    19 # 关闭数据库连接
    20 db.close()
    21 
    22 import pymysql
    23  
    24 # 打开数据库连接
    25 db = pymysql.connect("localhost","testuser","test123","TESTDB" )
    26  
    27 # 使用cursor()方法获取操作游标 
    28 cursor = db.cursor()
    29  
    30 # SQL 插入语句
    31 sql = "INSERT INTO EMPLOYEE(FIRST_NAME, 
    32        LAST_NAME, AGE, SEX, INCOME) 
    33        VALUES (%s, %s,  %s,  %s,  %s )" % 
    34        ('Mac', 'Mohan', 20, 'M', 2000)
    35 try:
    36    
    37    cursor.execute(sql)  # 执行sql语句
    38    db.commit()          # 执行sql语句
    39 except:
    40    db.rollback()        # 发生错误时回滚
    41  
    42 # 关闭数据库连接
    43 db.close()
    44 
    45 另一种形式

    3、查询操作

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

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

     4、更新操作

     1 import pymysql
     2  
     3 # 打开数据库连接
     4 db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     5  
     6 # 使用cursor()方法获取操作游标 
     7 cursor = db.cursor()
     8  
     9 # SQL 更新语句
    10 sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
    11 try:
    12    cursor.execute(sql)  # 执行SQL语句
    13    db.commit()          # 提交到数据库执行
    14 except
    15    db.rollback()        # 发生错误时回滚
    16  
    17 # 关闭数据库连接
    18 db.close()

     5、删除操作

     1 import pymysql
     2  
     3 # 打开数据库连接
     4 db = pymysql.connect("localhost","testuser","test123","TESTDB" )
     5  
     6 # 使用cursor()方法获取操作游标 
     7 cursor = db.cursor()
     8  
     9 # SQL 删除语句
    10 sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
    11 try
    12    cursor.execute(sql)  # 执行SQL语句
    13    db.commit()          # 提交修改
    14 except
    15    db.rollback()        # 发生错误时回滚# 关闭连接
    16 db.close()
  • 相关阅读:
    MSSQL大量数据时,建立索引或添加字段后保存更改超时该这么办
    POJ 3261 Milk Patterns (后缀数组)
    POJ 1743 Musical Theme (后缀数组)
    HDU 1496 Equations (HASH)
    694. Distinct Substrings (后缀数组)
    POJ 1222 EXTENDED LIGHTS OUT (枚举 或者 高斯消元)
    POJ 1681· Painter's Problem (位压缩 或 高斯消元)
    POJ 1054 The Troublesome Frog (hash散列)
    HDU 1716 排列2
    HDU 4405 Aeroplane chess (概率DP & 期望)
  • 原文地址:https://www.cnblogs.com/xuechaojun/p/10166799.html
Copyright © 2011-2022 走看看