oracle查询

查询:

基本查询语句:select [Distinct] 列名 .. From 表名 [where condition]

FROM (可以多表查询)

WHERE 子句可带多个条件

DISTINCT 显示不重复数据

 

SQL*PLUS中设置格式

1.更改显示的字段名:COLUMNS|COL column_name HEADING new_name

注:更改的是查询后结果中的字段名,而非表中的字段名

2.设置结果显示的格式:COLUMN|COL column_name FORMAT dataformat

  设置【字符型】数据的格式:a开头,后面指定长度

  设置【数值型】数据的格式:用“9”代表一位数字,如显示4位数字,则格式为9999;如显示4位数字并加1位小数,则格式为9999.9

3.清楚之前设置的格式:COLUMN|COL column_name CLEAR

 

例:

col 字段名 heading 别名;(指定字段名结果显示为别名)

col 字段名 format a10;(指定结果显示的字符长度)

显示位数用9表示一个数字 如 99.9代表两个整数,一位小数

col salary format 999.9  如果设置的长度超过长度 会显示#####

col salary format $9999.9 前面会带一个美元符号

col salary clear;清除格式

 

查询表中所有字段及指定字段:

1.查询所有字段:

select * from table_name;

2.查询指定字段:按顺序显示出来

select column1, ...  from table_name;

 

给字段设置别名:

> select 字段名 as(可省略) 别名, ... from 表名;

去掉表中重复的数据:

> select distinct 字段名 as(可省略) 别名, ... from 表名;

运算符和表达式

1、表达式 = 操作数 + 运算符

2、oracle中的操作数可以是常量、变量和字段

3、oracle中的运算符:算数运算符(+,-,*,/)、比较运算符(>,<,=,>=,<=,<>)、逻辑运算符(and or not)

 

and:真真为真,其余为假 or:假假为假,其余为真

例如:

select id,username,salary+200 from users;(所有工资结果加200)

select username from users where salary>800 and salary<>1800.5;

1:不等于用!=或者<>表示

2:在查询语句中,使用算术运算法对字段进行运算,并不影响真正表中的数据,只有update可以

 

逻辑运算符的优先级:按not、and、or的顺序依次递减;

比较运算符的优先级高于逻辑运算符

 

模糊查询

1、通配符的使用:

一个_只能代表一个字符,一个%可以代表0到多个任意字符

2、查询以a开头的用户名:

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

3、查询第二个字符为a 的用户名:

select * from users where username like '_a%'

 

BETWEEN...AND   

可以把小的值放到BETWEEN后面大的值放到AND后面,表示从什么值到什么值之间。

范围查询  

select * from users where salary between 800 and 2000;这个查询是一个闭合空间,包括800和2000

select * from users where salary not between 800 and 2000;查询不在800到2000之间。

 

对查询结果排序:

语法:SELECT [DISTINCT] column_name1,...* FROM table_name [WHERE conditions]

ORDER BY column_name1 DESC|ASC,...

其中,DESC是降序排序,ASC是升序排序,默认情况下是升序排序;当按多个字段排序时,需要第一个字段重复时才按第二个字符排序

 

case...when语句的使用
语法1:CASE column_name WHEN value1 THEN result1 ... [ELSE resultn] END;
语法2:CASE WHEN column_name=value1 THEN result1 ...[ELSE resultn] END;
注:value1、result1需要加单引号,表示字符串,当多个when...then...使用时,中间用空格隔开即可,不能用逗号隔开。

case...when 语句的使用([when后面跟的是判断的条件,then是条件为真是显示出来的东西]):
1、select username,case usersname when 'aaa' then '计算机部门'
when 'bbb' then '市场部门' else '其他部门' end as 部门
from users;
2、select username,case when username='aaa' then '计算机部门'
when username='bbb' then '市场部门' else '其他部门' end as 部门
from users;
*这个的用法就比较灵活*后面可以跟salary的条件。

 

 

 

 

  

 

 

原文地址:https://www.cnblogs.com/jiayouxiage/p/6755824.html