Mariadb学习笔记查询数据0

  7.1、 基本查询
SELECT column FROM tables;
eg:
SELECT * FROM bires;
查询所有列,用星号通配符
SELECT common_name,scientifci_name FROM birds;
查询多列,有逗号隔开。
 
7.2 有条件地查询
假设我们只想查出某一科的鸟,如Charadriidat(即Plover)。从bird_families表可知,它的family_id是103.于是,我们在SELECT语句使用WHERE子句,从birds表中获取这一科的鸟种列表:

Mariadb学习笔记查询数据0

此SELECT 语句要求返回两列,并且排位与定义表时所排的"scientific_name先于common_name"不同。并且我还加了LIMIT子句,使结果只显示头三行。到于LIMIT子句,我会在稍后讲到。
因为我们将科的信息放在了另一个表中,所以必须在查询birds之前,先从bird_families找出相应的ID.这看起来好像绕了一圈。其实我们有更简捷的方法,可以直接使用Charadriidae而不是一个数字来查询。该方法叫作表连接。我们会在后面讲到。
 
7.3 结果排序
上例从birds表获取了指定的列,并且用LIMIT来限定了行数。所得的行的排序方式取决于它们表中被找到的顺序。因为我们只显示Charadriidae科所含的鸟种的一小部分,所以排序对最终结果有很大影响。如果想让结果按照common_name列的字母序来排列,可以这样加上ORDER BY子句:
Mariadb学习笔记查询数据0
注意,ORDER BY 是放在WHERE之后、LIMIT之前。于是,此语句不但使结果按common_name来排序,还按
此顺序取头三行。这意味着,MySQL先按WHERE子句获取所有行,并在幕后将此结果集存放于一个临时表中,
然后根据ORDER BY 子句对该表排序,最后根据LIMIT子句获取排序后的表的前三行。这就是为会么我们要交过三个子句按这样的次序来写。
ORDER BY 子句默认是升序的,即从A到Z往下排。如果你想逆序,可国上DESC选项,即ORDER BY DESC.相对的,也有表示升序的 ASC ,不过一般是不需要用的,因为默认是升序的。
 

SELECT * FROM bird_families
WHERE scientific_name
IN('Charadriidae (Plovers and Lapwings)',
'Haematopodidae (Oystercatchers)',
'Rostratulidae (Painted-Snipes)',
'Scolopacidae (Sandpipers and Allies)');
 
Mariadb学习笔记查询数据0

SELECT common_name,scientific_name,family_id
FROM birds WHERE family_id
IN(168,167,171,173)
ORDER BY common_name
  LIMIT 3;
Mariadb学习笔记查询数据0
 
 
在WHERE子句中,我们使用逻辑运算符 AND,添加了第二个过滤条件。这样就能查出family_id在168,167,171,173之中,而且common_name不为空的行。
SELECT common_name,scientific_name,family_id
FROM birds
WHERE family_id IN(168,167,171,173)
AND common_name !=''
ORDER BY common_name LIMIT 3;

Mariadb学习笔记查询数据0

7.4、限定结果集
  SELECT common_name,scientific_name,family_id  FROM birds  WHERE family_id IN(168,167,171,173) AND common_name != '' ORDER BY common_name LIMIT 3,2;
Mariadb学习笔记查询数据0

这个LIMIT 子句带了两个值:一个是开始位置,一个是行数
 
7.5、表连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值