db2日期加一天_自学MySQL第一天

03a88b29c57adfe0eb6fe4328732c4ed.png

首先是MySQL的安装,在此不多赘述。

我选择了MOSH老师的Complete SQL Mastery作为学习材料,基础易懂。

网址为https://codewithmosh.com。

正式进入MySQL,每次打开应用时,画面是这样子的:

38d5e75fd168e0bd87702ea35fa4450b.png

可以创建新connections,也可以方便的单击进入之前操作的Connections里。

在简单了解了界面布局和基本button function之后,首先要学的是基本的检索数据和对数据的基本操作。

1. 选中SQL store database

使用USE + database 名称可以选中某个特定的数据库,如:

8d6fa5855bac97952c116902bc533d26.png

被选中的数据集将会以粗体显示,选中之后,在接下来的语句中就不需要特别指定哪个数据库了。MySQL不区分大小写,可以使用USE,也可以使用use,但为清晰,应养成系统命令使用大写的好习惯。

2. SELECT-FROM指令

SELECT用于选中数据库中的某一列,当选中全部列是使用“*”,FROM是告诉SQL,要从哪一个数据集中选择SELECT指定的列。如:

5f6406e0d68e9f24b5b51c59ca78dcce.png

这样就可以在sql_store数据库中检索出名称为customers的数据集的全部信息啦。(顺便一提,MySQL在有多个语句时需要用分号结尾,如上图USE语句后的分号)

当然也可以选择不同的列,在SELECT语句后加上自己想要的列,还可以对每一列进行基本的操作,如想要给上面customers数据集中的points列每一个数据加十分,就可以在SELECT中直接操作,如图所示:

7663271018a08735d9c438e60052b6fa.png

AS 指令给刚刚操作的一列数据命名。

3. WHERE指令

用WHERE指令,可以附带条件地检索想要的数据。

还是拿customers数据集做示范,想要检索分数大于3000分地顾客,可以用WHERE指令。如图:

8b00793a280666b3bc06f2bdd53dffe3.png

MySQL的比较运算符是常规的,常见的有“=(等于)”“>(大于)”、“<(小于)”、“=(等于)”、“>=(大于等于)”、”<=(小于等于)”、“!=(不等于)”、“<>(不等于)”等,后面两个作用基本上是一样的。

令人惊喜的是,MySQL对日期的检索也十分方便,比如要检索1990年后出生的顾客的信息,仅需输入标准的日期格式即可,如:

f802003c440179e7e11560d80a1d4c6b.png

第一次感受到了SQL的方便!

WHERE后也可以加入数学运算符,比如加300分后points项大于某一数字的顾客,可以通过数学运算符轻易实现。

当使用WHERE语句时,也可以使用IN 来使输入更加简洁,比如,当想要检索住在“VA”和”CO“两个地方的顾客时,不必输入:

WHERE state = ‘VA’ OR state = ‘CO’ ;

而直接可以使用:

WHERE 

当然,输入NOT IN 就可以检索不在指定列表内的顾客啦。

也可以在WHERE指令后加区间条件,用BETWEEN即可实现,也不限于数字,日期也可以。

使用LIKE指令,可以选择某一列中带有指定字符的顾客,比如,想检索以“B”开头的顾客,则在WHERE后使用LIKE指令,如图:

d3d38caa50206bd54eb40c1329f3f34e.png

%表示任意数量的字符,这样就检索到姓名以B开头的顾客啦。

如果想要检索名字中带字母b而不仅仅是开头时,使用%b%即可,以b结尾就使用%b。

如果想要指定字母个数,需要使用下划线“_”,比如像检索姓氏最后一位是“y”,“y”前面有5个字母的顾客,需要输入“_____y”即可。当然,也可以指定任意的格式。

总之:“%”代表任意数量字符,“_”代表一个单字符

学到这里我发现一个问题,就是MySQL好像不能执行LIKE IN语句,想要得到指定不同字符的顾客,仿佛只能用OR 来慢慢输入。Stackoverflow一个问题贴证实了我的猜想,MySQL的确不能使用LIKE IN,但是可以使用REGEXP指令(好像是正则表达式,以后应该会学)获得假定的LIKE IN的效果,如图所示:

v2-9c5e107bee6b95d2d21839837bc4e268_b.jpg

这里“|”类似OR的作用。还有人说REGEXP只能输入在一行里,先提醒自己一下,希望MOSH老师之后会讲。

果然,接下来MOSH老师就讲了REGEXP(要是我再多听一会儿就不用自己去搜了……)!

REGEXP中有“^”和“$”符号,前者表示输入字段在所检索的信息里置于开头,后者表示置

于末尾。“|”是pipe的意思,其实作用就是OR。还有“[]”,还能再指定条件,如图所示:

15660eb824e0e2a6bbfd75f8f90eb3cf.png

这样就指定了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。如图:

3d785728df585a30480c0871bad6c017.png

这样原本按照id排序的数据集就可以按照指定的要求排序啦,MySQL默认升序,若要降序可以在后面加DESC。MySQL还可以在SELECT指令后添加任意的新列来进行排序。

5. LIMIT指令

有时候我们只想得到前几个信息,这时就需要用到LIMIT指令。直接加我们想要的数字,就可以得到指定数量的信息字段。当我们想选取中间的几个信息时,我们可以设置offset,如图:

3a600ca98cd09f370dd8a37e2638f621.png

图中3就是offset,表明我们跳过3个客户信息,4就是我们要选择的信息数量,如图展示了4名客户信息。

第一天就先这样啦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值