程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 【Oracle】第二章常用操作

【Oracle】第二章常用操作

編輯:Oracle教程

【Oracle】第二章常用操作


ORACLE 第二章常用操作

修改表中的列信息:

alter table vendor_master modify(vencode varchar(20));

給表中列添加一個默認值約束

alter table mytable modify(name varchar2(20) default 'abc');

為現有表中的列添加一個主鍵約束:

alter table testtable add(constraint "idkey" primary key("ID"));

為現有的表添加一個列:

alter table vendor_master add(vid number(5));

為現有表刪除一個列:

alter table vendor_master drop column vid;

刪除一個表:

drop table vendor_master;

修改列名:

alter table mytable rename column name to newName

-- unio 返回兩個查詢選定的所有不重復的行。unio的使用

select vencode from vendor_master

union select vencode from order_master

--unio all返回兩個查詢選定的所有行,包括重復的行 ,unio all的使用

select vencode from vendor_master

union all select vencode from order_master

--intersect 返回兩個查詢都有的行,intersect 的使用

select vencode from vendor_master

intersect select vencode from order_master

--minus 的使用操作符只返回由第一個查詢選定但是沒有被第二個查

--詢選定的行,也就是在第一個查詢結果中排除在第二個查詢結果中出現的行

select vencode from vendor_master

minus

select vencode from order_master

--- || 連接符的使用

select ('供應商'||venname||'地址為:'||venadd1||' '||venadd2||' '||venadd3) as 地址 from vendor_master

--使用DATE 關鍵字向數據庫提供一個日期文本字符串,此日期必--須使用yyyy-mm-dd格式,以下代碼演示了 date關鍵字;

insert into MYTABLE (ID, NAME, ADDRESS, EMAIL,REGDATE)

values (6, 'rose', 'tianjin', '[email protected]', date '2007-10-12')

--下列代碼演示了通過 to_date() 函數返回的值添加到數據庫中

insert into MYTABLE

(ID, NAME, ADDRESS, EMAIL,REGDATE)
values (6, 'rose', 'tianjin', '[email protected]', to_date('2007-10-23 12:36:58','yyyy-mm-dd hh24:mi:ss'))

-- add_month 的使用

select del_date ,add_months(del_date,2) from order_master

--months_between 的使用該函數返回兩個日期之間的月數,格式為MONTHS_BETWEEN(d1,d2)

select to_date('2009-11-30','yyyy-mm-dd') from dual

select months_between(to_date('2009-12-31','yyyy-mm-dd'),to_date('2008-12-20','yyyy-mm-dd')) from dual

-- last_day的使用,該函數返回指定日期當月的最後一天的日期值,格式為LAST_DAY(d)

select sysdate,last_day(sysdate) from dual

-- ROUND, 格式為ROUND(d,[fmt]),d是日期,fmt是格式模型。

--fmt是一個可選項,日期默認捨入為最靠近的那一天。

--如果指定格式為年”YEAR”,則捨入到年的開始,即1月1日;如果格式為月”MONTH”,則捨入到月的第一日;如果格式為周”DAY”,則捨入到最靠近的星期日。

select round(to_date('2009-8-13','yyyy-mm-dd hh24:mi:ss'),'day') as m from dual

-- NEXT_DAY ,該函數返回指定的下一個星期幾的日期,格式為

-- NEXT_DAY(d,day),d是日期,day指周內任何一天。

select next_day(sysdate,'星期五') from dual

--trunc函數將指定日期截斷為由格式模型指定的單位的日期,

--與ROUND函數不同的是它只捨不入

select trunc(to_date('2009-12-12','yyyy-mm-dd'),'day') from dual

--函數提取日期時間類型中都特定部分,格式為

--EXTRACT(fmt FROM d)

select extract(year from sysdate) from dual

--根據ASCII碼返回對應的字符

select chr(97) from dual

--LPAD 函數由三個參數 ,第一個參數是字符串,

--該字符串左邊需要填充,第二個是數字,

--它表示返回值的總長度,第三個是字符串,

--需要時用它進行左填充。

Select lpad('function',10,'=') from dual;

--TRIM函數從字符串的開始或者結尾,裁剪特定的字符,默認裁剪空格

-- leading 表示從左往右,trailing 表示從右往左

-- leading和trailing 都不指定的情況下裁剪前後特定的字符

select trim(leading 9 from 99977589678999) from dual

select trim(9 from 99977589678999) from dual

--length 函數返回字符串的長度

select length('abcd') from dual

--decode 函數進行逐個值的替換

-- select decode(expr,search1,result1,search2,result2...[default])

select decode(2,1,'相同') from dual

-- to_char 轉換字符串函數

SELECT TO_CHAR(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS') FROM dual;

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

-- to_date 日期轉換函數

select to_date('2009-10-10 13:12:12','yyyy-mm-dd hh24:mi:ss') from dual

--將空值轉換為指定的值,NVL(expression1,expression2)

select vencode,venname,nvl(venadd1,'no') from vendor_master

--NVL2 使用 (如果第一個參數不為空返回第二個參數,否則返回第三個參數)

select vencode,venname,nvl2(venadd1,'北京','沒有地址') from vendor_master

--NULLIF 使用(判斷兩個參數是否相等,如果相等返回 null ,否則返回第一個參數)

select nullif(1,2) from dual

--使用 rollup 子句為每個分組返回一條小計,並為全部分組返回總計:

Select division_id,sum(salary),count(*) from employees2

Group by division_id

使用oracle 偽列刪除表中重復記錄:

delete from testtable t where t.rowid!=(select max(t1.rowid) from testtable t1 where t1.name=t.name)

oracle 翻頁代碼:

select * from (select rownum r,o.* from order_master o where rownum <=12) where r>9

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved