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

来源:互联网 发布:openwrt 阿里云ddns 编辑:程序博客网 时间:2024/05/22 14:24

前言:最近准备做毕业设计,初次接触到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    32int 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 0
原创粉丝点击