`
jie66989
  • 浏览: 256564 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

oracle笔记

    博客分类:
  • SQL
阅读更多
oracle配置信息目录:
product\11.1.0\db_1\NETWORK\ADMIN
sqlnet.ora文件修改主机无密码登陆 倒数第二行SQLNET.AUTHENTICATION_SERVICES= (NTS) 表示可以无

密码登陆注释掉就可以了
  eg:cmd->sqlplus->sys/manager as sysdba注意结尾没有分号
tnsnames.ora查看实例名

查看oracle信息select * from v$version;
查询表结构desc table_name;
oracle临时表dual
随机数函数dbms_random.random
序号rownum
修改一张表的主键
alter table aaa drop constraint aaa_key ;
alter table aaa add constraint aaa_key primary key(a1,b1);
查看哪些用户拥有SYSDBA、SYSOPER权限select * from V_$PWFILE_USERS;
单独备份一个或多个用户exp system/manager owner=(用户1,用户2,…,用户n) file=导出文件
执行sql文件,@e:/app/show.sql;表示执行e:/app/show.sql文件
快速清空表truncate table table_name;
查询数据有多少表select count(*) from all_tables;
字符串的连接SELECT CONCAT(COL1,COL2) FROM TABLE;或SELECT COL1||COL2 FROM TABLE;
导出select查询结果到文件spool c:\abc.txt;select * from table;spool off;
如何在sqlplus下改变字段大小?  alter table table_name modify (field_name varchar2(100));
     改大行,改小不行(除非都是空的)
如何查询某天的数据?
     select * from table_name where trunc(日期字段)=to_date('2003-05-02','yyyy-mm-dd');
更改表名alter table scott.dept rename to depts;//sys当前用户的例子
怎样用Sql语句实现查找一列中第N大值?
     select * from
(select t.*,dense_rank() over (order by sal) rank from employee)
where rank = N;
返回大于等于N的最小整数值? SELECT CEIL(N)  FROM DUAL;
返回小于等于N的最小整数值? SELECT FLOOR(N)  FROM DUAL;
返回当前月的最后一天? SELECT LAST_DAY(SYSDATE)  FROM DUAL;
两个结果集互加的函数?
     SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW;这里前后顺无所谓
两个结果集互减的函数?
     SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW;前面的查询结果必须大于后者


日期的各部分的常用的的写法
119. 取时间点的年份的写法:
      SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;
120. 取时间点的月份的写法:
      SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;
121. 取时间点的日的写法:
      SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;
122. 取时间点的时的写法:
      SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;
123. 取时间点的分的写法:
      SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;
124. 取时间点的秒的写法:
      SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;
125. 取时间点的日期的写法:
      SELECT TRUNC(SYSDATE) FROM DUAL;
126. 取时间点的时间的写法:
      SELECT TO_CHAR(SYSDATE,'HH24:MI:SS') FROM DUAL;
127. 日期,时间形态变为字符形态:
      SELECT TO_CHAR(SYSDATE) FROM DUAL;
128. 将字符串转换成日期或时间形态:
      SELECT TO_DATE('2003/08/01') FROM DUAL;
129. 返回参数的星期几的写法:
      SELECT TO_CHAR(SYSDATE,'D') FROM DUAL;
130. 返回参数一年中的第几天的写法:
      SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;
131. 返回午夜和参数中指定的时间值之间的秒数的写法:
      SELECT TO_CHAR(SYSDATE,'SSSSS') FROM DUAL;
132. 返回参数中一年的第几周的写法:
      SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;
136. 将N秒转换为时分秒格式?
     set serverout on
     declare
       N number := 1000000;
       ret varchar2(100);
     begin
       ret := trunc(n/3600) || '小时' || to_char(to_date(mod(n,3600),'sssss'),'fmmi"分  

"ss"秒"') ;
       dbms_output.put_line(ret);
     end;
138. 如何查询做比较大的排序的进程的SQL语句?
     select /*+ ORDERED */ sql_text from v$sqltext a
     where a.hash_value = (
       select sql_hash_value from v$session b
       where b.sid = &sid and b.serial# = &serial)
     order by piece asc ;
139. 如何查找重复记录?
     SELECT * FROM TABLE_NAME
     WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
       WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);
140. 如何删除重复记录?
     DELETE FROM TABLE_NAME
     WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
     WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);
分享到:
评论

相关推荐

    Oracle笔记

    这个是我学习网上的视频做的oracle笔记,对于oracle一窍不通的菜鸟可能有用吧,大家有需要可以看看

    2011Oracle笔记(李兴华视屏教程笔记)

    标题“2011Oracle笔记(李兴华视屏教程笔记)”揭示了文档的用途,它是作为2011年李兴华Oracle教学视频课程的学习笔记。这种笔记通常包括了课程中的重点概念、Oracle数据库基础知识、实际操作案例以及配合视频教程的...

    史上最全的oracle笔记

    这篇史上最全的Oracle笔记将为你提供全面的学习指导。 一、数据库基础 数据库(DataBase)是存储数据的系统,Oracle数据库允许用户以表格的形式组织和管理数据。在Oracle中,数据主要以表的形式存在,表是数据库中...

    韩顺平oracle笔记(免费)

    ### 韩顺平Oracle笔记知识点详解 #### 一、Oracle认证及与其他数据库的比较 - **Oracle认证**:Oracle提供了多种级别的认证体系,包括OCA(Oracle Certified Associate)、OCP(Oracle Certified Professional)、...

    MLDN最经典的ORACLE笔记

    《MLDN最经典的ORACLE笔记》是李兴华老师倾力打造的一份全面而深入的Oracle学习资源,专为对数据库技术感兴趣的读者精心准备。Oracle作为全球广泛使用的数据库管理系统,其强大功能和复杂性使得深入理解和掌握Oracle...

Global site tag (gtag.js) - Google Analytics