
没有太大的关系,c语言只是一门入门编程的语言,不过并不是否认C语言。如果c语言学的很好的话对硬件驱动。。。。都是很有钱途的。数据库用的是数据查询语言,不过里面有时候也是要用到编程的东西,循环,变量等在c语言里学过的东西在数据库里些存储过程,触发器,函数等都会用到 。不过有微小的区别而已。思想是一样的。现在很多培训机构都把c语言做为编程入门的语言就是这个原因
所谓“直接手动在数据库中执行一条select等 *** 作”,意味着我们已经连接到数据库了,然后1 执行一个select语句, 2 返回结果。
而:“直接在程序中实现select等数据库 *** 作”,可能需要考虑1 链接到数据库,2 执行sql语句,3 返回结果 4 断开连接。
当然也可能是指2 执行sql语句,3返回结果
还要考虑到在服务器上执行还是在客户机上执行,数据传输的时间等。
个人认为,就执行sql语句,同一个sql,其本身执行的时间应该是一致的(基本上)。
示例代码:
// name: queryc
// This prog is used to test C/C++ API for sqlite3 It is very simple,ha !
// Author : zieckey All rights reserved
// data : 2006/11/18
#include <stdioh>
#include <stdlibh>
#include "sqlite3h"
#define _DEBUG_
int main( void )
{
sqlite3 db=NULL;
char zErrMsg = 0;
int rc;
rc = sqlite3_open("zieckeydb", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
if( rc )
{
fprintf(stderr, "Can't open database: %s
", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else printf("You have opened a sqlite3 database named zieckeydb successfully!
Congratulations! Have fun ! ^-^
");
//创建一个表,如果该表存在,则不创建,并给出提示信息,存储在 zErrMsg 中
char sql = " CREATE TABLE SensorData(
ID INTEGER PRIMARY KEY,
SensorID INTEGER,
SiteNum INTEGER,
Time VARCHAR(12),
SensorParameter REAL
);" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
#ifdef _DEBUG_
printf("zErrMsg = %s
", zErrMsg);
#endif
//插入数据
sql = "INSERT INTO "SensorData" VALUES(NULL , 1 , 1 , '200605011206', 189 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
sql = "INSERT INTO "SensorData" VALUES(NULL , 1 , 1 , '200605011306', 164 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
int nrow = 0, ncolumn = 0;
char azResult; //二维数组存放结果
//查询数据
sql = "SELECT FROM SensorData ";
sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
int i = 0 ;
printf( "row:%d column=%d
" , nrow , ncolumn );
printf( "
The result of querying is :
" );
for( i=0 ; i<( nrow + 1 ) ncolumn ; i++ )
printf( "azResult[%d] = %s
", i , azResult[i] );
//释放掉 azResult 的内存空间
sqlite3_free_table( azResult );
#ifdef _DEBUG_
printf("zErrMsg = %s
", zErrMsg);
#endif
sqlite3_close(db); //关闭数据库
return 0;
}
我们这里用到了一个查询的语句是 "SELECT FROM SensorData " ,
在C语言中对应的函数接口是 sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
这个函数接口的解释在程序中已经注释。
下面我们编译运行下看看,
[root@localhost temp]# export LD_LIBRARY_PATH=/usr/local/sqlite3/lib:$LD_LIBRARY_PATH
[root@localhost temp]# gcc queryc -lsqlite3 -L/usr/local/sqlite3/lib -I/usr/local/sqlite3/include
queryc:29:21: warning: multi-line string literals are deprecated
[root@localhost temp]# /aout
You have opened a sqlite3 database named zieckeydb successfully!
Congratulations! Have fun ! ^-^
zErrMsg = (null)
row:2 column=5
The result of querying is :
azResult[0] = ID
azResult[1] = SensorID
azResult[2] = SiteNum
azResult[3] = Time
azResult[4] = SensorParameter
azResult[5] = 1
azResult[6] = 1
azResult[7] = 1
azResult[8] = 200605011206
azResult[9] = 189
azResult[10] = 2
azResult[11] = 1
azResult[12] = 1
azResult[13] = 200605011306
azResult[14] = 164
zErrMsg = (null)
这里我们可以看到,azResult 的前面 5 个数据正好是我们的表 SensorData 的列属性,
之后才是我们要查询的数据。所以我们的程序中才有 i<( nrow + 1 ) ncolumn 的判断条件:
for( i=0 ; i<( nrow + 1 ) ncolumn ; i++ )
printf( "azResult[%d] = %s ", i , azResult[i] );
输出中有 zErrMsg = (null) 这样的字句,这是 zErrMsg 保留的错误信息,
正如你所看到的,zErrMsg 为空,表明在执行过程中没有错误信息。
c语言是计算机编程的基础语言
数据库是用做项目时存放数据的一个系统如网站有它的数据库游戏也有它的数据库软件就是从数据库里调用数据因此很重要
数据结构就是一些算法思想的东西有很强的逻辑性用好能在很大程度上提高软件或系统的性能不过非常的抽象数据结构可以用多种语言来表示C,或C++
C语言是一门编程语言,而数据库则是数据的集合。
1、C语言是一门通用计算机编程语言,应用广泛,用它可以开发数据库管理软件,也可以通过C语言借助于SQL语句来 *** 作数据库。
2、数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。一般来数据库都需要数据库管理软件,比如acess、oracle等等,这些大型并且对执行效率要求较高的软件,往往都是C语言开发的。
C++是C发展来的!!!
C++是面向对象的语言,而C是结构化的语言!
C的所有代码在C++上都能应用,而C++的代码在C上不能应用!!!
C++是功能更强大的C!!!
C语言与VC++的区别有很多:
1,全新的程序程序思维,C语言是面向过程的,而VC++是面向对象的。
2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而VC++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的VC++60中的API是对Window系统的大多数API有机的组合,是一个集体。但你也可能单独调用API。
3,特别是VC++中的图形处理,它和语言的图形有很大的区别。C语言中的图形处理函数基本上是不能用在中VC++中的。主持人注:C语言标准中不包括图形处理。这里的C语言的图形处理指的是DOS下的C语言。
4,C和VC++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在VC++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,什么想访问它的都可以访问;而在VC++中它没有加限定符的为私有的。
4,C语言可以写很多方面的程序,但是VC++可以写得更多更好,VC++可以写基于DOSr程序,写DLL,写控件,写系统。
5,C语言对程序的文件的组织是松散的,几乎是全要程序处理;而vc++对文件的组织是以工程,各文件分类明确。
6,VC++中的IDE很智能,和VB一样,有的功能可能比VB还强。
7,VC++对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。
8,VC++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。
9,调试功能强大,并且方法多样。
以上就是关于C语言跟数据库有什么关系吗全部的内容,包括:C语言跟数据库有什么关系吗、c语言直接执行数据库语句和在数据库中直接执行的区别、如何在Linux下用C语言 *** 作数据库sqlite3等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)