MONTHS_BETWEEN函数:用于返回两个日期之间的月份数
LAST_DAY函数:用于返回指定日期对应月份的最后一天
NEXT_DAY函数:用于返回指定下一个星期几的日期
EXTRACT函数:用于提取日期中的特定部分
字符函数
函数名 功能 示例 输出结果
LOWER(c) 小写转换 select lower('SccE')
from dual; scce
UPPER(c) 大写转换 select upper('scce')
from dual; SCCE
LTRIM(c1 [,c2]) 去掉c1左边所包含的c2中的任何字符。当遇到不是c2中的字符时结束,并返回剩余字符串。若c2省略,则默认为空格 select ltrim('adminscce','ad') from dual; minscce
RTRIM(c1 [,c2]) 去掉c1右边所包含的c2中的任何字符。当遇到不是c2中的字符时结束,并返回剩余字符串。若c2省略,则默认为空格 select rtrim('adminscce','scce') from dual; admin
函数名 功能 示例 输出结果
REPLACE(c1,c2 [,c3]) 将c1中出现的c2都替换成c3,并返回剩余的字符串。c3默认为null。如果c3为null,则所有出现c2的地方的字符都被删除;如果c2为null,则返回c1;如果c1为null,则返回null select replace('a*b*','*') from dual; ab
INSTR(c1,c2) 在c1中搜索c2首次出现的位置,如果找不到则返回零select instr('abcdbc','bc') from dual; 2
SUBSTR(c,m [,n]) 返回c的子串,其中m是子串的开始位置,n是子串的长度。如果省略n,则表示截取从m位置开始的所有子串select Aubstr('scce',2,2) from dual; cc
CONCAT(c1,c2) 连接字符串select concat('scc','e') from dual; scce
LENGTH(c) 返回字符串长度select length('scce') from dual; 4
数学函数
函数名 功能 示例 结果
ABS 取绝对值 select abs(-1) from dual; 1
CEIL 向上取整 select ceil(1.33) from dual; 2
FLOOR 向下取整 select floor(1.33) from dual; 1
POWER 求幂 select power(2,3) from dual; 8
MOD 取余 select mod(10,3) from dual; 1
ROUND 四舍五入 select round(12.126,2) from dual; 12.13
TRUNC 截断 select trunc(12.126,2) from dual; 12,12
转换函数
TO_CHAR:用于将日期或数字以指定的格式转换为VARCHAR2数据类型的值
语法
TO_CHAR(d|n [,fmt])
d表示日期,n表示数字,fmt是指定日期或数字的格式
转换函数
TO_NUMBER:将包含数字的字符串转换为NUMBER数据类型,从而可以对该数据类型执行算术运算。
语法
TO_NUMBER(char)
通常不需要进行转换,因为Oracle可以对数字字符串进行隐式转换
其他函数
NVL:用于将空值替换为指定值
语法
NVL(expr1,expr2)
如果expr1不是NULL,则返回expr1;否则返回expr2
向HR方案中的employees表中添加一个关于奖金的字段bonus,该字段充许为空。现要求计算雇员的实发工资,实发工资=基本工资+奖金
其他函数
NVL2:与NVL类似,只是参数有所不同
语法
NVL2(expr1,expr2,expr3)
如果expr1不是NULL,则返回expr2的值;否则返回expr3的值
其他函数
DECODE:DECODE函数相当于一条件语句(IF),它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值
语法
DECODE(input_value,value,result[,value,result…][,default_result]);
input_value表示试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,决定最后的返回结果
value表示一组成序偶的数值。如果输入数值与之匹配成功,相应的结果将被返回
result表示一组成序偶的结果值
default_result表示未能与任何一序偶匹配成功时函数返回的默认值
为employees表中的雇员按表需求增加工资,并确认更新结果.
总结
VARCHAR2类型为Oracle常用的可变长度字符类型
CLOB数据类型用于存储可变长度的字符数据,BLOB数据类型用于存储较大的二进制对象
Oracle中的子查询可以分为单行子查询、多行子查询、多列子查询、相关子查询等
GRANT命令用于授予对象权限,REVOKE命令用于撤销权限
COMMIT命令用于提交事务,ROLLBACK命令用于回滚事务
TO_CHAR函数用于将日期或数字以指定的格式转换为VARCHAR2数据类型的值
DECODE函数相当于条件语句(IF),它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值
表空间是数据库中最大的逻辑单位,一个Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。
每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
表空间的大小等于构成该表空间的所有数据文件大小之和。
创建表空间的语法是:
CREATE TABLESPACE tablespacename
DATAFILE ‘filename’ [SIZE integer [K|M]]
[AUTOEXTEND [OFF|ON]];
要连接到Oracle数据库,就需要创建一个用户帐户
每个用户都有一个默认表空间和一个临时表空间
CREATE USER命令用于创建新用户
CREATE USER 命令的语法是:
CREATE USER MARTIN
IDENTIFIED BY martinpwd
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
创建一个名称为martin 的用户,其密码为
martinpwd
GRANT 命令可用于为用户分配权限或角色
GRANT CONNECT TO MARTIN; CONNECT角色允许用户连接至数据库,并创建数据库对象
GRANT RESOURCE TO MARTIN; RESOURCE角色允许用户使用数据库中的存储空间
如果上机的时候,发现Scott用户的密码被其他同学给修改了,应该如何处理?
解决方案
1)使用匿名登陆Oracle服务器
sqlplus / nolog
conn / as sysdba
2)修改scott用