首先是MySQL的安装,在此不多赘述。
我选择了MOSH老师的Complete SQL Mastery作为学习材料,基础易懂。
正式进入MySQL,每次打开应用时,画面是这样子的:
可以创建新connections,也可以方便的单击进入之前操作的Connections里。
在简单了解了界面布局和基本button function之后,首先要学的是基本的检索数据和对数据的基本操作。
1. 选中SQL store database:
使用USE + database 名称可以选中某个特定的数据库,如:
被选中的数据集将会以粗体显示,选中之后,在接下来的语句中就不需要特别指定哪个数据库了。MySQL不区分大小写,可以使用USE,也可以使用use,但为清晰,应养成系统命令使用大写的好习惯。
2. SELECT-FROM指令
SELECT用于选中数据库中的某一列,当选中全部列是使用“*”,FROM是告诉SQL,要从哪一个数据集中选择SELECT指定的列。如:
这样就可以在sql_store数据库中检索出名称为customers的数据集的全部信息啦。(顺便一提,MySQL在有多个语句时需要用分号结尾,如上图USE语句后的分号)
当然也可以选择不同的列,在SELECT语句后加上自己想要的列,还可以对每一列进行基本的操作,如想要给上面customers数据集中的points列每一个数据加十分,就可以在SELECT中直接操作,如图所示:
用AS 指令给刚刚操作的一列数据命名。
3. WHERE指令
用WHERE指令,可以附带条件地检索想要的数据。
还是拿customers数据集做示范,想要检索分数大于3000分地顾客,可以用WHERE指令。如图:
MySQL的比较运算符是常规的,常见的有“=(等于)”“>(大于)”、“=(大于等于)”、”<=(小于等于)”、“!=(不等于)”、“<>(不等于)”等,后面两个作用基本上是一样的。
令人惊喜的是,MySQL对日期的检索也十分方便,比如要检索1990年后出生的顾客的信息,仅需输入标准的日期格式即可,如:
第一次感受到了SQL的方便!
WHERE后也可以加入数学运算符,比如加300分后points项大于某一数字的顾客,可以通过数学运算符轻易实现。
当使用WHERE语句时,也可以使用IN 来使输入更加简洁,比如,当想要检索住在“VA”和”CO“两个地方的顾客时,不必输入:
WHERE state = ‘VA’ OR state = ‘CO’ ;
而直接可以使用:
WHERE state IN (‘VA’, ‘CO’) ;
当然,输入NOT IN 就可以检索不在指定列表内的顾客啦。
也可以在WHERE指令后加区间条件,用BETWEEN即可实现,也不限于数字,日期也可以。
使用LIKE指令,可以选择某一列中带有指定字符的顾客,比如,想检索以“B”开头的顾客,则在WHERE后使用LIKE指令,如图:
%表示任意数量的字符,这样就检索到姓名以B开头的顾客啦。
如果想要检索名字中带字母b而不仅仅是开头时,使用%b%即可,以b结尾就使用%b。
如果想要指定字母个数,需要使用下划线“_”,比如像检索姓氏最后一位是“y”,“y”前面有5个字母的顾客,需要输入“_____y”即可。当然,也可以指定任意的格式。
总之:“%”代表任意数量字符,“_”代表一个单字符
学到这里我发现一个问题,就是MySQL好像不能执行LIKE IN语句,想要得到指定不同字符的顾客,仿佛只能用OR 来慢慢输入。Stackoverflow一个问题贴证实了我的猜想,MySQL的确不能使用LIKE IN,但是可以使用REGEXP指令(好像是正则表达式,以后应该会学)获得假定的LIKE IN的效果,如图所示:
这里“|”类似OR的作用。还有人说REGEXP只能输入在一行里,先提醒自己一下,希望MOSH老师之后会讲。
果然,接下来MOSH老师就讲了REGEXP(要是我再多听一会儿就不用自己去搜了……)!
REGEXP中有“^”和“$”符号,前者表示输入字段在所检索的信息里置于开头,后者表示置
于末尾。“|”是pipe的意思,其实作用就是OR。还有“[]”,还能再指定条件,如图所示:
这样就指定了e前面需要有g、i、e三个字母的顾客姓氏啦。
当然还有很多样的形式,如可以在方括号里使用“a-h”,而不用输入“abcdefgh”。
另外我还发现,“[]”中可以输入下划线“_”来表示单个字符,可以输入“%”来表示任意数量字符。
另外还有IS指令,比LIKE要更加严格
总结一下
WHERE指令后可以加——
(1)比较运算符
(2)数学运算符
(3)IN +()搜索多个内容
(4)BETWEEN 按区间条件搜索
(5)LIKE 搜索有相应内容的信息,没有 “LIKE IN”这一指令
(6)REGEXP 作用类似LIKE
(7)IS 通常加NULL查询有空缺数据的字段
4. ORDER BY 指令
排序是清晰展示数据的重要手段,因此我们有时需要在数据库中改变数据排序,用ORDER BY。如图:
这样原本按照id排序的数据集就可以按照指定的要求排序啦,MySQL默认升序,若要降序可以在后面加DESC。MySQL还可以在SELECT指令后添加任意的新列来进行排序。
5. LIMIT指令
有时候我们只想得到前几个信息,这时就需要用到LIMIT指令。直接加我们想要的数字,就可以得到指定数量的信息字段。当我们想选取中间的几个信息时,我们可以设置offset,如图:
图中3就是offset,表明我们跳过3个客户信息,4就是我们要选择的信息数量,如图展示了4名客户信息。
第一天就先这样啦~