设为首页 加入收藏

TOP

mysql SELECT查询(一)
2015-11-21 01:28:04 来源: 作者: 【 】 浏览:5
Tags:mysql SELECT 查询
一、单表查询
?
1、一般查询。2、聚合函数、排序 3、别名。4、分组。5、分组过滤。6、限制显示条目。7、杂项。
?
二、多表查询
?
1、联结查询。2、子查询。3、联合查询。
?
数据库版本:5.5.46-MariaDB
?
说明一下这几张表,这是在上马哥课程的时候给的生成表的sql备份文件。
在文章最后我把它放到附件中。
?
注意:在linux上表名是区分大小写的。
?
如果搞不清语句顺序请看:help select
?
一、单表查询
1、一般查询
?
MariaDB [hellodb]> SELECT * FROM students;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name ? ? ? ? ?| Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
| ? ? 1 | Shi Zhongyu ? | ?22 | M ? ? ?| ? ? ? 2 | ? ? ? ? 3 |
| ? ? 2 | Shi Potian ? ?| ?22 | M ? ? ?| ? ? ? 1 | ? ? ? ? 7 |
| ? ? 3 | Xie Yanke ? ? | ?53 | M ? ? ?| ? ? ? 2 | ? ? ? ?16 |
| ? ? 4 | Ding Dian ? ? | ?32 | M ? ? ?| ? ? ? 4 | ? ? ? ? 4 |
| ? ? 5 | Yu Yutong ? ? | ?26 | M ? ? ?| ? ? ? 3 | ? ? ? ? 1 |
| ? ? 6 | Shi Qing ? ? ?| ?46 | M ? ? ?| ? ? ? 5 | ? ? ?NULL |
| ? ? 7 | Xi Ren ? ? ? ?| ?19 | F ? ? ?| ? ? ? 3 | ? ? ?NULL |
| ? ? 8 | Lin Daiyu ? ? | ?17 | F ? ? ?| ? ? ? 7 | ? ? ?NULL |
| ? ? 9 | Ren Yingying ?| ?20 | F ? ? ?| ? ? ? 6 | ? ? ?NULL |
| ? ?10 | Yue Lingshan ?| ?19 | F ? ? ?| ? ? ? 3 | ? ? ?NULL |
| ? ?11 | Yuan Chengzhi | ?23 | M ? ? ?| ? ? ? 6 | ? ? ?NULL |
| ? ?12 | Wen Qingqing ?| ?19 | F ? ? ?| ? ? ? 1 | ? ? ?NULL |
| ? ?13 | Tian Boguang ?| ?33 | M ? ? ?| ? ? ? 2 | ? ? ?NULL |
| ? ?14 | Lu Wushuang ? | ?17 | F ? ? ?| ? ? ? 3 | ? ? ?NULL |
| ? ?15 | Duan Yu ? ? ? | ?19 | M ? ? ?| ? ? ? 4 | ? ? ?NULL |
| ? ?16 | Xu Zhu ? ? ? ?| ?21 | M ? ? ?| ? ? ? 1 | ? ? ?NULL |
| ? ?17 | Lin Chong ? ? | ?25 | M ? ? ?| ? ? ? 4 | ? ? ?NULL |
| ? ?18 | Hua Rong ? ? ?| ?23 | M ? ? ?| ? ? ? 7 | ? ? ?NULL |
| ? ?19 | Xue Baochai ? | ?18 | F ? ? ?| ? ? ? 6 | ? ? ?NULL |
| ? ?20 | Diao Chan ? ? | ?19 | F ? ? ?| ? ? ? 7 | ? ? ?NULL |
| ? ?21 | Huang Yueying | ?22 | F ? ? ?| ? ? ? 6 | ? ? ?NULL |
| ? ?22 | Xiao Qiao ? ? | ?20 | F ? ? ?| ? ? ? 1 | ? ? ?NULL |
| ? ?23 | Ma Chao ? ? ? | ?23 | M ? ? ?| ? ? ? 4 | ? ? ?NULL |
| ? ?24 | Xu Xian ? ? ? | ?27 | M ? ? ?| ? ?NULL | ? ? ?NULL |
| ? ?25 | Sun Dasheng ? | 100 | M ? ? ?| ? ?NULL | ? ? ?NULL |
+-------+---------------+-----+--------+---------+-----------+
25 rows in set (0.05 sec)
?
MariaDB [hellodb]> SELECT StuID,Name,Age FROM students WHERE Age > 25;
+-------+--------------+-----+
| StuID | Name ? ? ? ? | Age |
+-------+--------------+-----+
| ? ? 3 | Xie Yanke ? ?| ?53 |
| ? ? 4 | Ding Dian ? ?| ?32 |
| ? ? 5 | Yu Yutong ? ?| ?26 |
| ? ? 6 | Shi Qing ? ? | ?46 |
| ? ?13 | Tian Boguang | ?33 |
| ? ?24 | Xu Xian ? ? ?| ?27 |
| ? ?25 | Sun Dasheng ?| 100 |
+-------+--------------+-----+
7 rows in set (0.02 sec)
SELECT中的WHERE子句就是一个布尔条件表达式,来判断行是否区配表达式。只要返回的为真,也就是不为0,则WHERE子句就为真,就会显示匹配的行。
?
布尔条件表达式操作符:
= 等于,用于数值或字符都可以。
<=> 也是等值比较,不过不会跟空产生意外情况。是跟空值比较的安全方式。
<> 不等于,这个就只能用于数值了。
<
<=
>
>=
?
空字符跟空是不一样的。 空字符也是一种字符串,也是有自己的ASCII码和值的。 ? ? ? ? ??
IS NULL 判断是否为空
IS NOT NULL 判断是否为不空
LIKE
模糊匹配,支持通配符,% 百分号表示任意个任意字符。_ 下划线任意单个字符。在能用等值比较或不等值比较的情况下不要用LIKE,性能差的多。
RLIKE,REGEXP
支持使用正则表达式。性能更低。LIKE, RLIKE只能用来做字符的比较。
也可以完整的匹配数值,不过也没有意义。
IN?
判断指定的字段的值是否在给定的列表中, IN (‘abc','cc')
BETWEEN ?AND
判断指定的字段是否在给定的范围之间。
如 x>=20 AND x<=40 这种,可以用 X BETWEEN 20 AND 40 ??
组合条件: ?
NOT ,!
AND ,,&&
OR,|| ? ? ? ? ??
?
注意: 在mysql中只要是字符型的在使用的时候都要加引号,而如果是数值型的,一定不能加引号。
?
例1:IS NULL, 判断ClassID字段为空的记录。只显示Name,Age,ClassID.
?
MariaDB [hellodb]> SELECT Name,Age,ClassID FROM students WHERE ClassID IS NULL;
+-------------+-----+---------+
| Name ? ? ? ?| Age | ClassID |
+-------------+-----+---------+
| Xu Xian ? ? | ?27 | ? ?NULL |
| Sun Dasheng | 100 | ? ?NULL |
+-------------+-----+---------+
2 rows in set (0.00 sec)
?
例2:用LIKE来模糊匹配Name字段所有以X开头的行。%通配任意个任意字符。
?
MariaD
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇后端分布式系列:分布式存储-MyS.. 下一篇mysql学习记录(二十二)--mysql..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: