交互式SQL与嵌入式SQL有什么不同

说白了,交互式SQL和嵌入式SQL的关键区别在于使用场景。
前者涉及直接在终端中输入命令,而后者涉及将 SQL 插入到编程语言(例如 C 语言)中。
嵌入式 SQL 使这一问题变得复杂,因为数据库制造商必须开发额外的预编译器和函数库来弥补这一差距。

首先,让我告诉你最重要的事情。
嵌入式SQL必须解决四个难题: 由于主语言编译器不认识SQL,因此它必须依赖预编译器将SQL翻译为函数调用。
例如,在我们去年运行的一个金融系统项目中,预编译器能够将 PL/SQL 代码转换为纯 C 代码。
还有一点是宿主程序和DBMS之间如何传输数据。
我们去年购买的旧系统使用 ODBC 驱动程序在 C++ 和 Oracle 之间运行数据。
还有一个非常重要的细节。
数据类型从字符串到整数的转换必须是无缝的。
去年的一次测试中,由于日期格式不匹配,整个ERP系统几乎崩溃。

一开始我也认为Embedded SQL效率低下,但后来发现我错了。
经过预编译和优化,部分场景比纯应用层查询快了3 0%。
等等,还有一件事。
嵌入式SQL的维护成本确实很吓人。
上次换领域花了半个月才上线。

如果您是初学者,我们建议您首先玩 Interactive SQL 以熟悉 SQL 语法。
在嵌入式 SQL 和其他业务场景出现之前了解它们永远不会太晚。
很多人不重视这一点。

sql是一种什么的语言

结论:SQL于1 9 7 4 年提出并于1 9 8 0年标准化,用于数据库管理。
其功能包括定义、操作和控制。
它简单、高效、应用广泛。

起源:1 9 7 4 年由Boyce和Chamberlin提出,由IBM实现。

标准化:1 9 8 0年,得到美国和ISO的认可。

功能:定义、操作、控制。

特点:集成、非过程、简洁。

数据定义:定义数据库结构。

数据操作:增、删、改、查询。

数据控制:权限管理。

总结:SQL,功能强大且易于使用,强大的数据库管理工具。

SQL语言具有两种使用方式

有两种使用 SQL 的方法。
简单来说,就是自己用,用在高级语言中。
自己使用它就像直接与数据库聊天一样。
只需说出您要检查或更新哪些数据即可。
这些数据库操作用在Java、Python等高级语言中,作为工具使程序变得更加强大。
不过,两者的用途略有不同。
可以直接自己操作数据库,嵌入高级语言是为了让程序更加方便。

动态SQL是什么??什么是静态SQL,动态SQL的动态体现在哪里???

嘿,你的长篇演讲非常好。
但我们来谈谈动态和静态 SQL。
我感觉你解释得很清楚了。

你看,这其实很有趣。
上次我在做Java+数据库项目的时候就遇到过这种情况。
在你提到的例子中,SQL结构可以在Java编译期间确定,例如“select t1 from where c1 > 5 ”直接写入代码中。
这实际上是静态SQL。
编译时可以提前分析数据库,效率更高。

但是从另一方面想一下,正如你所说,使用PreparedStatement执行从用户输入中获取的SQL,它应该被认为是动态SQL。
2 02 3 年夏天我帮助一个外包团队搭建系统的时候,他们就使用了这种类型的查询接口。
用户填写条件点查询后,具体执行的SQL语句在编译时是未知的,只有运行时才知道。
这与动态SQL的定义完全一致。

但是问号“?”关于您提到的参数化查询,例如“select t from where c1 > ? and c2 <?”,我认为您是对的。
虽然参数值未知,但是整个SQL结构是固定的,编译器仍然可以提前分析出来。
这应该被视为静态 SQL。
我去年在上海某商场的一个项目中使用过,效率其实比完全动态的要好很多。

所以简而言之,静态SQL可以在编译时确定整个结构,而动态SQL则可以在运行时确定。
可以确定整个结构。
有参数但结构固定,逻辑上是稳定的。
无论如何,这个问题相当广泛,了解边界条件很重要。