上课笔记 10月 17日
数据类型
字符
char 固定2000 varchar2 可变4000
数值
number(位数,小数点后的位数)
时间
date
操作符
算术操作符 : + - * / 日期也可加减 日
逻辑操作符 : not>and>or
比较操作符 : = != < > >= <=
between...and... 1500<=sal<=3000 由小到大 包括边际值
in(set) 等于值列表中的一个
-- >all:表示大于最大值 <all:表示小于最大值 >any:表示大于最小值
-- <any:表示小于最大值 =any: 和in类似
is null 空值判断函数
like 模糊查询 % _
escape转义
操作符优先级
算术操作符>链接操作符>比较操作符合>not逻辑操作符>and逻辑操作符>or逻辑操作符
排列.分组查询
order by 排序 升序asc(默认) desc(降序)
--如果对控制进行排序,那么空值会作为最大值排序
--也可以按照字段的顺序(1,2,3......)
SQL执行顺序
1 from
2 where
3 group by
4 having
5 select
6 order by 唯一可以使用别名的关键字
聚合函数
max()最大值
min() 最小值
sum() 求和
avg() 求平均值
count() 求个数 不为空值 count(1)整个表有多少行数据
分组函数
group by
练习2:
1.查询名字是BLAKE的人的编号,名字,工资
select empno,ename,sal from emp where ename='BLAKE'
2.查询编号是7782的员工的编号,名字,工资,奖金
select empno,ename,sal,comm from emp where empno=7782
3.查询职位是销售(SALESMAN)的人的名字,职位,入职日期
select ename,job,hiredate from emp where job='SALESMAN'
4.查询部门是10的人的编号,名字,部门编号
select empno,ename,deptno from emp where deptno=10
5.查询工资大于1500,并且小于2500的人的编号,名字,工资
select deptno,ename,sal from emp where sal>1500 and sal<2500
6.查询不是30号部门的员工信息
select * from emp where deptno!=30
7.求工作是CLERK的或者工资小于2000员工姓名,工作,工资
select ename,job,sal from emp where job='CLERK' or sal<2000
8.求工资小于800或者大于1500的20号部门的员工姓名,工作,工资
select ename,job,sal from emp where sal<800 or sal>1500
9.求工作是CLERK,并且工资小于950或者大于1500的员工姓名,工作,工资
select ename,job,sal from emp where job='CLERK' and (sal<950 or sal>1500)
10.求10号部门工资大于1000和20号部门工资大于1500的员工姓名
select ename from emp where (deptno=10 and sal >1000) or (deptno=20 and sal>1500)
11.求工资在1500到2000之间的员工姓名
select ename from emp where sal>1500 and sal<2000
12.求部门编号是10号,20号,30号中任意一个部门的员工姓名,多种方法实现
select ename from emp where deptno in (10,20,30)
select ename from emp where deptno=10 or deptno=20 or deptno=30
select ename from emp where deptno between 10 and 30
13.求姓名中包含'M'的员工姓名
select ename from emp where ename like '%M%'
14.求员工姓名第二位是'M'的
select ename from emp where ename like '_M%'
15.求姓名中包含A和L的姓名
select ename from emp where ename like '%A%L%' or ename like '%L%A%'
16.求姓名是五位的员工信息
select ename from emp where ename like '_____'
17.求姓名中第3位是%的员工姓名
select ename from emp where ename like '__s%%' escape's'
18.求第一位是_,倒数第二位也是_的员工姓名
select ename from emp where ename like '4_%4__' escape'4'
19.求以_开头,第三位也是下划线_,第六位是%的员工姓名
select ename from emp where ename like '4__4___4%%' escape'4'
20.求名字中不包含M的员工姓名
select ename from emp where not ename like'%M%'
21.求没有奖金的员工信息
select ename from emp where comm is null