Oracle速查语法:数据类型,函数,异常类型,常用命令

+目录

  • 数据类型
  • 函数
  • 异常类型
  • 常用命令

.

数据类型

教程标题 主要内容
VARCHAR2(size) 可变长度的字符串,其最大长度为size个字节;size的最大值是4000,而最小值是1;你必须指定一个VARCHAR2的size;
NVARCHAR2(size) 可变长度的字符串,依据所选的国家字符集,其最大长度为size个字符或字节;size的最大值取决于储存每个字符所需的字节数,其上限为4000;你必须指定一个NVARCHAR2的size;
NUMBER(p,s) 精度为p并且数值范围为s的数值;精度p的范围从1到38;数值范围s的范围是从-84到127;
NUMBER(5,2) 表示整数部分最大3位,小数部分为2位;
NUMBER(5,-2) 表示数的整数部分最大为7其中对整数的倒数2位为0,前面的取整。
NUMBER 表示使用默认值,即等同于NUMBER(5);
LONG 可变长度的字符数据,其长度可达2G个字节;
DATE 有效日期范围从公元前4712年1月1日到公元后4712年12月31日
RAW(size) 长度为size字节的原始二进制数据,size的最大值为2000字节;你必须为RAW指定一个size;
LONG RAW 可变长度的原始二进制数据,其最长可达2G字节;
CHAR(size) 固定长度的字符数据,其长度为size个字节;size的最大值是2000字节,而最小值和默认值是1;
NCHAR(size) 也是固定长度。根据Unicode标准定义
CLOB 一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节
NCLOB 一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节;储存国家字符集
BLOB 一个二进制大型对象;最大4G字节
BFILE 包含一个大型二进制文件的定位器,其储存在数据库的外面;使得可以以字符流I/O访问存在数据库服务器上的外部LOB;最大大小为4G字节.

.

字符函数

名称 描述
CONCAT(字符串1,字符串2) 将字符串1和字符串2连接成一个新的字符串 示例: select CONCAT(job,ename) from emp
LPAD(字段,总的大小,添充字符) 左填充即向右对齐 示例: select empno,lpad(sal,10,’*’) from emp
RPAD(字段,总的大小,添充字符) 右填充即向左对齐 示例: select empno,rpad(sal,10) from emp
LOWER(字符串) 将字符串全部变成小写;
UPPER(字符串) 将字符串全部变成大写;
INITCAP(字符串) 将字符串变成第一个字母大写,其余都变成小写;
LENGTH(字符串) 求出字符串的长度;
SUBSTR(字符串,开始位置,长度) 从字符串中取子串; 示例: select substr(ename,2,3) from emp;–从ename的第2位开始取3位
INSTR(字符串,字符) 查看字符是否在字符串中存在;不存在返回0;存在则返回字符所在的的位置;如果有两个以上的字符则返回第一个的位置. 示例:select instr(ename,’S’) from emp;
TRIM(字符 FROM 字符串) 去掉字符串首尾的字符; 示例: select trim(‘S’ from ename) from emp;
TO_CHAR() 将不是其他类型转成字符类型;对于日期型可以控制其格式:TO_CHAR(日期,’格式’);其中格式有: ‘YYYY’ –以4为显示年; ‘YEAR’ –以标准格式显示年; ‘MM’ ; ‘MON’ ; ‘DD’ ; ‘DAY’; ‘HH’ ; ‘MI’ ;’SS’
REPLACE(字符串,字符串1,字符串2) 将字符串中的字符1替换成字符2; 示例: select replace(ename,’SC’,’SS’) from emp;
TRANSLATE(字符串,字符串1,字符串2) 替换多的字符; 示例: select translate(ename,’SH’,’AB’) from emp; –表示将ename中的’S’换成’A’,’H’换成’B’;
ASCII(char) 求字符的ascii码
NLSSORT(字符串) 对字符串排序.

数学函数

名称 描述
ABS(数字) 一个数的绝对值
CEIL(数字) 向上取整;不论小数后的书为多少都要向前进位; CEIL(123.01)=124; CEIL(-123.99)=-123;
FLOOR(数字) 向下取整;不论小数后的书为多少都删除; floor(123.99)=123; floor(-123.01)=-124;
MOD(被除数,除数) 取余数; MOD(20,3)=2
ROUND(数字,从第几为开始取) 四舍五入; ROUND(123.5,0)=124;ROUND(-123.5,0)=-124; ROUND(123.5,-2)=100; ROUND(-123.5,-2)=-100;
SIGN(数字) 判断是正数还是负数;正数返回1,负数返回-1,0返回0;
SQRT(数字) 对数字开方;
POWER(m,n) 求m的n次方;
TRUNC(数字,从第几位开始) 切数字;TRUNC(123.99,1)=123.9TRUNC(-123.99,1)=-123.9 TRUNC(123.99,-1)=120 TRUNC(-123.99,-1)=-120 TRUNC(123.99)=123
GREATEST(数字列表) 找出数字列表中最大的数; 示例: select greatest(100,200,-100) from dual; –结果为200
LEAST(数字列表) 找出数字列表中最小的数;
SIN(n) 求n的正旋
COS(n) 求n的余旋
TAN(n) 求n的正切
ACos(n) 求n的反正切
ATAN(n) 求n的反正切
exp(n) 求n的指数
LN(n) 求n的自然对数,n必须大于0
LOG(m,n) 求n以m为底的对数,m和n为正数,且m不能为0

日期函数

名称 描述
ADD_MONTHS(日期,数字) 在以有的日期上加一定的月份; 示例: select add_months(hiredate,20),hiredate from emp;
LAST_DAY(日期) 求出该日期的最后一天.
MONTHS_BETWEEN(日期1,日期2) 求出两个月之间的天树(注意返回的天数为小数); 示例: select months_between(sysdate,hiredate) from emp;
NEW_TIME(时间,时区,’gmt’) 按照时区设定时间.
NEXT_DAY(d,char) 返回d指定的日期之后并满足char指定条件的第一个日期

其他函数

名称 描述
VSIZE(类型) 求出数据类型的大小;
NVL(字符串,替换字符) 如果字符串为空则替换,否则不替换

.

命令

命令 描述
DESC 表名 查看表的信息.
SET SERVEROUT [ON OFF]
SET PAGESIZE <大小> 设置浏览中没页的大小
SET LINESIZE <大小> 设置浏览中每行的长度
SET AUTOPRINT [ON OFF]
SELECT SYSDATE FROM DUAL 查看当前系统时间
ALTER SESSION SET nls_date_format=’格式’ 设置当前会话的日期格式 示例:ALTER SESSION SET nls_date_format=’dd-mon-yy hh24:mi:ss’
SELECT * FROM TAB 查看当前用户下的所有表
SHOW USER 显示当前用户
HELP TOPIC 显示有那些命令
SAVE 将buf中的内容保存成一个文件
RUN 执行已经保存的文件;也可以写成@
GET 显示文件中的内容
LIST 显示buf中的内容
ED 用记事本打开buf,可以进行修改
DEL 行数 删除buf中的单行
DEL 开始行 结束行 删除buf中的多行
INPUT 字符串 向buf中插入一行
APPEND 字符串 将字符串追加到当前行
C/以前的字符串/替换的字符串 修改buf中当前行的内容
CONNECT 连接
DISCONNECT 断开连接
QUIT 退出sql*plus
EXP 导出数据库(可以在DOS键入exp help=y 可以看到详细说明) 示例: exp scott/tiger full=y file=e:\a.dmp; –导出scott下的所有东西 exp scott/tiger tables=(emp,dept) file=e:\emp.dmp –导出scott下的 emp,dept表
IMP 导入数据库(可以在DOS键入imp help=y 可以看到详细说明)
imp scott/tiger tables=(emp,dept) file=e:\emp.dmp

.

异常类型

异常 描述
CURSOR_ALREADY_OPEN 试图”OPEN”一个已经打开的游标
DUP_VAL_ON_INDEX 试图向有”UNIQUE”中插入重复的值
INVALID_CURSOR 试图对以关闭的游标进行操作
INVALID_NUMBER 在SQL语句中将字符转换成数字失败
LOGIN_DENIED 使用无效用户登陆
NO_DATA_FOUND 没有找到数据时
NOT_LOGIN_ON 没有登陆Oracle就发出命令时
PROGRAM_ERROR PL/SQL存在诸如某个函数没有”RETURN”语句等内部问题
STORAGE_ERROR PL/SQL耗尽内存或内存严重不足
TIMEOUT_ON_RESOURCE Oracle等待资源期间发生超时
TOO_MANY_ROWS “SELECT INTO” 返回多行时
VALUE_ERROR 当出现赋值错误
ZERO_DIVIDE 除数为零

你可能感兴趣的:(数据库基础)