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()
  • 相关阅读:
    laravel tymon/jwt-auth header 发送token
    laravel migrate时报错:Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
    laravel 报错 class not exist
    HTTP 状态码详解大全 | HTTP Status Codes
    JS,jquery 无法获取到动态插入的元素
    关键字
    PHP 配置默认SSL CA证书
    phpunit 配置
    plantuml 手册
    Windows使用RunHiddenConsole一键启动nginx,php-cgi服务
  • 原文地址:https://www.cnblogs.com/xuechaojun/p/10166799.html
Copyright © 2011-2022 走看看