当前位置: 首页 > news >正文

佛山移动网站建设公司新乡seo外包

佛山移动网站建设公司,新乡seo外包,雅思培训,如何建立个人网站的步骤概要 SQLite 是一个被大家低估的数据库#xff0c;但有些人认为它是一个不适合生产环境使用的玩具数据库。事实上#xff0c;SQLite 是一个非常可靠的数据库#xff0c;它可以处理 TB 级的数据#xff0c;但它没有网络层。接下来#xff0c;本文将与大家共同探讨 SQLite 在…概要 SQLite 是一个被大家低估的数据库但有些人认为它是一个不适合生产环境使用的玩具数据库。事实上SQLite 是一个非常可靠的数据库它可以处理 TB 级的数据但它没有网络层。接下来本文将与大家共同探讨 SQLite 在过去一年中最新的 SQL 功能。 SQLite “只是”一个库它不是传统意义上的服务器。因此在某些场合下它确实不合适。但是在相当多的其他场合它却是最合适的选择。SQLite 号称是部署和使用最广泛的数据库引擎。我认为这很有可能因为 SQLite 没有版权的限制。无论何时只要开发者想使用 SQL 在文件中存储结构化的数据SQLite 应是首选方案。 SQLite 的 SQL 方言也非常强大。它比 MySQL 早四年就开始支持 with 语句。最近它还实现了对于窗口函数的支持这仅仅比 MySQL 晚五个月。 接下来本文将介绍 SQLite 在 2018 年新增加的 SQL 功能也就是 SQLite 从版本 3.22.0 到 3.26.0 所新增加的 SQL 功能。 具体内容包括 布尔字面量和判断 窗口函数 Filter子句 Insert … on conflict (“Upsert”) 重命名列 在Modern-SQL.com上接下来 布尔变量和判断 SQLite支持“假”布尔值它接受Boolean作为类型的名称但它将其当作整数看待这一点非常类似于MySQL。真值true和false分别由数值1和0表示这一点和C语言一样。微信搜索公众号信安黑客技术回复黑客 领取资料 。 从版本3.23.0开始SQLite将关键字true和false分别用数字1和0表示并支持is [not] true | false的判断语句。现在它不再支持关键字unknown。开发者可以使用空值null来代替因为unknown和null的布尔值是一样的。 在INSERT和UPDATE语句中字面量true和false可以大大提高values和set子句的可读性。 is [not] true | false这个判断语句很有用它与比较操作的含义不一样 我们来比较一下 WHERE c  FALSE和 WHERE c IS NOT FALSE在上面的例子中如果c是null, 那么c false的结果是unknown. 这是因为WHERE子句只接受结果为true的值它会过滤掉结果为false或unknown的值。这样它就会把对应的行从结果中去掉。 与此相对应如果c是null那么c is not false的判断结果是true。因此第二个WHERE子句也将包含c是null的行。 要达到同样的效果您可以采用的另外一种方法是增加单独处理null值的子句。也就是使用语句: WHERE c  FALSEOR c IS NULL这种形式的语句更长并且有一些冗余语句c被使用了两次。长话短说可以使用is not false判断来替代这个or…is-null的语句。更详细的内容请参考“Binary Decisions Based on Three-Valued Results”。 SQLite中对布尔字面量和布尔判断的支持现在和其他开源数据库接近唯一的差距是SQLite不支持is[not] unknown你可以使用is [not] null来代替。有趣的是这些功能在下面提到的商用产品中还不可用。 0只支持true,false.不支持notknown如果需要用null代替 1不支持is [not] unknown,如果需要用is [not] null代替 窗口函数 SQLite 3.25.0引入了窗口函数。如果你知道窗口函数那么也知道这是一件大事。如果你不了解窗口功能请你自己学习如何使用。这篇文章不会具体解释窗口函数但请相信它是最重要的“现代”SQL特性。 SQLite对over子句的支持与其他数据库非常接近。唯一值得注意的限制是range语句不支持数字或间隔距离仅支持current row和unbounded preceding|following。在发布sqlite 3.25.0时,SQL Server和PostgreSQL具有同样的限制。PostgreSQL 11消除了这一限制。 0没有变化 1Range范围定义不支持datetime类型 2Range范围不接受关键字 (只支持unbounded和current row) SQLite对于窗口函数的支持在业界是领先的。它不支持的功能在其他一些主要产品中也同样不支持在聚合中语句中的distinctwidth_bucket respect|ignore nulls和from first|last等语句。 0同样没有ORDER BY 语句 1不允许负偏移量nulls的特定处理lead(, IGNORE NULLS)这里是字符串参数 2没有缺省值(第三个参数)不支持respect|ignore nulls语句 3不允许负偏移量不支持ignore nulls语句 4不允许负偏移量 5不支持respect|ignore nulls语句 6不允许负偏移量不支持respect|ignore nulls语句 7nulls的特定处理first_value(, 1, null, IGNORE NULLS) 这里是字符串参数。8不支持ignore nulls语句9不支持ignore nulls语句和from last语句 过滤语句 虽然filter语句只是语法糖——你也可以很容易地使用表达式来获得相同的结果——我认为它也是必不可少的语法糖因为它能使人们更加容易地学习和理解SQL语句。 看看下面的select子句您觉得哪一个更容易理解 SELECT SUM(revenue) total_revenue, SUM(CASE WHEN product  1 THEN revenueEND) prod1_revenue...和 SELECT SUM(revenue) total_revenue, SUM(revenue) FILTER(WHERE product  1) prod1_revenue...此示例很好地总结了filter子句的作用它是聚合函数的后缀可以在进行聚合之前根据特定条件过滤掉相应的行。pivot技术是filter子句最常见的用例。这包括将实体属性值EAV模型中的属性转换为表格的列如果想了解更多的内容可以参考链接“filter-Selective Aggregates”https://modern-sql.com/feature/filter。 SQLite 从版本3.25.0开始在使用over子句的聚合函数中支持了filter子句但是在使用group by子句的聚合函数中还不支持。不幸的是这意味着您仍然无法在SQLite中使用filter语句来处理上述情况。你必须像以前一样使用case表达式。我真的希望SQLite在这一点上能尽快做到。 Insert … on conflict (“Upsert”) SQLite 从版本3.24.0开始引入了“upsert”概念它是一个insert语句可以优雅地处理主键和唯一约束的冲突。您可以选择忽略这些冲突在on conflict语句中什么都不做或者更新当前行在on conflict语句中执行更新操作。 这是一个特有的SQL扩展即它不是标准SQL的一部分因此在下面的矩阵中是灰色的。但是SQLite遵守与PostgreSQL相同的语法来实现此功能0。该标准提供了对merge语句的支持。 与PostgreSQL不同SQLite在以下语句中存在问题。 INSERT INTO target SELECT *FROM sourceON CONFLICT (id)DO UPDATE SET val  excluded.val根据说明文档这是因为解析器无法判断关键字ON是SELECT语句的连接约束还是upsert子句的开头。你可以通过向查询中添加子句来解决例如where true。 INSERT INTO target SELECT *FROM sourceWHERE trueON CONFLICT (id)DO UPDATE SET val  excluded.val0同样记录insert、update、delete和merge操作的错误信息 (“DML error logging”) 1On conflict语句不能紧挨查询的from语句如果需要可以添加 where true语句来分隔。 重命名列 SQLite引入的另一个特有功能是重命名基准数据库表中的列1。标准的SQL不支持此类功能2。 SQLite遵循其他产品常用的语法来重命名列 ALTER TABLE … RENAME COLUMN … TO 0请查阅 sp_rename. 其他消息 在2018年SQLite除了在SQL语法上的变化还有一些应用程序接口API的变化。你可以查阅sqlite.comhttps://www.sqlite.org/news.html上的新闻部分来了解更详细的消息。 脚标: 0SQLite通常遵循PostgreSQL语法Richard Hipp将此称为PostgreSQL会怎么做WWPD。 1基准数据库表是指用Create table语句创建的数据库表。派生的数据库表如Select语句返回的查询结果集中的列名可以通过SELECT语句、FROM语句或WITH语句来进行改变 2据我所知也许可以通过可更新视图或派生的列来模拟该功能。 欢迎点赞收藏转发感谢 -End-
http://www.pierceye.com/news/851301/

相关文章:

  • h5网站建设价格wp-wordpress
  • 简单描述一下网站制作的流程投资理财产品的网站建设
  • 企业网站制作托管东营高端网站建设
  • 可以推广网站建立网站接受投注是什么意思
  • 微网站制作网站开发创建自己网站的步骤
  • 人才网网站开发手册外链发布平台大全
  • 福州网站备案wordpress打开媒体链接设置
  • 大学网站建设考核办法永春网站设计
  • 哪个设计网站赚钱百度地图网页版进入
  • 网站备案号不存在100m的网站 数据库
  • 网站空间管理平台网站模版 优帮云
  • 网站开发的比较备案期间 需要关闭网站吗
  • 做网站 怎么推广上海市企业服务云十问十答
  • 怎么做一种网站为别人宣传wordpress query_posts()
  • 网站的运营和维护专业做网站官网
  • 详细论述制作网站的步骤做网站需求 后期方便优化
  • 蒙icp备 网站建设学校网站建设管理
  • 做免费外贸网站册域名网站大全免黄
  • 祈网网站建设制作网站如何赚钱
  • 最讨厌网站门户类网站的主页设计
  • 国家建设环保局网站网站做的好赚钱吗
  • 如何设置网站服务器做标签的网站
  • 网站建设高端培训学校做网站交易平台
  • 公司网站建设收费优化网站排名解析推广
  • 昆明快速建站模板汽车网站建设多少钱
  • 网站注销主体注销广州联享网站建设公司怎么样
  • 中山seo建站新手建站教程报价单
  • 台州制作网站软件陈坤做直播在哪个网站
  • 北湖区网站建设公司企业主题wordpress 含演示数据
  • 网站建设简历自我评价做招聘信息的网站有哪些内容