文章目录
本课用到的数据库数据在Oracle数据库表的基本操作以及空值问题的解决中已写过,自己粘贴复制就好!
1.别名
可以给字段,表达式,表等起别名,而且尽量用有意义的英文单词
2.去重distinct
- 只能跟在select后面,distinct后面必须是需去重的关键字
- 当distinct后面添加多个字段,表示多个字段联合唯一去重
--例如:查询该公司有哪些职位?
select distinct job from emp_jinli;
--例如:查询员工分布在哪些部门?
select distinct deptno from emp_jinli;
--例如:每个部门有哪些职位?
select distinct deptno,job from emp_jinli;
3.where条件过滤
单行比较运算符<,>,>=,<=,!=,=
--例如:查询哪些员工的薪资大于5000?
select ename,salary from emp_jinli where salary>5000;
4.between…and/not between…and
表示闭区间,包括两端的临界值
--例如:查询哪些员工的薪资大于5000,小于10000?
select ename,salary from emp_jinli where salary between 5000 and 10000;
5.in(参数列表)/not in(参数列表)
--例如:查询哪些员工的薪资是5000,8000,10000?
select ename,salary from emp_jinli where salary in(5000,8000,10000);
select ename,salary from emp_jinli where salary=5000 or salary = 8000 or salary=10000;
6.模糊查询
- like 关键字:与下面三个符号搭配使用
- %:表示0个或多个字符
- _:表示是一个字符
- /:escape 转义字符,表示特殊符号
--例如:查询员工的职位中包含‘sale’的员工信息?
select * from emp_jinli where job like '%sale%';
--例如:查询哪些员工的职位中第二个字符是‘a’的员工信息?
select * from emp_jinli where job like '_a%';
--例如:查询该用户下,有多少张表的表名是以‘T_’开头?
select count(*) from user_tables where table_name like 'T\_%' ESCAPE '\'; //"_"是特殊符号
7.处理字符函数:
- lower():大写转小写
- upper():小写转大写
- initcap():首字母大写
--例如:查询该用户下,有多少张表的表名是以‘T_’开头?
select count(*) from user_tables where initcap(table_name) like 'T\_%' ESCAPE '\';
select upper('ABbvcvCDEFG') from dual;
8、is null/is not null
--例如:查询哪些员工没有奖金?
select ename,bonus from emp_jinli where bonus is null;
--例如:哪些员工有奖金?
select ename,bonus from emp_jinli where bonus is not null;
9.数字函数
- round(值,小数点后的位数):四舍五入
- trunc(值,小数点后的位数):截取
select round(3.1415926,3) from dual; //结果是3.141
select trunc(3.1415926,3) from dual; //结果是3.141
10.日期函数
- 日期的加减操作,以天为单位
- 不足一天,则用小数表示,可以用round()处理
--例如:计算员工入职多少天?
select ename,round(sysdate-hiredate) days from emp_jinli;//别名表示也可以不加as
--例如:查询本月最后一天?
select last_day(sysdate) from dual;