oracle常用高级sql操作

一、运算符

算术运算符:+ - * / 可以在select 语句中使用

连接运算符:||    select deptno|| dname from dept;

比较运算符:> >= = != < <= like between is null in

逻辑运算符:not and or

集合运算符: intersect ,union, union all, minus

要求:对应集合的列数和数据类型相同

查询中不能包含long 列

列的标签是第一个集合的标签

使用order by时,必须使用位置序号,不能使用列名

1. 复制表结构及其数据:

create table table_name_new as select * from table_name_old

2. 只复制表结构:

create table table_name_new as select * from table_name_old where 1=2;

或者:

create table table_name_new like table_name_old

3. 只复制表数据:

如果两个表结构一样:

insert into table_name_new select * from table_name_old

如果两个表结构不一样:

insert into table_name_new(column1,column2...) select column1,column2... from table_name_old

pasting

----------------------------------------------递归查询

--子查父(通过子节点向根节点追朔.)

查询〔特下边〕的父节点

select *

from tb_class t

start with t.class_id = ‘1030107742‘

connect by prior t.super_class_id = t.class_id

order by t.tree_level desc

--父查子(通过根节点遍历子节点.)

查询〔特下边〕的子节点:结果

select *

from tb_class t

start with t.class_id = ‘1030107742‘

connect by prior t.class_id = t.super_class_id

order by t.tree_level desc

1.NVL函数

NVL函数的格式如下:NVL(expr1,expr2)

含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

oralce 坐连接右连接

有+号的表不全部显示,对面的表全部显示。

----------------------------------------------2016-2-24 10:06:49

2、DECODE函数 ( )

语法:decode(expr,search1,result1,

search2,result2,

……

search n,result n, default)

解释:decode函数将expr值与各search值一个一个比对,若expr值等于search值oracle数据库返回其对应的result值;若没有匹配的search值,则返回default值;若函数中default值缺省则返回null。

/*select decode(status,0,‘yes‘,1,‘no‘) as end  from sys_user  where id = 158 */

oracle高级update语句  (批量update)

update t_source_phase p set p.lineno =

(select num from t_source_line l where p.lineid = l.id) where p.lineid is not null;

select的同时就update

oracle高级查询语句  (分组后按组排序)

select t.*,row_number() over(partition by planid order by sort asc ) row_number

from t_temp_pathinfo_log t

oracle增加字段语法:

@添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);

@修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);

@删除字段的语法:alter table tablename drop (column);

//2016年1月21日09:56:53

@创建序列

create sequence SEQ_DEPT

minvalue 1

maxvalue 99999999

start with 241

increment by 1

cache 20;

@高级语句

1.INSERT INTO SELECT --语句

语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。

2.SELECT INTO FROM --语句

语句形式为:SELECT vale1, value2 into Table2 from Table1

要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。示例如下:

时间: 2024-10-26 02:44:12

oracle常用高级sql操作的相关文章

oracle 常用相关sql 语句

一.oracle 常用相关sql 语句 1. 连接数据库       su - oracle -c " sqlsplus 用户/密码     注:首次登陆用  sqlplus / as sysdba            注: 关闭数据库:注:shutdown可加关闭选项,从最温和到最粗暴的行为选项为(shutdown.shutdown transactional.shutdown immediate.shutdown abort)                 shutdown:关闭,等待每

oracle常用查询sql

oracle常用查询sql 原创 gordon陈 发布于2018-05-10 22:32:18 阅读数 297 收藏 展开 #!/bin/sh## create by Gordon Chen echo "\n=============`date`===================\n" if [ "$LOGNAME" = "oracle" ]; then   SQLPLUS_CMD="/ as sysdba";else  

ORACLE 常用的SQL语法和数据对象

一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);  INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’  如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''.  字符串类型的字段值超

oracle常用经典SQL查询

1 常用SQL查询: 2 3 1.查看表空间的名称及大小 4 5 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size 6 from dba_tablespaces t, dba_data_files d 7 where t.tablespace_name = d.tablespace_name 8 group by t.tablespace_name; 9 10 2.查看表空间物理文件的名称及大小 11 12 sel

Oracle常用的SQL方法总结

在项目中一般需要对一些数据进行处理,以下提供一些基本的SQL语句: 1.基于条件的插入和修改:需要在表中插入一条记录,插入前根据key标识判断.如果标识符不存在,则插入新纪录,如果标识符存在,则根据语句中所给的新值对原纪录中的字段进行更新: merge into A using B on (A.key = B.key) when matched then   update set A.name = B.name when not matched then   insert into (A.key

Oracle常用的sql语句

--1.查询系统表空间信息 SELECT * FROM SYS.DBA_TABLESPACES; --2.查询表空间所在路径信息 select * from dba_data_files; --3.查询用户所属表空间 select u.username as 用户名,u.default_tablespace as 所属表空间 from dba_users u; --4.创建表空间 create tablespace GUEST logging datafile 'D:\oracle\oradat

Java常用高级线程操作

针对Java线程操作一直不太明白,今天找了一本高级教材,有专门介绍Java7支持的线程操作,稍微记录一下各种类和使用条件 1.synchronized对象锁 使用synchronized来锁定一个对象,但是使用在类的方法中的时候会造成整个类的对象被锁,因此对于其他没有此关键字的标记也无法被其他线程操作. synchronized可以锁定任意代码块,可以锁定任意对对象作为代码块的锁. 2.volatile进行线程同步 volatile作为一个在内存和线程之间同步变量的关键字,不会再本地保存变量的二

Oracle常用监控sql语句

1.监控事例的等待: select event,sum(decode(wait_time,0,0,1)) prev, sum(decode(wait_time,0,1,0)) curr,count(*) from v$session_wait  group by event order by 4; 2.回滚段的争用情况: select name,waits,gets,waits/gets ratio from v$rollstat a,v$rollname b where a.usn=b.usn

oracle 常用select sql语句

本人认为很实用的几条语句 1)select ... from ...into... 2)insert into ...select ... 3)select ...from ...left join ...on ... 4)case...when...then ...else ... end Java代码 select * from directory_type where (case when create_date is null then  sysdate  else create_dat