Oracle使用心得

本文分享了Oracle数据库的使用经验,包括Oracle的行业地位、SQL基础和在Oracle中的应用,如数据转换、NVL函数、DUAL表的使用、日期处理及CASE条件函数等,适合有一定SQL基础的读者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle简介

世界上的所有行业几乎都在应用Oracle技术,《财富》100强中的98家公司都采用Oracle技术。Oracle是第一个跨整个产品线(数据库、业务应用软件和应用软件开发与决策支持工具)开发和部署100%基于互联网的企业软件的公司。Oracle是世界领先的信息管理软件供应商和世界第二大独立软件公司。

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

SQL简介

严格来讲SQL会分为三种类型:
1、数据操纵语言(DML):用来操纵数据库中数据的命令。包括:select、insert、update、delete。
2、数据定义语言(DDL):用来建立数据库、数据库对象和定义列的命令。包括:create、alter、drop。
3、数据控制语言(DCL):用来控制数据库组件

Oracle使用的一些心得:

最近刚到一家新的公司,要求使用Oracle,因为在网上找了一些教程把Oracle安装好了,在接下的练习当中发现oracle也没有那么难,因为毕竟有一些Mysql的基础,说起mysql,这可能是最好入门的一门数据库语言,成本小,安装简单,教程多,我这一篇文章主要说我遇到的坑,希望一些有sql语言基础的人来看。

1.oracle数据库的不区分大小写的
2. 在查询的时候不管使用左连接,右连接还是内连接Oracle和mysql是一样的,语法都是一样,这一点不在这里说明,
3. 在查询的时候,使用to_date(“自己的数据”,“yyyy-MM-dd”),把一个字符串以fmt格式转换成一个日期类型,还有在增加的时候也需要用到这样的数据,有时前台需要String类型的时候,我们可以直接使用to_char(“自己的数据”,“yyyy-MM-dd”)
4. 使用nvl函数,如果X为空,返回value,否则返回X
例:对工资是2000元以下的员工,如果没发奖金,每人奖金100元

SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000;

5.oracle有一个伪表 dual 这个是根据oracle临时创建的表,在当你一段时间不使用会自动删除,我们在练习的时候可以使用

select LOWER(‘HELLO’) from dual;

6.截取函数substr instr

返回第一个参数中,从第n1位开始,长度为n2的子串。
如果n2省略,取第n1位开始的所有字符。
如果n1是负值,表示从第一个参数的后面第abs(n1)位开始向右取长度为n2的子串。
例子: select substr(‘HelloWorld’,6,5) from dual;
instr(s1,s2,[,n1],[n2]) 返回s1中,子串s2从n1开始,第n2次出现的位置。n1,n2默认值为1
例子:select instr(‘HelloWorldhelloWolrd’,‘World’,3,1) from dual;

7.日期处理函数

  • SYSDATE:返回系统日期
    MONTHS_BETWEEN()
    ADD_MONTHS()
    NEXT_DAY:
    LAST_DAY
    ROUND
    TRUNC
    EXTRACT

      ----3.1 SYSDATE:返回系统日期
     	select  SYSDATE from dual;       --2017/8/5 17:01:48
    
       ----3.2 MONTHS_BETWEEN():返回两个日期类型数据之间间隔的自然月数
    
       select  MONTHS_BETWEEN('15-11月-2017',SYSDATE) from dual;   
       
       select  MONTHS_BETWEEN('18-6月-2018',SYSDATE) from dual;
       
       select  ROUND(MONTHS_BETWEEN('15-11月-2017',SYSDATE),0) from dual;  
    
        ----3.3 ADD_MONTHS:返回指定日期加上相应的月数后的日期-------
     
       select  ADD_MONTHS('16-8月-2017',10) from dual;  
     
        ----3.4 NEXT_DAY:返回某一日期的下一个指定日期 -------
     
       select  NEXT_DAY(SYSDATE,'星期一') from dual; 
     
       ----3.5 LAST_DAY:返回指定日期当月最后一天的日期--------------
     
       select  LAST_DAY('16-8月-2017') from dual; 
       select  LAST_DAY(SYSDATE) from dual; 
     /*
       ----3.6 ROUND(date[,‘fmt’])将date按照fmt指定的格式进行四舍五入,
              fmt为可选项,如果没有指定fmt,则默认为DD,将date四舍五入为最近的天。
              格式码:世纪CC,年YY,月MM,日DD,小时HH24,分MI,秒SS--------------
     */
       select  HIREDATE,ROUND(HIREDATE,'MONTH') from EMP; 
       select  ROUND(SYSDATE) from dual; 
     
     /*
        ----3.7 TRUNC(date[,‘fmt’])将date按照fmt指定的格式进行截断,
         fmt为可选项,如果没有指定fmt,则默认为‘DD’,将date截取为最近的天--------------
     */
       select  HIREDATE,TRUNC(HIREDATE,'MONTH')  from EMP; 
       select  HIREDATE,TRUNC(HIREDATE,'year')   from EMP;
       select  HIREDATE,TRUNC(HIREDATE,'day')    from EMP;
       select  HIREDATE,TRUNC(HIREDATE,'hour')   from EMP;
       select  HIREDATE,TRUNC(HIREDATE,'minute') from EMP;    
    
     /*
       -------3.8 EXTRACT:返回日期类型数据中的年份、月份或者日-----
     */
       select  HIREDATE,EXTRACT(YEAR FROM HIREDATE)  from EMP;
       
       select  HIREDATE,EXTRACT(MONTH FROM HIREDATE) from EMP; 
       
       select  HIREDATE,EXTRACT(DAY FROM HIREDATE)   from EMP; 
    

8.case条件函数

例子:select ename,deptno, ( case deptno when 10 then ‘销售部’ when 20 then ‘市场部’ else ‘技术部’ end ) from emp order by deptno;

等等一些比较常用,在遇到常用的一些在更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值