1.常用系统函数

2.常用sql语句

3.一些定义和关键字

4.需要注意点

 

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 WHEN 表达式

--简单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]的更多相关文章

  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. centos+scala2.11.4+hadoop2.3+spark1.3.1环境搭建

    一.Java安装 1.安装包准备: 首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads- ...

  2. JsonHelper developed by using Newtonsoft.Json.NET, Deserialize to <T> object , XmlToJson/JsonToXml, QuoteName by using JToken Path.

    namespace TestConsoleApplication { using System; using System.Diagnostics; using System.Threading; u ...

  3. PL/SQL客户端中执行insert语句,插入中文乱码

    问题描述:在PL/SQL客户端中执行insert语句,插入中文乱码 解决方案: 1.执行脚本 select userenv('language') from dual;    结果为AMERICAN_ ...

  4. 虚拟机主机能互相ping通,但是无法远程连接

    首先将虚拟机关机,找到Edit virtual machine Settings(编辑虚拟机设置)

  5. 【Gson】互相转化

    Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. 对象转为字符串 Strin ...

  6. 自定义RatingBar的一个问题(只显示显示一个星星)

    问题一: 在自定义RatingBar时在设置了numStars属性后只显示一张图(一个星星) 解答: 注意准备的替换图片千万不要使用.9PNG格式的图片,要不之后显示一张图(一个星星)! 问题二: 设 ...

  7. Java内存模型及性能优化

    最近在做一个项目的性能优化,遇到好多以前没有关注过的性能问题,一头雾水,今天做个笔记,简单记录下JVM相关的参数设置. 一.JVM内存模型 首先介绍下Java程序具体执行的过程: Java源代码文件( ...

  8. 1208PHP语句

    var_dump(empty($a)); 判断变量是否为空var_dump(isset($a)); 判断变量是否定义 unset(变量); 删除变量 &代表变量的地址:$a = ;$b = & ...

  9. mybatis Caused by: org.apache.ibatis.reflection.ReflectionException: Error instantiating class .. with invalid types () or values (). Cause: java.lang.NoSuchMethodException: ...<init>()

    如果有带参数的构造器,编译器不会自动生成无参构造器.当查询需要返回对象时,ORM框架用反射来调用对象的无参构造函数,所以会导致此类异常 public Test(){ }

  10. 自动滑动的banner图

    实例: HTML页面: <div style="position: absolute; left: 0; top: 0; width: 100%; height: 100%; min- ...