欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      ORACLE培訓總結(jié)

      時間:2019-05-15 00:22:23下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《ORACLE培訓總結(jié)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《ORACLE培訓總結(jié)》。

      第一篇:ORACLE培訓總結(jié)

      篇一:oracle培訓班總結(jié)(聽課筆記)oracle北京培訓

      第一章 oracle10g的安裝與基本設(shè)置

      一、數(shù)據(jù)庫基礎(chǔ)部分。

      oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)與產(chǎn)品。

      sql語言:操作數(shù)據(jù)庫,同時用于數(shù)據(jù)庫管理。(通用部分)sql*plus語言:對sql的擴充,主要增加一些報表。pl/sql語言:過程化語言。數(shù)據(jù)庫分區(qū)存儲技術(shù)。

      1、oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)與產(chǎn)品

      oracle數(shù)據(jù)字典有4.2萬個。數(shù)據(jù)字典只記錄標識。

      結(jié)構(gòu)方面:sql與oracle完成不同,sql可建多個庫,結(jié)構(gòu)與oracle明顯不同。i:代表internet.c語言結(jié)構(gòu)性最好,計算能力最強。指紋識別系統(tǒng)只能用c.2、pl:procedural language:過程化語言,條件、判斷、循環(huán)。sql屬非過程化語言,只關(guān)心結(jié)果,不關(guān)心過程。

      3、數(shù)據(jù)庫分區(qū)存儲技術(shù)(一個表存到多個表空間上)數(shù)據(jù)庫存儲數(shù)據(jù)的最小單位:表。

      邏輯空間——>表空間(在物理上與磁盤對應(yīng))1 ——>多個磁盤。

      一個表可以存在多個磁盤上,但不能存到多個表空間上。集中式存儲:安全性不好,i/o不平衡。

      數(shù)據(jù)庫的分區(qū)存儲技術(shù):range、list(oracle 11自動增加)range:可以比大小。

      list:不能比大小,例如:人口住址等。

      4、數(shù)據(jù)庫存取權(quán)限控制。

      5、oracle 10g flashback:數(shù)據(jù)閃回?;謴颓疤幔簹w檔和備份。(1)基于時間的恢復:從5樓到4樓。必須從5樓下到一樓,再從1樓到4樓。邏輯備份: 物理備份:常說的備份點。

      不完全恢復:向回倒,不可逆轉(zhuǎn),日志自動清0,有的數(shù)據(jù)要丟失。exp、import.(1)基于時間的恢復(2)基于中止(撤消)的恢復。(3)基于事務(wù)的恢復。完全恢復。

      delete from,rollback能100%恢復。drop,flashback不一定能恢復。

      二、程序設(shè)計

      pl/sql程序設(shè)計。存儲過程(procedure),函數(shù)(function),包(package),數(shù)據(jù)庫觸發(fā)器(data triggers(槍栓))。

      三、系統(tǒng)管理(dba)

      1、oracle核心軟件安裝與產(chǎn)品升級。sun solaris hp ux 國稅 aix 銀行 tru64 電力 數(shù)據(jù)庫的排序:在臨時表空間中進行。8i和9i排序完不釋放。10g可自動釋放。640萬人無人居住,不發(fā)生電費。

      命令行模式運行速度快,容易發(fā)現(xiàn)問題的存在。

      oracle占用可用內(nèi)在的55-57%,所以不要建兩個以上的庫,oracle按表空間劃分用戶,sql可建多個庫,結(jié)構(gòu)與oracle明顯不同。

      2、創(chuàng)建主要的數(shù)據(jù)庫存儲結(jié)構(gòu)。

      劃分磁盤空間。

      3、數(shù)據(jù)庫權(quán)限與角色管理。角色:權(quán)限的組合。

      4、監(jiān)視與控制用戶對于數(shù)據(jù)庫的操作。

      5、數(shù)據(jù)庫的啟動與關(guān)閉。

      6、數(shù)據(jù)庫性能優(yōu)化與調(diào)整。

      7、數(shù)據(jù)庫的備份與恢復。

      四、基于web應(yīng)用開發(fā)(會話進程)。

      會話數(shù)(在線數(shù))< 用戶數(shù)< 進程數(shù)在(windows稱為服務(wù))< 操作系統(tǒng)核心參數(shù) 如何查看修改連接數(shù),進程數(shù)及用戶數(shù),三者之間有什么關(guān)系? show parameter session;最大session數(shù) show parameter process;最大進程數(shù)

      select count(1)from all_users;查看已安裝數(shù)據(jù)庫的用戶數(shù) select * from all_users;oracle自帶的用戶數(shù)如何查。

      默認的情況下系統(tǒng)中的最大session = min(session ,process * 1.1 + 5)

      1、我們把它稱為一次對話,或者叫會話。同樣,在我們用電腦工作時,打開的一個窗口或一個web頁面,我們也可以把它叫做一個“會話”,擴展到一個局域網(wǎng)里面,所有用戶要通過防火墻上網(wǎng),要打開很多個窗口或web頁面(即會話),那么,這個防火墻,所能處理的最大會話數(shù)量,就是“并發(fā)連接數(shù)”。

      (1)查看oracle 10g數(shù)據(jù)庫會話數(shù) select * from v$session;當前總會話數(shù):select count(*)from v$session;可用總會話數(shù):在sqlplus里查詢,show parameter session

      2、查看已安裝數(shù)據(jù)庫的用戶數(shù):select count(1)from all_users;sql>select * from all_users;

      3、查看進程數(shù)

      使用sys,以sysdba權(quán)限登錄:sql> show parameter processes;

      4、$ps –ef | grep oracle 進程,在windows稱為服務(wù)。實例包括一個內(nèi)存和進程(在windows中為服務(wù))

      按我的理解來說session就等價與一個客戶端,它是用戶經(jīng)過用戶進程到oracle事例的特定連接.它從用戶連接開始一直持續(xù)到用戶斷開連接或退出數(shù)據(jù)庫為止.進程,籠統(tǒng)地認為一個程序有若干進程組成,從os角度講程序是靜態(tài)的,而進程是動態(tài)的罷了.進程可以分為user process和oracle process.說穿了,進程就是用來執(zhí)行程序的時候產(chǎn)生的,是一個動態(tài)過程.第二章 oracle安裝

      一、asm(automatic storage management)自動存儲管理。oracle10g 新內(nèi)容。鏡像:oracle 10g以后才支持。磁盤組:diskmap 邏輯設(shè)備

      裸設(shè)備:只做分區(qū),不做格式化??床坏轿募?,在磁盤管理器中才能看到設(shè)備,u盤拷貝不了。只能用邏輯手段拷貝:exp rman.二、oltp_數(shù)據(jù)倉庫_全局數(shù)據(jù)庫名_(nts適配器錯誤_在windows中清理oracle)

      1、t----->oltp(on line transaction processing)在線事務(wù)處理。網(wǎng)上數(shù)據(jù)傳輸量比較大,數(shù)據(jù)庫數(shù)據(jù)改動大,數(shù)據(jù)庫負荷重,oracle 會設(shè)比較大的回退段(rollback segments)和空閑率(pctfree 10%)oracle的塊為:8k.它使用了所有的所謂數(shù)據(jù)的操作 crud(創(chuàng)建、讀取、更新、刪除)。當數(shù)據(jù)存儲達到一定量的時候,規(guī)模就會幾乎保持不變,因為可以從存儲中刪除過期數(shù)據(jù)。

      2、數(shù)據(jù)倉庫

      數(shù)據(jù)倉庫改動少,主要為查詢速度快服務(wù),用于存歷史數(shù)據(jù),用來構(gòu)造決策支持系統(tǒng)。他的回退段和空閑率留的比較少。

      數(shù)據(jù)倉庫就完全是一種不同種類的應(yīng)用程序。它并不是用來運行當前的操作,例如發(fā)送郵件。它是用來分析數(shù)據(jù)并且從現(xiàn)有數(shù)據(jù)中發(fā)現(xiàn)新的價值,主要是用來預測未來的情況。數(shù)據(jù)倉庫并不是解決所有問題的通用結(jié)構(gòu)。它必須集中于某一問題領(lǐng)域,例如航空服務(wù)、顧客收益等。數(shù)據(jù)倉庫也有有趣的一面,那就是本身是穩(wěn)定增長的。數(shù)據(jù)沒有被刪除,也不發(fā)生變更。我們不需要將冗余數(shù)據(jù)置于數(shù)據(jù)庫之外(因為加入倉庫中的數(shù)據(jù)經(jīng)過了數(shù)據(jù)凈化的過程,該過程檢查了數(shù)據(jù)的正確性)來減少復雜性同時增強讀取操作的性能。

      為了能夠?qū)?shù)據(jù)倉庫中的數(shù)據(jù)進行分析,數(shù)據(jù)存儲于一個多維結(jié)構(gòu)中,叫做星型模式。如果將星型模式擴展,就會得到雪花模式。

      3、全局數(shù)據(jù)庫名:以字母打頭,不超過8個。

      數(shù)據(jù)庫名不能重名,否則復制數(shù)據(jù)和同步數(shù)據(jù)時會出麻煩,數(shù)據(jù)庫安裝完后,數(shù)據(jù)庫名不能更改,起名時要慎重。

      4、oracle字符集。zh16gbk.5、nts適配器錯誤。

      d:oracleproduct10.2.0db_1networkadminsqlnet.ora 把sqlnet.ora文件中的(nts)改為none,再重新啟動oracleconfigudration and mirdatabase config.6、在windows中清理oracle。(1)刪除注冊表:

      regedit-> local machine--> software-->oracle(2)刪除oracle服務(wù)

      regedit-> local machine-->system?currentcontrolset?services?ora*(3)刪除oracle事件日志

      (4)刪除windows安裝磁盤中program filesoracle目錄。(5)刪除oracle菜單。(6)刪除oracle環(huán)境變量。

      控制面板—>系統(tǒng)——>高級——>環(huán)境變量??偣矂h除2項。(7)重新啟動操作系統(tǒng)

      (8)刪除oracle磁盤文件。篇二:oracle數(shù)據(jù)庫學習總結(jié) oracle數(shù)據(jù)庫學習總結(jié) 時間過的還真快,不知不覺中就在這里呆了半個月了。這段時間里都在學習oracle數(shù)據(jù)庫的編程,畢竟這是家軟件外包公司。像我們這樣的新員工也就只能接觸到些curd的操作。廢話不多說,趕緊來梳理下這半月來學習的知識點.在來公司之前一直都是使用sql server數(shù)據(jù)庫,用sql server也開發(fā)了3個小型項目。所以對sql語句以及在數(shù)據(jù)庫中扮演重要作用的存儲過程,觸發(fā)器,視圖,主鍵/外鍵約束都很熟。但oracle是一個全新的環(huán)境,記得剛裝上oracle的時候,我都不知道在哪查看自己已經(jīng)建立好的表格。還好有師傅的幫忙,要不然我還真沒這么快就能入門oracle。

      學習東西就要學習些能改變自己思維的東西,只有這樣才能讓自己的眼光比別人更獨到,思維比別人更深邃,oracle就是這樣的東西。當然做這樣的事是要很大的驅(qū)動力的呀,如果公司不是都采用oracle來寫程序的話,我估計也就懶得學啦。

      對于一位程序員來說并不需要完全掌握oracle的所有知識,畢竟自己不是dba。在日常開發(fā)中也用不到那些命令和工具,但是有些知識點我們還是必須得熟練的掌握它們。比如:一些基本的ddl和dml語句,存儲過程,函數(shù),視圖,觸發(fā)器,序列,游標,自定義類型和包。下面我就把這段時間里學習oracle獲得的知識點羅列出來,一是為了方便以后查閱,二是為了和搭檔交流學習經(jīng)驗。要適應(yīng)的一些細節(jié)

      從sql server轉(zhuǎn)到oracle進行數(shù)據(jù)庫編程,第一道門檻就是語法問題。很多很多的問題都是因為語法而產(chǎn)生的,現(xiàn)將它們統(tǒng)統(tǒng)集合起來并將它們一網(wǎng)打盡之。pl結(jié)構(gòu)。在sql server中,采用的是批處理執(zhí)行任務(wù)的方式,所以可以將多條sql語句選中批量執(zhí)行,而不用顧忌要在專門的地方聲明變量,在專門的地方進行邏輯編碼。在oracle中采用的是pl編程方式,必須在專門的地方聲明變

      循環(huán)結(jié)構(gòu),要達到循環(huán)在oracle中有3種方式,各有各的好處,你懂的。它們分別如下: pl結(jié)構(gòu)中的錯誤處理

      就像c#中的try{} catch{}語句塊 能捕獲錯誤。寫幾個例子: helloworld級別的錯誤拋出例子record類型

      oracle中的record類型類似于c語言中的結(jié)構(gòu)體,主要用來接收select語句或游標中返回的數(shù)據(jù),下面寫個例子:ddl語句

      這里的ddl語言主要是指能完成如下工作的ddl語言:創(chuàng)建表,創(chuàng)建表的主/外 鍵及級聯(lián)效果,dml語句

      select語句。oracle中的select語句的使用方法與sql server差不多,但還是有些不同之處。

      篇三:oracle培訓心得 oracle培訓心得

      2010年x月x日至x月x日,我有幸參加了工業(yè)和信息化部軟件與集成電路促進中心主辦的“oracle數(shù)據(jù)庫高級實戰(zhàn)培訓班”學習交流。首先感謝學校領(lǐng)導給予了我這次學習機會。通過短暫的幾天培訓,我不僅對oracle知識有了部分的了解,也接受了很多最新的信息。在這次培訓中,上課的老師有非常豐富dba經(jīng)驗,他結(jié)合他自身的dba工作經(jīng)歷,從oracle體系結(jié)構(gòu)與網(wǎng)絡(luò)配置、訪問控制、事務(wù)處理與日志、閃回特性、數(shù)據(jù)庫的備份與恢復和數(shù)據(jù)庫性能監(jiān)測與調(diào)整優(yōu)化等幾個方面對oracle進行了講解。對課程講解十分的詳細。通過案例示范以及演示,指導我們一步步操作。

      oracle主要以操作命令行為主,在學習的過程中,對老師的每一步操作都做好了記錄。課堂上按照老師的要求一步步操作,課后按記錄的操作步驟和命令反復多次的練習。以此到達了對oracle反復學習,熟悉掌握老師所傳授的知識。

      短短5天的高強度集中學習,我通過“xxxx”考試,取得了“xxxx”的認證。但是我知道依靠這幾天的培訓對oracle學習是不行的,還必須在實踐中不斷地努力,提升自身的專業(yè)技術(shù)能力。只有在不斷的實踐練習,才能夠深刻了解它的原理和方法。在以后的工作中,我仍會繼續(xù)學習各種關(guān)于oracle數(shù)據(jù)庫的知識、持之以恒,在今后的工作中不斷實踐、總結(jié)、深入學習,全面掌握oracle知識。

      第二篇:oracle培訓心得

      Oracle培訓心得

      2010年x月x日至x月x日,我有幸參加了工業(yè)和信息化部軟件與集成電路促進中心主辦的“ORACLE數(shù)據(jù)庫高級實戰(zhàn)培訓班”學習交流。首先感謝學校領(lǐng)導給予了我這次學習機會。通過短暫的幾天培訓,我不僅對Oracle知識有了部分的了解,也接受了很多最新的信息。

      在這次培訓中,上課的老師有非常豐富DBA經(jīng)驗,他結(jié)合他自身的DBA工作經(jīng)歷,從Oracle體系結(jié)構(gòu)與網(wǎng)絡(luò)配置、訪問控制、事務(wù)處理與日志、閃回特性、數(shù)據(jù)庫的備份與恢復和數(shù)據(jù)庫性能監(jiān)測與調(diào)整優(yōu)化等幾個方面對Oracle進行了講解。對課程講解十分的詳細。通過案例示范以及演示,指導我們一步步操作。

      Oracle主要以操作命令行為主,在學習的過程中,對老師的每一步操作都做好了記錄。課堂上按照老師的要求一步步操作,課后按記錄的操作步驟和命令反復多次的練習。以此到達了對Oracle反復學習,熟悉掌握老師所傳授的知識。

      短短5天的高強度集中學習,我通過“xxxx”考試,取得了“xxxx”的認證。但是我知道依靠這幾天的培訓對Oracle學習是不行的,還必須在實踐中不斷地努力,提升自身的專業(yè)技術(shù)能力。只有在不斷的實踐練習,才能夠深刻了解它的原理和方法。在以后的工作中,我仍會繼續(xù)學習各種關(guān)于Oracle數(shù)據(jù)庫的知識、持之以恒,在今后的工作中不斷實踐、總結(jié)、深入學習,全面掌握Oracle知識。

      第三篇:oracle視圖總結(jié)

      oracle視圖總結(jié)(轉(zhuǎn))

      視圖簡介: 視圖是基于一個表或多個表或視圖的邏輯表,本身不包含數(shù)據(jù),通過它可以對表里面的數(shù)據(jù)進行查詢和修改。視圖基于的表稱為基表。視圖是存儲在數(shù)據(jù)字典里的一條select語句。通過創(chuàng)建視圖可以提取數(shù)據(jù)的邏輯上的集合或組合。

      視圖的優(yōu)點:

      1.對數(shù)據(jù)庫的訪問,因為視圖可以有選擇性的選取數(shù)據(jù)庫里的一部分。2.用戶通過簡單的查詢可以從復雜查詢中得到結(jié)果。3.維護數(shù)據(jù)的獨立性,試圖可從多個表檢索數(shù)據(jù)。4.對于相同的數(shù)據(jù)可產(chǎn)生不同的視圖。

      視圖的分類:

      視圖分為簡單視圖和復雜視圖。

      兩者區(qū)別如下:

      1.簡單視圖只從單表里獲取數(shù)據(jù),復雜視圖從多表獲取數(shù)據(jù); 2.簡單視圖不包含函數(shù)和數(shù)據(jù)組,復雜視圖包含; 3.簡單視圖可以實現(xiàn)DML操作,復雜視圖不可以。

      視圖的創(chuàng)建:

      CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias[, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY] 其中:

      OR REPLACE:若所創(chuàng)建的試圖已經(jīng)存在,ORACLE自動重建該視圖; FORCE:不管基表是否存在ORACLE都會自動創(chuàng)建該視圖; NOFORCE:只有基表都存在ORACLE才會創(chuàng)建該視圖: alias:為視圖產(chǎn)生的列定義的別名;

      subquery:一條完整的SELECT語句,可以在該語句中定義別名;

      WITH CHECK OPTION : 插入或修改的數(shù)據(jù)行必須滿足視圖定義的約束; WITH READ ONLY : 該視圖上不能進行任何DML操作。

      例如: Sql代碼

      1.CREATE OR

      REPLACE

      VIEW dept_sum_vw

      2.(name,minsal,maxsal,avgsal)

      3.AS SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)

      4.FROM

      emp e,dept d

      5.WHERE e.deptno=d.deptno

      6.GROUP BY d.dname;

      視圖的定義原則:

      1.視圖的查詢可以使用復雜的SELECT語法,包括連接/分組查詢和子查詢; 2.在沒有WITH CHECK OPTION和 READ ONLY 的情況下,查詢中不能使用 ORDER BY 子句;

      3.如果沒有為CHECK OPTION約束命名,系統(tǒng)會自動為之命名,形式為SYS_Cn;4.OR REPLACE選項可以不刪除原視圖便可更改其定義并重建,或重新授予對象權(quán)限。

      查詢視圖:

      視圖創(chuàng)建成功后,可以從視圖中檢索數(shù)據(jù),這點和從表中檢索數(shù)據(jù)一樣。示例:

      SQL>SELECT * FROM dept_sum_vw;

      修改視圖:

      通過OR REPLACE 重新創(chuàng)建同名視圖即可。

      刪除視圖:

      DROP VIEW VIEW_NAME語句刪除視圖。刪除視圖的定義不影響基表中的數(shù)據(jù)。

      只有視圖所有者和具備DROP VIEW權(quán)限的用戶可以刪除視圖。視圖被刪除后,基于被刪除視圖的其他視圖或應(yīng)用將無效。

      查詢視圖定義:

      SELECT view_name,text from user_views;其中text顯示的內(nèi)容為視圖定義的SELECT語句,可通過DESC USER_VIEWS 得到相關(guān)信息。

      視圖上的DML 操作: DML操作應(yīng)遵循的原則:

      1.簡單視圖可以執(zhí)行DML操作; 2.在視圖包含GROUP 函數(shù),GROUP BY子句,DISTINCT關(guān)鍵字時不能刪除數(shù)據(jù)行; 3.在視圖不出現(xiàn)下列情況時可通過視圖修改基表數(shù)據(jù)或插入數(shù)據(jù):

      a.視圖中包含GROUP 函數(shù),GROUP BY子句,DISTINCT關(guān)鍵字; b.使用表達式定義的列; c.ROWNUM偽列。

      d.基表中未在視圖中選擇的其他列定義為非空且無默認值。WITH CHECK OPTION 子句

      通過視圖執(zhí)行的INSERTS和UPDATES操作不能創(chuàng)建該視圖檢索不到的數(shù)據(jù)行,因為它會對插入或修改的數(shù)據(jù)行執(zhí)行完整性約束和數(shù)據(jù)有效性檢查。(也就是說在執(zhí)行INSERTS、UPDATES時,WHERE條件中除需要INSERT、UPDATE本身的限制條件之外,還需要加上視圖創(chuàng)建時的WHERE條件。)

      例如:

      CREATE OR REPLACE VIEW vw_emp20 AS SELECT * FROM emp WHERE deptno=20 WITH CHECK OPTION constraint vw_emp20_ck;視圖 已建立。

      查詢結(jié)果:

      SELECT empno,ename,job FROM vw_emp20;EMPNO

      ENAME

      JOB---------------------

      --------------

      -------------7369

      SMITH

      CLERK 7566

      JONES

      MANAGER 7902

      FORD

      ANALYST 修改:

      UPDATE vw_emp20 SET

      deptno=20 WHERE empno=7902;將產(chǎn)生錯誤:

      UPDATE vw_emp20 * ERROR 位于第一行:

      ORA-01402:視圖WITH CHECK OPTION 違反WHERE 子句

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      1,Oracle是可以通過視圖來修改Base table的。所謂base table就是用來構(gòu)建視圖的表,也就是視圖的數(shù)據(jù)來源表。但是這種修改是有條件的。比如: create view v_emp as select empno,ename,job,deptno from emp where deptno=10 with check option constraint emp_cnst;如果有這個限制,那么通過視圖v_emp 插入數(shù)據(jù)的deptno字段的值必須是10,否則就會報“ORA-01402: 視圖 WITH CHECK OPTIDN 違反 where 子句”的異常。

      2,聯(lián)結(jié)視圖:

      create view dept1_staff as select e.ename, e.empno, e.job, d.deptno, d.dname from emp e,dept d where e.deptno in(10,30)and e.deptno = d.deptno; 將兩個表的數(shù)據(jù)聯(lián)結(jié)起來,看起來應(yīng)該是一個內(nèi)聯(lián)結(jié)(Inner joint)。

      對于聯(lián)結(jié)視圖(Joint view)的修改規(guī)則稍顯復雜,設(shè)計到所謂key_preserved table的概念。通過聯(lián)結(jié)視圖來修改基表,只有那些key_preserved 的表才能被修改。上述創(chuàng)建視圖語句中emp和dept通過deptno進行聯(lián)結(jié)構(gòu)成視圖時,emp就是key_preserved 表,而dept不是。為什么?因為在dept1_staff 中empno的值唯一的而deptno不是唯一的。所以emp是key_preserved 而dept不是。因此只能通過該視圖來修改emp,而不能修改dept的數(shù)據(jù)。

      3,Oracle視圖非常強大的功能之一在于其可以創(chuàng)建一個帶有錯誤的視圖。比如說視圖里的字段在基表里不存在,該視圖仍然可以創(chuàng)建成功,但是非法的且無法執(zhí)行。當基表里加入了該字段,或者說某個字段修改成視圖里的該字段名稱,那么視圖馬上就可以成為合法的。這個功能很有意思。例子:

      創(chuàng)建基表: create table v_test(name varchar2(32),age number(12));創(chuàng)建帶錯誤的視圖:

      create force view view_test as select name,age,address from v_test;(注意加上force選項)

      由于address字段在v_test里不存在,所以會報warning: View created with compilation errors的警告,而且執(zhí)行select * from view_test;時會報“ORA-04063: view “SCOTT.VIEW_TEST” 有錯誤”的異常。但是如果在v_test里加上address字段,那么視圖就會合法。對基表進行修改:

      alter table v_test add(address varchar2(128));

      現(xiàn)在再執(zhí)行select * from view_test;就會執(zhí)行成功了。

      from:http://www.blogjava.net/jinhualee/archive/2006/07/14/58115.html

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      其他問題總結(jié):

      1、視圖上是否可以創(chuàng)建索引?

      一般視圖上不用建立索引,對視圖的操作最終會轉(zhuǎn)化為對表的操作。一個討論:http://www.itpub.net/viewthread.php?tid=150019&extra=&page=1

      第四篇:Oracle數(shù)據(jù)庫 知識點總結(jié)

      1.constraint約束:

      alter table [table_name] add constraint [pk_name] primary key(pkname);//添加主鍵

      alter table [table_name] drop constraint [pk_name];//刪除主鍵

      alter table [table_name] add constraint [fk_name] foreign key(fkname)references [tablename](fkname);//添加外

      alter table [table_name] drop constraint [fk_name];//刪除外鍵

      2.union 關(guān)鍵字:

      A username, B username

      rod

      bruce

      rose

      marina

      select username from A

      union

      select username from B

      2、幾個高級查詢運算詞

      A: UNION 運算符

      UNION 運算符通過組合其他兩個結(jié)果表(例如 TABLE1 和 TABLE2)并消去表中任何重復行而派生出一個結(jié)果表。當

      ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來 自 TABLE2。

      B: EXCEPT 運算符

      EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復行而派生出一個結(jié)果表。當 ALL 隨

      EXCEPT 一起使用時(EXCEPT ALL),不消除重復行。

      C: INTERSECT 運算符

      INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復行而派生出一個結(jié)果表。當 ALL 隨

      INTERSECT 一起使用時(INTERSECT ALL),不消除重復行。

      注:使用運算詞的幾個查詢結(jié)果行必須是一致的。

      3.復合主鍵一般不設(shè)外鍵

      4.組函數(shù)也稱為聚合函數(shù)。

      例如:我們把學生可以分為男生和女生兩個組,如果想求每組的人數(shù),平均身高,平均年齡等,就需要用到分組函數(shù)了。

      在SQL中常用的組函數(shù)有以下幾個:

      COUNT():求出全部的記錄數(shù)

      MAX():求出一組中的最大值

      MIN():求出一組中的最小值

      AVG():求出一組中的平均值

      SUM():求和

      范例:COUNT()函數(shù)

      SELECT COUNT(empno)FROM emp;

      我們常用COUNT(*),最好能夠用字段代替*

      范例:MAX()、MIN()函數(shù),求最大最小值,一般是針對于數(shù)值的字段的,求出所有員工的的最高工資,和最底工資和平均工

      資。

      SELECT MAX(sal)最高工資,MIN(sal)最底工資,AVG(sal)平均工資 FROM emp;

      范例:求出部門10的所有員工工資的總合

      SELECT SUM(sal)工資綜合 FROM emp WHERE deptno=10;

      如果如下查詢輸出部門編號和其部門所有員工的工資總和,會產(chǎn)生錯誤。

      SELECT deptno ,SUM(sal)工資綜合 FROM emp WHERE deptno=10;

      錯誤: “不是單組分組函數(shù)”

      發(fā)生以上的錯誤信息,是因為這樣的查詢需要進行分組統(tǒng)計。

      分組統(tǒng)計有其固定的語法格式:

      SELECT {DISTINCT} *| 查詢列 列別名1,查詢列2 列別名2,……

      FROM 表名稱1 表別名1,表名稱2 表別名2,……

      {WHERE 條件(s)}

      {ORDER BY 排序的字段1,排序的字段2 ASC|DESC}

      {GROUP BY 分組字段}

      所以老師寫的是錯的!

      5.//從t_student表中刪除名字重復的記錄的信息

      delete from t_student where sid not in(select sid from(select min(sid)sid,sname from t_student group by sname));

      // delete from tablename where id not in(select max(id)from tablename group by col1,col2,...)

      6.sequence

      在oracle中sequence就是序號,每次取的時候它會自動增加。sequence與表沒有關(guān)系。

      (1)

      CREATE SEQUENCE seqTest

      INCREMENT BY 1--每次加幾個

      START WITH 1--從1開始計數(shù)

      NOMAXvalue--不設(shè)置最大值

      NOCYCLE--一直累加,不循環(huán)

      CACHE 10;--設(shè)置緩存cache個序列,如果系統(tǒng)down掉了或者其它情況將會導致序列不連續(xù),也可以設(shè)置為----NOCACHE(2)

      定義好sequence后,你就可以用currVal,nextVal取得值。

      CurrVal:返回 sequence的當前值

      NextVal:增加sequence的值,然后返回 增加后sequence值

      eg:

      SELECT Sequence名稱.CurrVal FROM DUAL;

      select seqtest.currval from dual(3)

      在Sql語句中可以使用sequence的地方:

      -不包含子查詢、snapshot、VIEW的 SELECT 語句

      -INSERT語句的子查詢中

      -INSERT語句的values中

      -UPDATE 的 SET中

      如在插入語句中

      insert into 表名(id,name)values(seqtest.Nextval,'sequence 插入測試');

      7.范式:

      所謂第一范式(1NF)是指在關(guān)系模型中,對域添加的一個規(guī)范要求,所有的域都應(yīng)該是原子性的,即數(shù)據(jù)庫表的每一

      列都是不可分割的原子數(shù)據(jù)項,而不能是集合,數(shù)組,記錄等非原子數(shù)據(jù)項。即實體中的某個屬性有多個值時,必須拆分

      為不同的屬性。在符合第一范式(1NF)表中的每個域值只能是實體的一個屬性或一個屬性的一部分。簡而言之,第一范式

      就是無重復的域。

      第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。

      第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或記錄必須可以被唯一地區(qū)分。選取一個能區(qū)分每個實體的屬性或?qū)傩越M,作

      為實體的唯一標識。第二范式(2NF)要求實體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主關(guān)鍵字一

      部分的屬性,如果存在,那么這個屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來形成一個新的實體,新實體與原實體之間是一

      對多的關(guān)系。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的唯一標識。簡而言之,第二范式就是在第一范式的基礎(chǔ)上屬性完全依賴于主鍵。例如在員工表中的身份證號碼即可實現(xiàn)每個一員工的區(qū)分,該身份證號碼即為候選鍵,任何

      一個候選鍵都可以被選作主鍵。在找不到候選鍵時,可額外增加屬性以實現(xiàn)區(qū)分,如果在員工關(guān)系中,沒有對其身份證號

      進行存儲,而姓名可能會在數(shù)據(jù)庫運行的某個時間重復,無法區(qū)分出實體時,設(shè)計辟如ID等不重復的編號以實現(xiàn)區(qū)分,被

      添加的編號或ID選作主鍵。

      第三范式(3NF)是第二范式(2NF)的一個子集,即滿足第三范式(3NF)必須滿足第二范式(2NF)。簡而言之,第三范式(3NF)要求一個關(guān)系中不包含已在其它關(guān)系已包含的非主關(guān)鍵字信息。例如,存在一個部門信息表,其中每個部門

      有部門編號(dept_id)、部門名稱、部門簡介等信息。那么在員工信息表中列出部門編號后就不能再將部門名稱、部門簡

      介等與部門有關(guān)的信息再加入員工信息表中。如果不存在部門信息表,則根據(jù)第三范式(3NF)也應(yīng)該構(gòu)建它,否則就會有

      大量的數(shù)據(jù)冗余。簡而言之,第三范式就是屬性不依賴于其它非主屬性,也就是在滿足2NF的基礎(chǔ)上,任何非主屬性不得傳

      遞依賴于主屬性。

      第五篇:ORACLE數(shù)據(jù)庫學習總結(jié)

      數(shù)據(jù)庫學習總結(jié)-Marlon

      目錄一、二、三、四、五、六、七、八、ORACLE_簡介.............................................................................................................................................................1 ORACLE_簡單查詢.....................................................................................................................................................3 ORACLE標量函數(shù)和算數(shù)運算..................................................................................................................................5 ORACLE_多表查詢.....................................................................................................................................................9 ORACLE_列函數(shù)和分組...........................................................................................................................................10 ORACLE_子查詢.......................................................................................................................................................12 ORACLE_表的更新操作...........................................................................................................................................13 ORACLE_表與視圖的管理.......................................................................................................................................15

      一、ORACLE_簡介

      ? Oralce數(shù)據(jù)庫發(fā)展 Oracle 8

      Oracle 8i:i表示internet,標識著Oracle公司正式進軍互聯(lián)網(wǎng)。Oracle9i Oracle10g:g表示grid,即網(wǎng)絡(luò)技術(shù)。Oracle11g

      ? Oracle體系結(jié)構(gòu)一 物理結(jié)構(gòu): 文件系統(tǒng) 控制文件 數(shù)據(jù)文件 日志文件

      參數(shù)文件(不是數(shù)據(jù)庫的組成成分)

      ? Oracel體系結(jié)構(gòu)三 邏輯結(jié)構(gòu): block 快 extent 盤區(qū) segment 段

      tablespace 表空間 datafile 數(shù)據(jù)文件 ? SQL * Plus下的常用命令

      ? 連接到SQL*PLUS sqlplus user/password[as sysdaba|sysoper] sqlplus/nolog

      ? 啟動數(shù)據(jù)庫

      startup mount 啟動實例,打開控制文件,但不打開數(shù)據(jù)文件 startup nomount 只啟動實例

      ? 關(guān)閉數(shù)據(jù)庫

      shutdown immediate

      ? 迫使每個用戶執(zhí)行為當前的SQL語句,立即斷開連接 shutdown transactional

      ? 迫使用戶執(zhí)行完當前事務(wù)時,斷開連接 shutdown abort 強制關(guān)閉數(shù)據(jù)庫

      ? 常用SQL命令

      show user:查看當前連接的用戶

      connect scott/tiger: 采用scott的用戶名/tiger的密碼連接數(shù)據(jù)庫 desc table_name:查看tableName表結(jié)構(gòu) quit|exit:退出

      disconnect:斷開連接

      clear screen:清屏,相當于Windows下的cls命令 select * from tab:列出當前用戶下的所有表 @pata 執(zhí)行pata制定的腳本文件

      ? Oracle常用基本數(shù)據(jù)類型 varchar2/varchar:變成字符串 char:定長字符串 Integer:整型

      number(m,n):數(shù)字型 smallint:短整型 float:浮點數(shù)

      decimal:十進制數(shù)字(小數(shù))date:日期型

      二、ORACLE_簡單查詢

      ? SQL結(jié)構(gòu)化查詢語言(Structured Query Language)

      ? SQL分類

      1.數(shù)據(jù)定義語言(Data Definition Language,DDL):create、alter、drop。

      create table 表名;alter table add 新列名 數(shù)據(jù)類型;drop table 表名;2.數(shù)據(jù)操縱語言(Data Manipulation Language,DML):insert、update、delete、select。Insert into 表名(字段1,字段2…)values(值1,值2…);update student set sage=22 where sno='200215';(將學生200215的年齡改為22歲)select distinct job from emp;去除重復行

      3.數(shù)據(jù)控制語言(Data Control Language,DCL):commit work、rollback work。? 查詢雇員的所有信息 select * from emp; *表示所有列

      ? 查詢語句的格式

      select *|列名 from 表名

      ? 查詢雇員的編號,姓名,工資

      select * from empno,ename,sal from emp;

      ? 查詢所有職位 select job from emp;select distinct job from emp;distinct: 有區(qū)別的(去除重復行)

      ? 查詢工資大于1500的雇員信息,列出編號,用戶名,工資 select empno,ename,sal from emp where sal>1500;

      ? 帶有where條件查詢語句的基本格式 select *|列名 from 表名 where 條件;

      ? 比較運算符 大于:> 小于:< 等于:= 大于等于:>= 小于等于:<= 不等于:!=或者<>

      ? 限定查詢 is null 和 is not null 的使用 ? 查詢每月可以得到獎金的雇員

      select empno,ename,comm from emp where comm is not null;

      select empno,ename,comm from emp where comm is not null and comm>0;? 查詢誰沒有獎金

      select empno,ename from emp where comm is null;

      ? 限定查詢 and 的使用

      ? 查詢工資大于1500,并且可以領(lǐng)取獎金的雇員

      SQL> select empno,ename,sal,comm from emp where comm is not null and sal>1500;

      ? 限定查詢 or 的使用

      ? 查詢工資大于1500和可以領(lǐng)取獎金的雇員

      select empno,ename,sal,comm from emp where sal>1500 or comm is not null;? 查詢沒有獎金的雇員

      select empno,ename,comm from emp where comm=0 or comm is null;

      ? 限定查詢 使用not對條件整體取反

      ? 查詢工資不大于1500并且不能領(lǐng)取獎金的雇員

      select empno,ename,sal,comm from emp where sal<=1500 and(comm is null or comm=0);select empno,ename,sal,comm from emp where not(sal>1500 or comm is not null);

      ? 限定查詢 between...and...的使用

      ? 查詢基本工資大于等于1500并且小于等于3000的雇員

      select empno,ename,sal from emp where sal>=1500 and sal<=3000;select empno,ename,sal from emp where sal between 1500 and 3000;? 查詢1981年雇傭的所有員工

      select empno,ename,hiredate from emp where hiredate between'1-1月 1981' and '31-12月 1981';注:日期格式 日-月 年,要匹配上

      ? 限定查詢 字符串的比較

      ? 查詢姓名是'SMITH'員工的所有信息 select * from emp where ename='SMITH';select * from emp where ename='smith';注:列值區(qū)分大小寫

      ? 限定查詢 in的使用

      ? 查詢出編號7369,7499,7521的雇員的具體信息

      select * from emp where empno=7369 or empno=7499 or empno=7521;select * from emp where empno in(7369,7499,7521);

      ? 限定查詢 not in的使用

      ? 查詢出雇員編號不是369,7499,7521的雇員的具體信息 select * from emp where empno not in(7369,7499,7521);

      ? 限定查詢 like的使用

      ? 查詢雇員的名字第二個字符是M的雇員信息 select * from emp where ename like'_M%';注:_匹配一個字符,%匹配0個多個字母(前綴或后綴的代表)? 查詢1982年入職的所有雇員的信息

      select * from emp where hiredate like'%82';? 查詢工資中包含5的雇員信息

      select * from emp sal where like'%5%';

      ? 對結(jié)果排序-Oracle By ? 查詢員工工資大于1500員工的信息,按工資排序 select * from emp where sal>1500 order by sal;? 查詢工資大于1500員工的信息,按工資降序,按雇傭日期升序排序 select * from emp where sal>1500 order by sal desc,hiredate asc;注:ASC升序,DESC降序,默認ASC。

      ascending [?'sendi?]上升的,降序排列(descend [di'send] 的縮寫);

      三、ORACLE標量函數(shù)和算數(shù)運算

      字符函數(shù)的使用

      ? 轉(zhuǎn)換為大寫字母

      select upper('smith')from dual;注:dual是公共表。upper ['?p?] 上面的,上部的

      ? 轉(zhuǎn)換為小寫字母

      select lower('SMITH')from dual;注:lower 放下

      ? 每個單詞的字母變成大寫,其余字母小寫 select initcap('hello world')from dual

      ? 串連接(concat):可以使用“||”進行串連接 select concat('HELLO','WORLD')from dual;select 'HELLO'||'WORLD' from dual;

      ? 求子串(SUBSTR)select substr(ename,1,3)from emp;注:含義為截取ename字段從第一個字符開始,總共三個字符

      ? 求長度(LENGTH)select length(ename)from emp;

      ? 串替換(REPLACE)select replace('HELLO WORLD','WOR','WEL')from dual;結(jié)果:

      REPLACE('HE-----------HELLO WELLD 注:第一個逗號是原字符,第二個逗號是原字符的一部分,第三部分是替換原字符那個部分。

      ? 要求顯示所有雇員的姓名和姓名的后三個字符

      select ename,substr(ename,length(ename)-2)from emp;select ename,substr(ename,-3)from emp;

      ? 四舍五入(Round)select round(789.536)from dual;ROUND(789.536)--------------

      790

      ? 四舍五入(Round):指定保留小數(shù)位數(shù) select round(789.536,2)from dual;----------------

      789.54

      ? 四舍五入(Round):對整數(shù)四舍五入 select round(789.536,-2)from dual;ROUND(789.536,-2)-----------------

      800

      ? 截斷小數(shù)位(TRUNC)select trunc(789.536)from dual;TRUNC(789.536)--------------

      789

      ? 截斷小數(shù)位(TRUNC):指定保留小數(shù)位 select trunc(789.536,2)from dual;TRUNC(789.536,2)----------------

      789.53

      ? 截斷小數(shù)位(TRUNC):對整數(shù)截斷 select trunc(789.536,-2)from dual;TRUNC(789.536,-2)-----------------

      700 ? 除空格(TRIM)

      SQL> SELECT TRIM(55)FROM DUAL;TRIM(55)--------55 ? 取余數(shù)(MOD)select mod(10,3)from dual;

      ? 日期函數(shù) 運算規(guī)律:

      日期+數(shù)字=日期 日期-數(shù)字=日期

      日期-日期=數(shù)字(天數(shù))

      ? 查詢當前日期

      select sysdate from dual;SYSDATE-------------10-3月-12

      ? 顯示10部門員工進入公司的星期數(shù)

      select empno,ename,round((sysdate-hiredate)/7)from emp where deptno=10;

      ? 在指定日期上加入指定的月數(shù)之后的日期(ADD_MONTHS)select add_months(sysdate,4)from dual;ADD_MONTHS(SYS--------------10-7月-12

      ? 求出給定日期范圍的月數(shù)(months_between)select empno,ename,months_between(sysdate,hiredate)from emp;

      ? 下一個給定的星期是那個日期(next_day)select next_day(sysdate,'星期一')from dual;注:表示在當前時間的前提下,下個禮拜一的具體日期

      ? 求出給定日期所在月份的最后一天日期(last_day)select last_day(sysdate)from dual;

      ? 轉(zhuǎn)換成字符串(to_char)查詢雇員號,姓名,以及入職的年份

      select empno,ename,to_char(hiredate,'yyyy')from emp;注:yyyy匹配年份,mm匹配月份,dd匹配日

      ? 使用to_char設(shè)置日期的顯示格式

      select empno,ename,to_char(hiredate,'yyyy-mm-dd')from emp;

      ? 使用fm去掉前導0 select empno,ename,to_char(hiredate,'fmyyyy-mm-dd')from emp;EMPNO ENAME

      TO_CHAR(HI--------------------------

      7369 SMITH

      1980-12-17

      7499 ALLEN

      1981-2-20 注:正常的值是1981-02-20,02前面的0去掉,變成了1981-2-20.? 通過to_char設(shè)置數(shù)值的格式

      select empno,ename,to_char(sal,'99,999')from emp;說明:9代表1位數(shù)字

      EMPNO ENAME

      TO_CHAR---------------------------

      7369 SMITH

      800

      7499 ALLEN

      1,600

      7521 WARD

      1,250 注:把sal的值分成兩個部分,后三位為一個部分,前兩位為一個部分,用逗號隔開。

      ? 顯示余額

      select empno,ename,to_char(sal,'$99,999')from emp;說明:$代表美元

      ? 轉(zhuǎn)換成數(shù)字(to_number)select to_number('123')+to_number('123')from dual;TO_NUMBER('123')+TO_NUMBER('123')--

      246

      ? 轉(zhuǎn)換成日期(to_date)select to_date('2009-07-31','yyyy-mm-dd')from dual;TO_DATE('2009---------------31-7月-09

      ? 算數(shù)運算

      ? 查詢每個員工的年收入

      select empno,ename,(sal+comm)*12 from emp;年收入=工資+獎金

      ? 查詢每個員工的年收入

      select empno,ename,(sal+comm)*12 income from emp;

      ? 查詢每個員工的年收入

      select empno,ename,(sal+NVL(comm,0))*12 income from emp;注:NVL(comm,0),當comm的值為null時,用0替換

      ORACLE_多表查詢

      ? 格式:

      select 列名1 別名1,......from 表名1,表名2,......where 條件 order by 列名

      ? 查詢員工的編號,姓名,部門編號,部門名稱

      select empno,ename,emp.deptno,dname from emp,dept where emp.deptno=dept.deptno;

      關(guān)聯(lián)查詢-為表命別名

      ? 查詢員工的編號,姓名,部門編號,部門名稱

      select empno,ename,e.deptno,dname from emp e,dept d where d.deptno=e.deptno;注:這里的e是emp的別名,d是dept的別名

      關(guān)聯(lián)查詢-自連接

      ? 查詢出每個雇員的姓名、工作、雇員的直接上級領(lǐng)導的姓名

      select e.empno,e.ename,e.job,m.ename mname from emp e,emp m where e.mgr=m.empno;注:mname是m.ename的別名

      關(guān)聯(lián)查詢-多表關(guān)聯(lián)

      四、? 查詢出每個雇員的姓名,工作,雇員的直接上級領(lǐng)導,以及部門名稱 select e.ename,e.job,m.ename,d.dname from emp e,dept d,emp m where e.mgr=m.empno and e.deptno=d.deptno;注:當查詢的字段間的關(guān)系涉及到n個表時,則n個表之間關(guān)聯(lián)。

      左、右外連接

      ? 查詢員工編號,姓名,所在部門號,部門名稱,將沒有員工的部門也顯示出來 select e.ename,d.deptno,d.dname from emp e,dept d where e.deptno(+)=d.deptno;注:(+)在左邊,表示右連接,會列出所有右表中出現(xiàn)但是沒有在左表中出現(xiàn)的行。

      ? 查詢雇員的編號,姓名及其領(lǐng)導的編號,將沒有領(lǐng)導的員工也列出來 select e.empno,e.ename,m.empno,m.ename from emp e,emp m where e.mgr=m.empno(+);注:(+)在右邊表示左連接,會列出左表中出現(xiàn)但沒有在右表中出現(xiàn)的行。

      ? 交叉連接(cross join):用來長生笛卡爾積 select * from emp cross join dept;

      ? 自然連接(nutural join):自動進行關(guān)聯(lián)字段的匹配 select * from emp natural join dept;

      ? using子句:直接指定操作關(guān)聯(lián)列

      select * from emp join dept using(deptno)

      ? on子句:用戶自己編寫連接條件

      select * from emp join dept on emp.deptno=dept.deptno;

      ? left join:左外連接

      ? right join:右外連接

      五、ORACLE_列函數(shù)和分組

      ? 常用的列函數(shù)

      sum(expression)求和 max(expression)求最大值 min(expression)求最小值 avg(expression)求平均數(shù) count(expression)統(tǒng)計記錄數(shù)

      count(distinct colname)統(tǒng)計去除重復行記錄數(shù) nvl(comm,0)當comm為null時,用0替換

      列函數(shù)的使用

      ? 查詢員工的記錄數(shù),員工工資的總和,平均工資,最高工資,最低工資

      select count(*)count_emp,sum(sal)sum_sal, max(sal)max_sal,min(sal)min_sal, avg(sal)avg_sal from emp;

      列函數(shù)的使用-對null的處理

      ? 查詢所有員工的年收入

      select sum(sal+comm)from emp;SUM(SAL+COMM)-------------

      7800 注:當comm為null時,sal+comm是沒有結(jié)果值的

      select sum(sal)+sum(comm)from emp;SUM(SAL)+SUM(COMM)------------------

      31225

      select sum(sal+nvl(comm,0))from emp;SUM(SAL+NVL(COMM,0))--------------------

      31225

      ? 分組查詢

      語法格式

      select 列名...,列函數(shù) from 表名...where 條件...group by 列名...order by 列名...? 查詢每個部門的人數(shù)

      select deptno,count(*)from emp group by deptno;規(guī)則:如果在select字句中,有不在列函數(shù)中的列,則該列一定要出現(xiàn)在group by之后。

      分組查詢having字句的使用

      ? 顯示出平均工資大于2000的部門編號和平均工資 select deptno,avg(sal)from emp group by deptno having avg(sal)>2000;

      SQL語句的書寫順序

      select 列名,列函數(shù) from 表名 where 條件 group by列名 having 條件 order by 列名

      SQL語句的執(zhí)行順序

      from where group by having select order by

      ? 查詢20,30部門的平均工資,并將平均工資大于2000的輸出,輸出結(jié)果按平均工資排序 select deptno,avg(sal)from emp where deptno in(20,30)group by deptno having avg(sal)>2000 order by avg(sal);

      六、ORACLE_子查詢

      在where子句中使用子查詢

      ? 查詢工資比7654雇員工資高的全部雇員信息

      select * from emp where sal>(select sal from emp where empno=7654);子查詢-in的使用

      ? 查詢和smith或jones在同一部門,同一職位工作的員工

      select ename from emp where(deptno,job)in(select deptno,job from emp where ename in('SMITH','JONES'));

      子查詢-any的使用

      ? =any:與in操作符的效果一致

      查詢和smith或jones在同一部門,同一職位工作的員工

      select ename from emp where(deptno,job)=any(select deptno,job from emp where ename in('SMITH','JONES'));

      ? >any:只要大于子查詢中的任何一個值即可 select * from emp where sal>any(select min(sal)from emp group by deptno);

      ?

      select empno from emp where sal

      子查詢all的使用

      ? >all:比最大的值大

      select * from emp where sal>all

      (select min(sal)from emp group by deptno);注:select min(sal)from emp group by deptno結(jié)果為

      MIN(SAL)----------

      950

      800

      1300 是每個部門當中的最少工資。

      ?

      七、ORACLE_表的更新操作

      ? 創(chuàng)建表副本

      create table myemp as select * from emp;

      ? 插入 ? 到表中 insert的語法

      insert into 表名(字段名1,字段名2,......)values(值1,值2......)

      ? 為myemp中增加一條記錄 insert into myemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)values(7899,'張三','清潔工','7369','14-2月-2005',9000,300,40);注:給定的值要和指定的字段數(shù)一致。

      1.如果全部字段都插入值的話,那字段名可以省略。即:

      insert into 表名 values(值1,值2,.......);2.如果只是部分字段插入值的話,字段名又想省略的話,那么,其余沒有數(shù)據(jù)插入的字段用null填補。

      ? to_date:字符型轉(zhuǎn)換成日期型

      ? 批量插入記錄 格式:

      insert into 表名

      select 字段列表 from 表名 where 條件

      注:insert表和select表列數(shù)等都一致 例如:

      create table test as select * from emp;insert into test select * from emp;

      ? 修改記錄

      update表名set要修改的字段=新值,要修改的字段=新值,...where條件

      ? 將雇員號為7896的雇員的獎金修改為100 update myemp set comm=100 where empno=7896;注:執(zhí)行修改操作時,一定要使用where來指定修改的條件,否則會改變表中的所有記錄。

      ? 刪除記錄

      delete from 表名 where 條件

      ? 刪除雇員編號為7896的雇員信息 delete from myemp where empno=7896;注:執(zhí)行delete操作時,一定要使用where來指定修改的條件,否則會刪除表中所有的記錄。

      ? Oralce的事務(wù)處理

      commit:提交事務(wù) rollback:回滾操作

      注:操作一旦執(zhí)行了commit操作,就再也不能回滾操作了。

      八、ORACLE_表與視圖的管理

      ? oracle中的常見數(shù)據(jù)類型

      varchar、varchar2:表示一個字符串,有長度限制,為255 number:

      number(n):表示一個整數(shù),數(shù)字的長度是n,可以使用int number(n,m):表示一個小數(shù),數(shù)字的長度為n,整數(shù)長度m-n,可以使用float date:表示日期類型,日期要按照標準格式日期存放。clob:大對象,表示大文本數(shù)據(jù)類型,可存放4G。

      blob:大對象,表示二進制數(shù)據(jù),最大可以存放4G,如電影,圖片、歌曲

      ? 創(chuàng)建表 語法:

      create table 表名(字段名稱1 字段類型[default 默認值], 字段名稱1 字段類型[default 默認值],............字段名稱1 字段類型[default 默認值],);

      ? 復制表

      create table 表名 as(子查詢);注:當子查詢不成立時,如果1=2,則只復制表的結(jié)果,不復制表的數(shù)據(jù)。

      ? 刪除表 語法:

      drop table 表名;

      ? 修改表結(jié)構(gòu)

      ? 增加一列

      alter table 表名 add(列名稱 列數(shù)據(jù)類型 default 默認值)

      ? 刪除列 alter table 表名 drop column 列名稱;

      ? 修改列的數(shù)據(jù)類型

      alter table 表名稱 modify(列的名稱 列的類型 default 默認值);注:1.如果是更改數(shù)據(jù)的長度,則要求更改時,長度不能小于當前表中數(shù)據(jù)所具有的最大長度。

      2.如果是更改數(shù)據(jù)類型,則要求更改時,該列的所有記錄值都為空。

      ? 修改表結(jié)構(gòu)

      ? 為表重命名

      rename 舊表名 to 新表名;注:這是oracle特有的操作

      ? 將myemp表改名為iemp SQL> rename myemp to iemp;表已重命名。? 截斷表

      truncate table 表名;意義:清空表中的所有數(shù)據(jù),并且立即釋放資源,該操作是不可回滾。

      ? 約束-約束的分類

      主鍵約束:表示一個唯一的標識,本身不能為空 唯一約束:列值不允許重復

      檢查約束:檢查一個列的內(nèi)容是否合法

      非空約束:不能為空值,如用戶不能為空(no null)外鍵約束:在兩張表中進行約束的操作

      ? 主鍵約束(primary key)主鍵約束一般在id上使用,而且本身已經(jīng)默認了不能為空,主鍵約束可以在建表的時候指定 create table person(pid varchar2(18)primary key, name varchar(30), age number(3), sex varchar2(2)default'男');

      使用constraint指定

      constraint [k?n'streint] 約束;強制 create table person(pid varchar2(18), name varchar(30), age number(3), sex varchar2(2)default'男'

      constraint person_pid_pk primary key(pid););? 非空約束(not null)create table person(pid varchar2(18)primary key, name varchar(30)not null, age number(3), sex varchar2(2)default'男');

      ? 唯一約束(unique)create table person(pid varchar2(18)primary key, name varchar(30)unique not null, age number(3), sex varchar2(2)default'男');

      ? 視圖

      概念:一個視圖實質(zhì)是封裝了一條復雜的SQL語句

      ? 創(chuàng)建視圖 語法:

      create view 視圖名稱 as 子查詢

      ? 創(chuàng)建部門20員工的雇員信息

      create view empv20 as select * from emp where deptno=20;注:當創(chuàng)建視圖以后,可以像操作表一樣操作視圖。注:視圖的操作會影響到表的操作。

      with check option 不能更新創(chuàng)建視圖的條件 with read only 創(chuàng)建只讀視圖

      ? 刪除視圖 語法:

      drop view 視圖名稱

      注:當刪除視圖所在的表時,則視圖也不能被使用

      ? 序列

      創(chuàng)建序列語法:sequence ['si:kw?ns] create sequence 序列名稱;create sequence myseq;序列的操作:

      nextval:取得序列的下一個內(nèi)容 currval:取得當前序列的內(nèi)容

      ? 創(chuàng)建表驗證序列的操作

      create table testseq(next number,curr number);insert into testseq values(myseq.currval,myseq.nextval);

      ? 創(chuàng)建序列指定每次增長的增量

      create sequence myseq increment by 2;注:每次增長2

      ? 創(chuàng)建序列指定開始的序列,默認的序列從1開始。create sequence myseq increment by 2 start with 10;注:序列從10開始,每次增長2

      ? 創(chuàng)建一個序列1,3,5,7,9.create sequence myseq maxvalue 9 increment by 2 start with 1 cache 2 cycle;注:序列從1開始,每次增長2,最大值為9,循環(huán)兩次。

      下載ORACLE培訓總結(jié)word格式文檔
      下載ORACLE培訓總結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        oracle日期格式總結(jié)

        select to_char(sysdate,'yyyy')||'年'||to_char(sysdate,'mm')||'月'||to_char(sysdate,'dd')||'日'||to_char(sysdate,'hh24')||'時'||to_char(sysdate,'mi')||'分'||to_c......

        linux、oracle自我總結(jié)

        Linux和oracle知識點總結(jié) 實現(xiàn)接口和方法的快捷鍵:ctrl+t activity生命周期: log類簡單的使用方法 log.vdiwe ctrl+alt+上或下鍵復制光標以下部分并粘貼在下面 *** 湯......

        oracle實訓總結(jié)★

        Oracle實訓 總結(jié)系別:班級: 姓名:學號:日期: 實訓總結(jié): 由于感到oracle實訓擔子很重,而自己的學識、能力和閱歷與其任職都有一定的距離,所以總不敢掉以輕心,總在學習,向書本學習、向周......

        Oracle數(shù)據(jù)庫學習總結(jié)

        Oracle數(shù)據(jù)庫學習總結(jié)1.set linesize xx; 設(shè)置行間距,常用數(shù)值有100,200,300 2.set pagesize xx; 設(shè)置每頁顯示行數(shù) 3.ed x ; 表示新建一個x.sql文件,通過文件編輯SQL語句,然后用......

        Oracle臨時表總結(jié)

        Oracle臨時表總結(jié) 臨時表概念 臨時表就是用來暫時保存臨時數(shù)據(jù)(亦或叫中間數(shù)據(jù))的一個數(shù)據(jù)庫對象,它和普通表有些類似,然而又有很大區(qū)別。它只能存儲在臨時表空間,而非用戶的表......

        oracle語句總結(jié)(5篇)

        1、 時間查詢語句 select * from table where date= to_date('2013-01-27','yyyy-mm-dd') 2、 單引號、雙引號 數(shù)字不需要 字符串用單引號 雙引號一般是用來轉(zhuǎn)義的,如果alias......

        Oracle數(shù)據(jù)庫總結(jié)范文

        創(chuàng)建表及命名規(guī)則? 表名和列名: 必須以字母開頭 必須在1–30個字符之間 必須只能包含A–Z, a–z, 0–9, _, $, 和# 必須不能和用戶定義的其他對象重名 必須不能是Oracle 的保......

        ORACLE服務(wù)器個人總結(jié)

        ORACLE服務(wù)器安裝 以下如沒有特殊聲明 均使用默認設(shè)置。 安裝時的2個重要文件 1:Oracle Net Services9.2.0.1.0->Oracle Net Listener9.2.0.1.0 監(jiān)聽端口 2:Oracle Managemen......