常用的函数
字符串相关
字符串拼接
SELECT CONCAT_WS('p','a','s','s')
-- pass
去空格
-- TRIM 去两端空格
SELECT TRIM(' pass ')
-- LTRIM 去左端空格
SELECT LTRIM (' pass')
-- RTRIM 去右端空格
SELECT LTRIM ('pass' )
替换字符串
-- '_bc' 区分大小写
REPLACE('abc', 'a', '_')
比较是否相同
STRCMP('a','b')
-- 比较是否相同 忽略大小写
切分子字符串
SUBSTRING('abcde', 2, 2)
-- 结果bc 从1开始
翻转字符串
REVERSE('abc');
日期函数
SELECT DAYNAME(NOW()); -- Tuesday
SELECT DAYOFWEEK(now()); -- 3
MONTH(NOW()) -- 11
YEAR(NOW()) -- 2019
日期差
select datediff('2018-06-26','2018-06-25') -- 1
加密函数
md5
SELECT md5('ADMIN')
常用逻辑
条件判断
IF(判断语句,true 执行语句,false 执行语句)
SELECT ID IF(score >= 60, '及格', '不及格') FROM USER
CASE WHEN 判断语句 THEN 结果语句 …
SELECT id, username, score, CASE WHEN score > 60 THEN '及格' WHEN score = 60 THEN '太险了' ELSE '没及格' END FROM USER
索引构建
索引种类
- 索引
- 唯一索引
- 全局索引
- 单例索引
- 多例索引
- 空间索引
构建
索引
CREATE TABLE test4(
id TINYINT unsingned,
username VARCHAR(20),
INDEX in_id(id),
KEY in_username(username)
);
唯一索引
CREATE TABLE test5(
id TINYINT unsingned auto_increment KEY,
username VARCHAR(20) NOT NULL UNIQUE,
card CHAR(18) not NULL,
UNIQUE KEY uni_card(card)
);
全局索引
CREATE TABLE test6(
id TINYINT unsingned auto_increment KEY,
username VARCHAR(20) NOT NULL UNIQUE,
useDesc VARCHAR(20) NOT NULL,
FULLText INDEX full_userDesc(userDesc)
);