楓中暢游

          關(guān)注技術(shù),熱愛生活
          隨筆 - 15, 文章 - 0, 評(píng)論 - 3, 引用 - 0
          數(shù)據(jù)加載中……

          2012年8月5日

          linux系統(tǒng)之上搭建maven 之nexus服務(wù)篇

                 今天剛好有點(diǎn)時(shí)間,就想在公司的服務(wù)器搭建一個(gè)私服,以便以后可以唯我所用,當(dāng)然前提是服務(wù)器最好可以上網(wǎng),否則還需要配置代理服務(wù)器,前兩天剛好把服務(wù)器的網(wǎng)絡(luò)給配置了下,這邊就不詳述了!大家一定著急了吧,稍安務(wù)燥,這就進(jìn)入正題,O(∩_∩)O~

                  linux安裝過程和window主機(jī)還是差別挺大的。

          1.下載nexus集成版

          到這個(gè)地方http://www.sonatype.org/nexus/go 下載壓縮包,我這邊下載的是nexus-2.0.3-bundle.tar.gz這個(gè)版本。

          2. 解壓到相應(yīng)的目錄

          tar  -xzvf  nexus-2.0.3-bundle.tar.gz , 我這邊放在/home/linjx/opendev/nexus-2.0.3目錄下。

           

          3. 設(shè)置為系統(tǒng)服務(wù)

          這里需要使用root權(quán)限,具體請(qǐng)看http://books.sonatype.com/nexus-book/reference/install-sect-service.html

          簡(jiǎn)單如下:

          # cd  /etc/init.d

          # cp  /home/linjx/opendev/nexus-2.0.3/bin/jsw/linux-x86-64/nexus ./nexus

          # chmod 755 nexus

          # chkconfig --add nexus

          # chkconfig --levels 345 nexus on

           

          4. 編輯/etc/init.d/nexus的文本

          4.1. 添加以下變量

          RUN_AS_USER=linjx    ## 這個(gè)主要為了后面使用,不需要使用root用戶啟動(dòng)服務(wù)

          NEXUS_HOME=/home/linjx/opendev/nexus-2.0.3/

          PLATFORM=linux-x86-64

          PLATFORM_DIR="${NEXUS_HOME}/bin/jsw/${PLATFORM}"

          4.2. 修改以下變量

          WRAPPER_CMD="${PLATFORM_DIR}/wrapper"

          WRAPPER_CONF="${PLATFORM_DIR}/../conf/wrapper.conf"

           

           

          PIDDIR="${NEXUS_HOME}"

           

          5. 啟動(dòng)服務(wù)

          切換會(huì)自己的用戶,不需要使用root用戶;

          # service nexus start

           

          這個(gè)大家出現(xiàn)什么情況,是不是失敗了!界面上出現(xiàn) :Could not write pid file /etc/rc.d/init.d/./nexus.pid: Permission denied通過查看日志文件:

          fzdev#[/home/linjx/opendev/nexus-2.0.3/logs] cat w*  

          wrapper  | ERROR: Could not write pid file /etc/rc.d/init.d/./nexus.pid: Permission denied

           

          怎么辦呢,根據(jù)信息提示,nexus.pid無法寫入,應(yīng)該還是權(quán)限問題,這個(gè)應(yīng)該跟啟動(dòng)當(dāng)前服務(wù)有關(guān)。

           

          查文檔http://books.sonatype.com/nexus-book/reference/install-sect-service.html后發(fā)現(xiàn),一有段信息沒有配置,

          Change PIDDIR to a directory where this user has read/write permissions. In most Linux distributions, /var/run is only writable by root. The properties you need to add to customize the PID file location is "wrapper.pid". For more information about this property and how it would be configured in wrapper.conf, see: http://wrapper.tanukisoftware.com/doc/english/properties.html

           

          大概意思就是服務(wù)啟動(dòng)時(shí)無法寫入pid,就是說init.d這個(gè)目錄當(dāng)前用戶是沒有權(quán)限寫的,怎么辦呢。可以自定義pid寫入目錄,那么在哪里配置呢,是不是又想起了wrapper.conf了,其他文檔中也說明了。

          好吧,那就再加個(gè)配置吧,這樣:PIDDIR="/home/linjx/piddir"

           

          然后再啟動(dòng)服務(wù),果然成功了!具體可以看看附件中的詳細(xì)的日志!



           

          6. 啟動(dòng)之后,可以登錄首頁查看nexus的界面

          http://192.168.1.26:8081/nexus/index.html

           

          默認(rèn)管理員用戶名/密碼: admin/admin123

           



           

          posted @ 2013-08-21 09:32 javalinjx 閱讀(14956) | 評(píng)論 (2)編輯 收藏

          使用leiningen搭建clojure開發(fā)環(huán)境

          首先來講下Leiningen是什么東東?

          Leiningen是一個(gè)用于自動(dòng)化(構(gòu)建)clojure項(xiàng)目的工具。

          它可以做到:

              創(chuàng)建新項(xiàng)目

              管理你的項(xiàng)目的依賴關(guān)系

              運(yùn)行測(cè)試

              運(yùn)行一個(gè)REPL(讀取-求值-打印循環(huán):read-eval-print loop)

              編譯java源碼

              運(yùn)行項(xiàng)目

              為項(xiàng)目產(chǎn)生一個(gè)Maven風(fēng)格的POM文件

              為了部署,編譯和打包項(xiàng)目

              發(fā)布類庫到Maven倉(cāng)庫,例如Clojars

              運(yùn)行Clojure編寫的自定義的自動(dòng)化任務(wù)(稱為L(zhǎng)einingen插件)

              ... 具體可以查看國(guó)內(nèi)的大牛(killme2008)翻譯的Leiningen教程中文版的詳細(xì)介紹。

          好些話說多了點(diǎn),大家別著急啊,馬上就切入主題:

          1. 下載安裝Leiningen

             linux: 

                  1. 確保你是jdk 6 版本以下的。

                  2. 下載腳本lein

                  3. 把lein加入下當(dāng)前的$path下(~/bin 是最好的選擇)

                  4. 賦可執(zhí)行權(quán)限(chmod 755 ~/bin/lein)

            windows:

                  1. 可以直接下載打包好的文件,地址是:Leiningen for windows

                  2. 點(diǎn)擊下載好的*.exe文件進(jìn)行安裝

                  3. 安裝好后,可以查看環(huán)境變量中會(huì)有相應(yīng)的變量被設(shè)置好了:

                   lein.bat is added to your PATH variable.

                  LEIN_JAVA_CMD is set to point to your selected JDK, and the :java-cmd property is set in your              user profile in profiles.clj.

                  

                  接下來,打開命令窗口,輸入命令:lein self-install  ,會(huì)自動(dòng)下載安裝leiningen 相關(guān)的jar文件。

                 

                 驗(yàn)證下安裝成果: 在命令窗口中輸入lein repl ,會(huì)自動(dòng)連上nREPL server,進(jìn)入repl模式,如下所示:

           

                

          Shell代碼  收藏代碼
          1. C:\Users\linjx>lein repl  
          2. nREPL server started on port 21912  
          3. REPL-y 0.2.0  
          4. Clojure 1.5.1  
          5.     Docs: (doc function-name-here)  
          6.           (find-doc "part-of-name-here")  
          7.   Source: (source function-name-here)  
          8.  Javadoc: (javadoc java-object-or-class-here)  
          9.     Exit: Control+D or (exit) or (quit)  
          10.   
          11. user=>  

           

              如果出現(xiàn)上面的提示,則說明leiningen安裝成功,你可以在使用leiningen開發(fā)你的clojure之旅了。

              但是往往我們不滿足于現(xiàn)狀,希望可以更有效的使用lein編寫clojure。類似java的idea,eclipse一樣,都對(duì)編寫java提供了強(qiáng)大的工具,那么我們可以選擇什么樣的工具呢,毫無疑問,Emacs是最合適的工具,沒有之一:)

               對(duì)于我這斷斷續(xù)續(xù)學(xué)習(xí)emacs的來說,還真不是不容易,昨晚查看了相關(guān)的e文說明,在emacs中成功裝配了nrepl ,用以后續(xù)的開發(fā)學(xué)習(xí),便記錄一下,希望對(duì)自己以后查閱,以及需要的人有所幫助。

               首先,我本地有emacs 24 版本的, 這里不想講emacs 的安裝,這個(gè)大家自個(gè)兒查詢下google便可以了。

               在安裝好leiningen之后,現(xiàn)在進(jìn)入nrepl的主頁看看,這是個(gè)什么東東!

               nrepl.el is an Emacs client for nREPL,the Clojre networked REPL server.It's a great alternative to the now deprecated combination fo SLIME + swank-clojure.

              nrepl.el是emacs作為nrepl的一個(gè)客戶端,nrepl是一個(gè)反對(duì)目前slime+swank-clojure組合的最好的替代品。

               下面來看下如何安裝nrepl.el:

                1. emacs 24 以及更高版本是構(gòu)建在package.el之上的,但是emacs 23以下版本的,你需要自己獲取package.el .

                雖然我的是24版本的,但是我也下載了package.el,并存放在     C:\Users\linjx\AppData\Roaming\.emacs.d 目前下,這個(gè)是我的emacs在windows下的配置目錄。

                2. 這里需要提一個(gè)文件,即 .emacs 文件,這個(gè)是emacs初始化配置的文件,位于C:\Users\linjx\AppData\Roaming 目錄下。

                   如果你不需要使用Marmalade,則添加配置 到 .emacs文件中,如下所示:

           

          Lisp代碼  收藏代碼
          1. (require 'package)  
          2. (add-to-list 'package-archives  
          3.              '("marmalade" . "http://marmalade-repo.org/packages/"))  
          4. (package-initialize)  

           

           由于使用MELPA the code ,需要添加配置到 .emacs文件中,

               

          Lisp代碼  收藏代碼
          1. (require 'package)  
          2. (add-to-list 'package-archives  
          3.              '("melpa" . "http://melpa.milkbox.net/packages/") t)  
          4. (package-initialize)  

           

            在emacs中打開.emacs文件,并M-x eval-buffer,執(zhí)行當(dāng)前的配置。

              

               3.  刷新配置

          Lisp代碼  收藏代碼
          1. M-x package-refresh-contents  回車  

               emacs會(huì)自動(dòng)下載安裝Marmalade , melpa相關(guān)的配置;

           

               4. 安裝nrepl

                   輸入命令 

          命令代碼  收藏代碼
          1. M-x package-install 回車  
          2.        nrepl 回車  

           

               致此,nrepl集成到emacs的安裝完畢,可以使用emacs開發(fā)你的hello world!了。

          ( 當(dāng)然,emacs還可以與其他集成用來clojure的開發(fā),這里我就不詳述了,畢竟沒有使用!)

           

          現(xiàn)在我們使用lein new 一個(gè)clojure項(xiàng)目出來:

          1. $  lein new hello

           

          2. 打開emacs,在buffer中打開 hello所在的目錄下的project.clj文件

           

          3. 輸入命令:M-x nrepl-jack-in,即可初始化一個(gè)nrepl server  和 nrepl client

          如下圖所示:



           

           

          posted @ 2013-07-03 13:40 javalinjx 閱讀(8284) | 評(píng)論 (0)編輯 收藏

          git命令記錄

          從服務(wù)器創(chuàng)建一個(gè)本地倉(cāng)庫的clone版本:

          git clone /path/to/repository

          如果是遠(yuǎn)端服務(wù)器上的倉(cāng)庫,你的命令是這樣:

          git clone username@host:/path/to/repository

          多種方式的URI

           

          git add <filename>

          git add *

          git commit -m "代碼提交信息"

           

          將本地倉(cāng)庫的head中的東西提交到遠(yuǎn)程服務(wù)器上:

          git push origin master(分支名)

          欲將本地的倉(cāng)庫連接到某個(gè)遠(yuǎn)程服務(wù)器

          git remote add origin <server>

           

          持續(xù)補(bǔ)充,作為自己查詢使用

          posted @ 2013-07-03 12:18 javalinjx 閱讀(267) | 評(píng)論 (0)編輯 收藏

          Junit 學(xué)習(xí)筆記

          上周空閑,看完了《單元測(cè)試之道》,這里對(duì)自己的學(xué)習(xí)做個(gè)小結(jié),以便以后查閱: 

           

          一般原則:
          測(cè)試任何可能失敗的地方。
          測(cè)試任何已經(jīng)失敗的地方。
          對(duì)于新加的代碼,在被證明正確之前,都可能是有問題的。
          至少編寫和產(chǎn)品代碼一樣多的測(cè)試代碼。
          針對(duì)每次編譯都做局部測(cè)試。
          簽入代碼之前做全局測(cè)試。
          需要回答的問題:
          我如何知道代碼運(yùn)行是否正確呢?
          我要如何對(duì)它進(jìn)行測(cè)試?
          還有哪些方面可能會(huì)發(fā)生錯(cuò)誤?
          這個(gè)問題是否會(huì)在其他的地方出現(xiàn)呢?
          測(cè)試哪些方面 :使用junit 測(cè)試的6個(gè)方面,統(tǒng)稱為:Right-BICEP:
          Right --- 結(jié)果是否正確?
          B --- 是否所有的邊界條件都是正確?
          I --- 能查一下反向關(guān)聯(lián)嗎?
          C --- 能用其他手段交叉檢查一下結(jié)果嗎?
          E --- 你是否可以強(qiáng)制錯(cuò)誤條件發(fā)生?
          P --- 是否滿足性能要求?
          編寫測(cè)試用例原則,correct邊界條件:
          conformance (一致性)-- 值 是否和預(yù)期的一致。
          Ordering(順序性)--一組值是該有序或者無序的。
          Range(區(qū)間性)--值是否位于合理的最小值和最大值之內(nèi)。
          Reference(引用 、耦合性)--代碼是否引用了一些不在代碼本身控制范圍之內(nèi)的外部資源。
          Existence(存在性)--值是否存在(例如,是否是非null,非0,在一個(gè)集合中等等)。
          Cardinatity(基數(shù)性)--是否恰好有足夠的值?
          Time(相對(duì)或者絕對(duì)的時(shí)間性)--所有事情的發(fā)生是否是有序的?是否是在正確的時(shí)刻?是否恰好及時(shí)?
          環(huán)境方面的因素:
          內(nèi)存耗光。
          磁盤用滿。
          時(shí)鐘出問題。
          網(wǎng)絡(luò)不可用或者有問題。
          系統(tǒng)過載。
          調(diào)色板顏色數(shù)目有限。
          顯示分辨率過高或者過低。
          0-1-n 原則
          Mock對(duì)象:
          真實(shí)對(duì)象具有不可確定的行為(產(chǎn)生不可預(yù)測(cè)的結(jié)果,如股票行情)
          真實(shí)對(duì)象很難被創(chuàng)建
          真實(shí)對(duì)象的某些行為很難觸發(fā)(如網(wǎng)絡(luò)錯(cuò)誤)。
          真實(shí)對(duì)象令程序的運(yùn)行速度很慢。
          真實(shí)對(duì)象有(或者是)用戶界面。
          測(cè)試需要詢問真實(shí)對(duì)象它是如何被調(diào)用的(例如,測(cè)試可能需要驗(yàn)證某個(gè)回調(diào)函數(shù)是否被調(diào)用了)。
          真實(shí)對(duì)象實(shí)際上并不存在(當(dāng)需要和其他開發(fā)小組,或者新的硬件系統(tǒng)打交道的時(shí)候,這是一個(gè)普遍問題)。
          借助于mock對(duì)象,我們就可以解決上面提到的所有問題。在使用mock對(duì)象進(jìn)行測(cè)試的時(shí)候,總共有3個(gè)步驟,分別是:
          1. 使用一個(gè)接口來描述這個(gè)對(duì)象。
          2. 為產(chǎn)品代碼實(shí)現(xiàn)這個(gè)接口。
          3. 以測(cè)試為目的,在mock對(duì)象中實(shí)現(xiàn)這個(gè)接口。
          mock提供了所有系統(tǒng)功能的現(xiàn)成接口,所以在更多的時(shí)候,人們可能(也許吧)會(huì)使用它而不是直接調(diào)用諸如System.currentTimeMillis()這樣的東西,而是躲在接口背后擁有了控制一切行為的能力。
          這就是mock對(duì)象的全部;偽裝出真實(shí)世界的某些部分,使你可以集中精力測(cè)試好自己編寫的代碼。讓我們接下來看看更加復(fù)雜的例子吧。
          好的測(cè)試是一個(gè)A-TPIP:
          1. 自動(dòng)化 (Automatic).  調(diào)用測(cè)試自動(dòng)化和檢查結(jié)果自動(dòng)化。
          2. 徹底的 (Thorough).
          3. 可重復(fù) (Repeatable).
          4. 獨(dú)立的 (Independent).
          5. 專業(yè)的 (Professional).
          在你發(fā)現(xiàn)bug時(shí),所需要做的就是以下四個(gè)步驟:
          1.驗(yàn)明bug;
          2.編寫一個(gè)將失敗的測(cè)試來證明bug的存在。
          3.修正代碼,讓測(cè)試通過。
          4.驗(yàn)證所有的測(cè)試仍然可以通過(也就是,你沒有在修補(bǔ)的時(shí)候損壞其他的測(cè)試)。
          測(cè)試的頻率:
          1.編寫新的函數(shù)    編譯并運(yùn)行本地的單元測(cè)試。
          2.修正bug    運(yùn)行測(cè)試來讓bug現(xiàn)形;修并再次運(yùn)行單元測(cè)試。
          3.每次成功編譯之后   運(yùn)行本地的單元測(cè)試。
          4.每次對(duì)版本控制的簽入   運(yùn)行所有的模塊或者系統(tǒng)的單元測(cè)試。
          5. 持續(xù)不斷地   應(yīng)當(dāng)有一臺(tái)專門的機(jī)器來運(yùn)行完整的構(gòu)建和測(cè)試。每次都應(yīng)該從頭開始,并且整天自動(dòng)運(yùn)行(要么是周期性的,要么是每當(dāng)有版本控制的簽入行為的時(shí)候)
          編碼和評(píng)審以這樣的順序進(jìn)行:
          1. 編寫test case 和/或測(cè)試代碼。
          2. 評(píng)審test case 和/或測(cè)試代碼。
          3. 經(jīng)評(píng)審修改test case 和/或測(cè)試代碼。
          4. 編寫能通過所有測(cè)試的產(chǎn)品代碼。
          5. 評(píng)審產(chǎn)品代碼和測(cè)試代碼。
          6. 在每次評(píng)審后,修改測(cè)試代碼和產(chǎn)品代碼。
          在某些機(jī)器上測(cè)試失敗:
          這究竟是為什么呢?這些機(jī)器之間有什么區(qū)別呢?
          比較明顯的答案可能是下面這些資源的差異:操作系統(tǒng)版本號(hào)、運(yùn)行庫、java運(yùn)行引擎、數(shù)據(jù)庫驅(qū)動(dòng)等。
          統(tǒng)一使用junit 方法的setup 和 tearDown方法。

          posted @ 2013-06-17 09:52 javalinjx 閱讀(325) | 評(píng)論 (0)編輯 收藏

          2012年個(gè)人總結(jié)

             本來這個(gè)總結(jié)要到31號(hào)寫的,結(jié)果太忙了,到了今天才有時(shí)間做個(gè)總結(jié)。
             首先,工作上,從去年的PPM項(xiàng)目一直延續(xù)到今年4月份,終于暫時(shí)告一個(gè)段落了。基本上沒有什么收獲,架構(gòu)陳舊,設(shè)計(jì)原始。。一向?qū)τ诖a要求相對(duì)比較嚴(yán)格的我,實(shí)在是重構(gòu)到快吐了。耦合度太高了,不知道之前寫的人是怎么過來的,心里還挺佩服他可以把這個(gè)項(xiàng)目做出來。總體上經(jīng)歷了幾個(gè)項(xiàng)目的開發(fā),實(shí)施。從java技術(shù)陣營(yíng)出來,接觸到了C,C++,linux等技術(shù),對(duì)于
          自己的技術(shù)儲(chǔ)備又增添了一磚,但都僅限于了解,還達(dá)不到熟悉水平。也許是自己就是喜歡java技術(shù)吧!
             今年基本上都在外奔波,我和老婆都在外面,話說那會(huì)兒她在帝都,我在天津,于是上半年經(jīng)常兩地往返,京津高跌成了我最常用的交通工具:)
              從2011年來公司快兩年了,發(fā)現(xiàn)自己的開始技術(shù)上沒有太多的長(zhǎng)進(jìn),只是自己平時(shí)出于對(duì)技術(shù)的愛好,才能勉強(qiáng)知道相關(guān)的新技術(shù)的發(fā)展,但是還是缺少實(shí)踐。也許再這樣下去,我就搞不了技術(shù)了。一直渴望有機(jī)會(huì)去淘寶一試,但是確由于種種原因未能達(dá)成。
             當(dāng)然今年還有一件重要的事,我們買房了,正式告別了租房的時(shí)代,成為了房奴中的一員,哈!這一年,基本沒有關(guān)注其他的國(guó)事,或者經(jīng)濟(jì),當(dāng)時(shí)釣魚島事情還是知道的。這一年中,從閱讀中得到了不少的收獲,看了劉未鵬的〈暗時(shí)間〉,看了李笑來的〈把時(shí)間當(dāng)作朋友〉,為何我要提這兩本書呢,因?yàn)樗齻儙Ыo我了比較多的幫助,雖然有些事情自己也是這么做著,但是卻沒有堅(jiān)持,雖然一些事情一直在堅(jiān)持,卻不知道為何要堅(jiān)持!當(dāng)然還有技術(shù)方面的書籍,這里我就不多說了,可以查看這里http://www.douban.com/people/davylin/ 。   
             今年才看了兩部電影(和老婆一起看的):一個(gè)是太極,一個(gè)是泰囧。話說這個(gè)太極真是讓人失望,感覺導(dǎo)演故意刪減了劇情。
             下面曬一下2012年的榜單:年度電影:泰囧;年度圖書:《暗時(shí)間》《把時(shí)間當(dāng)作朋友》;年度音樂:我的歌聲里,因?yàn)閻矍椋荒甓燃夹g(shù):clojure(代表人物:dennis)。
             這一年中接觸到的新技術(shù)有nosql,node.js,clojure,當(dāng)然還有hadoop,android,ios等等,但都僅限于了解,并沒有真正的開始實(shí)踐,也無從實(shí)踐,不知道是否有牛人可以指引。
             今年還參與了ROP的前期調(diào)研,本想?yún)⑴c開發(fā),但后面卻不了了之。參與了anyous的android的客戶端開發(fā),結(jié)果創(chuàng)新無門,但是現(xiàn)在還在繼續(xù)中。
             通過新浪微博,認(rèn)識(shí)了很多淘寶系的牛人(這里不一一列舉),一步步向他們學(xué)習(xí)著,在接觸到的新技術(shù)中,不乏e文資料,深感個(gè)人英文水平是軟脅。特別是認(rèn)識(shí)了美味系的相關(guān)名人,有dennis,sunng,還有胡狼拜月,哈哈,在人脈上似乎收獲不少,但是看過書上寫的,不是你認(rèn)識(shí)的人多,還是認(rèn)識(shí)你的人多了,才會(huì)成為真正的人脈。
             通過今天的學(xué)習(xí),對(duì)于去年定下的目標(biāo)基本上都達(dá)到了,但是對(duì)于java和oracle還是沒有達(dá)到自己認(rèn)為應(yīng)有的高度。(此時(shí),taobao卻又在去O運(yùn)動(dòng),這是鬧哪門子呢!)
             總之,有所得必有所失,今天失去的就是去老婆相處的時(shí)光,希望明天不要出差了:)
             下面說說2013年的展望:
             希望自己可以在所擅長(zhǎng)的方向有所突破,可以在一個(gè)比較有潛力的團(tuán)隊(duì),使用自己喜歡的語言,對(duì)于技術(shù)人才高度重視的環(huán)境里繼續(xù)成長(zhǎng)。希望可以去兩個(gè)地方好好休假,體驗(yàn)美好的自然風(fēng)光。希望交到一些志同道合的朋友,一起開創(chuàng)未來!
             

          posted @ 2013-01-06 14:16 javalinjx 閱讀(378) | 評(píng)論 (1)編輯 收藏

          SQL 21 天自學(xué)通學(xué)習(xí)筆記 5

          1. 用戶操作:

           

              創(chuàng)建:


          1. CREATE USER user  
          2. IDENTIFIED {BY password | EXTERNALLY}  
          3. [DEFAULT TABLESPACE tablespace]  
          4. [TEMPORARY TABLESPACE tablespace]  
          5. [QUOTA {integer [K|M] | UNLIMITED} ON tablespace]  
          6. [PROFILE profile]  
           

           

              修改:

           

          1. ALTER USER user  
          2. [IDENTIFIED {BY password | EXTERNALLY}]  
          3. [DEFAULT TABLESPACE tablespace]  
          4. [TEMPORARY TABLESPACE tablespace]  
          5. [QUOTA {integer [K|M] | UNLIMITED} ON tablespace]  
          6. [PROFILE profile]  
          7. [DEFAULT ROLE { role [, role] ...  
          8. ALL [EXCEPT role [, role] ...] | NONE}]  
           

           

              刪除:

           

          1. DROP USER user_name [CASCADE]  
            

              授權(quán),撤銷權(quán)限:

           

          1. GRANT role TO user [WITH ADMIN OPTION]  
          2.   
          3. REVOKE role FROM user  
           

           

              系統(tǒng)允許 賦于整個(gè)系統(tǒng)的權(quán)限給用戶,角色等:

           

          1. GRANT system_privilege TO {user_name | role | PUBLIC}  
          2. [WITH ADMIN OPTION]  
           

              如果使用了WITH ADMIN OPTION 選項(xiàng)就允許擁有該權(quán)限的人將該權(quán)限應(yīng)用給其它

              的用戶。

           

           

              你可以使用下邊的GRANT 語句來對(duì)其它用戶授權(quán)訪問你的表

           

          1. GRANT {object_priv | ALL [PRIVILEGES]} [ (column  
          2. [, column]...) ]  
          3. [, {object_priv | ALL [PRIVILEGES]} [ (column  
          4. [, column] ...) ] ] ...  
          5. ON [schema.]object  
          6. TO {user | role | PUBLIC} [, {user | role | PUBLIC}] ...  
          7. [WITH GRANT OPTION]  
           

           

              如果你想取消對(duì)某個(gè)對(duì)象對(duì)于某人的授權(quán)你可以使用REVOKE 語句語法如下

           

          1. REVOKE {object_priv | ALL [PRIVILEGES]}  
          2. [, {object_priv | ALL [PRIVILEGES]} ]  
          3. ON [schema.]object  
          4. FROM {user | role | PUBLIC} [, {user | role | PUBLIC}]  
          5. [CASCADE CONSTRAINTS]  
            

          posted @ 2012-08-05 11:44 javalinjx 閱讀(266) | 評(píng)論 (0)編輯 收藏

          SQL 21 天自學(xué)通學(xué)習(xí)筆記 4

          1. insert select 用法:

           

          insert into tablename1 (col1,col2)

          select col1,col2 from tablename2 ;

           

          2.  刪除表:

           

          drop table ovner.tablename;

           

          3. 創(chuàng)建視圖:

           

          CREATE VIEW <view_name> [(column1, column2...)] AS

          SELECT <table_name column_names>

          FROM <table_name>

          在視圖的select 語句中使用約束是必然的,在使用select 語句中可以應(yīng)用下邊兩個(gè)規(guī)則:

          a. 不能使用union操作;

          b. 不能使用order by 子句但是在視圖中使用group by 子句可以有order by 子句相同的功能;

           

          還要注意:1. 對(duì)于多表視圖你不能使用delete 語句;2.除非底層表的所有非空列都已經(jīng)在視圖中

          出現(xiàn),否則你不能使用insert語句;

           

          4. 索引  index:

           

          CREATE INDEX index_name ON table_name(column_name1, [column_name2], ...)

           

          CREATE INDEX  [schema.]index ON { [schema.]table (column [!!under!!ASC|DESC] [, column [!!under!!ASC|DESC]]  ...) | CLUSTER [schema.]cluster }

           

             當(dāng)表被刪除時(shí),所有與表相關(guān)的索引也將被刪除.

          posted @ 2012-08-05 11:23 javalinjx 閱讀(293) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 镇平县| 东山县| 宜君县| 开原市| 延吉市| 镇坪县| 宁波市| 横峰县| 建水县| 榕江县| 弥勒县| 宜宾县| 靖西县| 永仁县| 璧山县| 榆中县| 南部县| 舞钢市| 公主岭市| 新巴尔虎左旗| 宝鸡市| 潢川县| 拜泉县| 万源市| 台州市| 富川| 武冈市| 涟水县| 施甸县| 鄂尔多斯市| 天镇县| 宜良县| 西青区| 双峰县| 女性| 河北区| 绥滨县| 林甸县| 舟山市| 沛县| 故城县|