10Oracle Database 数据表数据查询

Oracle Database 数据表数据查询


DML 数据操纵语言 - 数据的查看和维护

    select / insert /delete /update

 

基本查询语句

Select [distinct] column_name1,…|* from table_name [where conditions]

在SQL*PLUS中设置格式

列名设置

Column column_name heading new_name

Col column_name heading new_name

显示格式

Column column_name format dataformat

Col column_name format a10 字符型长度

Col column_name format 9 位数长度

清楚设置的格式

Column column_name clear

查询全部或部分字段

查询结果设置别名

运算符与表达式

算术运算符(+ - * /)

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

逻辑运算符(and or not)

有条件的查询

where

模糊查询

Like

通配符(_,%)

范围查询

Between …and

In

Not in

对查询结果排序

Select ..from…[where…] order by column1 asc/desc,…

Case…when语句

Case column_name

When value1 then result1,…

[else result] end

 

 

Case

When column_name=value1

Then result1,…[else result] end

 

 

Decode函数

Decode(column_name,value1,result1,...,defaultvalue)

 

运算符

<     小于

<=  小于等于

>     大于

>=  大于等于

=     等于

!=   不等于

<> 不等于

:=    赋值

is null     如果操作数为null返回true

like  比较字符串   _代表一个字符     %代表多个字符

 

create table test

(

  a number

)

insert into test value(10);

insert into test value(20);

insert into test value(30);

between 验证值是否在范围之内

select * from test where a between 10 and 20;

in    验证操作书在设定的一系列值中

select * from test where a in(1,10,20,30);

all    表示子查询返回值中的所有值,相当于比较最大值

       select sal from emp where sal > all( select sal from emp where sal<2000);

any  表示子查询返回值中的任意值,相当于最小值

 

and 两个条件都满足

or    只满足一个

not  取反

+     加

-     减

*      乘

/      除

基础查询

<--基本的select语句-->

select 列名,列名,.. from 表名,表名,.. where 条件 group by 列名 having 条件

select 是必须的 ,后面添你要查询的列名 ,* 代表所有

from 是必须的 , 后面填写你要查询的表名,可以有多个

where 可选的,后面填写你的查询条件

group by 可选的,对聚合进行分组,当查询内容多于一列且包含聚合函数时使用

having 仅用于group by 的关键字,和where作用一样

 

<--消除相同的行-->

select distinct 列名,列名,..from 表名

 

<--排序 order by-->

select 列名,列名,.. from 表名 order by 要排序的列名

 

<--注意:order by指令需聚合函数配合使用,否则只能是单列-->

 

<--聚合函数-->

    avg 平均值

    select avg(emp.sal) from emp;

    sum 求和

    select sum(emp.sal) from emp;

    max 最大值

    select max(emp.sal) from emp;

    min 最小值

    select min(emp.sal) from emp;

    count 总数

    select count(emp.sal) from emp;

 

<--排序-->

    升序

    select * from emp order by emp.sal ;

    降序

    select * from emp order by emp.sal desc;

 

<--数据复制-->

    select * into myemp from emp;

 

<--表复制-->

    create table myemp as select * from emp;

 

<--小技巧-->

    哑元表 在没有查询表的情况下使用

    select 1+1 from dual

    查询分割 ||

    select a.a1 ||'----'|| a.a2 from a;

    查询行数限制

    select * from a where rownum<=2;

    查询表结构

    desc tab_name

    数据复制

    select tab_name into tab_name|var from tab_name

高级查询

笛卡尔乘积

       select dname,ename from emp,dept;  这种通过多张表简单对加是没有太大意义的

 

集合运算

    交集     用来得到两个或者多个不同集合的共同元素,两个集合的交集就是其中所有属性相等的元素.交集有一个严格的限制:每个结果集中所有列都必须匹配相等

 

    减集    用来查找在一个集合中出现过,而在另一个集合中没有出现的元素,与交集相反的是: 每个结果集中所有列都必须匹配不相等

 

    并集    用来合并两个或者多个类似的集合

 

交集 intersect

    select语句 intersect select语句

减集 minus

    select语句 minus select语句

并集 union or union all

    select语句 union select语句

 

内连接

    在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

    select dname,ename from dept,emp where dept.deptno = emp.deptno   

 

 

外连接

    条件列使用(+),则此列为外连列,主列信息全部显示,外连列没有则显示空

多行子查询

    返回多个行,必须包含一个多行运算符。

转载于:https://www.cnblogs.com/Aha-Best/p/10858823.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值