• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            lynch

            linux下使用mysql的C語言API

            系統環境Ubuntu 12.04

            1、安裝mysql 
               ubuntu下安裝mysql是比較簡單的,直接通過apt-get安裝
            1. sudo apt-get install mysql-server-5.5  
            2、登入mysql
            1. mysql [-h host_name] [-u user_name] [-p password]
               其中參數-h后面要給出連接的數據庫的IP地址或者域名、參數-u后面要給出登錄的用戶名、參數-p表示登錄的密碼。
               有時連接本機默認的Mysql數據庫服務器,則可以直接在命令行中輸入如下簡寫形式(root用戶):
            1. mysql -u root -p
               之后,系統會提示你輸入root用戶的密碼
               
            3、mysql的基本命令
               在mysql中,輸入help或者?命令,即可用查看mysql支持的內部操作命令。
               (1)顯示數據庫列表
                  顯示數據庫列表命令比較簡單,直接輸入show databases;即可。
                  
               (2)選擇一個數據庫
                  選擇一個數據庫比較簡單,使用use dbname,其中dbname為要選擇的數據庫名字。比如,這里我們選擇test數據庫:
                  
               (3)查看一個數據庫中的所有表
                  通過show tables,可以查看一個數據庫中所有的數據庫表。

                  查看Mysql表結構的命令,如下:

                  show columns from 表名;
                  describe 表名;
                  desc 表名;
                  show create table 表名;(查看create腳本)
               (4)退出
                  簡單的命令,quit;
               需要注意的是,每個命令后面需要加上分號“;”,因為分號表示一個事務的結束。

                (5) mysqldump工具備份和恢復

             

                     幾個常用用例:
                     1.導出整個數據庫
                      mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名    
                      mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
                     2.導出一個表
                      mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
                      mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
                     3.導出一個數據庫結構
                       mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/home/dk/wcnc_db.sql
                      -d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table 
                     4.導入數據庫
                       常用source 命令
                       進入mysql數據庫控制臺,
                       如mysql -u root -p 
              
                       mysql>use 數據庫
                       然后使用source命令,后面參數為腳本文件(如這里用到的.sql)
                       mysql>source  /home/wcnc_db.sql

             

            4、mysql數據庫操作實例。
               (1)創建班級數據庫
                  創建數據庫的命令式create databases dbname,其中dbname為數據庫名,例如當前要創建的數據庫名為class,因此需要輸入下面的命令:

            1.    mysq->create database class;
                  
               (2)創建學生信息表
            1.    mysql>use class;
            2.    mysql>create table student (nid INT UNIQUE,name VARCHAR(20),age int);

             

                  
               (3)插入基本數據
                  向已經創建好的數據表中插入3條基本記錄,SQL語句如下:
            1.    mysql->insert into student values(100, 'Lee', 16);
            2.    mysql->insert into student values(101, 'Tom', 17);
            3.    mysql->insert into student values(102, 'Harry', 15);
                (4)查詢全部數據
                  利用select語句查詢全部記錄。
            1.    mysql->select * from student;
                  
               (5)刪除其中一條記錄
                  這里我們假設Tom同學轉學了,那么他已經不在我們的班級class里面了,所以需要把他從class刪除。
                  mysql->delete from student where name = 'Tom';
               (6)更新其中一條記錄
                  班級class中還存在一種情況,就是有學生要改名了,比如Lee要改名為Tony了。具體的sql語句如下:
                  mysql->update student set name = 'Tony' where name = 'Lee';
               (7)刪除數據庫
                  如果學生畢業,那么我們這個班級就沒有存在的必要了,這是就可以刪除掉這個數據庫class了。
                  刪除的步驟如下:
                  a、刪除所有的數據表,SQL語句為:
                  mysql->drop table class;
                  b、刪除數據庫,SQL語句為:
                  mysql->delete database class;
            5、Mysql數據庫連接之C語言API
               首先要安裝一個包libmysql++-dev包,不然編譯代碼的時候會出現“mysql/mysql.h: No such file or directory”錯誤
               sudo apt-get install libmysql++-dev
                     示例代碼:
            1. #include<mysql/mysql.h>
            2. #include<stdio.h>
            3. int main()
            4. {
            5.      MYSQL mysql;
            6.      MYSQL_RES *res;
            7.      MYSQL_ROW row;
            8.      char *query = "select * from dbtablename;";
            9.      int t,r;
            10.      mysql_init(&mysql);
            11.      if(!mysql_real_connect(&mysql,"localhost","dbusername",
                                   "dbpassword","dbname",0,NULL,0))
            12.      {
            13.          printf("Error connecting to database:%s\n",mysql_error(&mysql));
            14.      }
            15.      else
            16.          printf("Connected........");
            17.  
            18.      else
            19.          printf("Connected........");
            20.      t=mysql_query(&mysql,query);
            21.      if(t)
            22.      {
            23.          printf("Error making query:%s\n",mysql_error(&mysql));
            24.      }
            25.      else
            26.      {
            27.          printf("Query made ....\n");
            28.          res = mysql_use_result(&mysql);
            29.          if(res)
            30.          {
            31.              for(r=0;r<=mysql_field_count(&mysql);r++)
            32.              {
            33.                  row = mysql_fetch_row(res);
            34.                  if(row<0) break;
            35.                  for(t=0;t<mysql_num_fields(res);t++)
            36.                      printf("%s ",row[t]);
            37.                  printf("\n");
            38.              }
            39.          }
            40.          mysql_free_result(res);
            41.      }
            42.      mysql_close(&mysql);
            43.      return 0;
            44.  }

               編譯之~注意一定要先安裝libmysql++-dev包。編譯指令:gcc c_mysql.c -lmysqlclient -o c_mysql

              運行./c_mysql


            posted on 2012-12-15 22:54 董三 閱讀(7994) 評論(1)  編輯 收藏 引用 所屬分類: linux

            評論

            # re: linux下使用mysql的C語言API 2016-03-11 09:46 swing07

            printf("Query made ....\n");
            res = mysql_use_result(&mysql);
            if(res)
            {
            for(r=0;r<=mysql_field_count(&mysql);r++)
            {
            row = mysql_fetch_row(res);
            if(row<0) break;
            for(t=0;t<mysql_num_fields(res);t++)
            printf("%s ",row[t]);
            printf("\n");
            }
            }
            mysql_free_result(res);
            這段代碼都有問題 會 Segmentation fault (core dumped)。

            需要這么改 res = mysql_store_result(&mysql);
            if(res)
            {
            printf("result mysql_field_count:%d ....\n",mysql_num_rows(res) );
            // printf("result mysql_fetch_row:%d ....\n",mysql_fetch_row(res) );
            printf("result mysql_num_fields:%d ....\n",mysql_num_fields(res) );
            for(r=0;r<mysql_num_rows(res);r++)
            {
            row = mysql_fetch_row(res);
            if(row<0) break;
            for(t=0;t<mysql_num_fields(res);t++)
            printf("%s ",row[t]);
            printf("\n");
            }
            }  回復  更多評論   

            <2012年12月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            博客友

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            午夜肉伦伦影院久久精品免费看国产一区二区三区 | 久久久久亚洲av成人无码电影| 久久夜色精品国产亚洲| 久久久国产乱子伦精品作者| 欧美午夜A∨大片久久| 国产成人综合久久久久久| 久久99中文字幕久久| 97久久精品无码一区二区天美| 久久99精品久久久久久动态图| 麻豆av久久av盛宴av| 久久久久久久人妻无码中文字幕爆 | AV色综合久久天堂AV色综合在| 久久久噜噜噜久久中文字幕色伊伊 | 99热热久久这里只有精品68| 亚洲狠狠综合久久| 久久强奷乱码老熟女网站| 亚洲精品tv久久久久| 久久国产劲爆AV内射—百度| 亚洲精品乱码久久久久久| 香港aa三级久久三级| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 91亚洲国产成人久久精品网址| 91精品日韩人妻无码久久不卡| 无码人妻少妇久久中文字幕 | 亚洲va久久久噜噜噜久久狠狠 | 66精品综合久久久久久久| 亚洲国产精品一区二区三区久久| 午夜精品久久久久久中宇| 久久婷婷久久一区二区三区| 亚洲国产精品无码久久九九| 色偷偷偷久久伊人大杳蕉| 久久久久久噜噜精品免费直播| 亚洲AV日韩精品久久久久久久| 91久久精品视频| 精品久久久久久久| 国产精品久久久久久影院| 三级三级久久三级久久| 久久亚洲中文字幕精品一区四| 久久91精品国产91久久麻豆| 一本一道久久精品综合| 久久亚洲国产午夜精品理论片|