Oracle笔记2

2009-07-16 21:25

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值