1.常用系统函数

2.常用sql语句

3.一些定义和关键字

4.需要注意点

 

1.常用系统函数 

--decode

  1. decode(column,if_value,value,elseif_value,value,default_value);
  2.  
  3. decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
  4.  
  5. 好比一张表:
  6.  
  7. select decode(score,'A','优秀','B','良好','C','及格','不及格') from t_table

--sum

  1. 求和函数

--wm_concat

  1. 该函数可以把列值以","号分隔起来,并显示成一行

2.常用sql语句 

--新建用户

  1. create user zhaopei identified by zhaopei;

--给用户权限

  1. grant dba to zhaopei ;

--删除表字段

  1. alter table Tbl_Survey_Human_New DROP COLUMN 字段名;
  2. alter table Tbl_Survey_Human_New DROP COLUMN n_oa_report_FLAG;

--新增表字段

  1. alter table Tbl_Survey_Human_New add(字段名 字段类型);
  2. alter table Tbl_Survey_Human_New add(n_protocaryon_report_FLAG varchar2(2));

--修改表字段

  1. alter table Tbl_Survey_Human_New modify(字段名 字段类型);
  2. alter table Tbl_Survey_Human_New modify(c_caseisreal_type varchar2(30));

--添加字段备注

  1. comment on column 表名.字段名 is '注释';
  2. comment on column Tbl_Report_Caseseat.BLOCKED is '派查勘员受阻';

--创建序列

  1. create sequence mysq
  2. minvalue 1 --最小值
  3. maxvalue 99999999999999999 --最大值
  4. start with 1 --开始值
  5. increment by 1 --每次增长值
  6. cache 20; --缓存大小

--Union 并集操作 .

  1. 对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

--Union All 并集操作

  1. 对两个结果集进行并集操作,包括重复行,不进行排序;

-- CASE WHEN 表达式

  1. --简单Case函数
  2.  
  3. CASE sex
  4. WHEN '' THEN '男'
  5. WHEN '' THEN '女'
  6. ELSE '其他' END
  7.  
  8. --Case搜索函数
  9.  
  10. CASE
  11. WHEN sex = '' THEN '男'
  12. WHEN sex = '' THEN '女'
  13. ELSE '其他' END

--查询相同条件的其中一条数据

  1. select * from tb k_id in (select min(k_id) from tb group by d_id)

--动态SQL.

  1. --动态sql execute immediate
  2. begin
  3. execute immediate 'select * from scott.emp';
  4. execute immediate 'create table emp1121(id number,name varchar2(10),salary number )';
  5. end;

--异常处理1

  1. declare
  2. num1 number := 1;
  3. num2 number := 0;
  4. my_exce exception; --定义错误类型
  5. begin
  6. if num2 = 0 then
  7. raise my_exce; --自定义错误
  8. end if;
  9. num1 := num1 / num2;
  10. exception
  11. when my_exce then --自定义错误处理
  12. dbms_output.put_line(sqlcode || '===' || sqlerrm);
  13. dbms_output.put_line('自定义 错误');
  14. when others then
  15. dbms_output.put_line(sqlcode || '===' || sqlerrm);
  16. dbms_output.put_line('除零错误');
  17. end;

--异常处理2

  1. declare
  2. num1 number := 1;
  3. num2 number := 0;
  4. begin
  5. if num2 = 0 then
  6. raise_application_error(-20991, '部门代码为空'); --自定义异常错误消息
  7. --RAISE_APPLICATION_ERROR(error_number,error_message,[keep_errors] );--keep_errors 为可选
  8. --error_number 是从 20,000 20,999 之间的参数
  9. --error_message 是相应的提示信息(< 2048 字节)
  10. end if;
  11. num1 := num1 / num2;
  12. exception
  13. when others then
  14. dbms_output.put_line(sqlcode || '===' || sqlerrm);
  15. dbms_output.put_line('除零错误');
  16. end;

3.一些定义和关键字 

--DDL和DML

  1. DDL:如dropaltertruncate
  2. DML:如insertupdatedeletemerge

--DECLARE

  1. declare 声明变量

 --DEFAULT

  1. default 默认值

--数组类型.

  1. DECLARE
  2. --定义一个最多保存5VARCHAR(25)数据类型成员的VARRAY数据类型
  3. TYPE REG_VARRAY_TYPE IS VARRAY(5) OF VARCHAR(25);
  4. --声明一个该VARRAY数据类型的变量
  5. V_REG_VARRAY REG_VARRAY_TYPE;
  6.  
  7. BEGIN
  8. --用构造函数语法赋予初值
  9. v_reg_varray := reg_varray_type
  10. ('中国', '美国', '英国', '日本', '法国');
  11.  
  12. DBMS_OUTPUT.PUT_LINE('地区名称:'||v_reg_varray(1)||'、'
  13. ||v_reg_varray(2)||'、'
  14. ||v_reg_varray(3)||'、'
  15. ||v_reg_varray(4));
  16. DBMS_OUTPUT.PUT_LINE('赋予初值NULL的第5个成员的值:'||v_reg_varray(5)||' count:'||v_reg_varray.count);--count可查数组的长度
  17. --用构造函数语法赋予初值后就可以这样对成员赋值
  18. v_reg_varray(5) := '国';
  19. DBMS_OUTPUT.PUT_LINE('第5个成员的值:'||v_reg_varray(5));
  20. END;

--记录类型

  1. declare
  2. type test_type is record(
  3. name varchar2(10) not null := 'zhangsan',
  4. id varchar2(10));
  5. test_v test_type;
  6. begin
  7. test_v.name := '李四';
  8. test_v.id := '';
  9. dbms_output.put_line(test_v.name || ' ' || test_v.id);
  10. end;

4.需要注意的 

存储过程中is和as的区别

  1. 在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别,在视图(VIEW)中只能用AS不能用IS,在游标(CURSOR)中只能用IS不能用AS

赋值

  1. str1 := 'str'; --数据库中的赋值 :=

比较

  1. str1=str2 --数据库中的比较符 是单等号

 LENGTH,LENGTHB,LENGTHC,LENGTH2,LENGTH4的区别

  1. LENGTH(string1) 返回以字符为单位的长度.
  2. LENGTHB(string1) 返回以字节为单位的长度.
  3. LENGTHC(string1) 返回以Unicode完全字符为单位的长度.
  4. LENGTH2(string1) 返回以UCS2代码点为单位的长度.
  5. LENGTH4(string1) 返回以UCS4代码点为单位的长度.

oracle中 substrb() substrc() substr2() substr4()的区别

  1. substr 按字符截取,单位字符
  2. substrb 按字节,单位字节
  3. substrc unicode字符为单位
  4. substr2 ucs2代码点为单位
  5. substr4 ucs4代码点为单位
  6.  
  7. substr是按字符来计算,一个字母或汉字都按一个字符计算如:
  8. substr('智能ABC',2,2)='能A'
  9. 如果想要按字节来计算则可以采用substrb函数,用法一样
  10. substrb('智能ABC',3,4)='能AB'
  11.  
  12. 当然还有另外几个按不同编码计算的函数
  13. substrc:按Unicode编码,
  14. substr2:按UCS2编码,
  15. substr4:按UCS4编码。

常用SQL[ORACLE]的更多相关文章

  1. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  2. Oracle常用SQL查询(2)

    三.查看数据库的SQL 1 .查看表空间的名称及大小 select  t.tablespace_name,  round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...

  3. Oracle常用SQL查询

    一.ORACLE的启动和关闭 1.在单机环境下要想启动或关闭oracle系统必须首先切换到oracle用户,如下: su - oracle a.启动Oracle系统 oracle>svrmgrl ...

  4. oracle sqlplus及常用sql语句

    常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...

  5. ORACLE 常用SQL查询

    一.ORACLE的启动和关闭 1 .在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su  -  oracle a.启动ORACLE系统 oracle > sv ...

  6. [sql server、oracle] 分组取最大值最小值常用sql

    sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb(  ...

  7. oracle常用SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  8. Oracle EBS DBA常用SQL - 安装/补丁【Z】

    Oracle EBS DBA常用SQL - 安装/补丁 检查应用补丁有没有安装:select bug_number,last_update_date from ad_bugs where bug_nu ...

  9. oracle 常用sql语句

    oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...

随机推荐

  1. HTTP协议请求响应过程和HTTPS工作原理

    HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议.与之类似的还有文件传送协议(file transfer p ...

  2. ASN.1 key structures in DER and PEM

    转自:https://tls.mbed.org/kb/cryptography/asn1-key-structures-in-der-and-pem Introduction Everybody lo ...

  3. [Spring] Spring配置文件中特殊字符的规定

    今天查找一个错误,发现在xml里面不能包含特殊字符:&,特来总结一下: XML中共有5个特殊的字符,分别是:&<>“’.如果配置文件中的注入值包括这些特殊字符,就需要进行特 ...

  4. Code First数据库迁移

    生成数据库 修改类文件PortalContext.cs的静态构造函数,取消当数据库模型发生改变时删除当前数据库重建新数据库的设置. PortalContext() { Database.SetInit ...

  5. Eclipse '/RemoteSystemsTempFiles'错误

    错误代码 Could not write metadata for '/RemoteSystemsTempFiles'.D:\workspace4.5\.metadata\.plugins\org.e ...

  6. 希尔伯特矩阵(Hilbert matrix)

    例: [ 1 1/2 1/3  1/2 1/3 1/4  1/3 1/4 1/5 ]   矩阵的一种,其元素A(i,j)=1/(i+j-1),i,j分别为其行标和列标. 即: [1,1/2,1/3,- ...

  7. Coming

    Hi,there, I am coming here to keep a great habit-one day a blog to share what new I have learned tod ...

  8. Oracle 查询出来的数据取第一条

    Oracle 查询出来的数据取第一条 --------------------------------------------------------------------------- 转载自:h ...

  9. js 逻辑或

    逻辑或操作符由两个竖线来表示||,属于短路操作符,也就是说,如果第一个操作数的求职结果为true,就不会对第二个操作数进行求值 var found = true; var result = found ...

  10. eclipse常见问题

    使用eclipse进入断点,当弹出"Confir Perspective Switch"视图时,选择"Yes".之后每次进入断点都会自动切换到debug视图. ...