常用SQL[ORACLE]
1.常用系统函数 ↑
--decode
- decode(column,if_value,value,elseif_value,value,default_value);
- decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
- 好比一张表:
- select decode(score,'A','优秀','B','良好','C','及格','不及格') from t_table
--sum
- 求和函数
--wm_concat
- 该函数可以把列值以","号分隔起来,并显示成一行
2.常用sql语句 ↑
--新建用户
- create user zhaopei identified by zhaopei;
--给用户权限
- grant dba to zhaopei ;
--删除表字段
- alter table Tbl_Survey_Human_New DROP COLUMN 字段名;
- alter table Tbl_Survey_Human_New DROP COLUMN n_oa_report_FLAG;
--新增表字段
- alter table Tbl_Survey_Human_New add(字段名 字段类型);
- alter table Tbl_Survey_Human_New add(n_protocaryon_report_FLAG varchar2(2));
--修改表字段
- alter table Tbl_Survey_Human_New modify(字段名 字段类型);
- alter table Tbl_Survey_Human_New modify(c_caseisreal_type varchar2(30));
--添加字段备注
- comment on column 表名.字段名 is '注释';
- comment on column Tbl_Report_Caseseat.BLOCKED is '派查勘员受阻';
--创建序列
- create sequence mysq
- minvalue 1 --最小值
- maxvalue 99999999999999999 --最大值
- start with 1 --开始值
- increment by 1 --每次增长值
- cache 20; --缓存大小
--Union 并集操作 .
- 对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
--Union All 并集操作
- 对两个结果集进行并集操作,包括重复行,不进行排序;
- --简单Case函数
- CASE sex
- WHEN '' THEN '男'
- WHEN '' THEN '女'
- ELSE '其他' END
- --Case搜索函数
- CASE
- WHEN sex = '' THEN '男'
- WHEN sex = '' THEN '女'
- ELSE '其他' END
--查询相同条件的其中一条数据
- select * from tb k_id in (select min(k_id) from tb group by d_id)
--动态SQL.
- --动态sql execute immediate
- begin
- execute immediate 'select * from scott.emp';
- execute immediate 'create table emp1121(id number,name varchar2(10),salary number )';
- end;
--异常处理1
- declare
- num1 number := 1;
- num2 number := 0;
- my_exce exception; --定义错误类型
- begin
- if num2 = 0 then
- raise my_exce; --自定义错误
- end if;
- num1 := num1 / num2;
- exception
- when my_exce then --自定义错误处理
- dbms_output.put_line(sqlcode || '===' || sqlerrm);
- dbms_output.put_line('自定义 错误');
- when others then
- dbms_output.put_line(sqlcode || '===' || sqlerrm);
- dbms_output.put_line('除零错误');
- end;
--异常处理2
- declare
- num1 number := 1;
- num2 number := 0;
- begin
- if num2 = 0 then
- raise_application_error(-20991, '部门代码为空'); --自定义异常错误消息
- --RAISE_APPLICATION_ERROR(error_number,error_message,[keep_errors] );--keep_errors 为可选
- --error_number 是从 –20,000 到 –20,999 之间的参数
- --error_message 是相应的提示信息(< 2048 字节)
- end if;
- num1 := num1 / num2;
- exception
- when others then
- dbms_output.put_line(sqlcode || '===' || sqlerrm);
- dbms_output.put_line('除零错误');
- end;
3.一些定义和关键字 ↑
--DDL和DML
- DDL:如drop,alter,truncate。
- DML:如insert,update,delete,merge。
--DECLARE
- declare 声明变量
--DEFAULT
- default 默认值
--数组类型.
- DECLARE
- --定义一个最多保存5个VARCHAR(25)数据类型成员的VARRAY数据类型
- TYPE REG_VARRAY_TYPE IS VARRAY(5) OF VARCHAR(25);
- --声明一个该VARRAY数据类型的变量
- V_REG_VARRAY REG_VARRAY_TYPE;
- BEGIN
- --用构造函数语法赋予初值
- v_reg_varray := reg_varray_type
- ('中国', '美国', '英国', '日本', '法国');
- DBMS_OUTPUT.PUT_LINE('地区名称:'||v_reg_varray(1)||'、'
- ||v_reg_varray(2)||'、'
- ||v_reg_varray(3)||'、'
- ||v_reg_varray(4));
- DBMS_OUTPUT.PUT_LINE('赋予初值NULL的第5个成员的值:'||v_reg_varray(5)||' count:'||v_reg_varray.count);--count可查数组的长度
- --用构造函数语法赋予初值后就可以这样对成员赋值
- v_reg_varray(5) := '国';
- DBMS_OUTPUT.PUT_LINE('第5个成员的值:'||v_reg_varray(5));
- END;
--记录类型
- declare
- type test_type is record(
- name varchar2(10) not null := 'zhangsan',
- id varchar2(10));
- test_v test_type;
- begin
- test_v.name := '李四';
- test_v.id := '';
- dbms_output.put_line(test_v.name || ' ' || test_v.id);
- end;
4.需要注意的 ↑
存储过程中is和as的区别
- 在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别,在视图(VIEW)中只能用AS不能用IS,在游标(CURSOR)中只能用IS不能用AS。
赋值
- str1 := 'str'; --数据库中的赋值 是 :=
比较
- str1=str2 --数据库中的比较符 是单等号
LENGTH,LENGTHB,LENGTHC,LENGTH2,LENGTH4的区别
- LENGTH(string1) 返回以字符为单位的长度.
- LENGTHB(string1) 返回以字节为单位的长度.
- LENGTHC(string1) 返回以Unicode完全字符为单位的长度.
- LENGTH2(string1) 返回以UCS2代码点为单位的长度.
- LENGTH4(string1) 返回以UCS4代码点为单位的长度.
oracle中 substrb() substrc() substr2() substr4()的区别
- substr 按字符截取,单位字符
- substrb 按字节,单位字节
- substrc unicode字符为单位
- substr2 ucs2代码点为单位
- substr4 ucs4代码点为单位
- substr是按字符来计算,一个字母或汉字都按一个字符计算如:
- substr('智能ABC',2,2)='能A'
- 如果想要按字节来计算则可以采用substrb函数,用法一样
- substrb('智能ABC',3,4)='能AB'
- 当然还有另外几个按不同编码计算的函数
- substrc:按Unicode编码,
- substr2:按UCS2编码,
- substr4:按UCS4编码。
常用SQL[ORACLE]的更多相关文章
- oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...
- Oracle常用SQL查询(2)
三.查看数据库的SQL 1 .查看表空间的名称及大小 select t.tablespace_name, round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...
- Oracle常用SQL查询
一.ORACLE的启动和关闭 1.在单机环境下要想启动或关闭oracle系统必须首先切换到oracle用户,如下: su - oracle a.启动Oracle系统 oracle>svrmgrl ...
- oracle sqlplus及常用sql语句
常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...
- ORACLE 常用SQL查询
一.ORACLE的启动和关闭 1 .在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle > sv ...
- [sql server、oracle] 分组取最大值最小值常用sql
sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb( ...
- oracle常用SQL语句(汇总版)
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...
- Oracle EBS DBA常用SQL - 安装/补丁【Z】
Oracle EBS DBA常用SQL - 安装/补丁 检查应用补丁有没有安装:select bug_number,last_update_date from ad_bugs where bug_nu ...
- oracle 常用sql语句
oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...
随机推荐
- HTTP协议请求响应过程和HTTPS工作原理
HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议.与之类似的还有文件传送协议(file transfer p ...
- ASN.1 key structures in DER and PEM
转自:https://tls.mbed.org/kb/cryptography/asn1-key-structures-in-der-and-pem Introduction Everybody lo ...
- [Spring] Spring配置文件中特殊字符的规定
今天查找一个错误,发现在xml里面不能包含特殊字符:&,特来总结一下: XML中共有5个特殊的字符,分别是:&<>“’.如果配置文件中的注入值包括这些特殊字符,就需要进行特 ...
- Code First数据库迁移
生成数据库 修改类文件PortalContext.cs的静态构造函数,取消当数据库模型发生改变时删除当前数据库重建新数据库的设置. PortalContext() { Database.SetInit ...
- Eclipse '/RemoteSystemsTempFiles'错误
错误代码 Could not write metadata for '/RemoteSystemsTempFiles'.D:\workspace4.5\.metadata\.plugins\org.e ...
- 希尔伯特矩阵(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,- ...
- Coming
Hi,there, I am coming here to keep a great habit-one day a blog to share what new I have learned tod ...
- Oracle 查询出来的数据取第一条
Oracle 查询出来的数据取第一条 --------------------------------------------------------------------------- 转载自:h ...
- js 逻辑或
逻辑或操作符由两个竖线来表示||,属于短路操作符,也就是说,如果第一个操作数的求职结果为true,就不会对第二个操作数进行求值 var found = true; var result = found ...
- eclipse常见问题
使用eclipse进入断点,当弹出"Confir Perspective Switch"视图时,选择"Yes".之后每次进入断点都会自动切换到debug视图. ...