sql曾经让人惊喜。一个初哥刚刚写程序的时候,发现需要连接两张表,并且做些排序之类的工作。在不知道sql的情况下,觉得真的很麻烦:需要自己做循环,装入A和b两张表,
循环一个,然后根据键值和另一个表的键值匹配,然后自己做排序。想起来好头痛。我和他说,OK,这是sql可以搞定的。
只要select * from a join b on a.id =b.aid order by c 。就这么简单。别笑他,他觉得兴奋而雀跃。
10年过去了,一点点发现sql真的很有改进空间。试着举例。
1. 单表查询可以更加简洁。
当我们需要带条件的查询一个表的时候,需要
select * from A where b = '' and c = 0
难道不可以
A?b=''&c=0
看起来是不是同样的效果,但是清爽的多呢?
2. 多表查询可以更简洁。
当我需要join的时候,比如
select * from a join b on a.id =b.aid order by c
好,我就这样写吧。
然后当我在其他地方需要a和b的时候,我还是一样的需要
a join b on a.id =b.aid
一个系统,这样的join非常多,于是这个on条件就要到处写。
可真实情况是:一旦表设计确定,a和b的链接基本上都是用a.id ,b.aid这样的主键和外键来链接的。
这样在系统中就有大量的重复了。
为什么不一次配置,然后到处使用这样的on条件呢?
比如:
set a join b on a.id =b.aid
select * from a ,b order by c
3. sql很笨。
有时候,我希望来一个select a* from b 把b表的所有a开头的字段都选择出来,可是sql不行。它一定要select ad,ae,af from b 一板一眼的把所有需要的字段写完。
或者我希望把b表的除了a字段外的其他字段选择出来,比如select [ all field except a] from b 。当然这样也是不行的。
可见,sql是冗余的,是不够清爽的。
有人说,hi,语法吗?关系不大了。请问为什么很多人喜欢c的语法,而不喜欢pascal的呢?为什么大量的语言都采用了c的语法,而不是pascal,或者该死的cobol呢?程序员总是
喜欢更加简洁的。
有人说,hi,重复一点有什么关系呢,还不是为了让人更加容易阅读吗?可是让人容易阅读并不非要冗余。重复带来的问题就很麻烦了。重构技术解决的就是冗余问题,sql生出来
的年代太早,并不会考虑到重构技术的要求;
有人说,hi,sql是标准啊。没有错,标准是够害人的。这些年计算机通用语言竞争激烈,方兴未艾,而sql一家独大也久矣,我们至少应该对新的sql寄予希望。
sql太老了,并且经年不变,需要引入新的血液了。
我认为htsql就是这样的尝试,它定位于初哥使用,而我的看法是它应该用htsql的这样的语言设计替代掉苍老的sql。
看看这个地址,很简单。也许你会喜欢它。
http://htsql.org/doc/tutorial.html
分享到:
相关推荐
SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...
标题中的“最新淘宝商品类目数据.sql”表明这是一个SQL文件,包含了淘宝平台的商品类别数据。在电商领域,商品类目是组织和管理在线销售产品的一种方式,它类似于传统零售店的商品货架,帮助消费者快速找到他们感...
SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动...
在IT行业中,数据库管理系统是核心组成部分,SQL Server和Oracle分别是微软和甲骨文公司推出的两款广泛应用的关系型数据库系统。在企业级应用中,有时需要在不同的数据库系统间进行数据迁移或兼容性处理,这就涉及到...
java 连接sqlserver数据库 sqljdbc4.jar sqlserver2005 2008 jdbc sqljdbc
SQL Server 导入超大 SQL 脚本文件 SQL Server 是一种关系型数据库管理系统,广泛应用于各种行业。然而,在实际应用中,我们经常会遇到导入超大 SQL 脚本文件的问题。本文将介绍如何使用 osql 工具来导入超大 SQL ...
如果你的开发环境或者Kettle运行环境使用的是JDK 6或7,那么你应该选择sqljdbc4.jar。这个驱动包含了对Java.sql.Connection接口的新特性的支持,比如获取服务器时间戳(getServerTimezoneTimestamp)等。 2. sql...
本人在Windows7 64位+SQL Server 2012环境下测试通过(系统是全新安装) 使用方法: 1,安装SQLPrompt v5.3,这个不多说。 2,安装完毕后,断开网络连接。 3,打开Visual Studio或者SQL Server Management Studio(版本...
五级行政区域包含:一级行政区)省级行政区:省、自治区、直辖...本资源为2023年3月份最新更新的最新版全国五级行政区域数据库表以及sql文件,包含行政区域名称及区域代码,如需原始数据表格或者json版本可联系本人获取。
【DTcms_50_sql_src最新旗舰版带手机】是一个基于.NET框架的高效内容管理系统,专为构建企业网站和移动应用而设计。该系统的核心特性包括强大的数据管理、灵活的模板引擎、以及对移动端的良好支持。 1. **DTcms**:...
- SQL Developer 支持创建新的数据库连接配置。 - 也提供了导出和导入连接配置的功能,便于在不同环境中重用。 3. **编辑表列定义:** - 在 SQL Developer 中,可以通过右键点击表名,选择 “Table Designer” ...
《SQLMonitor:Oracle数据库SQL跟踪与分析利器》 在IT行业中,数据库的高效管理与优化是至关重要的。针对Oracle数据库,有一款名为SQLMonitor的工具,它专为跟踪和监控SQL语句而设计,帮助开发者和DBA们找出程序...
1. 在 Sql Server 2005 中建立一个新的数据库,例如 jmmaj。 2. 右击 jmmaj 数据库,选择“任务”->“导入数据”,然后选择数据源和目标数据,复制一个或多个表或视图数据,最后完成导入。 二、通过数据库脚本将 ...
- **资源管理**:介绍了SQL Server 2008中的一些新特性,如Resource Governor,用以更有效地分配系统资源。 #### 五、安全性和审计 书中还特别强调了安全性的重要性,并提供了以下内容: - **用户权限管理**:...
尽管SQL Server 2000已过时,学习其客户端工具的使用仍然有价值,因为许多核心概念和T-SQL语法在新版本中仍然适用。 在实际工作中,了解并熟练掌握这些客户端工具能极大地提高数据库管理效率,确保SQL Server实例的...
2022年最新全国省市区数据表,上下级关联,首字母,拼音,经纬度,地区编码等字段齐全
OracleSqlConvert4MysqlSqlTool.java这个源码工具,根据描述,应该是实现了自动读取Oracle SQL语句,分析其结构,并根据MySQL的语法规则进行转换,然后将转换后的SQL语句保存到指定的目标文件中。这个工具简化了手动...
兼容,呵呵,听起来有点不可思议。系统已经于3个月前上线,目前运行很稳定。 如果有人用得着或发现什么问题,请加我的QQ:229481711,同时请支持一下本人的报表控件作品(Ac Report): ...
最近折腾SQL Server的localdb,微软自带的管理工具很庞大,安装复杂。发现Toad的很好用SQL Server数据库管理工具,特意制作成单文件,不用安装,直接管理。已经注册好了,可以直接使用。win7、8(64位)测试可行。 ...
应使用 SQL Native Client 来创建新的应用程序或增强需利用 SQL Server 2005 新增功能的现有应用程序。SQL Native Client 的这个可再分发安装程序用于安装运行时所需的客户端组件,以利用 SQL Server 2005 的新增...