Oracle学习笔记——查询
Posted 上善若水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle学习笔记——查询相关的知识,希望对你有一定的参考价值。
-
基本查询语句
- SELECT [DISTINCT] column_name1,...|* FROM table_name [WHERE conditions]
-
在SQL*PLUS中设置格式
- 更改显示字段名:COLUMN column_name HEADING new_name (注意COLUMN可以简写成COL)
- 例如:
- 更改显示字段名:COLUMN column_name HEADING new_name (注意COLUMN可以简写成COL)
select * from users;
- 设置显示结果的格式:COLUMN column_name FORMAT dataformat; (注意COLUMN可以简写成COL,字符类型只能设置显示的长度)
- 例如
select * from users;
col salary format 9999.9; 注意:数值类型用9表示
select * from users;
- 清除之前设置过的格式:COLUMN column_name CLEAR;
- 例如:
col salary clear;
- 查询表中的所有字段及指定字段
- 查询所有字段:SELECT * FROM table_name;
- 查询指定字段:SELECT column1_name,column2_name... FROM table_name;
-
给字段设置别名(*给字段设置别名是针对查询结果进行的,并没有更改字段的名字)
- SELECT column_name AS new_name,... FROM table_name; 注意:AS可以省略,用空格隔开原来的字段名和新字段名即可。
- 例如:
- SELECT column_name AS new_name,... FROM table_name; 注意:AS可以省略,用空格隔开原来的字段名和新字段名即可。
- 运算符和表达式
- 表达式 = 操作数 + 运算符
- Oracle中的操作数可以有变量,常量和字段
- 运算符
- 算数运算符(+,-,*,/)
- 比较运算符(>,>=,<,<=,=,<>)
- 逻辑运算符(and,or,not)。优先级:按not、and、or的顺序依次递减。比较运算符的优先级高于逻辑运算符
- 在SELECT语句中使用运算符(省略)
- 带条件的查询
- 单一条件的查询
- 查询用户名为aaa的员工薪水:select salary from users where username=‘aaa‘;
- 多条件的查询
- 查询名字是aaa,或者工资在800到2000之间的员工信息
- 单一条件的查询
- 模糊查询 LIKE
-
通配符的使用( _ 、%)
- 一个 _ 只能代表一个字符
- %可以代表0到多个任意字符
- 使用LIKE查询
- 例:查询用户名以a开头的用户信息。select * from users where username like ‘a%‘;
- 例:查询用户名的第二个字符是a的用户信息。select * from users where username like ‘_a%‘;
- 例:查询用户名中含有a的用户信息。select * from users where username like ‘%a%‘;
-
通配符的使用( _ 、%)
- 范围查询
-
BETWEEN ... AND 闭区间。
- 例:查询员工薪水在800和2000之间的所有员工信息:select * from users where salary between 800 and 2000; 注意包含800和2000
- 例:查询员工薪水不在800和2000之间的所有员工信息:select * from users where salary not between 800 and 2000;
- IN / NOT IN
- 查询用户名是aaa或者bbb的用户信息:select * from users where username in(‘aaa‘,‘bbb‘);
- 查询用户名不是aaa,也不是bbb的用户信息:select * from users where username not in(‘aaa‘,‘bbb‘);
-
BETWEEN ... AND 闭区间。
- 对查询结果排序
- SELECT ... FROM ... [WHERE ...] ORDER BY column1 DESC/ASC,...;
DESC:降序,ASC:升序
- 例:select * from users order by id desc;
- 例:select * from users order by id desc,salary asc;
- SELECT ... FROM ... [WHERE ...] ORDER BY column1 DESC/ASC,...;
DESC:降序,ASC:升序
-
case...when语句的使用
- 作用:就是在我们查询语句当中可以根据我们字段不同的值,还可以显示不同的结果。
- CASE column_name WHEN value1 THEN result1,... [ELSE result] END;
- 例子:根据不同的用户名来得到他所在的部门
when ‘bbb‘ then ‘市场部门‘ else ‘其他部门‘ end as 部门 from users;
- CASE WHEN column_name=value1 THEN result1,... [ELSE result] END;
- 例子:
when username=‘bbb‘ then ‘市场部门‘ else ‘其他部门‘ end as 部门 from users;
- 例子:
select username,case when salary<800 then ‘工资低‘ when salary>5000 then ‘工资高‘ end as 工资水平 from users;
- decode函数的使用
- decode (column_name,value1,result1,...,defaultvalue);
- 例子:
- decode (column_name,value1,result1,...,defaultvalue);
以上是关于Oracle学习笔记——查询的主要内容,如果未能解决你的问题,请参考以下文章