Mysql学习笔记3

空值检查  

NULL  空值,它与字段包含0、空字符串或仅仅包含空值不同。WHERE子句中 IS NULL 可以用来检查具有空值的列。

where子句中可包含任意数目的and和or操作符。and的计算优先级要高于or,

如,需要列出价格在10美元以上且由1002或1003制造的所有产品。如下sql语句:

SELECT pro_name,pro_price FROM products WHERE vend_id = 1002 OR vend _id = 1003 AND prod_price >= 10;

达不到上述要求,它实际上是查询的是vend_id为1002的任意产品或1003价格在10美元以上的产品.

正确的sql应该是使用圆括号明确的分组相应的操作符:

SELECT pro_name,pro_price FROM products WHERE (vend_id = 1002 OR vend _id = 1003) AND prod_price >= 10;

用通配符进行过滤

搜索模式(search pattern)  由字面值、通配符或两者组合构成的搜索条件. 如jack%.

谓词:  在SQL中,谓词就是返回值为真值的函数。

对于通常的函数来说,返回值有可能是数字、字符串或者日期等,但是谓词的返回值都是真值(true/false/unknown)。这是谓词和函数的最大区别。

SQL中的谓词主要有 LKIE、BETWEEN、IS NULL、IS NOT NULL、IN、EXISTS

 

根据mysql的配置方式,搜索模式可以区分大小写或不区分.

 

通配符% 匹配0个或多个字符,不能匹配NULL;通配符_ 只匹配单个字符.

用正则表达式进行搜索

使用关键字REGEXP

可以使用^和$定位符(anchor)来匹配整个列值,起到like的作用.如like ‘1000’.即只匹配值是1000的.

使用binary关键字,区分大小写.如 where name regexp binary ‘jack’.

使用| 进行or匹配,如 where name regexp ‘jack|tom|jion’.

 

 

Mysql学习笔记3

Mysql学习笔记3

测试----省略from子句进行测试

如 select hello regexp [0-9] ; select trim(  a bc  ); select 6+7;select now();返回当前日期和时间.