本文的大部分示例来自《linux下的MySQL数据库编程》 赵廷涛等编著。

1、安装mysql

    简单安装:sudo apt-get install mysql-server-5.1

    更详细请参考这篇文章《用Ubuntu做WEB服务器相关设置》:

2、链接mysql

    mysql  [-h host_name] [-u user_name] [-p password]

  其中参数-h后面要给出连接的数据库的IP地址或者域名、参数-u后面要给出登陆的用户名、参数-p表示登陆的密码。

  有时连接本机默认的MySql数据库服务器,则直接可以在命令行中输入如下简写形式:

  mysql -u root -p

  之后系统会提示你输入密码.

3、mysql的基本命令

  在mysql中,输入help或?命令,即可以查看mysql支持的内部操作命令。

  (1)显示数据库列表

    显示数据库列表命令比较简单,直接输入show databases即可。、

  (2)选择一个数据库

    选择一个数据库比较简单,使用use dbname,其中dbname为要选择的数据库名字。

  (3)查看一个数据库中的所有表。

    通过show tables,可以查看一个数据库中所有的数据库表。

4、mysql数据库操作示例。

  (1)创建公司数据库

    创建数据库的命令是create database dbname,其中dbname为数据库名,例如当前要创建的数据库名为company,因此要输入下面的命令。

    mysql>create database company;

  (2)创建员工信息表

    mysql>use company;

    mysql>create table worker (nid INT UNIQUE,name VARCHAR(20),address VARCHAR(200),salary float,level int);

  (3)插入基本数据

    向已经创建好的数据表中插入3条基本记录,SQL语句如下:

    mysql>insert into worker values(100,'tom','beijing',2000.0,0);

    mysql>insert into worker values(101,'jim','shanghai',2000.0,1);

    mysql>insert into worker values(102,'mali','shanghai',3000.0,2);

  (4)查询全部数据

    利用select语句查询全部记录。

    mysql>select * from worker;

  (5)删除其中一条记录

    mysql>delete from worker where nid=100;

  (6)更新其中一条记录

    公司中还存在一种情况,就是员工的职务变动,例如Jim的职务由一级调整到二级,他的收入也由2000.0元调整到3000.0元。

    具体的SQL语句如下:

    mysql>update worker set level =2,salary =3000.0 where nid=101;

  (7)删除数据库

    如果公司因经营不善,被迫破产,当然公司倒闭后,其原有的数据库事实上已无存在之必要,这时可以删除其所有的数据信息。

    删除的步骤如下:

    a、删除所有的数据表,SQL语句为:

      mysql>drop table worker;

    b、删除数据库,SQL语句为:

      mysql>delete database company;

5、Mysql数据库连接之C语言API

  首先要安装一个包libmysql++-dev包,不然编译源码的时候会出现”mysql/mysql.h: No such file or directory“错误。

    sudo apt-get install libmysql++-dev

  

  示例代码:

    

#include<mysql/mysql.h> 
#include<stdio.h> 
int main() 
{ 
     MYSQL *mysql; 
     MYSQL_RES *res; 
     MYSQL_ROW row; 
     char *query = "select * from dbtablename;"; 
     int t,r; 
     mysql_init(mysql); 
     if(!mysql_real_connect(mysql,"localhost","dbusername","dbpassword","dbname",0,NULL,0)) 
     { 
         printf("Error connecting to database:%s\n",mysql_error(mysql)); 
     } 
     else
         printf("Connected........"); 
  
     else
         printf("Connected........"); 
     t=mysql_query(mysql,query); 
     if(t) 
     { 
         printf("Error making query:%s\n",mysql_error(mysql)); 
     } 
     else
     { 
         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); 
     } 
     mysql_close(mysql); 
     return 0; 
 }

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

  运行./c_mysql