当前位置:数据库 > Oracle >>

一个菜鸟的oracle之路----------三

一个菜鸟的oracle之路----------三
 
今天学习的知识点有
    1,非关联子查询   学习非关联子查询的数据环境和语法
    2,关联子查询     对比非关联子查询,掌握语法
    3,集合操作       多个结果集之间的操作
    4,表间操作       多表之间的关联关系
    5,内连接和外连接 多表之间的关联查询
    6,左/右/全外连接 多表之间的关联查询
 
1,知识点小结。
    1.1 查询语句的基本格式。
    
[sql] 
select 字段1,字段2,字段3,表达式,函数,...  
    from 表名  
    where 条件  
    group by 列名  
    having 带组函数的条件  
    order by 列名  
 
    1.2 函数
      1.21 组函数,count avg sum max min
      //注意:组函数忽略空值
      1.22 单行函数
          字符函数,upper/lower/initcap/length/lpad/rpad/replace/trim
          upper  转化为大写
          lower  转化为小写
          initcap  转化为首字母大写
          length   取长度
          lpad     左补丁
          rpad     右补丁
          replace  字符转化
          trim     去除前面的空格
          案例1 将ename字段设置为10个长度,如果不够左边用'*'补齐
          
[sql] 
select lpad(ename,10,'*')from emp_xxx;  
 
          案例2
        
[sql] 
select rpad(ename,10,'#')from emp_xxx;  
 
 
          案例3  数字函数,round /trunc/mod
              求salary对5000取模
            
[sql] 
select salary,mod(salary,5000)from emp_xxx;  
 
 
          案例4  日期函数  months_between、add_months、last_day
             months_between 两个日期之间的月份数
             add_months     给定一个时间,为该日期增加指定月份
             last_day       找出参数时间点所在月份的最后一天
             将amy 的入职时间提前2个月
             
[sql] 
select ename,hiredate from emp_xxx where ename='郭靖';  
             select ename,add_months(hiredate,-2) from emp_xxx where ename='郭靖';  
 
 
             //使用update语句进行更改
             
[sql] 
update emp_xxx set hiredate=add_months(hiredate,-2) where ename='郭靖';  
 
 
             //再次进行查询
              
[sql] 
select ename,hiredate from emp_xxx where ename='郭靖';  
 
 
           案例5,这个月最后一天是多少
            
[sql] 
select last_day(sysdate) from dual;  
 
 
         转换函数  to_char/to_date和to_number
                  to_char            to_number
         日期   ---------->字符     ------------>数字
               <----------          <------------
                  to_date             to_char
            案例6 将“$7912345.67”乘以10,输出结果
          
[sql] 
select to_number('$7912345.67','$9999999.99')*10 from dual;  
 
 
            案例7  将79123456.79按照指定格式$9999999.99输出
          
[sql] 
select to_char('7912345.67','$9999999.99')from dual;  
 
 
         通用函数  nvl/coalesce/decode
           单行函数出去四大类字符函数,数字函数,日期函数,转换函数,还有一些其他函数
           nvl/coalesce/decode
         使用频率比较高的函数
             单行函数  upper round to_char/to_date/nvl
             组函数    count/avg/sum/max/min
2 子查询
    2.1 单行函数比较运算 > < >= <= = <>
          案例8 ,谁的薪水比黄蓉的高
         
[sql] 
select ename,salary   
         from emp_xxx   
         where salary>(  
         select salary from emp_xxx where ename='黄蓉');  
 
 
          //保留此问题,如果存在2个黄蓉该怎么办
          案例9   研发部有哪些职位
          
[sql] 
select distinct job   
            from emp_xxx  
            where deptno=(select empno from emp_xxx   
            where ename='Analyst');  
 
 
              //感觉该问题还没有解决
          案例10  谁的薪水比张无忌的高
           
[sql] 
insert into emp_xxx(empno,ename,salary)  
             values(1012,'张无忌',8000);  
           select ename,salary from emp_xxx;  
 
 
            //如果有多个叫张无忌的则会出错
            //报错
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,