ubuntu环境中操作MySQL,使用C语言API调用MySQL

前言:最近准备做毕业设计,初次接触到MySQL,做一个学习记录


安装MySQL:傻瓜式安装

sudo apt-get install mysql-server
apt-get install libmysqlclient-dev 这个记得要装,不然编程的时候找不到mysql.h文件


操作MySQL

1.打开终端,准备登录  
    mysql -h 127.0.0.1 -u root -p //root为用户名  127.0.0.1为主机名,即允许用什么IP登录,这些都是在创建用户的时候就写好的
2..创建新的用户
     create user '用户名'@'登录IP' identified by '密码' 例如:create user 'zouwm'@'127.0.0.1' identified by '123456'
3.用户授权
    grant 权利 on databasename.tablename to 用户     例如:grant all on *.* to zouwm  *.*代表所有数据库的所有表
4.创建数据库
    create database 数据库 例如:create database test
5.创建表
    首先指定数据库 use 数据库 例如:use test
    创建表
    create table S_RESIDENCE(   
   USER_ID VARCHAR(20) NOT NULL,
   PHONE VARCHAR(20),
   NAME VARCHAR(30),
   VILLAGE_NAME VARCHAR(100),
   VILLAGE_ID VARCHAR(20) NOT NULL,
   RESIDENCE_ADDR VARCHAR(200),
   STATE CHAR(1),
   PRIMARY KEY(USER_ID)
   );


C语言操作MySQL

Mysql API数据结构   

      MYSQL

       连接数据库前,必须先创建MYSQL变量,此变量在很多Mysql API函数会用到。它包含了一些连接信息等数据。

       MYSQL_RES

       MYSQL_RES结构体中包含了查询结果集,也就是从数据库中查询到的数据。可以使用mysql_store_result或mysql_use_result函数获得。

       MYSQL_ROW

       MYSQL ROW的定义如下:

             typedef char **MYSQL_ROW;

       可见,它实际上是char **类型,指向一个字符串数组。可以通过mysql_fetch_row函数获得。

       MYSQL_FIELD

       MYSQL_FIELD中包含了字段名、字段类型和大小等信息。可以重复调用mysql_fetch_field函数获得所有字段的信息。

注意:Linux下的MySQL的表明是区分大小写的

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<mysql.h>
#define MAX_COLUMN_LEN    32
int main(int argc , char *argv[])
{
    MYSQL db;
	MYSQL_RES *res;  
    MYSQL_ROW row;  
	
	//初始化数据库
    mysql_init(&db);
	//连接数据库
    if(mysql_real_connect(&db,"127.0.0.1","zouwm","z123","intelligence",3306,NULL,0))
    {
		printf("connect!!!\n");
	}
	
	//查询
	if (mysql_real_query(&db, "select * from S_RESIDENCE", (unsigned long)strlen("select * from S_RESIDENCE")))  
    {  
        printf("mysql_real_query failed\n");
        return 0;  
    }
	
	// 存储结果集  
    res = mysql_store_result(&db);  
    if (NULL == res)  
    {  
        printf("mysql_store_result failed\n");  
        return 0;  
    }  
	
	// 重复读取行,并输出第一个字段的值,直到row为NULL  
    while (row = mysql_fetch_row(res))  
    {  
        printf("%s\n",row[0]);  
    }  
	
	// 释放结果集  
    mysql_free_result(res);  
    // 关闭Mysql连接  
    mysql_close(&db);  
	
	
	return 0;
}

编译连接选项 gcc -I/usr/include/mysql test.c -o demo -L/usr/lib/mysql -lmysqlclient

我认为sql主要还是懂sql语句,至于这些API只要会套用就够啦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值