PL/SQL练习

 (注:当a等于0或1时,都是从第一位开始截取(如:1和2)
    (注:假如HelloWorld之间有空格,那么空格也将算在里面(如:5和6)
    (注:虽然7、8、9、10截取的都是3个字符,结果却不是3 个字符; 只要 |a| ≤ b,取a的个数(如:7、8、9);当 |a| ≥ b时,才取b的个数,由a决定截取位置(如:9和10)

11、select substr('HelloWorld',0) value from dual;  //返回结果:HelloWorld,截取所有字符
12、select substr('HelloWorld',1) value from dual;  //返回结果:HelloWorld,截取所有字符
13、select substr('HelloWorld',2) value from dual;  //返回结果:elloWorld,截取从“e”开始之后所有字符
14、select substr('HelloWorld',3) value from dual;  //返回结果:lloWorld,截取从“l”开始之后所有字符
15、select substr('HelloWorld',-1) value from dual;  //返回结果:d,从最后一个“d”开始 往回截取1个字符
16、select substr('HelloWorld',-2) value from dual;  //返回结果:ld,从最后一个“d”开始 往回截取2个字符
17、select substr('HelloWorld',-3) value from dual;  //返回结果:rld,从最后一个“d”开始 往回截取3个字符 

 

 

 

      TO_CHAR() 函数:日期到字符串的转换  : select to_char(sysdate,'YYYY-MM-DD') D from dual;

 

  1. || 连接符 select 'ID为' || depa.department_id  || '的员工为' || depa.department_name employ  from departments depa
  2. DISTINCT 去除重复行: 是在所有结果集的基础上,去除每个字段都相同的内容,项目上禁止使用
  3. 条件限制的关键词:WHERE ,根据条件查询
  4. 比较操作符: 
  5. 比较操作运算符
    比较操作符意义
    =等于
    >大于
    >=大于等于
    <小于
    <=小于等于 
    <>不等于
    BETWEEN ...AND...在两个值之间
    IN(set)在一个集合范围内
    LIKE匹配一个字符串样子,可以使用%通配符 
    IS NULL是一个空值,注意不能使用 =NULL 

     

    1. 使用LIKE做模糊匹配: 可使用% 或者_ 作为通配符: 
       
      % 代表 0个或者多个 字符. _  代表一个单个字符.                                                                                                            如果要搜索统配符本身该怎么办呢?: 这需要使用ESCAPE 标识转义字符 
      select * from t_char where a like „%\%%' escape '\'; 
  6. 逻辑操作符
  7. 逻辑操作符意义
    AND  所有条件都满足,返回TRUE
    OR只要有一个条件满足,返回TRUE
    NOT如果条件是FALSE,返回TRUE 

     

  8. 大小写转换函数: 
  9. 函数结果
    LOWER('SQL Course')sql course
    UPPER('SQL Course')SQL COURSE
    INITCAP('SQL course')Sql Course 

    Oracle数据库中的数据是大小写敏感的 :SELECT employee_id, last_name, department_id FROM employees WHERE LOWER(last_name) = 'higgins'; 将last_name都转为小写再与higgins比较

  10. 字符串操作函数: 
  11. 函数结果
    CONCAT('Hello', 'World')HelloWorld
    SUBSTR('HelloWorld',1,5)Hello
    LENGTH('HelloWorld')10
    INSTR('HelloWorld', 'W')6
    LPAD(salary,10,'*')*****24000
    RPAD(salary, 10, '*')24000*****
    TRIM('H' FROM 'HelloWorld')elloWorld
    TRIM(' HelloWorld')HelloWorld
    TRIM('Hello World')Hello World 

    substr函数格式   (俗称:字符截取函数)

      格式1: substr(string string, int a, int b);

      格式2:substr(string string, int a) ;

    解释:

        格式1:
            1、string 需要截取的字符串 
            2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
            3、b 要截取的字符串的长度

        格式2:
            1、string 需要截取的字符串
            2、a 可以理解为从第a个字符开始截取后面所有的字符串。                                                                                              示例解析:


    1、select substr('HelloWorld',0,3) value from dual; //返回结果:Hel,截取从“H”开始3个字符
     2、select substr('HelloWorld',1,3) value from dual; //返回结果:Hel,截取从“H”开始3个字符
     3、select substr('HelloWorld',2,3) value from dual; //返回结果:ell,截取从“e”开始3个字符
     4、select substr('HelloWorld',0,100) value from dual; //返回结果:HelloWorld,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
     5、select substr('HelloWorld',5,3) value from dual; //返回结果:oWo
     6、select substr('Hello World',5,3) value from dual; //返回结果:o W (中间的空格也算一个字符串,结果是:o空格W)
     7、select substr('HelloWorld',-1,3) value from dual; //返回结果:d (从后面倒数第一位开始往后取1个字符,而不是3个。原因:下面红色 第三个注解)
     8、select substr('HelloWorld',-2,3) value from dual; //返回结果:ld (从后面倒数第二位开始往后取2个字符,而不是3个。原因:下面红色 第三个注解)
     9、select substr('HelloWorld',-3,3) value from dual; //返回结果:rld (从后面倒数第三位开始往后取3个字符)
    10、select substr('HelloWorld',-4,3) value from dual; //返回结果:orl (从后面倒数第四位开始往后取3个字符)

  12. 函数结果
    ROUND(45.926, 2)45.93
    TRUNC(45.926, 2)45.92
    MOD(1600, 300)100 

    ROUND(X,Y):四舍五入,保留y位小数点 
    TRUNC(X,Y):截取数字到Y位小数 
    MOD(X,Y):x除以y的余数

  13. 日期操作函数:
  14.  
  15.  

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值