• 欢迎使用千万蜘蛛池,网站外链优化,蜘蛛池引蜘蛛快速提高网站收录,收藏快捷键 CTRL + D

“Python如何连接数据库?一文带你轻松掌握MySQL和SQLite的连接方法”


连接到数据库是进行数据操作的前提,无论是Python还是C,都支持连接数据库。Python和C都可以连接主流的数据库,如MySQL、PostgreSQL等。在接下来的内容中,将会具体介绍Python和C连接到MySQL数据库的方式。

python和c如何连接数据库

Python连接MySQL数据库

安装数据库驱动

在Python中,你需要为你使用的MySQL数据库安装相应的驱动,以MySQL为例,你可以使用pip安装mysql-connector-python

pip install mysql-connector-python

连接数据库

在安装了数据库驱动之后,你可以使用以下代码连接到MySQL数据库:

import mysql.connector

# 创建连接
cnx = mysql.connector.connect(
    host="localhost",
    user="your_username",
    password="your_password",
    database="your_database"
)

# 创建游标
cursor = cnx.cursor()

# 执行SQL查询
cursor.execute("SELECT * FROM your_table")

# 获取查询结果
rows = cursor.fetchall()
for row in rows:
    print(row)

# 关闭游标和连接
cursor.close()
cnx.close()

插入数据

要向MySQL数据库中插入数据,你可以使用以下代码:

import mysql.connector

# 创建连接
cnx = mysql.connector.connect(
    host="localhost",
    user="your_username",
    password="your_password",
    database="your_database"
)

# 创建游标
cursor = cnx.cursor()

# 插入数据的SQL语句
insert_data = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
data = ("value1", "value2")

# 执行SQL插入操作
cursor.execute(insert_data, data)

# 提交事务
cnx.commit()

# 关闭游标和连接
cursor.close()
cnx.close()

C连接MySQL数据库

安装数据库驱动

在Linux系统上,你可以使用以下命令安装MySQL驱动:

sudo apt-get install libmysqlclient-dev

在Windows系统上,你需要从MySQL官网下载并安装MySQL Connector/C,下载完成后,将解压后的文件夹添加到你的项目中。

连接数据库

以下是一个简单的C程序,用于连接到MySQL数据库:

#include 
#include 

int main() {
    MYSQL *conn; // 定义一个指向MYSQL的指针变量conn
    MYSQL_RES *res; // 定义一个指向MYSQL_RES的指针变量res,用于存储查询结果集的数据结构体指针数组的首地址,MYSQL_RES是一个结构体类型,用于表示查询结果集
    MYSQL_ROW row; // 定义一个指向MYSQL_ROW的指针变量row,表示一行数据,每个元素都是一个指向char的指针,表示一行数据

    char *server = "localhost";
    char *user = "your_username";
    char *password = "your_password";
    char *database = "your_database";
    char *query = "SELECT * FROM your_table";

    conn = mysql_init(NULL); // 初始化MYSQL指针变量
    if (!conn) { // 如果无法初始化MYSQL指针变量,打印一条错误消息到标准错误输出流并退出程序
        fprintf(stderr, "mysql_init() failed: %s\n", mysql_error(conn));
        exit(EXIT_FAILURE);
    }

    // 调用mysql_real_connect函数来连接到数据库
    if (mysql_real_connect(
            conn, // 指向MYSQL的指针变量conn
            server, // MySQL服务器的主机名或IP地址
            user, // MySQL服务器的用户名
            password, // MySQL服务器的密码
            database, // MySQL数据库名
            0, // MySQL服务器端口号
            NULL, // Unix套接字文件的路径名,NULL表示使用TCP/IP协议
            0 // 连接选项,这里设为0表示使用默认连接选项
    ) == NULL) { // 如果无法连接到数据库,打印一条错误消息到标准错误输出流并退出程序
        fprintf(stderr, "Failed to connect to database: %s\n", mysql_error(conn));
        exit(EXIT_FAILURE);
    }

    // 调用mysql_real_query函数来执行SQL查询
    if (mysql_real_query(conn, query, strlen(query)) != 0) { // 如果SQL查询执行失败,打印一条错误消息到标准错误输出流并退出程序
        fprintf(stderr, "Failed to execute query: %s\n", mysql_error(conn));
        mysql_close(conn); // 调用mysql_close函数来关闭数据库连接
        exit(EXIT_FAILURE);
    }

    // 调用mysql_store_result函数来获取查询结果集的句柄
    res = mysql_store_result(conn);
    if (res == NULL) { // 如果无法获取查询结果集的句柄,打印一条错误消息到标准错误输出流并退出程序
        fprintf(stderr, "Failed to fetch data: %s\n", mysql_error(conn));
        mysql_close(conn); // 调用mysql_close函数来关闭数据库连接
        exit(EXIT_FAILURE);
    }

    // 遍历查询结果集,并打印每一行的数据
    int num_fields = mysql_num_fields(res);
    while ((row = mysql_fetch_row(res))) {
        for (int i = 0; i < num_fields; i++) {
            const char *field_name = mysql_fetch_field_direct(res, i)->name;
            int field_type = mysql_fetch_field_direct(res, i)->type;
            long long length = strlen(row[i]);
            printf("%s = ", field_name);
            switch (field_type) {
                case MYSQL_TYPE_DATE:
                case MYSQL_TYPE_DATETIME:
                case MYSQL_TYPE_TIMESTAMP:
                    printf("%s", row[i] ? row[i] : "NULL");
                    break;
                case MYSQL_TYPE_TINY:
                case MYSQL_TYPE_SHORT:
                case MYSQL_TYPE_LONG:
                case MYSQL_TYPE_LONGLONG:
                    printf("%lld", atoll(row[i]));
                    break;
                case MYSQL_TYPE_FLOAT:
                case MYSQL_TYPE_DOUBLE:
                    printf("%f", atof(row[i]));
                    break;
                case MYSQL_TYPE_STRING:
                case MYSQL_TYPE_VAR_STRING:
                case MYSQL_TYPE_BLOB:
                case MYSQL_TYPE_SET:
                case MYSQL_TYPE_ENUM:
                default:
                    printf("%s", row[i] ? row[i] : "NULL");
                    break;
            }
            printf("\n");
        }
    }

    mysql_free_result(res); // 调用mysql_free_result函数来释放查询结果集占用的资源
    mysql_close(conn); // 调用mysql_close函数来关闭数据库连接

    return 0;
}

结论

Python和C都支持连接到MySQL数据库,并提供了相应的库和API,使得数据操作变得非常方便。在使用MySQL数据库时,你可以根据自己的需求,选择合适的编程语言和库来完成数据操作。

相关问题

1、如何在Python中创建数据库?

2、如何在C中执行SQL查询并获取查询结果集?

如果有任何问题或建议,请在评论区留言,感谢你的观看,希望对你有所帮助。

如果觉得本文不错,欢迎点赞、关注、分享。

谢谢!

本文链接:https://www.24zzc.com/news/171294666467092.html

相关文章推荐

    无相关信息

蜘蛛工具

  • WEB标准颜色卡
  • 中文转拼音工具
  • 域名筛选工具