住院无聊学编程--SQL(一)

cheva(73)
Published in
#cn
Words
905
Reading
5 min
Listen
Play
7y

一、聊天

经过昨天一番折腾,总算住了进来,由于病理检查的伤口发炎,不能马上手术,先得消肿消炎。治疗方案就是打消炎针,然后用配了庆大霉素的生理盐水湿敷伤口。因为伤口在腿上,还是需要卧床休息。可以说空闲时间大把,如果全用来追剧,打游戏,太浪费了。还是学点东西吧。于是从google play上下载了一个SQL practice pro的app学起来。

二、为什么学SQL

SQL是通用的数据库查询语言,应用非常广。而且SQL语言关键词很少,容易入门。再就是上次用Excel的vlookup函数把日常工作中的摄像头巡检工作优化了一下,感觉还不够便利,下一步打算用数据库重新写个程序简化这个工作。所以先准备一下。

三、SQL practice pro app 介绍

这个app 是问题驱动的,里面有一个大学教授薪金数据库。然后app里面有各种应用题,要你编写SQL语句从数据库中检索出想要的数据,比如每个系有几个教授,哪个系的教授平均收入最高,每个系中那个教授的薪水最高,是多少?等等。SQL语句的神奇之处就是哪怕是比较复杂的查询,也能用一句话解决。这种问题驱动的app学习起来有点像游戏闯关一样,还是很有意思的。

四、学习笔记

目前学到的SQL命令:

  • select 最常用的命令,用来查找数据。后面跟各种从句(clause)。限定查找条件。
  • distinct 跟在select后面,如果指定列中有重复的数据,则只显示一个。后面不带括号。
  • from 指定从哪张表中查找数据。
  • Max ()、min()这个不用解释了。使用时要带括号
  • group by分组命令,作为从句跟在后面,一般跟上面的最大、最小值还有求和,求平均等命令配合使用。比如上面提到的查询每个系收入最高的教授是谁的问题里就会用到group by。
  • where 条件命令,这个也是使用频率极高的命令,后面跟查询条件。基本上和其它编程语言里面if 一个意思。
  • order by排序命令,按照某一列的数据对查询结果进行排序,默认是升序,如果要降序,比如查找全校收入前十的教授。就要加一个desc。
  • limit 限定查询结果返回的条数。比如上面要查询前十名,就要加一个limit 10。有时候会查询中间的名次,比如第三名是谁。这时候要用到offset 参数,就是来limit 1 offset 2。offset 参数后面一个数(+1)才是返回的记录位置。
  • like 这个有点像模糊查询,有两种通配符--%和。%表示任意个字符包括0个。表示只有一个字符。比如a%表示记录中包含a开头的单词,a__%则表示记录中包含a开头的单词,但长度至少是3个字符,an 、ax是不符合的。

参考资料

住院无聊学编程--SQL(一) | Ecency