首先是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名客户信息。

第一天就先这样啦~