《MYSQL必知必会》6-11章
where 在表名from后给出
单引号用来限定字符串。如果将值与串类型的列进行比较,则需要限定引号。用来与数值列进行比较的值不用引号。
BETWEEN 在某个区间
SELECT *
FROM xx
where price BEWEEN 5 AND 10;
NULL值 在过滤选择出不具有特定值的行时,不会返回他,因此在,过滤数据时,一定要验证返回数据中确实给出了被
过滤列具有NULL的行
在进行and,or操作的时候,条件一定要加括号
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。
IN的操作比or执行更快
SELECT * FROM table
WHERE id=100 or id= 200
#等价于
SELECT * FROM table
WHERE id in(100,200)
not 对条件取反
LIKE 搭配WHERE 使用
除了一个或多个字符外,%还能匹配0个字符。%代表搜索模式中给定位置的0个、1个或多个字符。
尾空格可能会干扰通配符匹配。一般用函数RTRIM()去掉。去掉左边空格是Ltrim(),Trim()是去掉两边空格
SELECT Rtrim(name) FROM table
把两个列拼接起来。在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列。
SELECT concat(name,sex) FROM table
ORDER BY name
Concat()需要一个或多个指定的串,各个串之间用逗号分隔。如果串需要字符,记得加“”
SQL函数
文本处理:
RTrim() upper() lenth() locate()找出串的一个子串 substring(x,1,3)返回子串的字符
Soundex() 返回串的SOUNDEX值
SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。
SELECT name,contact
FROM table
where Soundex(contact)=Soundex(Y lie)
日期的格式:日期必须为格式yyyy-mm-dd。
如果要的是日期,请使用Date() 如果你想要的仅是日期,则使用Date()是一个良好的习惯,即使你知道相应的列只包
含日期也是如此。
检索一个月内的所有数据
方法一:采用BTWEEN AND的形式。 BTWEEN “2019-5-1” and “2019-5-30”
方法二:直接过滤年月 WHERE YEAR(date_1)=2019 and MONTH(date_1)=5