• <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 董三 閱讀(7995) 評論(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");
            }
            }  回復  更多評論   

            <2016年3月>
            282912345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            博客友

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲国产精品无码久久久不卡| 91久久国产视频| 久久人妻无码中文字幕| 久久国产精品成人片免费| 久久99精品久久久久久9蜜桃 | 国产午夜精品理论片久久影视 | 奇米影视7777久久精品| 青青青青久久精品国产h| 亚洲国产综合久久天堂 | 久久精品人成免费| 香蕉久久影院| 91久久福利国产成人精品| 久久亚洲国产精品成人AV秋霞| 精品久久一区二区三区| 亚洲第一永久AV网站久久精品男人的天堂AV| 亚洲成色www久久网站夜月| 久久久久久av无码免费看大片| 国内精品久久久久久久97牛牛| 久久亚洲国产成人影院网站 | 久久久久久A亚洲欧洲AV冫| 久久精品毛片免费观看| 久久精品国产日本波多野结衣| 国产毛片久久久久久国产毛片| 97精品伊人久久大香线蕉app| 久久久久久国产a免费观看黄色大片 | 91精品国产综合久久久久久| 亚洲国产天堂久久综合| 国内精品久久久久久久亚洲| 日韩精品无码久久久久久| 欧美成人免费观看久久| 色综合久久天天综线观看| 国产精品美女久久久网AV| 国产精品久久国产精品99盘 | 久久精品一区二区| 国产精品一久久香蕉国产线看观看 | 久久青青草原精品国产不卡| 久久国产精品-国产精品| 久久九九亚洲精品| 精品久久国产一区二区三区香蕉| 91精品国产综合久久香蕉 | 久久本道综合久久伊人|