sql语句与跨编程语言吗?

不好意思,多打入一个“与”。

我的意思是:sql语句可以在任何编程语言中运行,而不会报错,是为什么??

不用担心,一般正确的sql语句可以在各种标准化的数据库中执行,比如oracle、db2、MS Server、sybase、mysql、Postgres等。需要注意的是要实现某些功能,sql中使用了函数,这些函数是本地化(也就是各个数据库有自己的规则)的,这时就需要针对具体数据库选用不用的函数和参数。比如Postgres的时间转化成字符串函数to_char(timestamp, text),timestamp为从数据库中查询到的时间字段,text为要转化的字符串格式。如果你想将时间转换为“2008-11-27”形式,那么test设置成YYYY-MM-DD即可。怎么判断应用程序用的哪种数据库呢?这个可以通过会话中的链接(connection)获取,以java为例,请看下列示例代码。

Connection conn=session.connection();
……

/**
* 使用一个连接来获取数据库的头信息。
*
* @param conn
*/
public DataBaseInfo(Connection conn) {
DatabaseMetaData dbmd = null;
try {
dbmd = conn.getMetaData();
databaseUrl = dbmd.getURL();
databaseUsername = dbmd.getUserName();
databaseProductName = dbmd.getDatabaseProductName();
databaseProductVersion = dbmd.getDatabaseProductVersion();
driverName = dbmd.getDriverName();
driverVersion = dbmd.getDriverVersion();
String databaseName = databaseProductName.toLowerCase();
if (databaseName == null) {
databaseType = DATABASE_UNKNOWN;
} else if (databaseName.indexOf("oracle") != -1) {
databaseType = DATABASE_ORACLE;
} else if (databaseName.indexOf("postgresql") != -1) {
databaseType = DATABASE_POSTGRESQL;
} else if (databaseName.toLowerCase().indexOf("db2") != -1) {
databaseType = DATABASE_DB2;
} else if (databaseName.indexOf("sql server") != -1) {
databaseType = DATABASE_SQLSERVER;
} else if (databaseName.indexOf("mysql") != -1) { // "MySQL"
databaseType = DATABASE_MYSQL;
} else if (databaseName.indexOf("hsql") != -1) {
databaseType = DATABASE_HSQLDB;
} else if (databaseName.indexOf("sap") != -1) { // "SAP DB"
databaseType = DATABASE_SAPDB;
} else if (databaseName.indexOf("firebird") != -1) { // "firebird"
databaseType = DATABASE_FIREBIRD;
} else if (databaseName.indexOf("adaptive") != -1) { // "DATABASE_SYBASE"
databaseType = DATABASE_SYBASE;
} else {
databaseType = DATABASE_UNKNOWN;
}

} catch (SQLException ex) {
ex.printStackTrace();
}
}

这样就识别程序用的哪种数据库了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-27
sql就是标准化查询语言,当然跨平台。
只是各版本有细微差别
第2个回答  2008-11-29
sql语句可以在任何编程语言中运行,而不会报错?如果不报错,是为什么??

那是因为SQL 给众多编程语言足够的面子!当然前提是你不要写错语句,呵呵!

SQL语言和其他程序设计语言有什么不同
1、首先SQL语言是数据库结构化查询语言,是非过程化编程语言。而程序设计语言则有更多的面向对象及逻辑程序设计。比如用SQL语言编写个窗口、做个进度条什么的,是无法实现的。2、SQL语言可以说是,程序设计语言和数据库之间的一个翻译官。程序设计中需要操作数据库,则通过SQL语言来翻译给数据库管理系统。...

sql语言只能在数据库管理系统中属于不能在其他高级语言中使用是对还是...
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和...

数据库编程是用什么语言
1. SQL的基本概念:SQL是一种用于管理关系数据库的标准编程语言。通过SQL,开发者可以执行各种数据库操作,如创建表、插入数据、查询数据、更新数据和删除数据等。2. 数据库编程的应用:在数据库编程中,SQL通常与后端编程语言结合使用。开发者通过这些后端语言编写程序,通过SQL语句与数据库进行交互,实现...

sql语言具有两种使用方式分别称为交互式sql和什么
该编程语言具有两种使用方式,分别称为交互式sql和嵌入sql。在SQL编程语言中,交互式SQL允许用户在命令行界面或专门的SQL客户端工具中直接编写SQL语句并执行。并且这种方式还允许用户逐条执行SQL语句,并对结果进行查看和分析。2、而嵌入式SQL则可以将SQL语句嵌入到其余编程语言,如Java、Python等中,让开发...

学习SQL数据库需要其他语言的编程基础吗?如C、C++。
不需要那些,数据库需要的语言是SQL语言,跟C,C++没关系 当然,你要把数据库链接到你的程序里面就另外说了

编程语言有哪几种,详细介绍一下这些语言
综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。 C语言简介 === 方案五 SQL语言 & Power Builder 对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的Pow...

“SQL严格说不能算是一种编程语言,它是数据库访问的接口描述”什么意思...
1、不同的语言都可以对数据库进行操作 2、因为语言的不同,所以操作的时候语法是不同的 3、虽然语法不同,可是对数据库的操作都是通过sql语法来完成的,也就是说,不管语法有什么不同,但是都是把sql语句发送到数据库 4、随后由sql语句来操作数据库把结果返回 5、不同的语言对返回来的数据进行分析...

SQL就是C语言吗?两者有什么区别?
SQL和C语言是两种不同的语言。1 SQL语言:结构化查询语言(Structured Query Language)简称SQL(发音:\/ˈes kjuː ˈel\/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。2 C语言:C语言是一门通用计算机...

sql是解释型语言还是编译型语言
编程环境下的SQL也称嵌入式SQL(Embedded SQL, ESQL),是一种将SQL语句直接写入C、C++、JAVA等编程语言中的使用方式,从而让应用程序拥有了访问数据库、操作数据的能力。这些嵌入SQL的语言称为宿主语言。为提供对嵌入式SQL的支持,数据库厂商需要提供DBMS和一些工具,并且在技术上必须解决以下4个问题:宿主...

编程语言有几种,分别都是编什么程序的?
综述:我认为C++Builder是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。 C语言简介 === 方案五SQL语言&PowerBuilder 对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都...

相似回答