MySQL数据库入门——day07
按条件查询
1.空值查询:
在数据表中,某些数据的值可能为空值(NULL),空值不同于0,也不同于空字符串。在MySQL中使用ISNULL关键字来判断是否为空值,其语法格式如下:
SELECT * | {字段名1,字段名2,...}
FROM 表名
WHERE 字段名 IS [NOT] NULL
在上述语法格式中,“NOT”为可选参数,使用NOT关键字则表示用于判断字段不是空值。
2.带DISTINCT关键字的查询:
使用DISTNCT关键字来过滤表中重复出现的字段。
SELECT DISTINCT 字段名 FROM 表名;
2.2DISTINCT关键字作用于多个字段:
SELECT DISTINCT 字段名1, 字段名2,...
FROM 表名;
在上述语法格式中,只有当所有指定的字段值都相同时,才会被当作重复数据。
3.带LIKE关键字查询:
LIKE关键字可以判断两个字符串是否匹配。语法格式如下:
SELECT * | {字段名1,字段名2,...}
FROM 表名
WHERE 字段名 [NOT] LIKE '匹配字符串';
“匹配字符串”指定用来匹配的字符串,其值可以是一个普通的字符串,也可以是包含百分号(%)和下划线(_)的通配字符串。
3.1百分号通配符:
匹配任意长度的字符串,包括空字符串。例如,字符串“c%”匹配以字符c开头的任意长度的字符串,字符串“%c%”匹配包含字符c的任意长度的字符串,字符串“c%”匹配以字符c结尾的任意长度的字符串。
SELEST 字段名 FROM 表名 WHERE 字段名 LIKE "字符%";
3.2下划线通配符:
下划线通配符与百分号通配符有些不同,下划线通配符只能匹配单个字符,如果需要匹配多个字符,需要使用多个下划线通配符。例如,“cu_”匹配cu开头长度为3的字符串,“c__l”匹配在“c”和“l”之间包含两个字符的字符串。需要注意的是,使用多个下划线通配符时下划线之间不能有空格,例如,“M___L”匹配的是“MySQL”,而“M_ __L”匹配的是“My SQL”。
SELEST 字段名 FROM 表名 WHERE 字段名 LIKE "字符_";
如果需要匹配字符串中的百分比或下划线,则需要给通配符使用“\”,例如,“\\%”匹配百分比,“\\_”下划线。
4.带AND关键字的多条件查询:
在使用SELECT语句查询时,为了使查询的数据更加精确,可以使用AND关键字查询满足多个条件的数据,只有符合所有条件才能被查询出来。
SELECT * | [字段名1,字段名2,...]
FROM 表名
WHERE 条件表达式1 AND 条件表达式2 [...AND 条件表达式n];
5.带OR关键字的多条件查询:
OR关键字查询与AND关键字查询不同,OR关键字查询只需满足任意一个条件就会被查询出来。其语法格式如下:
SELECT * | [字段名1,字段名2,...]
FROM 表名
WHERE 条件表达式1 OR 条件表达式2 [...OR 条件表达式n];
OR关键字和AND关键字可以一起使用,但AND关键字优先级高于OR关键字,当一起使用时,先运算AND关键字,后运算OR关键字。