一简单select语句
1 简单的select的语句形式
SELECT [DISTINCT] {*,column alias,..}
FROM table alias
Where 条件表达式
SELECT(关键字)------从数据库中取数据
{*,column alias,..}------取数据的形式,“*”指所有数据,alias指别名,“。。。”指部分字段
DISTINCT(关键字)----消除结果集中重复的信息
FROM(关键字)--------从哪些地方取数据
table(表名)---------从table这张表中取数据
2 字段的处理
(1)字段的显示:全部显示(*)、部分显示
(2)别名
(3)空值字段的处理
(4)消除重复的字段组合
(5) 操作字符、数值、日期
二where对数据设定限制条件
1 等值判断(=):主要是数值判断和字符串判断。
注:判断字符串是否相等时需要将字符串用单引号引起来。
eg:select * from emp where deptno=10;
select * from emp where ename='KING';(注意引号内的字符串是对大小写敏感的)
2 非等值判断(>,>=,<,<=,<>)
(1)字符串比较规则:首先比较第一个字符,如果第一个字符已经能够判断大小,就不继续向下比较了。反之,则继续比较下去。
(2)between a and b<=====>[a,b]
3 IN语句:筛选某些值的一个。
select ename,sal from emp where sal in(800,1250,1500,2000);
4 处理日期
--查询所有在81年2月20号以后入职的员工 select ename,hiredate from emp where hiredate >'20-2月-81';
5 模糊查询
使用关键字like和通配符进行模糊查询。通配符:‘%’表示0个或多个字符,‘_’表示一个字符
mp
--查询名字含有‘ALL’的人员 select ename from emp where ename like '%ALL%'; --查询名字中第二个字母含有‘A’的雇员 select ename from emp where ename like '_A%';
三oder by 排序
order by 字段 asc---按字段升序排列 order by 字段 desc--按字段降序排列
四sql函数
1 常用函数
Lower函数----字符串全部转为小写
upper函数----字符串全部转为大写
substr函数---字符串中的子串
Chr函数------与某个ASCII码数值对应的字符
Ascii函数----一个字符的ASCII码数值
round函数----对参数值四舍五入
to_char函数--将数值或日期转换为特定的字符串。
to_date函数--字符串转为日期格式
to_number函数-字符串转为数字格式
nvl函数-------处理空值(处理null)
2 组函数
avg---平均值 max---最大值 min---最小值 sum---总和 count---记录的数量
五Group by对数据分组
group by 字段---按字段分组
注:分组语句中select字段满足下述任意条件:1组函数的值 2该字段在group by子句中。
六Having过滤分组
Having是对分组后的数据进行过滤。
--将平均薪水大于1000的组的平均薪水从emp中选出来 select avg(sal) from emp group by deptno having avg(sal)>1000;
--要求薪水大于1200,按照部门进行分组,分组后的平均薪水大于1500 select avg(sal) from emp where sal>1200 group by deptno having avg(sal)>1500 order by avg(sal);
七总结
Select {*,column[alias],...} From table [where ...] [group by...] [having ...] [order by...] 子句执行顺序: where语句过滤原始记录 group by将where后的结果进行分组 having 过滤分组结果 select 显示字段 order by排序