mysql学习记录7.22

记录一下在学习mysql时避免忘记的内容。

日期计算

MySQL提供了一些函数,可用于对日期执行计算,例如,计算年龄或提取部分日期。
要确定您的每只宠物几岁,请使用该 TIMESTAMPDIFF()功能。它的参数是要表示结果的单位,以及两个日期之间的差值。以下查询为每只宠物显示出生日期,当前日期和年龄(以年为单位)。一个 别名(age)是用来制造最终输出列标签更有意义。

SELECT name, birth, CURDATE(),
       TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age
       FROM pet;

可以用来计算时间差,很有用。

计算企业的营业时间

 SELECT name, birth, death,
       TIMESTAMPDIFF(YEAR,birth,death) AS age
       FROM pet WHERE death IS NOT NULL ORDER BY age;

通过这个代码能计算出企业的营业日期,即企业的开始时间和截止时间。

计算出生年月日

如果您想知道下个月哪些动物有生日该怎么办?对于此类计算,年份和日期无关紧要;您只想提取birth列的月份部分 。MySQL提供了几个用于提取日期的部分,如 YEAR(), MONTH()和 DAYOFMONTH()。 MONTH()是这里的适当功能。看看它是如何工作的,运行一个简单的查询同时显示的数值birth和 MONTH(birth):

SELECT name, birth, MONTH(birth) FROM pet;
SELECT name, birth FROM pet WHERE MONTH(birth) = 5;

日期加一天

SELECT '2018-10-31' + INTERVAL 1 DAY;

Like匹配

%可以代替一切字符。
要查找正好包含五个字符的名称,请使用_模式字符的五个实例:

SELECT * FROM pet WHERE name LIKE '_____';

其实也可以用length进行长度计算。

同张表进行匹配,比如匹配同物种,可以结婚的

要在您的宠物中查找繁殖对,您可以将其pet自身与桌子结合起来,以产生候选的成对活体雄性和雌性相似物种:

SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
       FROM pet AS p1 INNER JOIN pet AS p2
         ON p1.species = p2.species
         AND p1.sex = 'f' AND p1.death IS NULL
         AND p2.sex = 'm' AND p2.death IS NULL;

LEFT JOIN:

SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.article = s2.article AND s1.price < s2.price
WHERE s2.article IS NULL
ORDER BY s1.article;

你可能感兴趣的:(mysql学习记录7.22)