标准结构化查询语言(Structured Query Language)简称SQL,sql是我们日常工作中使用最多一项技能,写sql可以说是一个可以干到退休的技能。看似简单,但要精通却很难。 sql包括增、删、改、查,创建表、删除表、修改表等等内容,我们今天所讲的sql是一种狭义上select语句,这个使用最频繁,也是最复杂的。写一篇关于技术类的文章,既要深刻,又要通俗易懂,的确要耗费我不少精力,如果大家觉得此文对你或者有需要的人有所帮助,整理不易,记得关注小编 欢迎您转发!
一、sql会不会淘汰?大家满怀热情点进来学习一下sql,首先要搞清楚一个问题,sql会淘汰吗?要回答这个问题,首先有必要了解sql发展背景,它是关系型数据库诞生的产物,有时候不得不佩服这些先辈,当关系型数据库起步发展的时候,就制定了一个统一的操作标准,就是SQL标准,所有关系型数据库(mysql/mssql/oracle)都会实现这个标准,这也是为什么sql会长盛不衰的原因,所以sql会不会淘汰,要看关系型数据库会不会淘汰?到目前为止没有看到任何关系型数据库淘汰的迹象,传统关系型数据库过渡到分布式关系型数据库,这是未来极有可能发生的事。
你可能会问市面不是有一个nosql的东西?首先nosql翻译成中文,不是”没有sql“的意思,而是”不仅仅有sql,还有其它“,nosql是not only sql的简称。nosql说的一种补充,什么意思,sql主要处理结构化的数据,nosql主要处理非结构化的数据。目前来说nosql没有一个统一的标准,都是按照用途来发展,比如键值(Key-Value)存储数据库, Redis;列存储数据库,Cassandra;文档型数据库, MongoDb;图形(Graph)数据库,Neo4J。
二、什么是IT高手扎实理论基础知识,这是决定一个人水平飞得有多高。灵活运用这个基础知识(非常难),才决定一个人水平有多牛。为什么我会说经常出现”卡壳“现象,有些看上去很难的问题,其实运用一些基础知识就可以解决,但是要做这一点非常困难。
我们通常对高手定义都是可以处理日常工作中一些难题,注意我说的是一些难题,不要期望解决所有的难题,什么是日常工作的难题?特点一:问题偶然出现,无法重现问题;特点二,没有明显的逻辑错误,没有解决问题思路;特点三:问题本身就很难(比如数据结构与算法)。比如,我们HIS里面医技系统就有这样一个难题一直无法解决,护士录入A代码记录,后台偶然间会保存B代码记录,半年时间偶然出现1,2次,但是我们在HIS程序里面各种极端操作测试,始终无法重现问题,实在令人不解!
在这里我分享一下曾经处理过难题,你会惊讶的发现,解决问题的方法很简单,都是用的最基本的基础知识解决的,但是你想到这种解决方法,非常不易!
第一个问题:使用netbeans开发环境,在书写js函数queryStr的时候,按ctrl shift F格式化代码的时候,偶然会出现结构混乱,有时候发现导航器js未出现这个函数,如下图所示:
问题原因: 原来js代码与html在同一个文件来写的,原来在queryStr函数是包含动态生成html代码的片断,虽然这个代码放变量赋值里面,在格式化的时候,netbeans依然会检测这个html是否合法,导致缩进混乱,和导航器分析不出这个函数。我个人猜测格式化的底层实现,将整个文档解析,解析html标签,即便html标签写在js字符串变量里面,如果没有完整配对,依然会出问题。
解决方法:保证queryStr涉及的html字符完整,并且里面提及的函数必须声明出来。
第二个问题:下面来分享mysql bug。通过mysqldump导出来sql脚本,测试还原过程中,出现[Err] 1064错误,跟踪到是以下语句出错,百思不得其解,当时写进数据库没有任何问题,为什么导出来,再导进去的时候就报错。
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''
质控科刘成章要求统计2018.04.01---2018-06-30门诊医生的收' at line 9
可能存在的原因:
UPDATE `info`.`fh_comm_detail` set `cl_proc` = ‘.....’ WHERE (`mxid` = '100005')