顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業只做數據庫實訓和認證的品牌機構

微信公眾號新浪微博
免費咨詢電話:400-0909-964
當前位置: 網站首頁 > DBA實戰 > DBA課程 > DBA基礎課程:Oracle基本的SQL語句

DBA基礎課程:Oracle基本的SQL語句

文章來源: 更新時間:2016/6/24 10:37:25

在線老師點擊咨詢:

最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!

我要咨詢

dba基礎課程:Oracle基本的SQL語句

oracle基本的SQL語句和SQLSERVER基本一樣,在這里只簡單列出與SQLSERVER不一樣的地方

1.select * from orderinfo where address = 'abcd' 與 address = 'ABCD'

得到的結果是不一樣的,也就是說oracle字符區分大小寫,這一點特別要注意。

2.查詢語句中,如果表引用了別名,則字段也必須的用別名.字段名

select orderid, ordercode from orderinfo o是一條錯誤的查詢語句,正確的如下:

select o.orderid, o.ordercode from orderinfo o或者select orderid , ordercode from orderinfo

3.A{operator}any B:表示A與B中的任何一個元素進行operator運算符的比較,只要有一個比較值為true,就返回數據行

A{operator}all B:表示A與B中的所有元素進行operator運算符的比較,只有所有元素的比較值都為true,就返回數據行

select * from orderinfo where orderid = any(1,2,3) 表示orderid等于1或2或3則返回數據行

select * from orderinfo where orderid <> all(1,2,3) 表示orderid不等于1并且不等于2并且不等于3則返回數據行

4.與null進行比較要用 is null這與sqlserver一樣,在這里記一下

5.自然連接natural join

select o.orderid, u.userid from orderinfo o natural join userinfo u where o.orderid = 1

oracle把兩個表中名稱相同的列自動連接

6.子查詢中的in, any ,all

select * from orderinfo where userid in (select userid from userinfo where username = 'abcd')與sqlserver一樣

select * from orderinfo where userid > any (select userid from userinfo where username = 'abcd')

只要userid大于任何一個子查詢中的userid則返回數據行

select * from orderinfo where userid > all(select userid from userinfo where username ='abcd')

userid必須大于子查詢中所有的userid才能返回數據行

7.insert語句

insert into orderinfo(orderid) values(orderinfo_seq.nextval)

orderinfo_seq.nextval獲取序列下一個值,前提必須創建了orderinfo_seq序列

批量插入數據:

insert into orderinfo_tmp select * from orderinfo where orderid = 1

8.update語句

update orderinfo set mobilephone = '13333333333' where orderid = 1

通過查詢更新:

update orderinfo set (mobilephone, address, productnumeric, amount) = (select mobilephone,

address, productnumeric, amount from orderinfo where orderid = 1)

where orderid = 2

9.Delete,truncate語句

delete from orderinfo where orderid = 1

truncate table orderinfo --刪除orderinfo表中所有的記錄,并且不記錄日志,所以可以很快的刪除記錄,但是無法恢復

10.事務

oracle11g中的事務是隱式自動開始的,它不需要用戶顯示地執行開始事務語句,但對于事務的結束處理,則需要用戶進行指定的操作,

通常在以下情況oracle認為一個事務結束了:

1.執行commit語句提交事務

2.執行rollback語句撤消事務

3.執行一條數據定義語句,如create,drop,alter等語句,如果語句執行成功,oracle系統會自動執行commit命令,否則系統會自動執行

rollback命令

4.執行一個數據控制命令,比如grant,revoke,這種語句執行完畢,系統會自動執行commit命令

5.正常地斷開數據庫連接,正常退出sqlplus環境,系統會自動執行commit命令,否則系統自動執行rollback命令

綜合上述五種情況,歸根到底事務的結束要么執行commit命令,要么執行rollback命令

提交事務:

insert into orderinfo (orderid,...) values(orderinfo_seq.nextval,...);

commit;

回滾事務:

insert into orderinfo (orderid,...) values(orderinfo_seq.nextval,...);

rollback;

事務可以回滾到一個點,如:

truncate table orderinfo

insert into orderinfo (orderid,...) values(orderinfo_seq.nextval,...);

savepoint sp;

insert into orderinfo (orderid,...) values(orderinfo_seq.nextval,...);

rollback to savepoint sp;

commit;

上述語句執行后數據表中只有一條記錄,也就是每一條插入語句所插入的數據

12.分頁查詢

select * from(

select o.*, rownum r from orderinfo o where rownum <=20 order by o.orderid asc)

where r > 10

查詢第11-20條記錄

本文地址:http://www.mudan321.com/dba/kecheng/12298552448.html 轉載請注明!


PostgreSQL入門到精通 100+ 個學習資料

Oracle培訓機構

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級講師、Unix/Linux 資深專家...[詳細了解老師]

免費咨詢上課流程 客服在線中

陳衛星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優化 11年Ora...[詳細了解老師]

免費咨詢上課流程 客服在線中

選學校如何選擇適合自己的學校

CUUG -CHINA UNIX USER GROUP,是國際UNIX組織UNIFORUM的中國代表,是國內悠久的專業UNIX培訓機構,被譽為中國UNIX 的搖籃。多年來,以提高教學質量為本,強調素質教育,積極引進、消化國外的新技術,有效的結合中國....[詳情]

一站式服務(從入學到就業一幫到底)

入學

學習

就業

實操

食宿
地址:北京市海淀區田村山南路35號院17號樓
課程咨詢: 400-0909-964
企業服務:137 1818 8639(陳經理)
部分信息來源于網絡,如有錯誤請聯系指正!
版權所有@北京神腦資訊技術有限公司 (CUUG,中國UNIX用戶協會) Copyright 2016 ALL Rights Reserved 京ICP備11008061號-1