MySQL数据库基础——表单查询2

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关键字。