Oracle数据库的查询基本操作

本课用到的数据库数据在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;
发布了28 篇原创文章 · 获赞 47 · 访问量 3118

猜你喜欢

转载自blog.csdn.net/abc701110/article/details/105549378