两个以上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秒)起至现在的总秒数。