梳理mysql
where name is null;
WHERE id=101 OR id=102 AND price >10;
理解为id=101 或者id=102且price>10 AND优先OR
通配符_只匹配单个字符
WHERE name REGEXP 'abc' 正则表达式 name包含abc的行
REGEXP '.abc' .匹配任何一个字符
REGEXP '^abc$' 等同LIKE 'abc' 匹配整个列
REGEXP BINARY 'aBc' BINARY用来区分大小写
REGEXP '103|105' 类似于OR操作
REGEXP '[678] A' 匹配 6A或7A或8A []匹配几个字符之一
REGEXP '[^678]' 匹配几个字符之外的字符
REGEXP '[3-6]' '[A-Z]' 匹配范围
REGEXP '\\-' '\\.' 前导\\ 匹配特殊字符
\\f换页 \\n换行 \\r回车 \\t制表 \\v纵向制表
REGEXP '[:alpha:]' 预定义字符集 匹配任意字符
元字符 * 0或多 + 1或多 ? 0或1
{n}指定数目 {n,}不少于n {n,m}范围不超255
REGEXP '[[:digit:]]{4}' 匹配4个连续数字
定位符 ^开头 $结尾
^双重作用 '^[ab]' 开头 '[^ab]'否定
SELECT '1356' REGEXP '[25]' 用SELECT测试REGEXP
SELECT concat(name, ' (', value, ')' ) 合并列name (value)
RTRIM() LTRIM() TRIM()去掉空格
SELECT val_a*val_b AS val_c 运算
UPPER() 大写 LOWER() 小写
LENGTH() 长度
DATE(order_time) 取日期部分
WHERE YEAR(order)=2005 AND MONTH(order)=9
RAND() 随机数
AVG() 平均数
SELECT AVG(DISTINCT price)
SELECT COUNT(*) AS num, MAX(price) AS max
SELECT id, COUNT(*) FROM tablea GROUP BY id 按id分组
顺序 WHERE, GROUP BY, ORDER BY
HAVING类似WHERE 用于分组过滤
SELECT id, COUNT(*) FROM tablea GROUP BY id HAVING COUNT(*) >= 2
FROM TABLEA, TABLEB == FROM TABLEA INNER JOIN TABLEB ON
SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c) 相当于
SELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)
CROSS JOIN,JOIN,INNER JOIN,',' 类似笛卡尔积,除逗号, 带条件时,只显示两端都符合条件的
LEFT [OUTER] JOIN, RIGHT [OUTER] JOIN 相关推荐
ribavnu 2020-11-16
wangshuangbao 2020-11-13
苏康申 2020-11-13
vivenwan 2020-11-13
moyekongling 2020-11-13
云中舞步 2020-11-12
要啥自行车一把梭 2020-11-12
kuwoyinlehe 2020-11-12
minerk 2020-11-12
vitasfly 2020-11-12
jazywoo在路上 2020-11-11
敏敏张 2020-11-11