Oracle笔记2

Oracle 中主要的数据类型
Varchar2 变长字符串     4000个汉字   varchar2(1~4000)
Number    数字                     Number = Number(10) =Number(10,0)
                                    Number(总长度,小数点后有几位)
DATE       日期                     DATE     进行操作的时候必须使用函数 TO_DATE(’2009-11-11′,’yyyy-mm-dd’)
CLOB       大的字符数据对象 2G     CLOB    Stream
BLOB       大的二进制数据对象 2G    BLOB    Stream

1 数据类型[oracle 内置的数据类型 - 因为oracle允许自定义数据类型]
* VARCHAR2()                   变长字符串,长度<4000
NVARCHAR2()   —本地字符集   变长字符串,长度<4000
*    NUMBER()    数字类型   Number = Number(10) =Number(10,0)   
     FLOAT(p)   浮点类型    FLOAT(p)=number(22,p)
*     Date       日期    【精确到日】
*     TIMESTAMP 时间戳 【精确到毫秒】
      CHAR(n)    字符   用来定义一些标记,一般用单字符[char(1)]
*     CLOB       大字符对象, 存储类似于新闻正文、文件内容….等数据
*     BLOB       大二进制对象,picture[NCIIS中数码照片]

原则 1: 建表
     1 能不用Lob类型尽量不用     
     2 字段定义的总长度越短越好
     3 尽量使用简单数据类型
     4 尽量使用代码表
     5 主键必须有,尽量不使用联合主键,
     6 主键必须没有实际意义,尽量使用Number
——————————————————————–
原则 2 :索引
     1 索引尽量使用查询条件
     2 索引尽量使用简单数据类型
     3 索引应该小于4个

2 常用函数
A 系列
ABS 绝对值   ABS(Number)

ASCIISTR   得到ASCII字符串
ASCII      得到ASCII字符代码

—————
日期系列
ADD_MONTHS 添加x月到某一个日期 ADD_MONTHS(DATE,Number)
CURRENT_DATE      当前时间         select current_date from dual;
CURRENT_TIMESTAMP 当前时间戳       select CURRENT_TIMESTAMP from dual;
SYSDATE           当前系统时间      select SYSDATE           from dual;
SYSTIMESTAMP      当前系统时间戳        select      SYSTIMESTAMP        from dual;
TO_CHAR           格式化时间成为字符串    TO_CHAR
TO_TIMESTAMP      格式化成为时间戳        TO_TIMESTAME     
TO_DATE           格式化成为日期          TO_DATE          

select to_char(sysdate,’yyyy-mm-dd’) from dual;
select to_date(’1900-1-1′,’yyyy-mm-dd’) from dual;
select TO_TIMESTAMP(’1900-1-1 11:37:58′,’yyyy-mm-dd HH:MI:SS’) from dual;
年 yyyy
月 mm
日 dd
时 HH   HH24   HH12
分 MI
秒 SS

————————–
字符系列
CHR()      把 ASCII 码 变成字符   —     ASCII()    
CONCAT     连接字符串              【相当于 || 】
INITCAP    首字母大写        忽略中文
LOWER      全部小写          忽略中文
UPPER      全部大写          忽略中文

SUBSTR     截取字符串      substr(‘src’,start,length) ==> [start,start+length)
                           substr(‘src’,start)=substr(‘src’,start,length(‘src’))
length     得到一个字符串的长度【字符长度】        select length(‘s忽略中文c’) from dual

REPLACE  
       select replace(‘abbbabbbaxxxx’,'ba’,'-:-’) from dual;
       select replace(‘_a_a_a_’,'_a_’,'T’) from dual;
LTRIM 去掉前空格
RTRIM 去掉后空格
TRIM 去掉前后空格
LPAD 在前面补齐   lpad(‘p01 x’,15,’ABCDEF’)
RPAD 在后面补齐   rpad(‘p01 x’,15,’ABCDEF’)
当 补齐长度小于原始字符串长度的时候,相当于 substr(‘src’,1,length);

Exp   导出数据

exp username/password@sid file=exp.dmp OWNER=abc
     导出数据到文件 exp.dmp ,数据是abc所拥有的所有的内容

IMP   导入数据
imp username/password@sid file=exp.dmp fromuser=abc touser=abc
     导入数据文件 exp.dmp数据中abc所拥有的所有的内容到数据库abc的用户的schema中

select INITCAP(‘china bus 好人yi’) from dual;
select LOWER(‘China Bus 好人yi’) from dual;
select UPPER(‘China Bus 好人yi’) from dual;

————————————————————————
1 jdbc连接oracle
2 sql – select -聚合函数

dual    只有一条记录

insert into abc_1 values(1,to_date(’1990-1-1′,’yyyy-mm-dd’))
insert into abc_1 values(1,sysdate)

此条目发表在 Oracle 分类目录,贴了 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>