SELECT?部門編號,部門名稱,部門所在地,count(員工表.*),avg(員工表.sal),max(員工表.sal),min(員工表.sal)?from??dept?LEFT?JOIN?員工表?on?dept.deptid=員工表.deptid?group?by?deptid
成都創(chuàng)新互聯(lián)是一家專注于成都網站建設、做網站與策劃設計,樺川網站建設哪家好?成都創(chuàng)新互聯(lián)做網站,專注于網站建設十余年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:樺川等地區(qū)。樺川做網站價格咨詢:18982081108
SELECT? 部門表.部門編號,部門表.部門名稱,部門表.部門所在地 FROM? 部門表 INNER JOIN 員工表 ON 部門表.部門編號=員工表.部門編號 GROUP BY 部門表.部門編號 HAVING (COUNT(員工表.*)3) AND (AVG(員工表.工資)1500)
SELECT 工資等級,COUNT(*),AVG(工資) FROM 員工表 GROUP BY 工資等級
好累,不寫了?。。。?/p>
Oracle操作系統(tǒng)認證方式
在Oracle數(shù)據庫系統(tǒng)中,用戶如果要以特權用戶身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle數(shù)據庫可以有兩種身份驗證的方法: 即使用與操作系統(tǒng)集成的身份驗證或使用Oracle數(shù)據庫的密碼文件進行身份驗證。因此,管理好密碼文件,對于控制授權用戶從遠端或本機登錄Oracle數(shù)據庫系統(tǒng),執(zhí)行數(shù)據庫管理工作,具有重要的意義。 Oracle數(shù)據庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權用戶的用戶名/口令,它一般存放在ORACLE_HOME\DATABASE目錄下。
一、 密碼文件的創(chuàng)建:
在使用Oracle Instance Manager創(chuàng)建一數(shù)據庫實例的時侯,在ORACLE_HOME\DATABASE目錄下還自動創(chuàng)建了一個與之對應的密碼文件,文件名為PWDSID.ORA,其中SID代表相應的Oracle數(shù)據庫系統(tǒng)標識符。此密碼文件是進行初始數(shù)據庫管理工作的基礎。在此之后,管理員也可以根 據需要,使用工具ORAPWD.EXE手工創(chuàng)建密碼文件,命令格式如下: C:\ ORAPWD FILE= FILENAME PASSWORD = PASSWORD ENTRIES= MAX_USERS
各命令參數(shù)的含義為:
FILENAME:密碼文件名;
PASSWORD:設置INTERNAL/SYS帳號的口令;
MAX_USERS:密碼文件中可以存放的最大用戶數(shù),對應于允許以SYSDBA/SYSOPER權限登錄數(shù)據庫的最大用戶數(shù)。由于在以后的維護中,若 用戶數(shù)超出了此限制,則需要重建密碼文件,所以此參數(shù)可以根據需要設置得大一些。有了密碼文件之后,需要設置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態(tài)。
二、 設置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE:
在Oracle數(shù)據庫實例的初始化參數(shù)文件中,此參數(shù)控制著密碼文件的使用及其狀態(tài)。它可以有以下幾個選項: NONE:指示Oracle系統(tǒng)不使用密碼文件,特權用戶的登錄通過操作系統(tǒng)進行身份驗證; EXCLUSIVE:指示只有一個數(shù)據庫實例可以使用此密碼文件。只有在此設置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息,即允許將系統(tǒng)權限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶。 SHARED:指示可有多個數(shù)據庫實例可以使用此密碼文件。在此設置下只有INTERNAL/SYS帳號能被密碼文件識別,即使文件中存有其他用戶的信息,也不允許他們以SYSOPER/SYSDBA的權限登錄。此設置為缺省值。在REMOTE_LOGIN_PASSWORDFILE參數(shù)設置為EXCLUSIVE、SHARED情況下,Oracle系統(tǒng)搜索密碼文件的次序為: 在系統(tǒng)注冊庫中查找ORA_SID_PWFILE參數(shù)值(它為密碼文件的全路徑名); 若未找到,則查找ORA_PWFILE參數(shù)值;若仍未找到,則使用缺省值ORACLE_HOMEDATABASE\PWDSID.ORA;其中的SID代表相應的Oracle數(shù)據庫系統(tǒng)標識符。
三、 向密碼文件中增加、刪除用戶:
當初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE設置為EXCLUSIVE時,系統(tǒng)允許除INTERNAL/SYS以外的其他用戶以管理員身份從遠端或本機登錄 到Oracle數(shù)據庫系統(tǒng),執(zhí)行數(shù)據庫管理工作;這些用戶名必須存在于密碼文件中,系統(tǒng)才能識別他們。由于不管是在創(chuàng)建數(shù)據庫實例時自動創(chuàng)建的密碼文件,還是使用工具ORAPWD.EXE手工創(chuàng)建的密碼文件,都只包含INTERNAL/SYS用戶的信息;為此,在實際操作中,可能需要向密碼文 件添加或刪除其他用戶帳號。
由于僅被授予SYSOPER/SYSDBA系統(tǒng)權限的用戶才存在于密碼文件中,所以當向某一用戶授予或收回SYSOPER/SYSDBA系統(tǒng)權限時,他們的 帳號也將相應地被加入到密碼文件或從密碼文件中刪除。由此,向密碼文件中增加或刪除某一用戶,實際上也就是對某一用戶授予或收回 SYSOPER/SYSDBA系統(tǒng)權限。
要進行此項授權操作,需使用SYSDBA權限(或INTERNAL帳號)連入數(shù)據庫,且初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE的設置必須為 EXCLUSIVE。具體操作步驟如下:創(chuàng)建相應的密碼文件; 設置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE; 使用SYSDBA權限登錄: CONNECT SYS/internal_user_passsword AS SYSDBA; 啟動數(shù)據庫實例并打開數(shù)據庫; 創(chuàng)建相應用戶帳號,對其授權(包括SYSOPER和SYSDBA): 授予權限:GRANT SYSDBA TO user_name; 收回權限:REVOKE SYSDBA FROM user_name;現(xiàn)在這些用戶可以以管理員身份登錄數(shù)據庫系統(tǒng)了;
四、 使用密碼文件登錄:
有了密碼文件后,用戶就可以使用密碼文件以SYSOPER/SYSDBA權限登錄Oracle數(shù)據庫實例了,注意初始化參數(shù) REMOTE_LOGIN_PASSWORDFILE應設置為EXCLUSIVE或SHARED。任何用戶以SYSOPER/SYSDBA的權限登錄后,將位于SYS用戶的Schema之下,以下為 兩個登錄的例子:
1. 以管理員身份登錄:
假設用戶scott已被授予SYSDBA權限,則他可以使用以下命令登錄:
CONNECT scott/tiger AS SYSDBA
2. 以INTERNAL身份登錄:
CONNECT INTERNAL/INTERNAL_PASSWORD
五、 密碼文件的維護:
1. 查看密碼文件中的成員:
可以通過查詢視圖V$PWFILE_USERS來獲取擁有SYSOPER/SYSDBA系統(tǒng)權限的用戶的信息,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用戶是否擁有相應的權限。這些用戶也就是相應地存在于密碼文件中的成員。
2. 擴展密碼文件的用戶數(shù)量:
當向密碼文件添加的帳號數(shù)目超過創(chuàng)建密碼文件時所定的限制(即ORAPWD.EXE工具的MAX_USERS參數(shù))時,為擴展密碼文件的用戶數(shù)限制,需重建密碼文件,具體步驟如下: a) 查詢視圖V$PWFILE_USERS,記錄下?lián)碛蠸YSOPER/SYSDBA系統(tǒng)權限的'用戶信息; b) 關閉數(shù)據庫; c) 刪除密碼文件; d) 用ORAPWD.EXE新建一密碼文件; e) 將步驟a中獲取的用戶添加到密碼文件中。
3. 修改密碼文件的狀態(tài):
密碼文件的狀態(tài)信息存放于此文件中,當它被創(chuàng)建時,它的缺省狀態(tài)為SHARED??梢酝ㄟ^改變初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE的設置改變密碼文件的狀態(tài)。當啟動數(shù)據庫事例時,Oracle系統(tǒng)從初始化參數(shù)文件中讀取REMOTE_LOGIN_PASSWORDFILE參數(shù)的設置;當加載數(shù)據庫 時,系統(tǒng)將此參數(shù)與口令文件的狀態(tài)進行比較,如果不同,則更新密碼文件的狀態(tài)。若計劃允許從多臺客戶機上啟動數(shù)據庫實例,由于各客戶機上必須有初始化參數(shù)文件,所以應確保各客戶機上的初始化參數(shù)文件的一致性,以避免意外地改變了密碼文件的狀態(tài),造成數(shù)據庫登陸的失 敗。
4. 修改密碼文件的存儲位置:
密碼文件的存放位置可以根據需要進行移動,但作此修改后,應相應修改系統(tǒng)注冊庫有關指向密碼文件存放位置的參數(shù)或環(huán)境變量的設置
5. 刪除密碼文件:
在刪除密碼文件前,應確保當前運行的各數(shù)據庫實例的初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE皆設置為NONE。在刪除密碼文件后,若想要以管理員身份連入數(shù)據庫的話,則必須使用操作系統(tǒng)驗證的方法進行登錄。
;
oracle啟停
1.登錄
登錄linux系統(tǒng),切換到oracle用戶
# su oracle
2.連接
$ cd?$ORACLE_HOME/bin?
$ sqlplus /nolog
3.使用管理員權限
conn / as sysdba
4.關閉服務(啟動)
shutdown immediate
startup
5.退出
quit
6.啟動監(jiān)聽
$ lsnrctl start
===============================================
磁盤掛載
/oracle 下文件隨著項目的擴大,目錄空間已不夠使用,需要掛載一個新的磁盤來負責存儲
直接掛載會發(fā)現(xiàn)/oracle下變空了,這個原因是由于linux的VFS(虛擬文件系統(tǒng))機制導致的,正常登錄以后,所看到的各個目錄,文件都是內核在加載時候構造在內存中的VFS目錄樹,而不是直接看到硬盤上的實際目錄樹。當你掛載某個設備到一個VFS掛載點上時(比如/oracle),系統(tǒng)就把VFS中的這個掛載點/oracle指向你最后所掛載的那個設備上。那么你現(xiàn)在訪問該掛載點時,就會看到你最后掛載在此處的設備。而之前所掛載的設備依然在那里,只不過掛載點/oracle已經不再指向之前的設備。所以之前的數(shù)據是被隱藏了,但并沒有刪除,若umount掛載后,數(shù)據又重新回來了
基于這種情況,只能通過跳板的方式把原來的/oracle數(shù)據復制到新的/oracle分區(qū)下了 ,如何添加新硬盤,請查找相關資料
mkdir /new ###跳板目錄
mount /dev/sdb1 /new ###首先掛載跳板目錄
cp -R /oracle/* /new ###復制/oracle目錄所有數(shù)據到/new先
mount /dev/sdb1 /oracle ###掛載/oracle 到新硬盤,此時你會神奇的發(fā)現(xiàn)之前的/oracle目錄文件已經全部轉移過來了,也許你會有點疑問,我并沒有復制或移動/new文件到新掛載的/oracle目錄啊,其實此時的/oracle目錄相當于/new目錄的硬鏈接,可以測試下mkdir /new/test 你會發(fā)現(xiàn)/oracle目錄也存在test
umount /new ###解除掛載
rm -rf /new ###刪除跳板目錄
vi /etc/fstab
增加:/dev/sdb1 /oracle ext3 defaults 0 0
:wq!
--------------------------------------------------------------------------------------
掛載新盤后進行啟動發(fā)現(xiàn)報錯
------------
ORA-09925: Unable to create audit trail file
Linux Error: 13: Permission denied
Additional information: 9925
ORA-09925: Unable to create audit trail file
Linux Error: 13: Permission denied
Additional information: 9925
---------
是因為目錄權限問題
解決方法
chown -R oracle.oinstall /oracle
再進行操作,一切正常
===================================================
可參考
Linux磁盤的掛載和卸載:
如何操作Oracle數(shù)據庫中的(+)連接
本文主要向你介紹的是Oracle數(shù)據庫中的(+)連接的實際操作,本文是以相關使用代碼的描述來引出其實際的操作,你如果是Oracle數(shù)據庫中的'(+)連接的瘋狂一族的話,就一起來看看吧!
1. 從表A.A1 (+) = 主表B.B1
復制代碼SELECT
1.TO_CHAR(TBA.FBS_IO_DATE,'YYYY/MM/DD') A1
2.,TBA.TBA_TBD_NO A2
3.,TBB.TBB_NAME_S A3
4.,TBC.TBC_CHAR1 A4
5.,TBD.TBD_NAME A5
6.,TBA.TBA_SNS_NAME_SP A6
7.,TBA.TBA_TORI_KIN A7
8.,TO_CHAR(TBA.TBA_RPL_DATE,'YYYY/MM/DD') A8
9.FROM
10.SNTBATRN TBA
11.,ZMTBCMST TBC
12.,CMTBBMST TBB
13.,CMTBDMST TBD
14.WHERE
15.TBA.TBA_KAI_CODE = 'XXX'
16.AND TBA.TBA_KESHI_KBN = '0'
17.AND TBA.TBA_TAISYO_KBN IN ('0', '2')
18.AND TBB_KAI_CODE (+) = 'XXX'
19.AND TBB_BUN_CODE (+) = 'S001'
20.AND TBB_START_DATE = SYSDATE
21.AND TBB_END_DATE = SYSDATE
22.AND TBB.TBB_CODE (+)= TBA.TBA_STN_CODE
23.AND TBC.TBC_KAI_CODE (+) = 'XXX'
24.AND TBC.TBC_SUB_KBN (+) = 'SN'
25.AND TBD.TBD_KAI_CODE (+) = 'XXX'
26.AND TBD.TBD_CODE (+) = TBA.TBA_SNS_CODE
2. 主表A.A1 = 從表B.B1 (+)
1.復制代碼
2.SELECT
3.TBA.TBA_1,
4.TBB.TBB_1,
5.TBC.TBC_1
6.FROM
7.TBA,
8.(SELECT TBB.TBB_1, TBB.TBB_2
9.FROM TBB
10.WHERE
11.TBB.TBB_3 LIKE '%NEWWEAPON%' TBB),
12.TBC
13.WHERE
14.主表TBC
15.TBA.TBA_A 2
16.從表TBB
17.AND TBA.TBA_2 = TBB.TBB_2
18.從表TBC
19.注意TRIM
20.AND TRIM(TBA.TBA_3) = TRIM(TBC.TBC_3 (+))
;
e數(shù)據庫服務器就足夠了,這時你已經擁有oracle客戶端的功能。(1)你可以通過第三方軟件:如
plsql
developer(非常強大的oracle數(shù)據庫操作軟件)來操作oracle數(shù)據庫;(2)當然裝完oracle數(shù)據庫服務器以后,你也可以通過控制臺來操作,步驟如下:開始-〉運行-〉cmd(打開控制臺窗口)-〉敲入
sqlplus
-輸入正確的用戶名密碼(如scott/tiger)就可以操作了。
裝完oracle數(shù)據庫服務器以后,如果你還裝oracle客戶端(client),那么你在連接數(shù)據庫的時候記得加上完整的數(shù)據庫服務名:如scott/tiger@127.0.0.1:1521/yourinstancename
這樣也能保證正確的操作數(shù)據庫了。
另外,虛機團上產品團購,超級便宜