MYSQL查询语句 子查询 常见函数

两个以上select查询的语句就是子查询语句

出现的位置

1.where后:是把select查询出的结果当作另外一个select的条件值

2.from后:是把查询出的结果当做一个新表

例:

查询与项羽同一个部门的员工:

    先查询出项羽所在的部门编号,再根据编号查询同一部门的员工

select ename,deptno from emp where deptno = (select deptno from emp where ename='项羽');

查询30号以内大于2000的薪水的人(放在from后是把这个语句当成一个表)

select ename from (select ename,salary,deptno from emp where deptno=30) as s where s.salary > 2000;

查询工资大于程咬金的员工

select ename,salary from emp where salary > (select salary from emp where ename='程咬金');

常见函数

分类:字符串函数、数值函数、日期和时间函数、流程函数、其他函数(数据库、系统相关)

字符串函数:

concat(s1,s2,....,sn):将传入的字符串连成一个字符串,注意:任何与null连接的字符串结果都是null

insert(str,x,y,instr):把字符串转换成小写或者大写

lower(str)和uooer(str):把字符串转换成小写或者大写

lift(str,x)和right(str,x):分别返回字符串最左边或者最右边的x字符

ltrim(str)和rtrim(str):去除字符串当中最左侧和最右侧的空格

trim(str):去除字符串左右的空格

repeat(str,x):返回str重复x次结果

replace(str,a,b):用字符串b替换字符串str中所有出现的字符串a

substring(str,x,y):返回字符串str中的第x位置起y个字符串长度的字符


数值函数

abs(x):返回x的绝对值

ceil(x):小数部位零部分上取整,即向上取最近的整数(只要有一个小数点就进一)

floor(x):向下取整

mod(x,y):返回x/y的余数

rand():返回0~1的随机数

日期相关函数

curdate():返回当前日期(年月日)

curtime():返回当前的时间(时分秒)

now():返回当前的时间(年月日时间秒)

unix_timestamp():返回当前的时间戳

    时间戳:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。        

from_unixtime(unixtime):将一个时间戳转换成日期

year(),week(date),hour(date):返回当前是一年中哪一年,第几周,当前时间的小时

date_format(date,fmt):按字符串格式化日期date值

date_add(date,interval expr type):计算日期间隔

datedief(date1,date2):计算量日期相差天数

流程函数

if(value,t,f):如果value是真则返回t,否则返回f

ifnull(value,value2):如果value1不为空返回value1,否则返回value2

case when then end:判断

其他函数:

database():返回当前数据库

version():返回当前数据库版本

user():返回当前登录用户

password():对str进行加密,返回str的MD5值

你可能感兴趣的:(MYSQL查询语句 子查询 常见函数)