本文为本人学习书籍《MySQL必知必会》笔记系列,欢迎收藏学习,有问题随时留言评论,一起探讨。
第六章 过滤数据
SELECT语句的WHERE子句指定搜索条件。
6.1检查单个值:输出性别为m的数据(文本型数据)
SELECT user.screen_name,user.gender,user.follow_count,followers_count
FROM weibo.user
WHERE user.gender='m';
6.2检查单个值:输出粉丝数在2万+,按照screen_name降序,前五行数据(数值型数据)
SELECT user.screen_name,user.gender,user.follow_count,followers_count
FROM weibo.user
WHERE followers_count>20000
ORDER BY screen_name DESC
LIMIT 5;
6.3不匹配检查:输出verified_type值不等于3,按照screen_name降序
SELECT user.screen_name,user.gender,user.follow_count,followers_count,mbrank,verified_type
FROM weibo.user
WHERE verified_type<>3
ORDER BY screen_name DESC;
6.4范围值检查:输出mbrank值在3至6之间的数据
SELECT user.screen_name,user.gender,user.follow_count,followers_count,mbrank,verified_type
FROM weibo.user
WHERE mbrank BETWEEN 3 AND 6;
6.5空值检查:输出verified_reason值为NULL的id
SELECT id FROM user
WHERE verified_reason IS NULL;
第七章数据过滤
组合使用WHERE语句,如何使用NOT和IN操作符
7.1 AND操作符(且):输出同时满足多个条件的行
下例:输出mbrank值大于3,且gender值为m,且follow_count值大于500的数据
SELECT user.screen_name,user.gender,user.follow_count,followers_count,mbrank,verified_type
FROM weibo.user
WHERE mbrank>3 AND gender='m' AND follow_count>500;
7.2 OR操作符(或):输出满足其中一个条件的行
下例:输出mbrank值大于3,或者follow_count值大于500的数据
SELECT
user.screen_name,user.gender,user.follow_count,followers_count,mbrank,verified_type
FROM weibo.user
WHERE mbrank>3 OR follow_count>500;
7.3计算的优先级:SQL默认先计算AND再计算OR,所以组合使用AND和OR语句时,必须用()明确计算次序。()的优先级大于AND和OR操作符
下例:输出mbrank值大于3或者follow_count值大于500的数据中,
gender='m'的行
SELECT user.screen_name,user.gender,user.follow_count,followers_count,mbrank,verified_type
FROM weibo.user
WHERE (mbrank>3 OR follow_count>500) AND gender='m';
7.4 IN操作符:指定范围内的任一条件均可。等价于OR,更容易管理
下例:输出mbrank值为5或6的行
SELECT user.screen_name,user.gender,user.follow_count,followers_count,mbrank,verified_type
FROM weibo.user
WHERE mbrank IN (5,6);
7.5 NOT操作符(取反):否定它之后所跟的任何条件
下例:输出mbrank值不不不为5或6的行
SELECT user.screen_name,user.gender,user.follow_count,followers_count,mbrank,verified_type
FROM weibo.user
WHERE mbrank NOT IN (5,6);