+目录
数据类型
教程标题 | 主要内容 |
---|---|
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 | 除数为零 |