【 MySQL】9.0 入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列...

1.0 SELECT语句用来从数据表中检索信息。
SELECT what_to_select FROM which_table WHERE conditions_to_satisfy;

what_to_select指出你想要看到的内容,可以是列的一个表,或*表示“所有的列”。

which_table指出你想要从其检索数据的表。

WHERE子句是可选项,如果选择该项,conditions_to_satisfy指定行必须满足的检索条件。

2.0 在我的博文“MySQL入门学习(八)”中,创建了一个小动物园的数据库,里面有宠物的相关信息的表。
16102290-9e4178242d0aab74
image
16102290-1496bf8a63cbb793.gif
image.gif

比如现在发现王二狗家的bowser出生年月错了,是1989年,而不是1979年。

至少有两种修正方法:

编辑文件“pet.txt”改正错误,然后使用DELETE和LOAD DATA清空并重新装载表:

·                mysql> DELETE FROM pet;
·                mysql> LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;

然而, 如果这样操做,必须重新输入Puffball记录(因为Puffal是后来新增的一行数据)。

· 用一个UPDATE语句仅修正错误记录:

·                mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';

UPDATE只更改有问题的记录,不需要重新装载数据库表。

16102290-f946917ca8a531d6
image
16102290-10b88d71599eb9f4.gif
image.gif

3.0 如果想要验证对Bowser的生日所做的更改,按下述方法选择Bowser的记录:

mysql> SELECT * FROM pet WHERE name = 'Bowser';

16102290-56dbbb8b30ab270d
image
16102290-b176bf763527563b.gif
image.gif

4.0 如果想要知道哪个动物在1998以后出生的,测试birth列:

mysql> SELECT * FROM pet WHERE birth > '1998-1-1';
5.0 可以组合条件,例如,找出雌性的狗:
mysql> SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';
16102290-8b0542fb43fd2fef
image
16102290-d42d9f80364fdc87.gif
image.gif

6.0 也可以查询蛇和鸟的记录:

mysql> SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';

16102290-c3bed3041063db7f
image
16102290-e07869af62cdca80.gif
image.gif

7.0 AND和OR可以混用,但AND比OR具有更高的优先级。如果你使用两个操作符,使用圆括号指明如何对条件进行分组是一个好主意:
mysql> SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm')
    -> OR (species = 'dog' AND sex = 'f');

[图片上传失败...(image-f45d25-1578447621821)]

16102290-22f2de48c6b7f5a6.gif
image.gif

8.0 如果只想要知道动物什么时候出生的,不想看到表中的所有行,选择name和birth列:

mysql> SELECT name, birth FROM pet;

**
16102290-18b53a960af94720
image
16102290-28584add5247f65a.gif
image.gif

​**

9.0 找出谁拥有宠物:

mysql> SELECT DISTINCT owner FROM pet;

16102290-7a017ea2c1181e2b
image
16102290-51f99261657aaa8a.gif
image.gif

10.0 但是有的人可能拥有很多宠物,当为了收集查看谁拥有宠物时,多次出现的主人没必要再次显示出来,我们可以增加关键字DISTINCT检索出每个唯一的输出记录(当然,我的数据中当前都是一人只有一条宠物和一条宠物记录):

mysql> SELECT DISTINCT owner FROM pet;

**
16102290-85bbf5ea06533811
image
16102290-8d2a6de8ca262765.gif
image.gif

​**

11.0 综合上面的都可以猜到一种使用方法:查询狗和猫的出生日期,并只显示宠物名字、类型和出生日期。
mysql> SELECT name, species, birth FROM pet
    -> WHERE species = 'dog' OR species = 'cat';
16102290-41efeea7aed40381
image
16102290-11617233459d4556.gif
image.gif

12.0 当行按某种方式排序时,检查查询输出通常更容易。为了排序结果,使用ORDER BY子句。

比如,按照动物的出生年月排序(默认排序是升序)显示:

mysql> SELECT name, birth FROM pet ORDER BY birth;

16102290-65968e402b35f2c6
image
16102290-ac052d18c56ba08e.gif
image.gif

13.0对于某一列,可以使用BINARY强制执行区分大小写的分类功能,如:ORDER BY BINARY col_name.
14.0 要想以降序排序,在你正在排序的列名上增加DESC(降序 )关键字:

mysql> SELECT name, birth FROM pet ORDER BY birth DESC;

[图片上传失败...(image-89d285-1578447621820)]

16102290-dd467ea7779bbe20.gif
image.gif

15.0 可以对多个列进行排序,并且可以按不同的方向对不同的列进行排序。例如,按升序对动物的种类进行排序,然后按降序根据生日对各动物种类进行排序(最年轻的动物在最前面,DESC关键字仅适用于在它前面的列名(birth);不影响species列的排序顺序。),使用下列查询:
mysql> SELECT name, species, birth FROM pet
    -> ORDER BY species, birth DESC;
16102290-06f7340a0ef542c9
image
16102290-d76414550c344163.gif
image.gif

16.0 日期计算

MySQL提供了几个函数,可以用来计算日期,例如,计算年龄或提取日期部分。

要想确定每个宠物有多大,可以计算当前日期的年和出生日期之间的差。
mysql> SELECT name, birth, CURDATE(),

    -> (YEAR(CURDATE())-YEAR(birth))

    -> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))

    -> AS age
    -> FROM pet;

END

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值