zoukankan      html  css  js  c++  java
  • Python(34):数据库:使用Python操作MySql数据库和MsSql数据库

    一、MySQL数据库模块的安装和连接

    1、 PyMySQL模块的安装

    pip install pymysql

    2 、python连接数据库

    import pymysql
    
    db = pymysql.connect("127.0.0.1", "root", "123456", "mysql")  # ("数据库ip","用户","密码","数据库" ) 打开数据库连接
    cursor = db.cursor()
    cursor.execute("SELECT VERSION()")  # 使用 execute() 方法执行 SQL 查询
    data = cursor.fetchone()  # 使用 fetchone() 方法获取单条数据
    print("Database version : %s " % data)
    db.close()
    # Database version : 8.0.18

    更多参数版

    import pymysql
    
    conn = pymysql.connect(
            host='localhost', user='root', password="root",
            database='db', port=3306, charset='utf-8',
    )
    
    cur = conn.cursor(cursor=pymysql.cursors.DictCursor)

    二、创建表操作

    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("127.0.0.1", "root", "123456", "mysql")  # 打开数据库连接
    
    # 使用 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)
    
    cursor.execute("desc EMPLOYEE")
    data = cursor.fetchmany(5)
    for row in data:
        print("%s,%s" % (row[0], row[1]))
    
    # 关闭数据库连接
    db.close()
    
    # FIRST_NAME,char(20)
    # LAST_NAME,char(20)
    # AGE,int(11)
    # SEX,char(1)
    # INCOME,float

    三、操作数据

    1、插入操作

    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("127.0.0.1", "root", "123456", "mysql")  # 打开数据库连接

    # 使用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()

    2、 查询操作

    Python查询Mysql使用

    • fetchone(): 方法获取单条数据,
    • fetchmany():方法获取多条数据。
    • fetchall(): 接收全部的返回结果行.
    • rowcount(): 这是一个只读属性,并返回执行execute()方法后影响的行数。
    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("127.0.0.1", "root", "123456", "mysql")  # 打开数据库连接

    # 使用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()

    3、 更新操作

    import pymys
    # 打开数据库连接
    db = pymysql.connect("127.0.0.1", "root", "123456", "mysql")  # 打开数据库连接

    # 使用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()

    4、 删除操作

    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()

    四、MS SQLSever数据库模块的安装和连接

    安装方法一: Pycharm安装失败

    python3.6以上的Pycharm直接安装pymssql是安装失败的,因为在提供的库里面最新版本不对应python版本。

    例如:python3.6以上,pycharm里的库地址是 https://pypi.python.org/simple ,此库中最新版只支持到python3.5。

    安装方法二:pip安装失败

    3.6以上直接使用命令 pip install pymssql也是安装不了的。

    1、正确安装方法:

    去https://www.lfd.uci.edu/~gohlke/pythonlibs/ 这里下载

    image_thumb1

    根据python版本下载后 ,执行下面的安装就行了(记得直接在pymssql‑2.1.4.dev5‑cp37‑cp37m‑win_amd64.whl 所在的文件夹打开CMD,或者指定文件路径)

    pip install pymssql‑2.1.4‑cp38‑cp38‑win_amd64.whl

    image_thumb2

    2、Python操作sqlserver介绍

    1、数据库连接类及参数介绍

    • pymssql.connect:sqlserver连接的连接类。
    • host(str):需要连接的数据库主机和实例。如:ip、ipSQLEXPRESS、.SQLEXPRESS等。
    • user(str):连接数据库的用户名。如:sa、test等。
    • password(str):连接数据库对应用户名的密码。
    • database(str):需要操作的数据库。
    • timeout(int):在几秒钟内查询超时,默认值为0无限等待。
    • login_timeout(int):连接超时和登录超时时间,默认值为60。
    • charset(str):连接数据库使用的字符集。
    • as_dict(bool):是否作为字典返回,默认为元组。

    2、数据库连接对象的方法

    • connection.close():关闭数据库连接。
    • connection.cursor():返回一个游标对象,该对象可以用于查询并从数据库中获取结果。
    • connection.commit():提交当前事务。你必须调用这个方法来确保你的数据执行。
    • connection.autocommit():那里的状况是一个布尔值。该方法将决定自动提交模式打开或关闭。

    3、Cusor 对象方法

    • Cursor.close():关闭游标对象,该游标对象无法再使用。
    • Cursor.execute():操作字符串和参数。
    • Cursor.fetchall():将查询结果返回成一个元组。

    ps:http://www.pymssql.org/en/stable/ref/pymssql.html#connection-class 官方文档地址。

    3、实例:

    import pymssql
    
    conn = pymssql.connect(host='10.0.0.21', user='zhusu', password='prd4ZS@', database='12')
    cur = conn.cursor()
    cur.execute('select top 5 * from [dbo].[MouldChange]')
    # 如果update/delete/insert记得要conn.commit()
    # 否则数据库事务无法提交
    print(cur.fetchall())
    cur.close()
    conn.close()
  • 相关阅读:
    集合框架
    hashtable
    测试3
    opcache的威力
    信息的信息
    php blog to explore
    BEHAT安装
    Failed to start: SocketListener0@0.0.0.0:4444
    模板方法设计模式
    mysqldump
  • 原文地址:https://www.cnblogs.com/springsnow/p/12024715.html
Copyright © 2011-2022 走看看