zoukankan      html  css  js  c++  java
  • python连接数据库

    一、连接mysql

    1、安装库PyMySQL

    2、2种连接方式。

    # 第一种

    import pymysql
    
    # 直接生成db对象
    db = pymysql.connect(host = 'localhost',
                           port = 3306,
                           user = 'root',
                           password = '123',
                           db = 'mrsoft',
                           charset = 'utf8',
                           cursorclass = pymysql.cursors.DictCursor
                        )
    cursor = db.cursor() # 创建游标
    

    # 第二种

    import pymysql
    
    # 通过字典的方式创建db对象
    dictoj = {
        'host': 'localhost',
        'port': 3306,
        'user': 'root',
        'password': '123',
        'db': 'mrsoft',
        'charset': 'utf8',
        'cursorclass': pymysql.cursors.DictCursor
    }
    db = pymysql.connect(**dictoj)
    

    3、添加数据采用executemany()方法

    # 添加数据 executemany(operation ,seq_of_params)
    data = [
        ('三国演义','四大名著','100.23','2007-1-3'),
        ('水浒传','四大名著','120.12','2004-2-24'),
        ('红楼梦','四大名著','130.29','2003-4-21'),
        ('西游记','四大名著','140.37','2002-7-1'),
        ('java开发','专业书','50.67','2019-1-21'),
        ('php开发实战','专业书','80.19','2017-2-22')
    ]
    try:
        cursor.executemany('insert into books(name,category,price,publish_time) values(%s,%s,%s,%s)', data)
        db.commit()
    except:
        db.rollback()  # 错误时执行回滚操作
    

    4、代码

    import pymysql
    
    """
    # 直接生成db对象
    db = pymysql.connect(host = 'localhost',
                           port = 3306,
                           user = 'root',
                           password = '123',
                           db = 'mrsoft',
                           charset = 'utf8',
                           cursorclass = pymysql.cursors.DictCursor
                        )
    """
    
    # 通过字典的方式创建db对象
    dictoj = {
        'host': 'localhost',
        'port': 3306,
        'user': 'root',
        'password': '123',
        'db': 'mrsoft',
        'charset': 'utf8',
        'cursorclass': pymysql.cursors.DictCursor
    }
    db = pymysql.connect(**dictoj)
    cursor = db.cursor() # 创建游标
    cursor.execute('drop table if exists books') # 游标的execute()方法
    sql = """
    create table books (
        id int(8) not null auto_increment,
        name varchar(50) not null,
        category varchar(50) not null,
        price decimal(10,2) default null,
        publish_time date default null,
        primary key (id)
    ) engine=myisam auto_increment=1 default charset= utf8;
    """
    cursor.execute(sql)  # 执行sql
    
    # 添加数据 executemany(operation ,seq_of_params)
    data = [
        ('三国演义','四大名著','100.23','2007-1-3'),
        ('水浒传','四大名著','120.12','2004-2-24'),
        ('红楼梦','四大名著','130.29','2003-4-21'),
        ('西游记','四大名著','140.37','2002-7-1'),
        ('java开发','专业书','50.67','2019-1-21'),
        ('php开发实战','专业书','80.19','2017-2-22')
    ]
    try:
        cursor.executemany('insert into books(name,category,price,publish_time) values(%s,%s,%s,%s)', data)
        db.commit()
    except:
        db.rollback()  # 错误时执行回滚操作
    
    db.close()
    

      

    二、连接SQL

    1、引入库pymssql

    2、连接

    def conn():
        connect = pymssql.connect('.','sa','123','dbtest')
        if connect :
            print('connect success!')
            return connect
        else:
            print('connect failed!')
    

     3、数据库操作(新建表sql_test,插入数据,查询数据)

     注意插入数据后得commit提交下否则表中没有数据。

    import pymssql
    
    def conn():
        connect = pymssql.connect('.','sa','123','dbtest')
        if connect :
            print('connect success!')
            return connect
        else:
            print('connect failed!')
    
    def createsql():
        cursor.execute('create table sql_test(id varchar(20),name varchar(50) default  null,sex bit not null)')
        db.commit()
        print('create success!')
    
    def inssql():
        sql = "insert into sql_test(id,name,sex) values('1001','张三','0'),('1001','张三','0')"
        print('insert success!')
        return sql
    
    def selectsql():
        sl = 'select id, name, sex from sql_test'
        return  sl
    
    if __name__ == '__main__':
        db  = conn()  # 创建数据库对象
        cursor = db.cursor() # 创建游标
        createsql()  # 创建
        # 插入
        s0 = inssql()
        cursor.execute(s0)
        db.commit() # 插入以后必须得提交,否则没有数据
        # 查询
        s1 = selectsql()
        cursor.execute(s1)
        # 读取查询结果
        row = cursor.fetchone()
        while row :
            print("Id =%s,Name=%s,Sex =%s" % (row[0],row[1],row[2]))
            row = cursor.fetchone()
        cursor.close()
        db.close()
    

      

  • 相关阅读:
    Unity资源打包学习笔记(一)、详解AssetBundle的流程
    Unity实现c#热更新方案探究(三)
    Unity实现c#热更新方案探究(二)
    Unity实现c#热更新方案探究(一)
    对C#热更新方案ILRuntime的探究
    Unity使用C++作为游戏逻辑脚本的研究(二)
    执行composer install/update 命令遇 "You are using an outdated version of Composer. Composer 2.0 is abo...
    php 安装xdebug进行调试(phpstorm)
    phpstudy如何设置Nginx伪静态
    JS正则表达式
  • 原文地址:https://www.cnblogs.com/hqczsh/p/11619482.html
Copyright © 2011-2022 走看看