数据库的数据:
选择特定的行:
SELECT * FROM pet WHERE name = 'Fluffy';
字符大小写通常没有影响,所以你可以使用name="fluffy' 或者“FLUFFY'.,结果是一样的。
你也可以使用其他任意一栏的条件(上面用的是name,这里可以换成birth,or其他任何有记录的元素)
SELECT * FROM pet WHERE birth >= '1995-01-01';
你也可以使用不同条件的组合形式,如定位雄性蛇(信息并列)
SELECT *FROM pet WHERE species = 'snake' AND sex = 'm';
(AND 可小写)
或者(多种选择)
SELECT * FORM pet WHERE species = 'snake' OR species = 'cat';
AND 和OR也可以混用,AND比OR具有更高的优先级,如果使用两者操作,需要分析清楚条件是如何组合的。
例如
:
选择特定的列:
使用关键字WHERE 组合行和列
Sorting Rows(行排序)
你的数据可能是没有什么顺序。如果数据以某种方式顺序存在,对于某个记录的查找也很方便
需要用到ORDER BY (order by )
排序默认为升序(第一个最小),如果要改成降序,添加DESC关键词。
你可以将不同的列作为排序的依据,上面将生日作为排序的依据,现在可添加动物种类来排序(字母顺序)
日期计算:
MySQL提供一些可以用来计算日期的函数,例如计算年龄或者提取部分日期。
例如,要计算宠物的年龄是多少,可以使用TIMESTAMPDIFF()函数,参数中两个日期的差值,得出年龄age.
结果是正确的,想想如果结果以某种顺序排序,是否更容易观察,可以使用前面提到的ORDER BY(这里假设选用name排序)
当然。也可以选用计算出来的age 来排序,只需要将上面name改为age即可
我们来查看一下数据库里宠物的信息
其中属于一只叫Claws的cat是在2100-09-04年死的,出生日期是1994-09-04,这么一算,它有106岁。他的death栏比是NULL,所以计算需要做点改动
如果你想知道下个月是不是哪个宠物过生日,这样的计算,年和日相对来说就是无关的
我们要做的就是从日期中提取月份,MySQL提供一些函数,如YEAR(),MONTH(),DAYOFMONTH()
这里最合适的就是MONTH()
如果现在是8月份,你很想知道9月份是否有宠物过生日
结果是以0或1表示的,1就表明Claws是9月份过生日。如果想看得更详细,可以这样做
如果现在月份是12月份,情况可能有点复杂,你不能直接在12上加1,因为没有13月份。你需要找到的是1月份。
你可以这样做
也可以使用函数MOD(),当月份为12时,使month=0 然后加1
MONTH()函数返回一个介于1~12之间的数。MOD(something,12) 返回一个0~11之间的数。
如果计算用到了不和法的日期,会导致计算失败并且产生警告
这个计算时正确的。当使用错误日期的时候:
----------------------------------------------------------------------------------------------------------------------------------------
人最惨的,并不是莫名其妙的被人给领上了一条迷路,而是当你背上孤独拿上剑,决定要马不停蹄,一意孤行的时候,突然冒出来一个人,把你抱紧,说,少年,我想和你分享这漫长的一生。你一激动,把剑给扔了,把马烤了,吃完一回头,人没了