oracle培训

今天公司培训了下oracle,记了下,以便查看
1.用户解锁:ALTER USER “hr” ACCOUNT UNLOCK ;
2.null
考虑两种情况 运算结果为null where条件中含有null

AND   0    1     null
0                null
1                null
null  null null  null

OR    0    1     null
0                null
1                1
null  null 1     null

NOT
0     1
1     0
null  null
null在oracle中默认为无限大
count(字段名) 字段值为空的不计数
3.字段名as加“”可以维持大小写
4.informix没有between ... and ...
5.like 's%' 如果在前面加%则索引不起作用
6.where条件中优先级NOT>AND>OR
7.虚拟表dual,该表中有一个字段,总是只能允许一条数据存在。
  常用来校验函数
8.比较日期,根据具体情况使用trunc,oracle默认按天处理日期
9.注:NULL和0不同,NULL表示为空(未知),0表示为0(以知)

    NVL 函数: 将空值替换为指定的值.
  NVL ( exp1, exp2 )
    如果exp1为空,则返回exp2, 反之返回exp1.
    例:Select NVL( NULL, 0 ), NVL( 'aa', 1 ) From dula
    结果: 0  和  aa

    NVL2 函数: 将空值替换为指定的值.
  NVL 2( exp1, exp2, exp3 )
    如果exp1为空,则返回exp2, 反之返回exp3.
    例:Select NVL( NULL, 0, 1 ), NVL( 'aa', 0, 1 ) From dula
    结果: 0  和  1    
10.Decode 函数:将值进行替换

Select Decode ( 比较列名, 比较值, 替换值, 比较值2, 替换值2,…… ) From 表名

例:Select venname, Decode( vencode, '001', 'aaa', '002', 'bbb', '003', 'ccc' ) From vendor_master
结果:Pro      aaa
      Wind     bbb
      Kof      ccc 
      Fly      004

注: 001, 002, 003被aaa,bbb,ccc替换
11.自连接
SELECT employee.FIRST_NAME || ' work for ' || manager.LAST_NAME  as "title"
FROM HR.EMPLOYEES employee, HR.EMPLOYEES manager
where employee.EMPLOYEE_ID=manager.MANAGER_ID
GO

title                       
----------------------------
Steven work for Kochhar     
Steven work for De Haan     
Lex work for Hunold         
Alexander work for Ernst

12.组函数计算顺序
select departmentid,count(*)
from employee
where salary>4000
group by deparmentid
having count(*)>2
order by deparmentid asc
where>group>count>having>order by

你可能感兴趣的:(oracle,Informix,Go)