SQL基础
来源:互联网 发布:php 500错误如何排查 编辑:程序博客网 时间:2024/06/08 20:15
★查询语句
- 从表查数据【select】:
select * from emp;
- 简单的运算【dual为空表】:
select 2*3 from dual;
- 任何和空值计算的结果都为空值。
- 别名:select aaa 别名 from dual;
- 别名:’xxx’单引号转大写无空格,”xxx”双引号原格式可有空格。
- 别名:两个单引号”表示一个单引号。
- 别名:字符串连接符||。
- 别名:
select ename||sal from emp;
- 消除相同【distinct】:
select distinct aaa,bbb from emp;
- 条件查询【where】:
select * from emp where ename='aaa';
- 在…之间:
select * from emp where sal between 800 and 1500;
- 在…之间:
select * from emp where sal >=800 and sal <=1500;
- 空值处理:is null或者is not null;
- 在…里面:
select * from emp where sal in (1000,1500,2000);
- 日期处理-特定格式(系统时间):
select sysdate from dual;
- 并且and,或者or,非not。
- 模糊查询【like】:
select * from emp where ename like '_a%';
(_代表一个字符,%代表零个多个字符) - 转义字符【\】:
select * from emp where ename like '%\%%';
- 指定转移字符【escape】:
select * from emp where ename like '%$%%' escape '$';
- 排序【默认升序asc】:
select * from dept order by deptno asc;
- 排序【降序desc】:
select * from dept order by deptno desc;
- 多字段排序:
select ename,sal,deptno from emp order by deptno asc,sal desc;
常用SQL函数
- 小写【lower(字符串)】:
select lower(ename) from emp;
- 大写【upper(字符串)】:同上。
- 四舍五入【round(数据)】:
select round(25.5) from dual;
- 四舍五入【round(数据,精度)】:
select round(25.567,2) from dual;
- 特定格式【to_char(数据,格式字符串)】:
select to_char(sql,'$99,999.99') from emp;
- 特定格式:如上,$美元,L本地货币。
- ★特定格式【日期】:
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
- ★字符串转日期【to_date(字符串数据,格式字符串)】:
select ename,hiredate from emp where hiredate > to_date('1999-09-01 15:30:30','YYYY-MM-DD HH24:MI:SS');
- 字符串转数字【to_number(字符串数据,格式字符串)】:
select sal from emp where sal > to_number('$1,250.00','$9,999.99');
- 处理空值计算【nvl(aaa,0)】:如果aaa是空值,用0替代aaa。
- ★主函数:最大值max(),最小值min(),求和sum(),平均值avg(),记录数count()。
- 【count(aaa)】:查找aaa不为空的记录数。
★Group by语句
- 分组:根据deptno分组求出每组的sal平均值
select avg(sal) from emp group by deptno;
子查询
- 查找sal最高的ename:
select ename from emp where sal = (select max(sal) from emp);
Having语句
- 按deptno进行分组,然后求出分组后每一组sal的平均值:
select avg(sal) from emp group by deptno;
- 按deptno进行分组,然后求出分组后每一组sal的平均值大于2000的每一组sal的平均值:
select avg(sal) from emp group by deptno having avg(sal) >= 2000;
- 【having】是对分组进行限制的语句。
前面总结
- 查询对sal大于1200按照deptno进行分组后avg(sal)>1500的降序排列的avg(sal):
select avg(sal) from emp where sal>1200 group by deptno having avg(sal)>1500 order by avg(sal) desc;
扩展
select ename,sal from emp join (select max(sal) max_sal,deptno from emp group by deptno) t on (emp.sal=t.max_sal and emp.deptno=t.deptno);
Join on连接
- 【left outer join on】左外连接,显示左边的表全部数据,连接右边表。
- 【right outer join on】右外连接,显示右边的表全部数据,连接左边表。
- 【full outer join on】外连接,显示左右表全部数据。
- 【inner join on】内连接。
- 【cross join on】笛卡尔积。
阅读全文
0 0
- SQL基础
- SQL基础
- SQL基础
- SQL 基础
- sql:基础
- SQL基础
- SQL基础
- SQL基础
- SQL基础
- SQL基础
- SQL 基础
- sql基础
- SQL基础
- sql基础
- SQL基础
- SQL基础
- sql 基础
- sql基础
- 【OkHttp3源代码分析】(二)Request的enqueue
- WebService-写简单接口
- Visual Studio2015下配置Halcon环境(使用的是VS下的C#)
- ThreadLocal用法及与Synchronized的区别
- 使用函数输出指定范围内的完数
- SQL基础
- 不得不知道的微信小程序避坑指南
- VBA代码学习
- MAC 卸载MySQL
- 关于开源的RTP——jrtplib的使用
- python的正则出错——raise error:("multiple repeat ")
- JAVA 强制数据类型转换和隐式数据类型转换
- vim 学习笔记(分割窗口)
- /双向队列