Oracle初识笔记(二)

来源:互联网 发布:mac os 官方镜像 编辑:程序博客网 时间:2024/05/21 09:27

初识Oracle数据库,学习中的一些笔记及所遇问题。

约束

适用所有:查看约束: desc user_constraints;
禁用/启用约束:disable/enable constraint xxx;
删除约束:drop constraint xxx;
1. 非空约束
添加约束:创建时在字段的数据类型后加not null,或者alter table xxx modify 字段 数据类型 not null;
去除非空约束:alter table xxx modify 字段 数据类型 null

  1. 主键约束(非空唯一)
    添加约束:alter table xxx add constraint 约束名 primary key (字段..);
    删除约束:drop constraint xxx

  2. 外键约束

  3. 唯一约束
    添加约束:create table xxx (字段名,数字…) constraint xxx unique(字段名),或者alter table xxx add constraint xxx unique (字段名);
    删除约束:drop constraint xxx

  4. 检查约束
    添加约束:创建表时在相应字段后添加check(约束条件),或者alter table xxx add constraint xxx check (条件);
    删除约束:drop constraint xxx

函数

  1. 四舍五入函数:round(n[,m]),
    m省略:0;m>0:小数点后m位四舍五入;m>0:小数点前m位四舍五入。
    eg:round(23.4):23;round(23.45,1):23.5;round(23.45,-1):20

  2. 取整函数:ceil(n):最大值;floor(n):最小值;
    eg:ceil(23.45):24;floor(23.45):23

  3. 截断函数:trunc(number,n),截取到小数点后n位
    eg:trunc(168.888,1):168.8

  4. 取绝对值函数:ABS(n)

  5. 取余函数:mod(n,m),对n/m取余,任一为0返回null
  6. 求幂函数:power(n,m),求n的m次幂
    eg:power(2,3):8;power(0,2):null

  7. 平方根函数:sqrt(n),求n的平方根

  8. 三角函数:sin(n),asin(n),cos(n),acos(n),tan(n),atan(n)
  9. 字符大小写转换函数:upper(char):将字符串char的大写字符转换为小写;lower(char):小写转换为大写;initcap(char):首字母转换函数
    eg:upper(‘abDe’):ABDE;lower(‘ADe’):ade;initcap(‘asd’):Asd

  10. 获取子字符串函数:substring(char,n[,m]),从第n位开始,截取m位,
    m省略:从第n为开始截取到最后;n<0:从倒数第n位开始截取m位
    eg:substring(‘abcde’,2,3):bcd;substring(‘abcde’,2):bcde;subtring(‘abcde’,-2,1):e

  11. 获取字符串长度函数:length(char)

  12. 字符串连接函数:concat(char1,char2)=char1 || char2
    eg:concat(‘ab’,’cd’)=’ab’ || ‘cd’:abcd

  13. 去除子串函数:trim(leading|trailing|both c1 from char):从char中删除字符左边|后边|两边的c1(默认为both),只有一个参数时,表示删除左右两端空格;ltrim(char):删除左端空格;rtrim(char):删除有段空格
    eg:trim(leading ‘a’ from ’ abcdaa ‘): bcdaa ;trim(trailing ‘a’ from ’ abcdaa ‘): abcd ;trim(both ‘a’ from ’ abcdaa ‘): bcd ;trim(’ abcdaa ‘):abcdaa;ltrim(’ abcdaa ‘):abcdaa ;rtrim(’ abcdaa ‘): abcdaa;

  14. 替换函数:replace(原字符串char,需替换的字符串char1[,用来替换的字符串char2]):char2省略则去除char1;
    eg:replace(‘aabbcc’,’bb’,’dd’):aaddcc;replace(‘aabbcc’,’bb’):aacc

  15. 系统时间函数:sysdate:获取系统当前时间,格式:DD-MON-RR 10-7月-17

  16. 日期操作函数:
    add_month(date,i):返回在指定日期上添加的月份,i可以为任何整数;
    next_day(date,char):char为星期几,返回的是date的下一个星期几是什么日期;
    eg:在7月10日,周一:next_day(sysdate,’星期二’):11-7月-17
    last_day(date):返回date所在月份的最后一天;
    months_between(date1,date2):表示date1月date2之间相隔的月份数;
    extract(date from datetime):返回datetime中的部分:
    eg:extract(month from sysdate):07;

  17. 日期转换为字符串函数:to_char(date,fmt,params):date:日期,fmt:格式,params:编码,一般省略;常用格式: 年:yy或yyyy或year;月:mm或month;日:dd或day;时:hh24或hh12;分:mi;秒:ss
    eg:to_char(sysdate,’yyyy-mm-dd hh24:mi:ss):2017-07-31 10:54:50

  18. 字符转换为日期函数:to_date(char,fmt,params),fmt为字符串char的日期格式,转换的日期结果为默认系统时间格式
    eg:to_date(‘2017-07-31 10:56:50’,’yyyy-mm-dd hh24:mi:ss’):31-JUL-17

  19. 数字转换为字符串函数:to_char(number,fmt):关于fmt:
    9:显示数字并且忽略前面的0;
    0:显示数字,位数不足用0补齐;
    .或D:显示小数点;
    ,或G:显示千位符;
    美元符:显示美元符号;
    L:显示本地货币符号;
    MI:在数的右边显示减号;
    PR:把负数用尖括号扩起来;
    S:加正负号(前后均可);
    eg:to_char(12345.789,’美元符99,999.999’):$12,345.678

  20. 字符转换为数字函数:to_number(char,fmt)
    eg:to_number(‘美元符1,000’,’美元符9999’):1000

  21. cast(number as real):去除小数点后的无效数字0
    eg:cast(25.300000 as real):25.3

  22. 略空函数:nvl(x1,x2):当x1为空时返回x2,否则返回x1,x1可以数字,字符,日期类型的函数,但x2必须与x1数据类型一致
    eg:数字类型:nvl(number,0);字符类型:nvl(to_char(number),0);日期类型:nvl(date,’31-DEC-99’)

  23. NVL2(x1,x2,x3):对nvl函数的扩充,若x1不为空,返回x2,若x1为空则返回x3
  24. DECODE函数:逻辑判断函数
    eg:decode(job,’普通员工’,sal*1.15,’部门经理’,sal*1.20,’总经理’,sal*1.25):普通员工薪水*1.15,部门经理薪水*1.20,总经理薪水*1.25

  25. case when函数

原创粉丝点击