Mysql数据库学习(一)
Mysql数据库学习(一)
where
- 区间选择:
- select ename from emp where sal <> 100 不等于
- select ename from emp where sal between 100 and 500
- select ename from emp where sal in (100,500)
- 条件选择
- select ename from emp where sal = 100
- select ename from emp where sal =100 or sal = 500
- select ename from emp where job in(‘a’,‘b’)
- select ename from emp where hiredata > '1980-02-01' 简单时间处理
like模糊查询
- select ename from emp where ename like ‘%a% 含有a
- select ename from emp where ename like ’_a%第二个字母为a
- select ename from emp where ename like ‘%%%' 使用转移字符查询特殊字符
order by 排序
-
select sal from emp order by sal 默认升序排列
-
select sal from emp order by sal desc 设置倒序
-
select sal,ename,job from emp order by from sal asc,ename desc 首先按照sal升序,在sal相同时按照ename降序
函数
- select lower(ename) from emp 将结果转化为小写
- select upper(ename) from emp 将结果转化为大写
- select concat('www','sss') as str 拼接
- select char_length('www') 统计长度
- select substring('aabb',0,1) 截取字串
- select ltrim/rtrim/trim (' aa aa ') 去除左/右/左右空格
- select ceil/floor/abs('3.14') 向上/向下取整/绝对值
- select round(3.1415,3) 四舍五入保留三位小数
- select truncat(3.14159,3) 直接截取保留三位小数
- select now() 当前年月日加时分秒
- select weekday('2021-03-11')计算日期的星期
组函数
-
SELECT ename FROM emp WHERE sal = ( SELECT max( sal ) FROM emp ) 取最高薪水人名
-
SELECT MIN(sal) from emp 取最小
-
select sum from emp 取和
-
select count(ename) from 取数据条数,null不计入
-
group by
- select max(sal) from emp group by deptno 按照部门编号分组后进行统计
-
连表查询
- select ename from emp join (select deptno,max(sal) max_sal from emp group by deptno) as p where p.deptno = emp.deptno and p.max_sal = emp.sal
having子句
- select deptno from emp group by deptno having avg(sal) > 1000 having用于对分组进行限制
总结
select xx from xx 对数据进行过滤(表头)
where xx xxxx 过滤
group by xx 分组
having xxx 分组限制
order by xxx 排序
- 取数据 - 过滤 - 分组 - 分组限制 - 排序
- select avg(sal) avg_sal from emp where sal > 1200 group by deptno having avg(sal) > 1500 order by avg_sal desc