欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle学习笔记:查询语句

程序员文章站 2023-10-11 19:30:02
基本查询语句 select [distinct] column_name1,...|* from table_name [where conditions] sql*plus中设置格式 设置显示名称...

基本查询语句

select [distinct] column_name1,...|* from table_name [where conditions]

sql*plus中设置格式

设置显示名称

column column_name heading new_name

colum可以简写为col

实例:col username heading 用户名;

将username 变为用户名(查询显示时)

结果显示的格式设置

column column_name format dataformat

字符类型只能设置显示的长度

实例:col username format a10;

将用户名最大变为长度为10

数值类型设置,9代表一位数字 比如保留一位小数 9.9

col salary format 9999.9;

最长为4位,保留一位小数

如果不满足的,不会输出,利用#代替

为数值加$符号

col salary format $9999.9

设置后,数字都会带一个$符号

清除字段的格式

column column_name clear

查询表中的数据

查询所用字段: select * from table_name;

查询指定的字段:select username,salary from users;

给字段设置别名

select column_name as new_name,... from table_name

这里as可以省略

实例:select id as 编号 from table_name;

distinct取出重复的值

运算符和表达式

oracle中的操作数可以有变量,常亮

算数运算符(+,-,*,/)

比较运算符(>,>=,<=,=,<>)

逻辑运算符(and,or,not)

比较和逻辑运算符只能在where语句中使用

在select语句中使用运算符

使用算数运算符

实例:每个员工工资+200

select id,username,salary+200 from users;

这里的计算不会影响表中的数据

使用比较运算符

实例:查询员工的工资超过800的

select username from users where salary>800;

使用逻辑运算符

实例:工资查过800,并且工资不为1000的

select username from users where salary>800 and slary<>1000;

带条件的查询

where 子句

单一条件查询

多条件查询

模糊查询

关键字:like

统配符的使用(_,%)

_(一个字符)

% (0-n个字符)

查询用户名以a开头的用户

select * from users where username like 'a%';

查询用户名的第二个字符是a的用户信息

select * from users where username like '_a';

用户名中含有a的

select username from users where username like '%a%'

范围查询

between...and

查询员工工资在800到2000中间

select * from users where salary between 800 and 2000;

in/not in 在/不在

查询用户名是aaa或者bbb的

select * from users where username in('aaa','bbb');

not in相反

对查询结果排序

select .....from [where...]

order by column1 desc/asc, ...

desc降序,asc升序,多个字段用逗号隔开

实例:降序排序id

select * from users order by id desc;

case...when语句的使用

第一种形式

case column_name when value1 then result1,....[else result] end

放在select语句中

实例:根据用户名显示不同的部门

select username,case username when 'aaa' then ‘计算机部门' when 'bbb' then '市场部门' else '其他部门' end as 部门 from users;

第二种形式

case when column_name =value1

then result1,..[else result] end

实例:根据用户名显示不同的部门

select username,case when username='aaa' then '计算机部门' when username='bbb' then '市场部门' else '其他部门' end as 部门 from users;

decode函数的使用

decode(column_name,value1,result1,...defaulvalue)

实例:

select username ,decode(username,'aaa','计算机部门','bbb','市场部门',’其他') as 部门

from users;