zoukankan      html  css  js  c++  java
  • MySQL Connector/Python 接口 (二)

    连接数据库

    本文参见这里,示例如何连接MySQL 数据库。

    import mysql.connector
    from mysql.connector import errorcode
    
    # 连接数据库需要的参数
    # `use_pure` 表示使用纯Python版本的接口,如果置为False,表示使用C库版本的接口,前提是你已经安装了C库版本的接口。
    config = {
        'user':'scott',
        'password':'tiger',
        'host':'127.0.0.1',
        'database':'employees',
        'raise_on_warnings':True,
        'use_pure':False,
    }
    
    
    try:
        cnx = mysql.connector.connect(**config)
        # do something ...
        # ...
        #最后关闭连接
        cnx.close()
    except mysql.connector.Error as err:
        if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
            print("Something is wrong with your user name or password")
        elif err.errno == errorcode.ER_BAD_DB_ERROR:
            print("Database does not exist")
        else:
            print(err)
    
    

    创建数据库

    本文参见这里,所有的DDL语句都是通过 cursor 执行的,下面的例子介绍了如何通过 cursor 创建数据库。

    from __future__ import print_function
    
    import mysql.connector
    from mysql.connecotr import errorcode
    
    # 数据库名字
    DB_NAME = "employees"
    
    # 表格名字,以及表格的创建语句
    TABLES = []
    TABLES['employees'] = (
        "CREATE TABLE `employees` ("
        " `emp_no` INT(11) NOT NULL AUTO_INCREMENT,"
        " `birth_date` DATE NOT NULL,"
        " `first_name` VARCHAR(14) NOT NULL,"
        " `last_name` VARCHAR(16) NOT NULL,"
        " `gender` ENUM('M', 'F') NOT NULL,"
        " `hire_date` DATE NOT NULL,"
        " PRIMARY KEY (`emp_no`)"
        ") ENGINE=InnoDB"
    )
    
    
    # 定义一个函数,创建数据库并处理创建失败异常的情况
    def create_database(cursor):
        try:
            cursor.execute("CREATE DATABASE {} DEFAULT CHARACTER SET 'utf8'".format(DB_NAME))
        except mysql.connector.Error as err:
            print("Failed creating database: {}".format(err))
            exit(1)
    
    
    ################# 主流程  #########################
    # 连接数据库
    cnx = mysql.connector.connect(user='scott')
    # 获得 cursor
    cursor = cnx.cursor()
    
    
    # 开始创建一个数据库
    try:
        cnx.database = DB_NAME
    except mysql.connector.Error as err:
        if err.errno == errorcode.ER_BAD_DB_ERROR:
            create_database(cursor)
            cnx.database = DB_NAME
        else:
            print(err)
            exit(1)
    
    # 创建表格
    for name, ddl in TABLES.iteritems():
        try:
            print("Creating table {}: ".format(name), end=" ")
            curosr.execute(dll)
        except mysql.connecotr.Error as err:
            if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:
                print("already exists.")
            else:
                print(err.msg)
        else:
            print("OK")
    
    
    # 在这里做其他处理
    
    
    # 最后关闭cursor,cnx
    cursor.close()
    cnx.close()
    
    
  • 相关阅读:
    Elasticsearch系列---常见搜索方式与聚合分析
    Elasticsearch系列---Elasticsearch的基本概念及工作原理
    Elasticsearch系列---初识Elasticsearch
    记一次ES查询数据突然变为空的问题
    04、管道符、重定向与环境变量
    03、新手必须掌握的Linux命令
    02、安装Linux系统
    01、VM安装教程
    02、HTML 基础
    01、HTML 简介
  • 原文地址:https://www.cnblogs.com/LinTeX9527/p/7750817.html
Copyright © 2011-2022 走看看