运算符就不写出来了
常用函数
数学函数:
select abs()—绝对值
select ceiling()—向上取整
select floor()—向下取整
select rand()—返回一个0-1之间的随机数
select sign()—判断一个数的符号,0-0,负数返回-1,正数返回1
字符串函数:
select char_length()—字符串长度
select concat(‘A’,‘B’,…)—拼接字符串
select insert()—插入和替换(根据参数不同)
select lower()—大写转小写
select upper()—小写转大写
select instr(str,substr)—返回第一次出现的子串索引
select replace(str,substr,newsubstr)—替换字符串中出现的指定字符串
select substr(str,index,length)—返回指定索引开始的一定长度的字符串
select reverse()—反转字符串
时间和日期函数:
select current_date()—获取当前日期
select current_time()—获取当前时间
select now()—获取当前日期加时间
select localtime()—获取本地时间—sysdate()—系统时间
select year(now())—获取日期里面的年份—还有month,day,hour,minute,second
系统:
select system_user()—获取当前用户
select user()—上同
select version()—获取版本
聚合函数
函数名称 | 描述 |
---|---|
count() | 计数 |
sum() | 求和 |
avg() | 平均值 |
max() | 最大值 |
min() | 最小值 |
… |
count(指定列)、count(*)、count(1)的区别:(都能计数)
count(指定列)会忽略该列的null值,其余两个不会
执行效率上:当列为主键时,count(列)比count(1)快
当列不为主键时,count(1)更快
select subjectname,avg(studentresult),max(studentresult),min(studentresult)
from `subject` as sub inner join result r on sub.subjectno=r.subjectno
group by r.subjectno
having avg(studentresult)>80;
MD5加密
MD5加密是不可逆算法,破解网站一般都是通过一个字典进行对比
– 加密
update testmd5 set pwd=md5(pwd) where ‘name’=‘张三’;
– 一般插入时候就加密,校验的时候比较加密后的密码和数据库中的密码
insert into testmd5 values(4,‘赵六’,md5(123456));