Oracle 11g基础学习---(2)SQL语言基础(二)

2014-11-24 09:16:28 · 作者: · 浏览: 11
ONTHS函数:用于返回指定的日期加上指定的月数后的日期值

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用