对查询语言的作用感到困惑

时间:2012-05-12 16:07:58

标签: sql database vb6

所以,我没有幸运找到任何文章或论坛帖子向我解释了查询语言与c ++或vb等一般用途编程语言的完美结合。所以我想问一下>。<

基本上,如果我正在创建一个简单的数据库查询,我一直很难理解查询语言的作用是什么(我们将SQL用作查询语言的示例,VB6用于规范语言)用正常信息(名字,姓氏,地址等)填写表格。我有点知道设置这样的程序的步骤,使用ado对象进行连接等等,但是我们如何确定2的哪种语言用于某些事情? vb6是否专门处理诸如循环之类的基础知识,如果是其他的,vars的声明,以及SQL专门处理诸如连接到数据库以及进行搜索,过滤和排序之类的事情?是否可以在SQL语法中执行某些常规使用vb6操作(循环或条件)?任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:5)

SQL是一种查询数据库的语言。 SQL是ISO standard,关系数据库供应商实现ISO标准,然后添加自己的自定义。例如,在SQL Server中,它被称为T-SQL,在Oracle中,它被称为PL-SQL。它们都实现了ISO标准,因此对于像

这样的简单选择,每个标准都有相同的查询
select columname from tablename where columnname=1

但是,每个字符串函数,日期函数等都有不同的语法....

ISO SQL标准的设计并不是一个完整的过程语言,有循环,子程序等,就像VB这样的完整过程语言一样。

但是,每个供应商都在其版本中添加了一些功能,以便添加其中的一些功能。

例如,T-SQL和PL-SQL都可以使用其语言中的各种结构“循环”记录。

使用数据时,许多开发人员都没有很好地调整,这也是有区别的。这是基于操作与基于程序的设置。

数据库可以使用过程构造,但通常基于集合更高效。不熟悉此概念的开发人员最终可能会创建一个非常低效的查询。 Here's an example of this discussion

在任何情况下,你都必须权衡最好的工作所在的专业人士。

我倾向于使用程序结构,例如我在SQL语言中使用的循环。我发现它更容易维护,我使用的语言为我提供了更强大的语法来完成工作。

但是,我将这两个选项作为工具箱中的工具。例如,我在SQL中编写了数据转换脚本,在这种情况下,我在SQL中使用了循环结构。

答案 1 :(得分:1)

通常编程语言在客户端执行(app server也是如此),查询语言在db服务器中执行,所以最终它取决于你想要放置所有工作的位置。有时您可以通过使用编程语言进行所有计算来完成客户端的大量工作,有时您希望使用更多数据库服务器并最终使用查询语言甚至更好的tsql / psql或其他任何东西。

答案 2 :(得分:1)

关系数据库旨在管理数据。特别是,它们为管理大量数据的内存,磁盘和处理器提供了有效的机制。此外,关系数据库可以处理多个客户端,保证事务完整性,安全性,备份,持久性和许多其他功能。

通常,如果您使用的是另一种语言的RDBMS,则需要先设计数据结构,然后再考虑两者之间的API(应用程序编程接口)。当你有app / server关系时尤其如此。

对于“简单”类型的应用程序,它使用大量数据但对其进行最小或批量更改,您希望尽可能多地将处理移动到数据库中。以下是您不想做的事情:

  1. 使用查询将内容加载到数组中,然后在语言级别执行数组操作。 SQL为此提供了连接。
  2. 将数据加载到数组中,并对数组执行操作和摘要。 SQL为此提供了聚合。
  3. 将数据保存到文件中以进行备份。数据库提供备份机制。
  4. 如果数据适合数组或Excel电子表格,通常就可以开始存储那里存储的数据。只有当您开始扩展需求(多个客户端,安全性,与其他数据的集成)时,数据库的优势才会变得更加明显。

    这些仅供参考,并为您提供一些想法。

答案 3 :(得分:1)

就做什么而言,尽可能在SQL中做得合理(假设它在服务器上运行)。

因此,例如,不要做这样的事情(伪代码)

foreach(row in "Select * from Orders")
  if (row[CustomerID] = 876)
    Display(row)

待办事项

foreach(row in "Select * from Orders where CustomerId = 876")
  Display(row)

首先它可能的订单由CustomerID索引,因此它会更快地找到所有876订单。

第二个做第一个,你只是将该表中的每个记录吸入到客户端的内存空间中。

使用哪种语言基本上无关紧要,您可以使用自己的语言创建自己的DBMS。

您在哪里进行重要的处理。它的规则有例外,但基本的想法是让你的后端尽可能多地做。