什么是C语言,SQL语言。那个更重要啊?
要回答这个问题,首先要说到“面向过程的编程语言”、“面向对像的编程语言”、“结构化查询语言”。
事实上这三种是完全不同的概念。举个“1+1=2”这个等式的例子。“面向过程的编程语言”应理解为整个等式从形成到完成的过程,如1+1为什么等于2,还有等于2的答案吗?除了1+1还有没有其它的方法,像0+2或0.5+1.5等等。说专业一点,学面向过程主要是学“算法”以提高运算效率;“面向对像的编程语言”应理解为如何去把“1+1=2”这个等式“可视化”给大家看,也就是说这个等式是由五个“对像”:“1”、“+”、“1”、“=”和“2”组成。说专业一点,学面对像主要是从如何应用对像设计用户界面学起;“结构化查询语言”的理解最特别,对于我这个从面向过程学到面向对象的人刚开始很不适应。因为,它解决是等式完成的过程。你不需要理会这等式是怎么形成和运算出来的,就是要它一个结果。如上面,你可以给电脑一个指令说,我要结果等于2.他就会把所以结果等于2的等式都给你。综上所述,这三种语言都要学。面向过程是学算法以提高效率,面向对像是学用户界面的呈现,而结构化查询是为了方便数据的处理。
SQL语言有什么作用?它与C语言有什么异同点。
SQL既结构化查询语言,是一种关系型数据库.作用和ORACLE,DB2,MYSQL类似.
作用:存储数据,查询数据.处理数据.
C语言是一种过程性语言,是从事系统软件和游戏软件开发的语言,现在主要是用VC++,它也可以从事手机系统开发,像塞班系统就是VC开发的.
SQL是一种非过程化语言,你只用下命令,不用说明怎么做,软件帮你解决.而C语言是过程化语言,你不仅要下命令,还要说明怎么做,难度远远大于SQL.
SQL就是C语言吗?两者有什么区别?
不是,C是面向过程的编程语言,比如编写应用程序,偏向硬件。sql是结构化查询查询语言,比如有大量数据按一定的规律存好了,用sql语言可以快速查出需要的信息。
c语言和SQL的比较
说说C语言:
我学过C语言,它只能编写DOS程序,功能不是很强大,但却是基础,因为大部分流行的编程软件都与C语言的语法结构类似,一定要先学。
C++:
C语言进化而来的,有强大的功能,举例吧:
软件:
微软的Office系列
Macromedia网页三剑客 – flash,dreamweaver,fireworks
Adobe出的 超有名的作图软件 – PhotoShop
3D动画软件 – 3DMax
…..
游戏:
PC平台几乎所有的游戏
星际争霸、魔兽争霸、CS、帝国时代、跑跑卡丁车、传奇、魔兽世界….
那数不胜数了,自己数吧:)
以上均出自C++之手,原因是C++靠近计算机底层,编写出来的程序对系统资源依赖较小,功能强大,运行速度快,比如你的两个朋友与你分别玩 用 VB、Java、与C++编写的“跑跑卡丁车”,你玩C++那款游戏已经跑玩结束了,发现你的两个朋友还没开始跑呢,那是相当的卡啊,所以这一系列的软件、游戏都会采用C++编写。
虽然C++很有优点,但是对于学习者来说应该是比较困难的一门语言。(再说明一点,C或C++属于语言,而VC – “Visual C++”是用来编写C或C++的工具)
说说SQL:
SQL是结构化查询语言(STRUCTURED QUERY LANGUAGE),它是一组专用的程序命令,可完成如下任务:
在一个或多个数据库的一个或多个表中检索数据.
通过插入,删除或更改记录操纵表中数据.
对表的数据进行数学统计.
创建,更改或删除数据库中的表(仅ACCESS数据库)
创建或删除表中的索引.
SQL查询语言主要结构为:
Select 查询字段 from 表名 Where 查询条件语句 [排序语句或分组语句]
查询字段必须分别用(西文)逗号分开或就用一个*号代替.
仅供参考.
SQL与C语言
准确的说SQL是一个数据库查询语句, SQL SERVER这个才是数据库。
一般所说的客户端服务器,就是C/S架构的系统,那么服务端就是数据库后台了。
使用编程语言,如C语言 C++,然后编写代码连接,操控数据库。
关于C语言连接SQL数据库…
1、配置ODBC数据源。
2、使用SQL函数进行连接。
对于1、配置数据源,配置完以后就可以编程操作数据库了。
对于2、使用SQL函数进行连接,参考代码如下:
#includewindows.h
#includesql.h
#includesqlext.h
void main()
{
HENV henv; //环境句柄
HDBC hdbc; //数据源句柄
HSTMT hstmt; //执行语句句柄
unsigned char datasource[]=”数据源名称”; //即a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLrHIWuWRsPWTvujD4P1Nb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1mYP1R1n1cknW6sPWbzrj03Pf” target=”_blank” class=”baidu-highlight”ODBC/a源中设置的源名称
unsigned char user[]= “用户名”; //数据库的帐户名
unsigned char pwd[]= “密码”; //数据库的密码
unsigned char search[]=”select xm from stu where xh=0″;
SQLRETURN retcode; //记录各SQL函数的返回情况
// 分配环境句柄
retcode= SQLAllocEnv(henv); // 等介于 SQLAllocHandle(SQL_HANDLE_ENV, SQL_a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLrHIWuWRsPWTvujD4P1Nb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1mYP1R1n1cknW6sPWbzrj03Pf” target=”_blank” class=”baidu-highlight”NULL/a_HANDLE, henv);
// 设置ODBC环境版本号为3.0
retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 分配连接句柄
retcode= SQLAllocConnect(henv,hdbc); // 等介于 SQLAllocHandle(SQL_HANDLE_DBC, henv, hdbc);
//设置连接属性,登录超时为*rgbValue秒(可以没有)
// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);
//直接连接数据源
// 如果是windows身份验证,第二、三参数可以是a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLrHIWuWRsPWTvujD4P1Nb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1mYP1R1n1cknW6sPWbzrj03Pf” target=”_blank” class=”baidu-highlight”NULL/a,也可以是任何字串
//SQL_NTS 即 “a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLrHIWuWRsPWTvujD4P1Nb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1mYP1R1n1cknW6sPWbzrj03Pf” target=”_blank” class=”baidu-highlight”Null/a-Terminated String”
retcode= SQLConnect(hdbc,datasource, SQL_NTS, user, SQL_NTS , pwd, SQL_NTS );
//分配语句句柄
retcode= SQLAllocStmt(hdbc,hstmt); // 等介于 SQLAllocHandle(SQL_HANDLE_STMT, hdbc, hstmt);
//直接执行查询语句
retcode=SQLExecDirect(hstmt,search,SQL_NTS);
//将数据缓冲区绑定数据库中的相应字段(i是查询结果集列号,queryData是绑定缓冲区,BUFF_LENGTH是缓冲区长度)
SQLBindCol(hstmt, i, SQL_C_CHAR, queryData[i-1], BUFF_LENGTH, 0);
//遍历结果集到相应缓冲区 queryData
SQLFetch(hstmt);
/*
*对遍历结果的相关操作,如显示等
*/
//注意释放顺序,否则会造成未知错误!
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
}
代码看上去很复杂,其实都可以直接复制。其中需要改的是数据源名称、数据库用户名、数据库密码和SQL语句。
然后就是SQLFetch后得到结果集后,如何使用的问题了。
在下面的注释部分 填写你的处理代码即可。
/*
*对遍历结果的相关操作,如显示等
*/