本文的大部分示例来自《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