• 首页
  • 国产小呦泬泬99精品
  • 最近2019中文字幕在线高清
  • 免费看少妇作爱视频
  • 曰批全过程免费视频在线观看网站
  • 国色天香在线观看全集免费播放
  • 婆岳同床双飞呻吟
  • 国色天香在线观看全集免费播放你的位置:三级小说 > 国色天香在线观看全集免费播放 > 怎么写出不错在各个数据库中都能试验的SQL?

    怎么写出不错在各个数据库中都能试验的SQL?

    发布日期:2022-06-18 17:11    点击次数:114

    怎么写出不错在各个数据库中都能试验的SQL?

     不同类型数据库的函数语法或多或少存在互异,要想让功能疏通的 SQL 查询语句在不同类型的数据库中都能被胜仗试验,就要把各数据库都有的那些互异化函数语法进行翻译。

    使用 ORM 技能玩忽将法子员书写的查询退换成不同数据库的 SQL,特地于有一定的移植智商。但 ORM 技能只妥当交接 OLTP 场景下的爽快 SQL,难以已毕 OLAP 场景下较复杂 SQL 的移植,举例,使用了 ORM 技能中不径直撑持的函数,或者遭遇 FROM 中包含子查询的复杂 SQL。

    集算器 SPL 计算了一套圭臬的 SQL 查询语法,该语法内置大宗函数(还在不竭追加中),可形容更多常运算。SPL 中有一个 sqltranslate 函数,不错把这种圭臬 SQL 翻译成不同数据库的 SQL,已毕数据库的移动。

    比如这么的圭臬 SQL:

     

    SELECT CLIENT, YEAR(ORDERDATE), SUM(AMOUNT)             ,
    天天躁日日躁狠狠躁日日躁黑人 COUNT(ORDERID) FROM ORDERS GROUP BY CLIENT, YEAR(ORDERDATE) HAVING SUM(AMOUNT) > 2000 

     

    用.sqltranlate(“MYSQL”) 翻译后就取得:

     

    SELECT CLIENT, YEAR(ORDERDATE), SUM(AMOUNT)             , COUNT(ORDERID) FROM ORDERS GROUP BY CLIENT, YEAR(ORDERDATE) HAVING SUM(AMOUNT) > 2000 

     

    而要是使用.sqltranslate(“ORACLE”) 将复返:

     

    SELECT CLIENT, EXTRACT(YEAR FROM ORDERDATE),国色天香在线观看全集免费播放 SUM(AMOUNT)             , COUNT(ORDERID) FROM ORDERS GROUP BY CLIENT, EXTRACT(YEAR FROM ORDERDATE) HAVING SUM(AMOUNT) > 2000 

     

    不错看到,圭臬函数玩忽正确地阐述数据库弃取相应的函数。

    SPL 已毕 SQL 移植,选拔的计谋是只对圭臬 SQL 中的函数进行翻译,不翻译(原样照抄)语句,从而使圭臬 SQL 可形容更多的运算。比如,关于底下的子查询不管翻译成哪种数据库 SQL 都不会变,也都不错平方试验。

     

    SELECT     ORDERID,     M FROM     (     SELECT         ORDERID,         MONTH(ORDERDATE) M     FROM         ORDERS) T1 

     

    集算器 SPL 是 Java 写的开源软件,很容易被 JAVA 哄骗 集成而使用这个 SQL 移植的功能,在哄骗法子中要是需要翻译 SQL 语句,不错径直调用 api 设施:

     

    String sql = “SELECT CLIENT, YEAR(ORDERDATE), SUM(AMOUNT) , COUNT(ORDERID) FROM ORDERS GROUP BY CLIENT, YEAR(ORDERDATE) HAVING SUM(AMOUNT) > 2000”;  sql = com.raqsoft.dm.sql.SQLUtil.translate(sql, “ORACLE”); 

     



    Powered by 三级小说 @2013-2022 RSS地图 HTML地图