首页 > 数据库技术 > 详细

oracle学习笔记系列------oracle 基本操作之基本函数的用法

时间:2016-03-22 00:43:36      阅读:234      评论:0      收藏:0      [点我收藏+]

 

--创建一个accout账户表 
CREATE TABLE account(
  id NUMBER(9) NOT NULL,
  recommender_id NUMBER(9),
  login_name VARCHAR2(30) NOT NULL,
  login_passwd VARCHAR2(8) NOT NULL,
  status CHAR(1) NOT NULL,
  create_date DATE DEFAULT SYSDATE,  
  pause_date DATE,
  close_date DATE,
  real_name VARCHAR2(20) NOT NULL,
  idcard_no CHAR(18) NOT NULL,
  birthdate DATE,
  gender CHAR(1) NOT NULL,
  occupation VARCHAR2(50),
  telephone VARCHAR2(15) NOT NULL,
  email VARCHAR2(50),
  mailaddress VARCHAR2(50),
  zipcode CHAR(6),
  qq VARCHAR2(15),
  last_login_time DATE,
  last_login_ip VARCHAR2(15)
);

 

--表重命名
RENAME account TO t_account;

 

--增加一列
desc t_account;
ALTER TABLE t_account ADD(bak VARCHAR2(50)); 
desc t_account;

 

--修改默认值
ALTER TABLE t_account MODIFY(bak VARCHAR2(40) DEFAULT login);
desc t_account;

 

--删除
ALTER TABLE t_account DROP(bak);
desc t_account;

 

--插入数据
INSERT INTO t_account(id,login_name,login_passwd,status,create_date,real_name,gender,idcard_no,telephone)
               VALUES(1,souvc,123456,1,TO_DATE(2016-01-28,yyyy-mm-dd),daliu,F,410381194302256523,13669251234);

SELECT * FROM t_account ;

 

 

--更新表数据
UPDATE t_account
SET login_passwd=654321
WHERE id=1;

SELECT * FROM t_account ;

 

 

--删除表数据
DELETE FROM t_account
WHERE id=1;
SELECT * FROM t_account ;

 

 

--"||"在数据库中是连接字符串,相当于java中的"+"
--注意和java中的"||"区分。
--例如:
--java中  "hello"+"world" ==> "helloworld"
--DB中   ‘hello’||‘world‘ ==> ‘helloworld‘
--oracle中 CONCAT(‘hello‘,‘world‘) ==>‘helloworld‘   
--‘think‘||‘in‘||‘java‘

CONCAT(CONCAT(think,in),java);

 

--快速入门SELECT
SELECT * FROM t_account;
SELECT * FROM emp_souvc;

--指定查询表中的某几列
SELECT id,status FROM t_account;


--只查询特定的列的值
SELECT id,job FROM emp_souvc;

--虚表
--DUAL:虚表,没有这么一个表,只为了满足

--SELECT的语法要求。
--我们常用虚表来测试表达式的结果。
--在数据库中,我们想测试某个表达式的结果只能
--使用SELECT语句来实现。
SELECT hello||world FROM DUAL

SELECT id||:||job FROM emp_souvc;

SELECT CONCAT(CONCAT(id,:),job)
FROM emp_souvc;

 

 

--LENGTH函数
SELECT id,LENGTH(job) FROM emp_souvc;
desc emp_souvc;

 

 

--UPPER,LOWER,INITCAP函数 
SELECT 
  UPPER(id), 
  LOWER(job), 
  INITCAP(NAME) 
FROM emp_souvc;

 

--TRIM,RTRIM 函数
--参数中from前面只能是单一字符
--若没有from以及前面的字符,则是去除空白
SELECT TRIM(e from eeeeeliteeeeee)
FROM DUAL;

SELECT RTRIM(eeeeliteeeee,e)
FROM DUAL;

 

--LPAD,LPAD补齐函数
--显示20个字符,不够左边不若干空格
                          --AAAAA
SELECT LPAD(id,20,$)
FROM emp_souvc;

SELECT LPAD(aaaaAAAAAA,5,$)
FROM DUAL;

--作用:要求显示20个字符,若sal的值不足长度,则
--补充若干个‘$‘,以达到20个字符

SELECT RPAD(aaaaAAAAAA,5,$)
FROM DUAL;

 

 

--INSTR函数
SELECT 
  INSTR(Doctor Who Who Who, Who,9,2) 
FROM DUAL;

 

 

 

--时间函数的用法
SELECT SYSTIMESTAMP FROM DUAL;


--TO_DATE函数的用法
SELECT 
  TO_DATE( 2008-08-12 22:45:33,yyyy-mm-dd hh24:mi:ss)
FROM 
  DUAL;


--TO_CHAR函数的用法
--在日期格式字符串中,出现的非关键字符或符号的其他字符时,需要使用双引号。
SELECT 
  TO_CHAR(sysdate, yyyy"年"mm"月"dd"日" hh:mi:ss )
FROM dual;


--两个日期可以进行减法操作,差为相差的天数。
SELECT sysdate-BIRTH,id
FROM emp_souvc;


--MONTHS_BETWEEN函数 
SELECT id, 
  MONTHS_BETWEEN(SYSDATE, BIRTH)
FROM emp_souvc;


--NEXT_DAY函数
--获取距离当前时间最近的周4,若给定的当前时间恰巧是周4,则表示的是下周的周4
SELECT NEXT_DAY(SYSDATE,5)
FROM dual;

 

 

--处理空值的函数
--任何值都不能等于null
SELECT * 
FROM emp_souvc
WHERE gender IS NOT NULL;

--NVL函数的作用:将null替换为给定值
SELECT name,NVL(gender,M)
FROM emp_souvc;

SELECT id,job,NVL(gender,0)
FROM emp_souvc;

 

有点类似java这种函数吧:

public Object nvl(Object e1,Object e2){
if(e1==null){
return e2;
}else{
return e1;
}
}

 

 

SELECT id,SALARY+NVL(SALARY,0)
FROM emp_souvc;

SELECT SALARY,NVL2(SALARY,有奖金,没奖金)
FROM emp_souvc;

 

oracle学习笔记系列------oracle 基本操作之基本函数的用法

原文:http://www.cnblogs.com/liuhongfeng/p/5304050.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!