【Oracle】第二章常用操作

來源:互聯網
上載者:User

標籤:style   io   ar   color   os   使用   sp   on   資料   

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

【Oracle】第二章常用操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.