日期操作
1、用trunc( )函数截取日期作为月初select hiredate 雇用日期, trunc(hiredate, 'mm') 月初 from emp where rownum
UNDO表空间管理的一个测试,切换表空间的测试
UNDO表空间管理的一个测试:1、为了测试我设置的UNDO表空间为1MSQL> create undo tablespace undo datafile 'E:\app\Administrator\oradata\HHN/hh_undo.dbf' size 1m ;Tablespace createdSQL> alter system set undo_tablespace=undo;System altered我创建了一张表,进行了测试SQL> create table t1(tid numb...
查询一张表的索引数
select owner, table_name, count(*) from all_indexes group by owner, table_name having count(*) >= 5;
产生任意的随机三条数据
order by dbms_random.value(1,50),再嵌套一层rownumselect * from (select rownum, empno from (select empno from emp order by dbms_random.value(1, 50))) where rownum <= 3;测试结果:SQL> select * 2 from (select rownum, e...
SYS_CONNECT_BY_PATH函数
SQL> select sys_connect_by_path(empno,',') from emp start with mgr is null connect by priSYS_CONNECT_BY_PATH(EMPNO,',')-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------...
索引中空值的问题
创建一张测试表:SQL> create table t1 as select * from dba_objects;表已创建。SQL> insert into t1(object_name) values(null);已创建 1 行SQL> commit;提交完成。SQL> create index idx_T1 on t1(object_name);索引已创建。SQL> set autot traceSQL> select object_name from t1;已选择72552行。执行...
分析函数avg(xx) over(partition by xxx order by x)
计算员工表中每个员工的平均薪水报告,该平均值由当前员工和与之具有相同经理的前一个和后一个三者的平均数得来select row_number() over(partition by mgr order by empno) rn, empno, mgr, avg(sal) over(partition by mgr orde...
给一个朋友看的一个题,题不难
(1)merge into t1using t2on (t1.no + 199 = t2.no)when matched then update set t1.区县 = t2.区县;(2)update /*+ leading(t2) use_hash(t1) */ t1 set 区县 = (select 区县 from t2 where t1.no + 199 = t2.no);(3)至少有一个表的连接列是主键...
每日一练(四)
第一个题:环境准备:drop table teachers;drop table students;drop table classes;create table Teachers(T_ID int,T_NAME varchar2(20));create table Students(S_ID int,S_NAME varchar2(20));create table Classes(T_ID int,S_ID int,C_NAME varchar2(20));insert into Teachers values(1,'T1');insert into ...
每日一练(三)按产品分类,仅列出各类商品中红色多于蓝色的商品名称及差额数量
产品 颜色 数量产品1 红色 100产品1 蓝色 80产品2 蓝色 103产品2 红色 NULL产品2 红色 89产品1 红色 100按产品分类,仅列出各类商品中红色多于蓝色的商品名称及差额数量drop table products;create table products(name v...
每日一练(二)decode函数
drop table userinfo;drop table checkinfo;create table userinfo(id int,username varchar2(32),u_id int);create table checkinfo(id int,checktype varchar2(32),u_id int);insert into userinfo values(1,'张三',1);insert into userinfo values(2,'李四',2);insert into userinfo values(3,'王五',3);insert...
每日一练(三)一个union all的例子,三个题
表结构是这样的SNAME CNAME------------------------- -------------------------张三 数学张三 &nb...
导入导出数据块
用impdp导入数据在数据库下:CREATE DIRECTORY DX_DIR AS 'G:\TEST\';在cmd执行:impdp dxjf/a directory=dx_dir dumpfile=CALL_TICKET_TIMESPA.DMP tables=call_ticket,ACCT,ACCT_ITEM,ACCT_ITEM_DISCT,ACCT_ITEM_TYPE,ALL_DISCT_TOTAL,ALL_DIST_TAB,AREA_CODE,BILLING_CYCLE,BILLING_CYCLE_TYPE,BILLING_TYPE,CALL_...
直方图
1、基数与选择性 基数(Cardinality) :列唯一键(Distinct_keys)的数量,比如性别,该列只有男女之分,所以这一列基数是2。主键列的基数等于行数。 选择性(Selectivity) :列唯一键(Distinct_Keys)数量与行数(Num_Rows)的比值。select count(distinct column_name), &n...
遇到一个CLOB的例子
create table t1( tid int primary key, tname varchar2(20), tag clob);我创建的这个表,有多少个段? 答案:4 CLOB两个段,主键...
看到论坛发的一个面试题,觉得还是不错的,整理下来
用一条sql求出每个部门(emp表)的最大工资和最小工资,以及最大工资和最小工资的员工姓名。(注:一次表扫描。同一个部门最大工资或最小工资的人可能不止一个)。(1)如果没有后边的扫描表一次就会有很多的方法可以写出需求select empno, ename, sal max_sal, null min_sal from (select empno, &n...
ORACLE体系结构
一个会话登陆访问实例的时候,为这个会话分配一个server process 进程,并为这个进程分配一块PGA,PGA储存了与会话相关的一些数据,是私有的。oracle实例是有SGA和五大后台进程组成内存是由SGA和PGA组成Ⅰ、SGA:六大池1、shared pool 2、buffer cache 3、redo log buffer 4、large pool 5、java pool 6、s...
查找重复数据,过滤重复数据
1、表:ee(id,name,age)要求:列出所有名字重复的人的记录 select name from ee group by name having count(*)>=2;NAME-------------------------Zhang3Wang1Zhang1Zhang22、有表:ee(name,age)name ageTom 16Sun 14Tom 16Tom 16要求:过滤掉所有多余的重复记录建表语句:create ta...
查询转换方式
查询转换方式有很多种:1、视图合并 2、子查询展开 3、谓词推入 1、视图合并:就是视图的基表和外部表做连接 创建一个视图create view v1 asselect * from emp where deptno = 10;select * from v1, dept&nbs...