SQL与ODBC及ADO之间的关系是怎样的?

来源:百度知道 编辑:UC知道 时间:2024/06/01 09:22:30
在我的理解里,SQL是数据库操作语言,那编程不是就用SQL就好了?
但看教材里似乎用ODBC和ADO操作数据库。
这几个概念之间是不是有什么互相包含关系?
可不可以以操纵硬件(比如显卡)的方式来理解:ODBC或ADO是数据库的驱动程序,而SQL是编程语言。 SQL指出要对数据库进行何种操作,而具体执行由ODBC或ADO完成?

这个SQL、ODBC、ADO说起来有些话长,这里我简单说一下。
1、SQL它是一个标准的数据库查询语言,用于操纵数据库;但ODBC、ADO则是数据联接方式,就是通过什么方式或者说通过什么数据库组件来让你联接到数据库; 换句话说,一个是让你联接到数据库(建立通路),另一个是让你对数据库进行具体的操作。

2、SQL是数据库操作语言,它的作用在于、也仅在于操作数据库,也就是说它的操作对像只是数据库对象。纯粹的SQL过程的代表那就是数据库的存储过程了,它所做的主要也就是数据处理;

3、而我们在编程时,数据库仅是一个数据存储的工具而已,其他还有很多的逻辑处理、界面交互、系统控制等等,这些都不是SQL的范围。
所以需要用其他高级语言来建立和控制程序的行为,在需要的时候通过ODB/ADO联接到数据库,然后用内嵌的SQL语言对数据库进行操作。
-------------------------------
我是原来一楼的。
对于问题补充中的内容,楼主理解非常准确!

还可以用上网方式来比方:ODBC/ADO就是不同的上网方式(拨号/ADSL/长宽),而SQL就是流览器来访问具体的网络资源。流览器提出对网页的请求具体的信息传输和处理依赖于网络通路建立方式和相应服务,不同的上网方式会对流览器结果产生不同影响(响应速率、数据包生成和传输过程、安全等等)。ODBC/ADO与SQL之间也正是这样相互影响的。

我的理解里,SQL是数据库操作语言,那编程不是就用SQL就好了?
SQL是数据库操作语言没错,但是并不是编程就用SQL就OK了,首先SQL无法进行复杂的界面发开之类的,得到的只是一组数据,或者说对数据库进行操纵,另外确实有SQL编程,但是那也只是实现一些特定的功能逻辑。

但看教材里似乎用ODBC和ADO操作数据库。
你这里说的是项目里用ODBC和ADO操作数据库吧,这两者的话只是起到一个连接数据库的作用,然后可以通过特定的参数读取返回的数据集之类的。也就是说他们是应用软件和数据库之间连接的纽带。

我觉得应该这么理解吧,SQL是用来操作DB的,DB是DBMS中的,是运行在OS上的,