P1:与MySQL交互基本步骤
1.通过调用mysql_library_init(),进行初始化
2.通过调用mysql_init()初始化连接处理程序,并调用mysql_real_connect()进行连接
3.发出sql处理命令,并处理
4。通过调用mysql_close(),关闭MySQL服务器
P2:下面主要讲解数据操作函数
可用函数有:
1)int mysql_query(MYSQL *connection ,const char *query);
2) int mysqk_real_query(MYSQL *connection ,const char *query ,unsigned long length);
3)void mysql_close(MYSQL *connection);
connection:为已经建立的句柄
query:为指向SQL的命令字符
mysql 操作语句:
1、说明:创建数据库
CREATE
DATABASE
database
-
name
2、说明:删除数据库
drop
database
dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC
sp_addumpdevice
'disk'
,
'testBack'
,
'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP
DATABASE
pubs
TO
testBack
4、说明:创建新表
create
table
tabname(col1 type1 [
not
null
] [
primary
key
],col2 type2 [
not
null
],..)
根据已有的表创建新表:
A:
create
table
tab_new
like
tab_old (使用旧表创建新表)
B:
create
table
tab_new
as
select
col1,col2…
from
tab_old definition
only
5、说明:删除新表
drop
table
tabname
6、说明:增加一个列
Alter
table
tabname
add
column
col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加
varchar
类型的长度。
7、说明:添加主键:
Alter
table
tabname
add
primary
key
(col)
说明:删除主键:
Alter
table
tabname
drop
primary
key
(col)
8、说明:创建索引:
create
[
unique
]
index
idxname
on
tabname(col….)
删除索引:
drop
index
idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:
create
view
viewname
as
select
statement
删除视图:
drop
view
viewname
10、说明:几个简单的基本的sql语句
选择:
select
*
from
table1
where
范围
插入:
insert
into
table1(field1,field2)
values
(value1,value2)
删除:
delete
from
table1
where
范围
更新:
update
table1
set
field1=value1
where
范围
查找:
select
*
from
table1
where
field1
like
’%value1%’
---like的语法很精妙,查资料!
排序:
select
*
from
table1
order
by
field1,field2 [
desc
]
总数:
select
count
as
totalcount
from
table1
求和:
select
sum
(field1)
as
sumvalue
from
table1
平均:
select
avg
(field1)
as
avgvalue
from
table1
最大:
select
max
(field1)
as
maxvalue
from
table1
最小:
select
min
(field1)
as
minvalue
from
table1
P3:
其他可用函数:
1.my_errno():返回上一次发生的错误编号;my_error():返回上一次错误信息
2.mysql_fetch_field(): 返回下一个表字段类型
3.mysql_fetch_row():从结果中获取下一行
4.mysql_refresh():刷新或者复位表
5.mysql_use_result():初始化并逐行显示结果
6.mysql_fetch_count():返回上一个指令的结果列数目
7.mysql_fetch_row:从结果集中获取下一行数目
8.mysql_num_fields();返回结果列数;mysql_num_rows():返回结果行数
/**********************************************************分割线*********************************************************/
例子程序如下:
#include<mysql/mysql.h> #include<stdio.h> void main() { MYSQL *mysql; MYSQL_RES *res; MYSQL_ROW row; char *query ="select *from username"; int t,r; mysql_init(mysql); if(!mysql_real_connect(mysql,"localhost","root,"123456","test",NULL,0)) { printf("error connection to data:%s",mysql_error(mysql)); } else printf("connected ...\n"); 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); for(r=0;r<mysql_field_cout(mysql);r++) { row=mysql_fetch_row(res); if(row<0) break; for(t=0;t<mysql_num_fileds(res);t++) printf("%s",row[t]); printf("\n"); } mysql_free_result(res); } mysql_close(mysql); }