Oracle初识笔记(二)
2017-07-31 10:40
183 查看
初识Oracle数据库,学习中的一些笔记及所遇问题。
禁用/启用约束:disable/enable constraint xxx;
删除约束:drop constraint xxx;
1. 非空约束
添加约束:创建时在字段的数据类型后加not null,或者alter table xxx modify 字段 数据类型 not null;
去除非空约束:alter table xxx modify 字段 数据类型 null
主键约束(非空唯一)
添加约束:alter table xxx add constraint 约束名 primary key (字段..);
删除约束:drop constraint xxx
外键约束
唯一约束
添加约束:create table xxx (字段名,数字…) constraint xxx unique(字段名),或者alter table xxx add constraint xxx unique (字段名);
删除约束:drop constraint xxx
检查约束
添加约束:创建表时在相应字段后添加check(约束条件),或者alter table xxx add constraint xxx check (条件);
删除约束:drop constraint xxx
m省略:0;m>0:小数点后m位四舍五入;m>0:小数点前m位四舍五入。
eg:round(23.4):23;round(23.45,1):23.5;round(23.45,-1):20
取整函数:ceil(n):最大值;floor(n):最小值;
eg:ceil(23.45):24;floor(23.45):23
截断函数:trunc(number,n),截取到小数点后n位
eg:trunc(168.888,1):168.8
取绝对值函数:ABS(n)
取余函数:mod(n,m),对n/m取余,任一为0返回null
求幂函数:power(n,m),求n的m次幂
eg:power(2,3):8;power(0,2):null
平方根函数:sqrt(n),求n的平方根
三角函数:sin(n),asin(n),cos(n),acos(n),tan(n),atan(n)
字符大小写转换函数:upper(char):将字符串char的大写字符转换为小写;lower(char):小写转换为大写;initcap(char):首字母转换函数
eg:upper(‘abDe’):ABDE;lower(‘ADe’):ade;initcap(‘asd’):Asd
获取子字符串函数: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
获取字符串长度函数:length(char)
字符串连接函数:concat(char1,char2)=char1 || char2
eg:concat(‘ab’,’cd’)=’ab’ || ‘cd’:abcd
去除子串函数: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;
替换函数:replace(原字符串char,需替换的字符串char1[,用来替换的字符串char2]):char2省略则去除char1;
eg:replace(‘aabbcc’,’bb’,’dd’):aaddcc;replace(‘aabbcc’,’bb’):aacc
系统时间函数:sysdate:获取系统当前时间,格式:DD-MON-RR 10-7月-17
日期操作函数:
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;
日期转换为字符串函数: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
字符转换为日期函数: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
数字转换为字符串函数: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
字符转换为数字函数:to_number(char,fmt)
eg:to_number(‘美元符1,000’,’美元符9999’):1000
cast(number as real):去除小数点后的无效数字0
eg:cast(25.300000 as real):25.3
略空函数:nvl(x1,x2):当x1为空时返回x2,否则返回x1,x1可以数字,字符,日期类型的函数,但x2必须与x1数据类型一致
eg:数字类型:nvl(number,0);字符类型:nvl(to_char(number),0);日期类型:nvl(date,’31-DEC-99’)
NVL2(x1,x2,x3):对nvl函数的扩充,若x1不为空,返回x2,若x1为空则返回x3
DECODE函数:逻辑判断函数
eg:decode(job,’普通员工’,sal*1.15,’部门经理’,sal*1.20,’总经理’,sal*1.25):普通员工薪水*1.15,部门经理薪水*1.20,总经理薪水*1.25
case when函数
约束
适用所有:查看约束: desc user_constraints;禁用/启用约束:disable/enable constraint xxx;
删除约束:drop constraint xxx;
1. 非空约束
添加约束:创建时在字段的数据类型后加not null,或者alter table xxx modify 字段 数据类型 not null;
去除非空约束:alter table xxx modify 字段 数据类型 null
主键约束(非空唯一)
添加约束:alter table xxx add constraint 约束名 primary key (字段..);
删除约束:drop constraint xxx
外键约束
唯一约束
添加约束:create table xxx (字段名,数字…) constraint xxx unique(字段名),或者alter table xxx add constraint xxx unique (字段名);
删除约束:drop constraint xxx
检查约束
添加约束:创建表时在相应字段后添加check(约束条件),或者alter table xxx add constraint xxx check (条件);
删除约束:drop constraint xxx
函数
四舍五入函数: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
取整函数:ceil(n):最大值;floor(n):最小值;
eg:ceil(23.45):24;floor(23.45):23
截断函数:trunc(number,n),截取到小数点后n位
eg:trunc(168.888,1):168.8
取绝对值函数:ABS(n)
取余函数:mod(n,m),对n/m取余,任一为0返回null
求幂函数:power(n,m),求n的m次幂
eg:power(2,3):8;power(0,2):null
平方根函数:sqrt(n),求n的平方根
三角函数:sin(n),asin(n),cos(n),acos(n),tan(n),atan(n)
字符大小写转换函数:upper(char):将字符串char的大写字符转换为小写;lower(char):小写转换为大写;initcap(char):首字母转换函数
eg:upper(‘abDe’):ABDE;lower(‘ADe’):ade;initcap(‘asd’):Asd
获取子字符串函数: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
获取字符串长度函数:length(char)
字符串连接函数:concat(char1,char2)=char1 || char2
eg:concat(‘ab’,’cd’)=’ab’ || ‘cd’:abcd
去除子串函数: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;
替换函数:replace(原字符串char,需替换的字符串char1[,用来替换的字符串char2]):char2省略则去除char1;
eg:replace(‘aabbcc’,’bb’,’dd’):aaddcc;replace(‘aabbcc’,’bb’):aacc
系统时间函数:sysdate:获取系统当前时间,格式:DD-MON-RR 10-7月-17
日期操作函数:
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;
日期转换为字符串函数: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
字符转换为日期函数: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
数字转换为字符串函数: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
字符转换为数字函数:to_number(char,fmt)
eg:to_number(‘美元符1,000’,’美元符9999’):1000
cast(number as real):去除小数点后的无效数字0
eg:cast(25.300000 as real):25.3
略空函数:nvl(x1,x2):当x1为空时返回x2,否则返回x1,x1可以数字,字符,日期类型的函数,但x2必须与x1数据类型一致
eg:数字类型:nvl(number,0);字符类型:nvl(to_char(number),0);日期类型:nvl(date,’31-DEC-99’)
NVL2(x1,x2,x3):对nvl函数的扩充,若x1不为空,返回x2,若x1为空则返回x3
DECODE函数:逻辑判断函数
eg:decode(job,’普通员工’,sal*1.15,’部门经理’,sal*1.20,’总经理’,sal*1.25):普通员工薪水*1.15,部门经理薪水*1.20,总经理薪水*1.25
case when函数
相关文章推荐
- Oracle初识笔记(三)
- Oracle初识笔记(一)
- ORACLE DBA学习笔记--使用LOGON TRIGGER限制用户登陆
- Perl初识笔记
- Oracle笔记之权限管理
- MSSQL和ORACLE 简单对比学习笔记
- oracle 学习笔记
- Oracle 回滚 笔记
- 1.Oracle深度学习笔记——内存架构之概述
- Oracle数据库技术实用详解学习笔记:在RedHat AS 4中安装oracle 10gr2
- Oracle 学习笔记(六)
- Oracle 笔记---SQL、PL/SQL学习笔记
- capwap学习笔记——初识capwap(一)
- Oracle笔记(四)创建视图
- Oracle OCP笔记(33)DBA查看系统常用脚本
- 21天学通oracle(第二版)笔记
- Oracle笔记(五) 单行函数
- Oracle 学习笔记(一)
- Oracle笔记-表的管理
- Oracle EBS WorkFlow 开发笔记总结