cW*ã‚ã–ã›ã‚ªãƒ©ã‚¯ãƒ«ãƒžã‚¹ã‚¿ãƒ¼(04/1/23)全般SQL Oracle入門!1.復習1 (2ï¼å•) !2.復習2 (2ï¼å•) !"#$%&'(!3.復習3 (2ï¼å•))*+,-./0123456789:;<!4.復習4 (2ï¼å•)=>?@ABCDEFGHIJKLMNOP!5.復習5 (2ï¼å•)QRSTUVWXYZ[\]^_`abcd!1.復習1 (2ï¼å•) !2.復習2 (2ï¼å•) !"#$&',-0CDIo!3.復習3 (2ï¼å•)LOPQTUWY[\]^_`abdghn!1.復習1 (2ï¼å•) %()*+./12345678!2.復習2 (2ï¼å•)9:;<=>?@ABEFGJKMNRSV!3.復習3 (2ï¼å•)XZcefijklmpqrstuvwxyyÑ表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚ 列COL2ã«ã¯ã€ï¼‘2345.6789ã®ãƒ‡ãƒ¼ã‚¿ãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚  SQL> select * from tbl1;        COL1   COL2  PNAME     ---------- ---------- --------------------          1 12345.6789 TOKYO 次ã®SQL文を実行ã—ãŸã¨ãã«ã€è¿”ã•れる値をã€(A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select trunc(COL2,2) from tbl1; RichTextBox1¯・TRUNCã¯ã€å€¤ã‚’切りæ¨ã¦ã‚‹é–¢æ•°ã§ã™ã€‚ ・2を指定ã—ã¦ã„ã‚‹ã®ã§ã€å°æ•°ä»¥ä¸‹ï¼’æ¡ã¾ã§ã‚’求ã‚ã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select trunc(COL2,2) from tbl1;   TRUNC(COL2,2)   -------------      12345.67¯〠TRUNC関数ã«ã¤ã„㦠】   ・書å¼ï¼šTRUNC(a,b)   a:計算対象ã®å€¤   b:å°æ•°ç‚¹ä»¥ä¸‹ã§åˆ‡ã‚Šæ¨ã¦ã‚‹æ¡æ•°ã‚’指定 ã€€ã€€ã€€ã€€æ¡æ•°ã¯ã€çœç•¥å¯ã€‚çœç•¥æ™‚ã¯ã€å°æ•°ç‚¹ä»¥ä¸‹åˆ‡ã‚Šæ¨ã¦ã€‚ ã€€ã€€ã€€ã€€æ­£æ•°ã®æ™‚ã€å°æ•°ç‚¹ä»¥ä¸‹ã®æ¡æ•°ã®æŒ‡å®šã€‚ ã€€ã€€ã€€ã€€è² æ•°ã®æ™‚ã€æ­£æ•°ã®æ¡æ•°ã®æŒ‡å®š 《例》COL1ã®å€¤ãŒï¼‘234.5678ã®ã¨ã    TRUNC(COL1)   → 1234    TRUNC(COL1,2)  → 1234.56    TRUNC(COL1,-2) → 12ï¼ï¼12345123ï¼ï¼12345.612345.67ãªã—Œ表tbl1ã«ã¯ã€ï¼’ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚ç…§ã—ã¦ä¸‹ã•ã„) ã“ã®ãƒ†ãƒ¼ãƒ–ルã«ã€ä»¥ä¸‹ã®SQL文を実行ã—ãŸã¨ãã«ã€è¿”ã•れる値をã€(A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select SUM(NVL(COL2,100)) from tbl1; ô・ã“ã“ã§ã¯ã€NVL(COL2,100)ã¨æŒ‡å®šã—ã¦ã„ã‚‹ã®ã§ã€NULLã®æ™‚,100ã‚’ã€NULL以外㮠 時ã¯ã€COL2ã®å€¤ã‚’è¿”ã—ã¾ã™ã€‚  100+100ã§200ã«ãªã‚Šã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select sum(nvl(COL2,100) from tbl1;   SUM(NVL(COL2,100))   ------------------           200½〠NVL関数ã«ã¤ã„㦠】 ・書å¼ï¼šNVL(a,b)   a:判定対象ã®å€¤   b:aãŒï¼®ï¼µï¼¬ï¼¬ã®ã¨ãã€bã®å€¤ã‚’è¿”ã—ã¾ã™ã€‚   aãŒï¼®ï¼µï¼¬ï¼¬ã§ãªã„ã¨ãã€aã®å€¤ã‚’è¿”ã—ã¾ã™ã€‚ 《例1》COL1ã®å€¤ãŒï¼®ï¼µï¼¬ï¼¬ã®ã¨ã    NVL(COL1,100)  → 1ï¼ï¼ 《例2》例2:COL1ã®å€¤ãŒï¼’ã®ã¨ã    NVL(COL1,100)  → 2 *NULLã«é–¢ã™ã‚‹è³‡æ–™ï¼¡ã‚’å‚照下ã•ã„。 ï¼ ï¼‘ï¼ï¼ ï¼’ï¼ï¼値ã¯ã€è¿”ã•れãªã„ÈôÑ    表tbl1ã«ã¯ã€ï¼’ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- ------------------            1        TOKYO            2   100   OSAKA Œô  ã€ä»Šæ—¥ã®ç”¨èªžã€‘ NULL  空値。値ã¯ã€ãªã«ã‚‚設定ã•れã¦ã„ãªã„。  ï¼ã§ã‚‚ãªãã€æ–‡å­—列長ï¼ã®æ–‡å­—列ã§ã‚‚ãªã„。  NULLをç¦ã˜ã¦ã„ãªã‘れã°ã€æ•°å€¤åž‹å¤‰æ•°ã€æ–‡å­—åˆ—åž‹å¤‰æ•°ç­‰ã«æ ¼ç´ã§ãã¾ã™ã€‚ ü表tbl1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚照下ã•ã„) 次ã®SQL文を実行ã—ãŸã¨ãã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select count(*) from tbl1 where COL2 between 200 and 400;Ó・Whereå¥ã®æ¡ä»¶ã¨ã—ã¦BETWEENを使用ã—ã¦ã„ã¾ã™ã€‚ ・200以上ã€400以下ã®ãƒ‡ãƒ¼ã‚¿ãŒcountã®å¯¾è±¡ã«ã¾ã‚Šã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select count(*) from tbl1 where COL2 between 200 and 400;     COUNT(*)   ------------         3¢〠BETWEENæ¡ä»¶ã«ã¤ã„㦠】 ・書å¼ï¼ša BETWEEN b and c   a:判定対象ã®å€¤   b:下é™å€¤   c:上é™å€¤   b以上ã§ã€c以下ã®å€¤ãŒé¸æŠžå¯¾è±¡ã«ãªã‚Šã¾ã™ã€‚   未満ã§ã¯ã‚りã¾ã›ã‚“ã€bã¨cã®å€¤ã¯ã€æ¡ä»¶ã«å«ã¾ã‚Œã¾ã™ã€‚ï¼’3ï¼”5値ã¯ã€è¿”ã•れãªã„ô¨    表tbl1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- --------------------            1   100  TOKYO            2   200  OSAKA            3   300  NAGOYA            4   400  HAKATA            5   500  SENNDAI    5行ãŒé¸æŠžã•れã¾ã—ãŸã€‚¹表tbl1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚ç…§ãã ã•ã„) 次ã®SQL文を実行ã—ãŸã¨ãã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 (注æ„:betweenã®å‰ã«notãŒã‚りã¾ã™ã€‚)  SQL> select count(*) from tbl1 where COL2 not between 200 and 400; õ・Whereå¥ã®æ¡ä»¶ã¨ã—ã¦BETWEENを使用ã—ã¦ã„ã¾ã™ã€‚ ・BETWEENã®å‰ã«NOTãŒã‚ã‚‹ã®ã§ã€200~400以外ã®ãƒ‡ãƒ¼ã‚¿ãŒcountã®å¯¾è±¡ã«ã¾ã‚Šã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select count(*) from tbl1 not where COL2 between 200 and 400;     COUNT(*)   -------------         2Ø〠NOT BETWEENæ¡ä»¶ã«ã¤ã„㦠】 ・書å¼ï¼ša NOT BETWEEN b and c   a:判定対象ã®å€¤   b:下é™å€¤   c:上é™å€¤   b~cã®ç¯„囲外ãŒé¸æŠžå¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚ï¼’3ï¼”5値ã¯ã€è¿”ã•れãªã„。,ôª    表tbl1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- --------------------            1   100  TOKYO            2   200  OSAKA            3   300  NAGOYA            4   400  HAKATA            5   500  SENNDAI    5行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ í表tbl1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚ç…§ãã ã•ã„) 次ã®SQL文を実行ã—ãŸã¨ãã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select count(*),count(COL2) from tbl1; Œ・全行数ã¯ã€ï¼•ãªã®ã§ã€COUNT(*)ã§ã¯ã€ï¼•ãŒè¿”りã¾ã™ã€‚ ・カラムåを指定ã—ãŸCOUNTã§ã¯ã€NULLã¯è¨ˆç®—対象外ã¨ãªã‚‹ã®ã§ï¼“ãŒè¿”りã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select count(*),count(COL2) from tbl1;    COUNT(*) COUNT(COL2)   ---------- ------------       5      3Õ〠NULL値ã®ï¼£ï¼¯ï¼µï¼®ï¼´ã«ã¤ã„㦠】 ・COUNT(*)ã§ã¯ã€ï¼®ï¼µï¼¬ï¼¬ã ã‘ã®è¡Œã‚‚計算ã®å¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚ ・COUNT(列å)ã§ã¯ã€ï¼®ï¼µï¼¬ï¼¬ã¯è¨ˆç®—ã®å¯¾è±¡å¤–ã¨ãªã‚Šã¾ã™ã€‚ 5ã¨ï¼• 3ã¨ï¼“ 5ã¨ï¼“ 5ã ã‘値ã¯ã€è¿”ã•れãªã„。,ôã    表tbl1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    (表示ãŒãªã„部分ã¯NULLã§ã™ã€‚)    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- --------------------            1    9  TOKYO            2       OSAKA                 7  NAGOYA                    HAKATA            5    1  SENNDAI    5行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ã表tbl1ã«ã¯ã€1ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚照下ã•ã„) 次ã®SQL文を実行ã—ãŸã¨ãã«è¿”ã•れる値をã€(A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select initcap(PNAME) from tbl1;ä・ã“ã®æ–‡å­—ã®åŒºåˆ‡ã‚Šã¯ã€ç©ºç™½ã€ï¼¿ã€ï¼Šã€ï¼ã§ã™ã€‚ ・å˜èªžã®å…ˆé ­ã‚’大文字ã«ã€ãã®å˜èªžã®å…ˆé ­ä»¥å¤–ã¯ã€å°æ–‡å­—ã«ãªã‚Šã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚   SQL> select initcap(PNAME) from tbl1;   INITCAP(PNAME)   --------------------   Any_One Abc*Def=Xyz á〠INITCAP関数ã«ã¤ã„㦠】 ・書å¼ï¼šINITCAP(char)  文字ã®å„å˜èªžã®å…ˆé ­ã‚’大文字ã«ã€ï¼’æ–‡å­—ä»¥å¾Œã‚’å°æ–‡å­—ã«å¤‰æ›ã—ã¾ã™ã€‚  å˜èªžã®åŒºåˆ‡ã¯ã€ç©ºç™½ã€è¨˜å·ç­‰ã§ã™ã€‚ ANY_ONE ABC*DEF=xyzAny_One Abc*Def=XyzANY_ONE ABC*DEF=XyzAny_one Abc*Def=XyzÈôÍ    表tbl1ã«ã¯ã€1ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- ----------------------            1    9  ANY_ONE ABC*DEF=xyz    1行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ Û表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚       COL1    COL2 PNAME    ---------- ---------- --------------------         1     9 ABCDEFG 次ã®SQL文を実行ã—ãŸã¨ãã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select substr(PNAME,3,2) from tbl1;á・文字'ABCDEFG'ã®å…ˆé ­ï¼“文字目ã‹ã‚‰ï¼’文字切り出ã—ã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select substr(PNAME,3,2) from tbl1;   SUBS   ----    CD‚〠SUBSTR関数ã«ã¤ã„㦠】 ・書å¼ï¼šSUBSTR(char,a,b)   char:å¯¾è±¡ã®æ–‡å­—   a:åˆ‡ã‚Šå‡ºã™æ–‡å­—ä½ç½®ï¼ˆè² æ•°ã®å ´åˆã€æ–‡å­—ã®çµ‚ã‚りã‹ã‚‰ã®æŒ‡å®šã«ãªã‚Šã¾ã™ï¼‰   b:åˆ‡ã‚Šå‡ºã—æ–‡å­—数(çœç•¥å¯ã€çœç•¥ã™ã‚‹ã¨æ–‡å­—ã®æœ€å¾Œã¾ã§ï¼‰   charã®æ–‡å­—ã®a番目ã‹ã‚‰é•·ã•bã ã‘文字を切り出ã™ã€‚ 《例》   SUBSTR('ABCDE',3)  → CDE   SUBSTR('ABCDE',3,2) → CD   SUBSTR('ABCDE',-2) → DE   SUBSTR('ABCDE',-4,2) → BCCDECDBCDABエラーã«ãªã‚‹ã€‚Ù表tbl1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚照下ã•ã„) 列åPNAMEãŒOSAKAã®ãƒ‡ãƒ¼ã‚¿ã‚’検索ã—ãŸã„ã¨æ€ã„ã¾ã™ã€‚ æ­£ã—ã„SQL文をã€(A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。L・文字定数ã¯ã€ã‚·ãƒ³ã‚°ãƒ«ã‚¯ã‚©ãƒ¼ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã§å›²ã¿ã¾ã™ã€‚ •〠文字ã«ã¤ã„㦠】 ãƒ»æ–‡å­—ã€æ—¥ä»˜ã¯ã€ã‚·ãƒ³ã‚°ãƒ«ã‚¯ã‚©ãƒ¼ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã§å›²ã¿ã¾ã™ã€‚ 《例》   'ABCDE'   '2002/08/10''select * from tbl1 where PNAME = OSAKA;(select * from tbl1 where PNAME "OSAKA";)select * from tbl1 where PNAME = 'OSAKA';)select * from tbl1 where PNAME = &&OSAKA;ô­    表tbl1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- --------------------            1    9  TOKYO            2    2  OSAKA            3    7  NAGOYA            4    0  HAKATA            5    1  SENNDAI    5行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ s表ã®åˆ—åã¨ã—ã¦ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã®ã¯ã€ã©ã‚Œã§ã—ょã†ã‹ã€‚ (A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。・NUM,IDã¯ã€äºˆç´„語ã§ã¯ãªã„ã®ã§ï¼¯ï¼«ã§ã™ã€‚ ・文字「#ã€ã€Œ_ã€ã¯ã€å…ˆé ­ä»¥å¤–ã§ã¯ã€ä½¿ç”¨å¯èƒ½ã§ã™ã€‚ ・「_XYZã€ã¯ã€åå‰ã®å…ˆé ­ãŒè‹±å­—ã§ãªã„ã®ã§ã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚ 「ORA-00911:文字ãŒç„¡åйã§ã™ã€‚〠°〠表åï¼åˆ—åã«ã¤ã„㦠】 ・åå‰ã®å…ˆé ­ã¯ã€è‹±å­—ã§å§‹ã‚ãªã‘れã°ãªã‚‰ãªã„。 ・åå‰ã¯ï¼“ï¼æ–‡å­—ã¾ã§ã§ã™ã€‚ ・先頭以外ãªã‚‰ã°ã€è‹±æ•°å­—ã€è¨˜å·ï¼ˆï¼ƒã€ï¼„ã€ï¼¿ç­‰ï¼‰ç­‰ä½¿ç”¨å¯èƒ½ã€‚ ・Oracleã®äºˆç´„語ã¯ã€ä½¿ç”¨ã§ããªã„。(TABLE,DROP,ALTER等) ・大文字ã¨å°æ–‡å­—ã®åŒºåˆ¥ã¯ã‚りã¾ã›ã‚“。 ≪å‚考≫エラーメッセージ ãƒ»ï¼“ï¼æ–‡å­—ã‚’è¶…ãˆãŸå ´åˆ →「ORA-00972:識別å­ãŒé•·ã™ãŽã¾ã™ã€‚〠・予約語を使用ã—ãŸå ´åˆ →「ORA-00904:列åãŒç„¡åйã§ã™ã€‚〠NUMIDA#DEF_XYZABC_DEF Ÿ表tbl1ã®ã™ã¹ã¦ã®è¡Œãƒ‡ãƒ¼ã‚¿ã‚’削除ã—よã†ã¨æ€ã„ã¾ã™ã€‚ SQLæ–‡ã¨ã—ã¦æ­£ã—ã„ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。 Â・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ (tbl1ã«ã¯ã€12行ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚ã‚‹å ´åˆã§ã™ã€‚)  SQL> delete from tbl1;  12行ãŒå‰Šé™¤ã•れã¾ã—ãŸã€‚Ô〠DELETE文ã«ã¤ã„㦠】 ・書å¼ï¼šDELETE FROM 表å [ WHERE 削除æ¡ä»¶ ] ・FROMã¯ã€çœç•¥å¯èƒ½ã€‚ ・WHEREå¥ã‚’çœç•¥ã™ã‚‹ã¨ã€å…¨è¡ŒãŒå‰Šé™¤ã•れã¾ã™ã€‚ ・WHEREå¥ã‚’指定ã™ã‚‹ã¨ã€æ¡ä»¶ã«ä¸€è‡´ã™ã‚‹è¡ŒãŒå‰Šé™¤ã•れã¾ã™ã€‚ ・削除ã—ãŸãƒ‡ãƒ¼ã‚¿ã¯ã€COMMITã•れãªã‘れã°ã€å¾©å…ƒã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ・表内ã®è¡Œã‚’削除ã™ã‚‹å‘½ä»¤ã§ã€è¡¨ãã®ã‚‚ã®ã‚’削除ã™ã‚‹å‘½ä»¤ã§ã¯ã‚りã¾ã›ã‚“。delete table tbl1; delete tbl1;delete table from tbl1:delete from tbl1;delete tbl1 where *; µ表tbl1ã«ã¯ã€ï¼“ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚照下ã•ã„) 列COL2ã®ï¼®ï¼µï¼¬ï¼¬ã®æ•°ã‚’求ã‚ã‚‹SQL文をã€(A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 ú・COL2ã«ã¯ã€NULLã®ã‚る行ãŒã€ï¼‘ã¤ã‚りã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select count(*) from tbl1 where COL2 is NULL ;     COUNT(*)    ---------        1 â〠is nullã«ã¤ã„㦠】    ・書å¼ï¼ša is null   a:判定対象 ・NULL値ã‹ã©ã†ã‹ã‚’判定ã—ã¾ã™ã€‚ ãƒ»æ•°å€¤åž‹ã€æ–‡å­—åž‹ã©ã¡ã‚‰ã®å ´åˆã‚‚「is nullã€ã§åˆ¤å®šã—ã¾ã™ã€‚/select count(*) from tbl1 where COL2 = NULL ;1select count(*) from tbl1 where COL2 = 'NULL' ;0select count(*) from tbl1 where COL2 is NULL ;/select count(*) from tbl1 where COL2 isNULL ;¸ë    表tbl1ã«ã¯ã€ï¼“ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    (表示ãŒãªã„部分ã¯NULLã§ã™ã€‚)    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- --------------------            1    9  TOKYO            2       OSAKA            3    7  NAGOYA    3行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ ò次ã®SQLæ–‡ã§ã€è¡¨tbl1を作æˆã—ã¾ã—ãŸã€‚  SQL> create table tbl1 ( pnum number, p1 char(10)); 表tbl1ã«ãƒ‡ãƒ¼ã‚¿ã‚’追加ã—ãŸã„ã¨æ€ã„ã¾ã™ã€‚ æ­£ã—ã実行ã•れるSQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 ‡・insertæ–‡ã§ã€åˆ—åã‚’çœç•¥ã—ãŸå ´åˆã§ã™ã€‚ ・表定義ã®é †ç•ªã«ãƒ‡ãƒ¼ã‚¿ã‚’記述ã—ã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> insert into tbl1 values(1,'TOKYO');  1行ãŒä½œæˆã•れã¾ã—ãŸã€‚ »〠INSERT文ã«ã¤ã„㦠】  INSERT INTO 表å [(列å,列å,... )] VALUES(値ã€å€¤ã€... ) ・列åã¯ã€çœç•¥å¯èƒ½ã§ã™ã€‚ ・列åã‚’çœç•¥ã—ãŸå ´åˆã¯ã€å€¤ã¯ã€è¡¨å®šç¾©ã®é †ç•ªã«ãªã‚Šã€å€¤ã®çœç•¥ã¯ã§ãã¾ã›ã‚“。 ・列åを指定ã—ãŸå ´åˆã¯ã€æŒ‡å®šã—ãŸåˆ—ã®é †ç•ªã«å€¤ã‚’指定ã—ã¾ã™ã€‚ 《例1》列åçœç•¥æ™‚ã®INSERTæ–‡   insert into tbl1 values(1,'TOKYO'); ã€Šä¾‹ï¼’ã€‹åˆ—åæŒ‡å®šã®INSERT文(列åã®æŒ‡å®šé †ã«å€¤ã‚’指定ã—ã¾ã™ï¼‰   insert into tbl1(p1,pnum) values('TOKYO',1); insert into tbl1(1,'TOKYO');!insert in tbl1 values(1,'TOKYO');#insert into tbl1 values(1,'TOKYO');$insert * from tbl1 values(1,'TOKYO);insert tbl1 values(1,'TOKYO'); Á表tbl2を作æˆã—ã€ãƒ‡ãƒ¼ã‚¿ã‚’追加ã—ã¾ã—ãŸã€‚  SQL> create table tbl2 ( p1 char(10), p2 varchar2(10));  SQL> insert into tbl2 values('ã‚ã„','ã‹ã'); 次ã®SQL文を実行ã—ãŸã¨ãã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select length(p1),length(p2) from tbl2; ï・列åP1ã®å®šç¾©ã¯ã€CHAR(10)ã§ã™ã€‚固定長型ãªã®ã§ï¼‘ï¼æ–‡å­—ã§ã™ã€‚ ・固定長ã®å ´åˆã€è¿½åŠ ã—ãŸæ–‡å­—ã®æ®‹ã‚Šã«ç©ºç™½ãŒè¿½åŠ ã•れã¾ã™ã€‚ ・'ã‚ã„'ã¯ã€å…¨è§’2文字(4ãƒã‚¤ãƒˆï¼‰ã§ã€åŠè§’スペースãŒï¼–文字追加ã•れã¾ã™ã€‚  文字数ã¯ã€ï¼’文字+6文字ã§ï¼˜æ–‡å­—ã«ãªã‚Šã¾ã™ã€‚ ・列åï¼°ï¼’ã®å®šç¾©ã¯ã€varchar2(10)ã§ã™ã€‚å¯å¤‰é•·ãªã®ã§ã€è¿½åŠ ã•ã‚ŒãŸæ–‡å­—ã®é•·ã•  ã«ãªã‚Šã¾ã™ã€‚  SQL> select length(p1),length(p2) from tbl2;   LENGTH(P1) LENGTH(P2)   ---------- ----------        8     2 Ù〠LENGTH関数ã«ã¤ã„㦠】 ・書å¼ï¼šLENGTH(char)   charã®æ–‡å­—ã®é•·ã•ã‚’è¿”ã—ã¾ã™ã€‚   全角ã®ï¼‘文字ã¯ï¼‘文字ã¨ã—ã¦è¨ˆç®—ã—ã¾ã™ã€‚(ãƒã‚¤ãƒˆé•·ã§ã¯ã‚りã¾ã›ã‚“)   文字ãŒï¼®ï¼µï¼¬ï¼¬ã®å ´åˆã€ï¼®ï¼µï¼¬ï¼¬ã‚’è¿”ã—ã¾ã™ã€‚ 《例》   LENGTH('ã‚ã„') → 2   LENGTH('AB')  → 2 ≪å‚考≫ãƒã‚¤ãƒˆé•·ã•を求ã‚ã‚‹LENGTHB    LENGTHB('ã‚ã„') → 4    LENGTHB('AB')  → 21ï¼ã¨ï¼‘ï¼ ï¼‘ï¼ã¨ï¼’ ï¼’ã¨ï¼’ 8ã¨ï¼’ 1ï¼ã¨ï¼”æ表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚ç…§ãã ã•ã„) 次ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select NVL2(COL1,10,20) from tbl1; –・NVL2関数ã®åˆ¤å®šå€¤ã¯ã€ï¼®ï¼µï¼¬ï¼¬ã§ã¯ãªã„ã®ã§ï¼‘ï¼ãŒè¿”りã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select NVL2(COL1,10,20) from tbl1;   NVL2(COL1,10,20)   ----------------           10 ö〠NVL2関数ã«ã¤ã„㦠】 ・書å¼ï¼šNVL2(a,b,c)   a:判定対象ã®å€¤   b:aã®å€¤ãŒNULLä»¥å¤–ã®æ™‚ã€bを返㙠  c:aã®å€¤ãŒNULLã®æ™‚ã€cを返㙠  aãŒNULLã§ãªã„時bã‚’è¿”ã—ã€NULLã®æ™‚cã‚’è¿”ã™ã€‚ ï¼™ï¼’ï¼ ï¼®ï¼µï¼¬ï¼¬1ï¼エラーã«ãªã‚‹È¤¿    表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- --------------------            1    9  TOKYO    1行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ d文字ã®å®šç¾©ã§ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹å®šç¾©ã‚’ã€(A)~(D)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。 Ì・CHARã®é•·ã•指定ã¯ã€çœç•¥å¯èƒ½ã§ã€çœç•¥æ™‚ã¯ã€ï¼‘ã¨ãªã‚Šã¾ã™ã€‚ ・CHARã®æœ€å¤§ã¯ã€2000 ・VARCHAR2ã®é•·ã•指定ã¯ã€çœç•¥ã§ãã¾ã›ã‚“。 ・VARCHAR2ã®æœ€å¤§ã¯ã€4000 ・char(2001)ã§ã¯ã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ãŒè¡¨ç¤ºã•れã¾ã™ã€‚  「ORA-00910: 指定ã—ãŸé•·ã•ãŒãƒ‡ãƒ¼ã‚¿åž‹ã«å¯¾ã—ã¦é•·ã™ãŽã¾ã™ã€ ・varchar2ã§ã¯ã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ãŒè¡¨ç¤ºã•れã¾ã™ã€‚  「ORA-00906: 左カッコãŒã‚りã¾ã›ã‚“。〖〠文字定義ã«ã¤ã„㦠】  CHAR(n)   nãƒã‚¤ãƒˆã®å›ºå®šæ–‡å­—         nã¯ã€æœ€å¤§2000  VARCHAR2(m) mãƒã‚¤ãƒˆã®å¯å¤‰é•·æ–‡å­—         mã¯ã€æœ€å¤§4000  n,mã¯ã€ãƒã‚¤ãƒˆã‚µã‚¤ã‚ºã§ã™ã€‚ 漢字を格ç´ã™ã‚‹å ´åˆã€æ¼¢å­—1文字ãŒï¼’ãƒã‚¤ãƒˆãªã®ã§ã€å®šç¾©ã—ãŸãƒã‚¤ãƒˆã‚µã‚¤ã‚ºã®åŠåˆ†ã®æ–‡å­—æ•°ã—ã‹æ ¼ç´ã§ãã¾ã›ã‚“。CHAR CHAR(2001)VARCHAR2VARCHAR2(3001)Z数値ã®å®šç¾©ã§ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹å®šç¾©ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。÷・NUMBER(15,20),NUMBER(5,6)ã¯ã€æœ‰åŠ¹æ¡æ•°ã‚ˆã‚Šã€å°æ•°ç‚¹ä»¥ä¸‹ã®æ¡æ•°ãŒå¤§ãㄠ 場åˆã§ã™ãŒã€ã‚¨ãƒ©ãƒ¼ã§ã¯ã‚りã¾ã›ã‚“。 ・NUMBERã¯ã€æ¡æ•°ã®çœç•¥å½¢ã§ã™ã€‚ ・NUMBER(40,2)ã§ã¯ã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ãŒè¡¨ç¤ºã•れã¾ã™ã€‚  「ORA-01727: 数値ã®ç²¾åº¦æŒ‡å®šãŒæœ‰åŠ¹ç¯„å›²(1ã‹ã‚‰38)外ã§ã™ã€ ・NUMBER(38)ã¯ã€æœ€å¤§æ¡æ•°ã§ã™ã€‚ ›〠NUMBERã«ã¤ã„㦠】 ・書å¼ï¼šNUMBER(a,b)   a:æ¡é•·ï¼ˆæœ€å¤§38)   b:å°æ•°ç‚¹ã®æ¡æ•°ï¼ˆæœ€å¤§127) 《例》   NUMBER   38æ¡ã®æµ®å‹•å°æ•°ç‚¹   NUMBER(10) 10æ¡ã®æ•´æ•°   NUMBER(8,2) å…¨æœ‰åŠ¹æ¡æ•°8ã€å°æ•°ä»¥ä¸‹ã®æ¡æ•°2 NUMBER(15,20)NUMBER NUMBER(40,2) NUMBER(38) NUMBER(5,6)pç¾åœ¨ã®æ—¥ä»˜ã‚’追加ã—ã¦ã„ã‚‹SQLæ–‡ã§ã€æ­£ã—ã„ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 Â・ç¾åœ¨ã®æ—¥ä»˜ã¯ã€SYSDATEã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> insert into TBL1 values(1,SYSDATE);  1行ãŒä½œæˆã•れã¾ã—ãŸã€‚ ™〠SYSDATEã«ã¤ã„㦠】 ・ç¾åœ¨ã®æ—¥ä»˜ã‚’è¿”ã™é–¢æ•°ã§ã™ã€‚   ã“ã®æ—¥ä»˜ã¯ã€ã‚µãƒ¼ãƒã®æ—¥ä»˜æƒ…å ±ã§ã€ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã®æ—¥ä»˜æƒ…å ±ã§ã¯ã‚りã¾ã›ã‚“。   SQL>select SYSDATE from DUAL;   SYSDATE   --------   02-07-19#insert into TBL1 values(1,NOWTIME);$insert into TBL1 values(1,DATETIME);#insert into TBL1 values(1,SYSTIME);#insert into TBL1 values(1,SYSDATE); insert into TBL1 values(1,DATE);jOracleユーザーåã‚’æ­£ã—ã追加ã—ã¦ã„ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 4・Oracleユーザーåã‚’è¿”ã™ã®ã¯USERã§ã™ã€‚£〠USERã«ã¤ã„㦠】 ・Oracleユーザーåã‚’è¿”ã™é–¢æ•°ã§ã™ã€‚  SQL> select USER from DUAL;   USER   ----------------   SYSTEM!INSERT INTO TBL1 values(USER,10);"INSERT INTO TBL1 values(USERS,10);&INSERT INTO TBL1 values(USER_NAME,10);#INSERT INTO TBL1 values(&&USER,10); INSERT INTO TBL1 values(USR,10);Q以下ã®å‘½ä»¤ã§ã€DMLã®å‘½ä»¤ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。¶・TRUNCATE   DDLã®å‘½ä»¤ ・MERGE    DMLã®å‘½ä»¤ ・ALTER TABLE DDLã®å‘½ä»¤ ・DROP TABLE  DDLã®å‘½ä»¤ ・COMMIT    トランザクション制御ã®å‘½ä»¤‘〠DMLã«ã¤ã„㦠】  DML(データæ“作言語)  Data Manipulation Language  DMLã®å‘½ä»¤ã«ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ãªå‘½ä»¤ãŒã‚りã¾ã™ã€‚   INSERT,UPDATE,DELETE,MERGE  ãã®ä»–  ・DDL(データ定義言語)Data Definition LanguageTRUNCATEMERGE ALTER TABLE DROP TABLECOMMITê表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚照下ã•ã„) 次ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select (COL1 * 2 ) + COL2 + 100 from tbl1;…・NULL値ã®è¨ˆç®—çµæžœã¯ã€NULLã«ãªã‚Šã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select (COL1 * 2 ) + COL2 + 100 from tbl1;   (COL1*2)+COL2+100   -----------------            m〠NULL値ã®è¨ˆç®—ã«ã¤ã„㦠】  ・NULL値ã«è¨ˆç®—を行ã£ã¦ã‚‚çµæžœã¯NULLã«ãªã‚‹ã€‚ 100109NULLエラーã«ãªã‚‹0ð¤è    表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    (空白部分ã¯ã€NULLã§ã™ï¼‰    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- --------------------                 9 TOKYO    1行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ ‰表TBL1ã«ã¯ã€ç¤¾å“¡ç•ªå·(SNO),社員å(CNAME),所属部署番å·(SBNO),入社日(NDATE)ã‚’æ ¼ç´ã—ã¦ã„ã¾ã™ã€‚ 所属部署番å·ã‚’å°ã•ã„順番ã€ã•らã«ç¤¾å“¡ç•ªå·ã®å°ã•ã„順番ã«ä¸¦ã¹ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 ‘・所属部署番å·(SBNO)ã‚’å°ã•ã„順番ã§ã‚½ãƒ¼ãƒˆã—ã¾ã™ã€‚ ・ãã—ã¦ã€ç¤¾å“¡ç•ªå·(SNO)ã§å°ã•ã„順番ã«ã‚½ãƒ¼ãƒˆã—ã¾ã™ã€‚ ì〠ORDER BYã§ã€è¤‡æ•°åˆ—を指定ã™ã‚‹å ´åˆã«ã¤ã„㦠】 ・書å¼ï¼šORDER BY a,b,.,d   a,b,..d:ソートã™ã‚‹åˆ— 《例》aã§ã‚½ãƒ¼ãƒˆã—ã¦ã€ãã®çµæžœã‚’bã§ã‚½ãƒ¼ãƒˆã™ã‚‹å ´åˆ   order by a,b-SELECT * FROM TBL1 ORDER BY SBNO ASC SNO ASC;(SELECT * FROM TBL1 ORDER BY SBNO OR SNO;&SELECT * FROM TBL1 ORDER BY SNO,SBNO ;/SELECT * FROM TBL1 ORDER BY (SBNO ASC,SNO ASC);%SELECT * FROM TBL1 ORDER BY SBNO,SNO;²表tbl1ã®å¯å¤‰é•·æ–‡å­—åž‹ã®PNAME列ã§ã€ï¼’文字ã§ï¼’文字目ãŒã€Œç”°ã€ã®ãƒ‡ãƒ¼ã‚¿ã®è¡Œã‚’ã™ã¹ã¦æ¤œç´¢ã™ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 Œ・「_ã€ã¯ä»»æ„ã®ï¼‘文字を表ã—ã¦ã„ã¾ã™ã€‚ ・'%ç”°'ã§ã‚‚検索ã§ãã¾ã™ãŒã€ã€Œç”°ã€ã ã‘ã®å ´åˆã‚‚検索ã—ã¾ã™ã€‚Î〠LIKEã§ã®ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã«ã¤ã„㦠】 ・LIKEã¯ã€æ–‡å­—ã®ã‚ã„ã¾ã„検索ã§ä½¿ç”¨ã—ã¾ã™ã€‚ ・LIKEã®ã‚ã„ã¾ã„検索ã§ä½¿ç”¨ã™ã‚‹ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰  「%ã€(パーセント)ã€€ã€€ã€€ï¼æ–‡å­—以上ã®ä»»æ„文字を表㙠 「_ã€(アンダースコア) 1文字ã®ä»»æ„文字を表ã™+select * from tbl1 where PNAME LIKE '*ç”°';+select * from tbl1 where PNAME LIKE '?ç”°';+select * from tbl1 where PNAME LIKE '_ç”°';+select * from tbl1 where PNAME LIKE '%ç”°';(select * from tbl1 where PNAME = '*ç”°';Àç¾åœ¨ã®æ—¥ä»˜ã¯ã€2002å¹´6月30æ—¥ã§ã™ã€‚ 次ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select ADD_MONTHS(SYSDATE,1) from DUAL;°・ç¾åœ¨ã®æ—¥ä»˜ã®ï¼‘ãƒµæœˆå¾Œã®æ—¥ä»˜ã‚’è¿”ã—ã¾ã™ã€‚ ・ç¾åœ¨ã€02-06-30ã§ã™ã€‚02-07-30ã§ã¯ãªãã€02-07-31ãŒè¿”りã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select ADD_MONTHS(SYSDATE,1) from DUAL;   ADD_MONT   --------   02-07-31ˆ〠ADD_MONTHS関数ã„ã¤ã„㦠】 ・書å¼ï¼šADD_MONTHS(a,b)   a:日付   b:日付ã«åŠ ç®—ã™ã‚‹æœˆæ•°ï¼ˆãƒžã‚¤ãƒŠã‚¹ã®å€¤ã‚’指定ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ï¼‰   日付aã«bã®æœˆæ•°ã‚’加算ã—ãŸæ—¥ä»˜ã‚’è¿”ã—ã¾ã™ã€‚ 《例》   ADD_MONTHS('02-06-30', 1) → 02-07-31   ADD_MONTHS('02-06-30',-1) → 02-05-31   ADD_MONTHS('02-07-30',-1) → 02-06-30   ADD_MONTHS('02-07-31',-1) → 02-06-30   ADD_MONTHS('02-07-31',-5) → 02-02-2802-05-3102-07-0102-07-3002-07-31エラーã«ãªã‚‹å表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚照下ã•ã„) 次ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select INSTR(PNAME,'O',3) from tbl1; Á・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select INSTR(PNAME,'O',3) from tbl1;  INSTR(PNAME,'O',3)  ------------------           5 õ〠INSTR関数ã«ã¤ã„㦠】 ・書å¼ï¼šINSTR(char1,char2,a,b)   char1:æ¤œç´¢å¯¾è±¡ã®æ–‡å­—   char2:検索ã™ã‚‹æ–‡å­—   a:char1ã®æ¤œç´¢ã‚’é–‹å§‹ã™ã‚‹æ–‡å­—ä½ç½®   b:一致ã—ãŸå›žæ•°   çœç•¥å¯èƒ½ãªã®ã¯ã€a,bã¾ãŸã¯ï½‚ã§ã™ã€‚   char1ã®aã®ä½ç½®ã‹ã‚‰char2を検索ã—ã¦ã€b番目ã«ä¸€è‡´ã—ãŸæ–‡å­—ä½ç½®ã‚’è¿”ã—ã¾ã™ã€‚ 《例》   INSTR('TOKYO_TO_OSAKA','O',1)  → 2   INSTR('TOKYO_TO_OSAKA','O',3,2) → 8   INSTR('TOKYO_TO_OSAKA','O',3,3) → 10   INSTR('TOKYO_TO_OSAKA','X')   → 0   INSTR('TOKYO_TO_OSAKA','O')   → 2ï¼’58ï¼NULLܤÁ    表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2 PNAME       ---------- ---------- --------------------            1     9 TOKYO_TO_OSAKA    1行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ ½ç¾åœ¨ã®æ—¥ä»˜ã¯ã€2002å¹´8月12æ—¥ã§ã™ã€‚ 次ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select LAST_DAY(SYSDATE) from DUAL; Î・ç¾åœ¨ã®æ—¥ä»˜ã®æœˆæœ«ã‚’è¿”ã—ã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select LAST_DAY(SYSDATE) from DUAL;   LAST_DAY   --------   02-08-31Œ〠LAST_DAY関数ã«ã¤ã„㦠】 ・書å¼ï¼šLAST_DAY(a)   a:日付  日付aã®æœˆæœ«ã®æ—¥ä»˜ã‚’è¿”ã—ã¾ã™ã€‚ 3102-08-3102-09-3002-07-31エラーã«ãªã‚‹ç表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚照下ã•ã„) 次ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。   SQL> select NULLIF(COL1,COL2) from tbl1; ”・NULLIF関数ã§ã€ï¼’ã¤ã®å€¤ãŒä¸€è‡´ã—ãªã„ã®ã§ã€1ãŒè¿”りã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select NULLIF(COL1,COL2) from tbl1;   NULLIF(COL1,COL2)   -----------------           1å〠NULLIF関数ã«ã¤ã„㦠】 ・書å¼ï¼šNULLIF(a,b)   a:判定対象ã®å€¤   b:判定対象ã®å€¤  aã¨bãŒä¸€è‡´ã™ã‚‹æ™‚ã€NULLã‚’è¿”ã—ã¾ã™ã€‚  aã¨bãŒä¸€è‡´ã—ãªã„時ã€aã‚’è¿”ã—ã¾ã™ã€‚1ï¼™ NULL1ï¼ï¼ï¼˜Üô¿    表tbl1ã«ã¯ã€ï¼‘ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- --------------------            1    9  TOKYO    1行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ ]表ã®å®šç¾©å†…容を確èªã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。y・表ã®å®šç¾©å†…容を表示ã™ã‚‹ã®ã¯ã€DESCRIBEã§ã™ã€‚ ・一般的ã«ã¯ã€ç•¥ã—ã¦ã€DESCã¨å…¥åŠ›ã—ã¾ã™ã€‚‘〠DESCRIBEコマンドã«ã¤ã„㦠】 ・表定義ã®å†…容を確èªã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ã€‚ ・DESCRIBEã®çœç•¥å½¢ã¯ã€DESCã§ã™ã€‚ ・表示内容ã¯ã€åˆ—åã€NULLã®å¯ä¸å¯ã€åˆ—ã®åž‹ã§ã™ã€‚ 《例》表tbl1ã®å®šç¾©ã‚’表示ã—ã¾ã™ã€‚   (COL1ã®åˆ—ã¯ã€NOT NULLã§ã€ä»–ã®åˆ—ã¯ã€NULLå¯ã§ã™ã€‚)   SQL> desc tbl1;   åå‰ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€NULL?   åž‹   ----------------- --------- ----------------------------   COL1        NOT NULL NUMBER   COL2              CHAR(20)   COL3              DATESHOWDISPLAYDESCRIBEDUMPDETAILÛ表TBL1ã«ã¯ã€ç¤¾å“¡ç•ªå·(SNO),社員å(CNAME),給与(SAL)ã‚’æ ¼ç´ã—ã¦ã„ã¾ã™ã€‚ 給与ã®ä¸€ç•ªå¤šã„人ã®ç¤¾å“¡ç•ªå·ã€ç¤¾å“¡åã€çµ¦ä¸Žã‚’検索ã™ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。¯・実際ã«SQL文を実行ã™ã‚‹ã¨ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚(Xã¯ã€ã‚¨ãƒ©ãƒ¼ã§ã™ï¼‰ ・SELECT SNO,CNAME,MAX(SAL) FROM TBL1;  ×⇒「ORA-00937: å˜ä¸€ã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚°ãƒ«ãƒ¼ãƒ—関数ã§ã¯ã‚りã¾ã›ã‚“。〠・SELECT SNO,CNAME,SAL FROM TBL1 WHERE SAL = MAX(SAL);  ×⇒「ORA-00934: ã“ã“ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ—関数ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。〠・SELECT SNO,CNAME,SAL FROM TBL1 WHERE SAL           = ( SELECT MAX(SAL) FROM TBL1 );  ○⇒副å•åˆã›ã§çµ¦ä¸Žã®æœ€å¤§å€¤ã‚’求ã‚ã€ãã®å€¤ã«ä¸€è‡´ã™ã‚‹è¡Œã‚’検索ã—ã¾ã™ã€‚  WHEREå¥ã«å‰¯å•åˆã›ã‚’使用ã—ãŸå ´åˆã§ã™ã€‚ ・SELECT SNO,CNAME,SAL FROM TBL1 WHERE MAX(SAL)           = ( SELECT SAL FROM TBL1 );  ×⇒「ORA-00934: ã“ã“ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ—関数ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。〠・SELECT SNO,CNAME,SAL FROM TBL1 WHERE SAL A = MAX(A.SAL);  ×⇒「ORA-00920: 関係演算å­ãŒç„¡åйã§ã™ã€‚〠í〠副å•åˆã›ã«ã¤ã„㦠】  副å•åˆã›ã¨ã¯ã€å•åˆã›ã«ã€åŸ‹ã‚è¾¼ã¾ã‚ŒãŸå•åˆã›ã®ã“ã¨ã§ã™ã€‚  副å•åˆã›ã«ã¯ã€è¿”ã•れる行数ã€åˆ—ã§ã€ä»¥ä¸‹ã®ã‚ˆã†ã«åˆ†é¡žã—ã¾ã™ã€‚  ・å˜ä¸€è¡Œå‰¯å•åˆã›ã€€ï¼‘行ã®ã¿ãŒè¿”ã•れる。  ・複数行副å•åˆã›ã€€è¤‡æ•°è¡ŒãŒè¿”ã•れる。  ・複数列副å•åˆã›ã€€è¤‡æ•°åˆ—ã®ãƒ‡ãƒ¼ã‚¿ãŒè¿”ã•れる。  SELECTæ–‡ã§ã¯ã€WHEREå¥ã€HAVINGå¥ã€FROMå¥ã«ã€å‰¯å•åˆã›ãŒè¨˜è¿°ã§ãã¾ã™ã€‚$SELECT SNO,CNAME,MAX(SAL) FROM TBL1;4SELECT SNO,CNAME,SAL FROM TBL1 WHERE SAL = MAX(SAL);YSELECT SNO,CNAME,SAL FROM TBL1      WHERE SAL = ( SELECT MAX(SAL) FROM TBL1 );YSELECT SNO,CNAME,SAL FROM TBL1      WHERE MAX(SAL) = ( SELECT SAL FROM TBL1 );8SELECT SNO,CNAME,SAL FROM TBL1 WHERE SAL A = MAX(A.SAL);U表TBL1を定義ã™ã‚‹æ­£ã—ã„SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。Ù・数値型ã¨LONG RAWåž‹ã®åˆ—ã®è¡¨ã‚’定義ã—ã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> CREATE TABLE TBL1 ( P1 NUMBER,P2 LONG RAW);  表ãŒä½œæˆã•れã¾ã—ãŸã€‚Ý〠CREATE TABLE文ã«ã¤ã„㦠】  CREATE TABLE 表å (    列å データ型 [NOT NULL],    列å データ型 [NOT NULL],      ...    列å データ型 [NOT NULL] )  他ã®è¡¨ã‹ã‚‰æ–°ã—ã表を作æˆã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚   CREATE TABLE .. AS ( SELECTæ–‡ )!CREATE TBL1 ( P1 NUMBER,P2 LONG);+CREATE TABLE TBL1 ( P1 NUMBER,P2 LONG RAW);1CREATE TABLE TBL1 INTO ( P1 NUMBER,C1 CHAR(100));2CREATE TABLE TBL1 AS ( P1 NUMBER,C2 VARCHAR2(20));/CREATE TABLE TBL1 VALUES( P1 NUMBER,P2 NUMBER);Êæ¬¡ã®æ–‡ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼BILLã«ã€è¡¨TBL1ã®æ¤œç´¢ã®æ¨©é™ã‚’与ãˆã‚‹SQLæ–‡ã§ã™ã€‚ ã¾ãŸã€æ¤œç´¢ã®æ¨©é™ã¨ã¨ã‚‚ã«ã€æ¨©é™ã‚’与ãˆã‚‹æ¨©é™ã‚‚与ãˆã¦ã„ã¾ã™ã€‚ SQLæ–‡ã®ç©ºã„ã¦ã„る部分を埋ã‚る語をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> GRANT SELECT ON TBL1 TO BILL WITH [ ] OPTION;û・WITH GRANT OPTIONã§ã€ä¸Žãˆã‚‰ã‚ŒãŸæ¨©é™ã‚’与ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> GRANT SELECT ON TBL1 TO BILL WITH GRANT OPTION;  権é™ä»˜ä¸ŽãŒæˆåŠŸã—ã¾ã—ãŸã€‚·〠オブジェクト権é™ã®ä»˜ä¸Žã«ã¤ã„㦠】 æ§‹æ–‡:GRANT ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæ¨©é™ [,オブジェクト権é™...]     ON オブジェクトå     TO ユーザーå [,ユーザーå...]     [ WITH GRANT OPTION ] ・オブジェクト権é™ã¨ã—ã¦ã¯ã€ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚     SELECT,ALTER,DELETE,UPDATE,INDEX,INSERT,REFERENCES,EXECUTE ・WITH GRANT OPTION ã§ã€ä¸Žãˆã‚‰ã‚ŒãŸæ¨©é™ã‚’与ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ≪å‚考≫権é™ã«ã¯ã€ã‚ªãƒ–ジェクト権é™ã¨ã‚·ã‚¹ãƒ†ãƒ æ¨©é™ãŒã‚りã¾ã™ã€‚ADMINCHECKCASCADEPUBLICGRANTÊ表tbl1ã®åˆ—COL1ãŒNULL,COL2ãŒ1,COL3ãŒ2ã®æ™‚ã€æ¬¡ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。   SQL> select COALESCE(COL1,COL2,COL3) from tbl1;²・COALESCE関数ã§ã€COL1ã¯NULLã€COL2ã¯NULLã§ã¯ãªã„ã®ã§1ãŒè¿”りã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select COALESCE(COL1,COL2,COL3) from tbl1;  COALESCE(COL1,COL2,COL3)  ------------------------               1â〠COALESCE関数ã«ã¤ã„㦠】 æ§‹æ–‡:COALESCE(a,b,c,...) ・関数内ã®a,b,c,...ã§ã€æœ€åˆã®NULLã§ãªã„値を返ã—ã¾ã™ã€‚ ・関数内ã®a,b,c,...ãŒã™ã¹ã¦NULLã®æ™‚ã€NULLãŒè¿”りã¾ã™ã€‚ NULLï¼ï¼’31 €表TBL1ã®åˆ—COL1ã®å€¤ãŒï¼•ã®æ™‚ã€æ¬¡ã®SQLæ–‡ã®å®Ÿè¡Œã«ã‚ˆã‚Šè¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select DECODE(COL1,1,'Aクラス',2,'Bクラス',3,'Cクラス',       'Dクラス') FROM TBL1;Æ・DECODE関数ã§ã€è©²å½“ã™ã‚‹å€¤ãŒãªã„ã®ã§ã€'Dクラス'ã‚’è¿”ã—ã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select DECODE(COL1,1,'Aクラス',2,'Bクラス',3,'Cクラス',     'Dクラス') FROM TBL1;   DECODE(C   ---------   Dクラスº 〠DECODE関数ã«ã¤ã„㦠】 書å¼ï¼šDECODE(val,v1,d1,v2,d2,v3,d3,....,dx)   val:評価対象値   v1,v2,..:比較値   d1,d2,..:è¿”ã™å€¤   dx:該当ã™ã‚‹å€¤ãŒãªã„å ´åˆã«è¿”ã™å€¤ï¼ˆçœç•¥å¯èƒ½)   valã®å€¤ãŒã€v1ã®æ™‚ã«ã€d1ã‚’è¿”ã—ã¾ã™ã€‚   valã®å€¤ãŒã€v2ã®æ™‚ã«ã€d2ã‚’è¿”ã—ã¾ã™ã€‚   valã®å€¤ãŒã€v3ã®æ™‚ã«ã€d3ã‚’è¿”ã—ã¾ã™ã€‚     .... valã®å€¤ã¨ä¸€è‡´ã™ã‚‹æ¯”較値ãŒãªã„ã¨ãã€dxã‚’è¿”ã—ã¾ã™ã€‚ 一致ã™ã‚‹å€¤ãŒãªãã€dxã‚’çœç•¥ã—ã¦ã„ã‚‹ã¨NULLãŒè¿”りã¾ã™ã€‚ ≪å‚考≫DECODE関数ã¯ã€CASEå¼ã§è¨˜è¿°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚    CASE val     WHEN v1 THEN d1     WHEN v2 THEN d2     WHEN v3 THEN d3     ELSE dx    END 《例》å•題ã¨åŒã˜å†…容ã®SQL文をCASEå¼ã§è¨˜è¿°ã—ãŸå ´åˆã§ã™ã€‚   SQL>SELECT CASE COL1    2     WHEN 1 THEN 'Aクラス'    3     WHEN 2 THEN 'Bクラス'    4     WHEN 3 THEN 'Cクラス'    5     ELSE 'Dクラス'    6    END    7 FROM TBL1;    CASECOL1    ---------    Dクラス  Aクラス Bクラス Cクラス Dクラスエラーã«ãªã‚‹!Ðç¾åœ¨ï¼’ï¼ï¼ï¼’年8月12日ã€åˆå¾Œï¼‘時1ï¼åˆ†ã§ã™ã€‚ 次ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select ROUND(SYSDATE) from DUAL;÷・ç¾åœ¨ã€åˆå¾Œã®æ™‚é–“ãªã®ã§ã€å››æ¨äº”å…¥ã«ã‚ˆã‚Šåˆ‡ã‚Šä¸ŠãŒã‚Š13æ—¥ã«ãªã‚Šã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select ROUND(SYSDATE) from DUAL;  ROUND(SY  --------  02-08-13Ä〠ROUND関数(日付)ã«ã¤ã„㦠】 ・書å¼ï¼šROUND(日付)  時分秒を四æ¨äº”å…¥ã—ã¦ã€æ—¥ä»˜ã‚’è¿”ã—ã¾ã™ã€‚ 《例》åˆå‰ä¸­ã§ã‚れã°ã€å››æ¨äº”å…¥ã§ã€ãã®æ—¥ã®æ—¥ä»˜ã«ãªã‚Šã¾ã™ã€‚   SQL> select ROUND(SYSDATE) from DUAL;   ROUND(SY   --------   02-08-1202-08-1202-08-0002-08-1002-08-1302-08-31"W次ã®SQLæ–‡ã§ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。Ä・SELECT SYSDATE + TO_DATE('02-01-01') FROM DUAL;  ⇒「ORA-00975: æ—¥ä»˜ã¨æ—¥ä»˜ã®åŠ ç®—ã¯ã§ãã¾ã›ã‚“〠・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚(ç¾åœ¨ï¼˜æœˆï¼‘3日ã§ã™ï¼‰  SQL> SELECT SYSDATE + 5 FROM DUAL;  SYSDATE+  --------  02-08-18  SQL> SELECT SYSDATE - 5 FROM DUAL;  SYSDATE+  --------  02-08-08  SQL> SELECT SYSDATE - TO_DATE('02-01-01') FROM DUAL;  SYSDATE-TO_DATE('02-01-01')  ---------------------------             224.336285  SQL> SELECT (SYSDATE - TO_DATE('02-01-01')) / 10 FROM DUAL;  (SYSDATE-TO_DATE('02-01-01'))/10  --------------------------------                22.4338414í〠日付ã®è¨ˆç®—ã«ã¤ã„㦠】 ・OKã®å ´åˆï¼š   日付+数値 = 日付 ã€€ã€€æ—¥ä»˜ï¼æ•°å€¤ = 日付 ã€€ã€€æ—¥ä»˜ï¼æ—¥ä»˜ = 数値 ・NGã®å ´åˆï¼š   日付+日付   日付*数値 ã€€ã€€æ—¥ä»˜ï¼æ•°å€¤SELECT SYSDATE + 5 FROM DUAL;SELECT SYSDATE - 5 FROM DUAL;/SELECT SYSDATE - TO_DATE('02-01-01') FROM DUAL;/SELECT SYSDATE + TO_DATE('02-01-01') FROM DUAL;6SELECT (SYSDATE - TO_DATE('02-01-01')) / 10 FROM DUAL;#âç¾åœ¨ã®æ—¥æ™‚ãŒ2001å¹´8月19æ—¥åˆå‰0時10分20ç§’ã§ã™ã€‚ 次ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select to_char(sysdate,'YYYY/MM/DD HH:MI:SS') from dual;ð・SYSDATEã‚’TO_CHAR関数ã§å¤‰æ›ã—ãŸã¨ãã®å€¤ã®å•題ã§ã™ã€‚ ・時間ãŒï¼¨ï¼¨ã§ï¼‘2時間指定ã®å ´åˆã€ï¼æ™‚ã¯ã€ï¼‘2時ã«ãªã‚Šã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select to_char(sysdate,'YYYY/MM/DD HH:MI:SS') from dual;  TO_CHAR(SYSDATE,'YY  -------------------  2002/08/19 12:10:20Þ〠TO_CHARé–¢æ•°ã®æ™‚間指定ã«ã¤ã„㦠】 ・時間:HH,HH12 12時間指定     HH24   24時間指定 ・分:MI ・秒:SS 《例》時間指定ãŒã€ï¼‘2時間ã¨ï¼’4時間指定ã®å ´åˆ   TO_CHAR('YYYY/MM/DD HH12:MI:SS') → 2002/08/19 12:10:20   TO_CHAR('YYYY/MM/DD HH24:MI:SS') → 2002/08/19 00:10:202001/08/19 00:10:202001/8/19 00:10:202001/08/19 24:10:202001/08/19 12:10:20エラーã«ãªã‚‹$~表TBL1ã‹ã‚‰è¡¨TBL2ã«ãƒ‡ãƒ¼ã‚¿ã‚’追加ã—ã¾ã™ã€‚ æ­£ã—ã„SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。Ö・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  (表TBL1ã«ã¯ï¼•行ã‚りã¾ã™ã€‚) SQL> INSERT INTO TBL2 (COL1,COL2) SELECT COL1,COL2 FROM TBL1;  5行ãŒä½œæˆã•れã¾ã—ãŸã€‚þ〠他ã®è¡¨ã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã®è¿½åŠ ï¼ˆåˆ—æŒ‡å®šï¼‰ã«ã¤ã„㦠】 ・書å¼ï¼šINSERT INTO 表å(列å[,列å,..])          SELECT 列å[,列å,..] FROM 表å;   他ã®è¡¨ã®æŒ‡å®šåˆ—ã®ãƒ‡ãƒ¼ã‚¿ã‚’表ã«è¿½åŠ ã—ã¾ã™ã€‚ 《例》表TBL1ã®ãƒ‡ãƒ¼ã‚¿ã‚’表TBL2ã«è¿½åŠ ã—ã¾ã™ã€‚(列指定ãªã—)   INSERT INTO TBL2 SELECT * FROM TBL1;;INSERT INTO TBL2 (COL1,COL2) AS SELECT COL1,COL2 FROM TBL1;:INSERT INTO TBL2 (COL1,COL2) = SELECT COL1,COL2 FROM TBL1;8INSERT INTO TBL2 (COL1,COL2) SELECT COL1,COL2 FROM TBL1;:INSERT INTO TBL2 (COL1,COL2) SELECT (COL1,COL2) FROM TBL1;:INSERT INTO TBL2 (COL1,COL2) (SELECT COL1,COL2 FROM TBL1);%次ã®SQLæ–‡ã§ã€è¡¨TBL2ã‹ã‚‰è¡¨TBL1を作æˆã—ã¾ã—ãŸã€‚ 表TBL2ã«ã¯ã€(A)ã‹ã‚‰(E)ã®ç´¢å¼•ã€åˆ¶ç´„ãŒè¨­å®šã•れã¦ã„ã¾ã™ã€‚ 表TBL1ã«ã‚³ãƒ”ーã•れるもã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> CREATE TABLE TBL1 AS SELECT * FROM TBL2;«・表TBL2ã¨åŒã˜åˆ—åã§è¡¨TBL1ãŒä½œæˆã•れã¾ã™ã€‚ ・表TBL2ã‹ã‚‰ã‚³ãƒ”ーã•れるã®ã¯ã€ãƒ‡ãƒ¼ã‚¿ã¨NOT NULL制約ã ã‘ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> CREATE TABLE TBL1 AS SELECT * FROM TBL2;  表ãŒä½œæˆã•れã¾ã—ãŸã€‚÷〠他ã®è¡¨ã‹ã‚‰ã®è¡¨ä½œæˆã«ã¤ã„㦠】 ・書å¼ï¼šCREATE TABLE 表åA AS SELECT * FROM 表åB;  表åBã‹ã‚‰è¡¨åAを作æˆã—ã¾ã™ã€‚作æˆã•れる列åã¯ã€è¡¨åBã¨åŒã˜ã§ã™ã€‚  表ã‹ã‚‰ã‚³ãƒ”ーã•れるã®ã¯ã€ãƒ‡ãƒ¼ã‚¿ã¨NOT NULL制約ã§ã™ã€‚  主キー,デフォルト,CHECK,外部キー等ã®è¨­å®šã¯ã€ã‚³ãƒ”ーã•れã¾ã›ã‚“。ユニーク索引主キー索引NOT NULL制約デフォルト制約外部キー制約&î次ã®ã‚ˆã†ã«SQL文を実行ã—ã¾ã—ãŸã€‚ 表TBL1ã®åˆ—COL1ã«è¿½åŠ ã•れãŸãƒ‡ãƒ¼ã‚¿ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。    SAVEPOINT W1;    INSERT INTO TBL1(COL1) VALUES(10);    SAVEPOINT W1;    INSERT INTO TBL1(COL1) VALUES(20);    SAVEPOINT W1;    INSERT INTO TBL1(COL1) VALUES(30);    ROLLBACK TO W1; ˜ãƒ»æœ€å¾Œã«æŒ‡å®šã—ãŸSAVEPOINTãŒæœ‰åйã«ãªã‚Šã¾ã™ã€‚ ・最後ã®INSERTæ–‡ãŒROLLBACKã•れã¾ã™ã€‚10ã¨20ãŒè¿½åŠ ã•れã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ SQL> ROLLBACK TO W1;  ロールãƒãƒƒã‚¯ãŒå®Œäº†ã—ã¾ã—ãŸã€‚”〠SAVEPOINTæ–‡ã«ã¤ã„㦠】 ・書å¼ï¼šSAVEPOINT セーブãƒã‚¤ãƒ³ãƒˆå  トランザクション内ã§ãƒ­ãƒ¼ãƒ«ãƒãƒƒã‚¯ã•れるä½ç½®ã‚’指定ã™ã‚‹ã€‚ ・åŒã˜åã®ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆã‚’指定ã™ã‚‹ã¨ä»¥å‰ã®ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆã¯ã€æ¶ˆåŽ»ã•れ〠 最新ã®ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆãŒæœ‰åйã«ãªã‚Šã¾ã™ã€‚ ・セーブãƒã‚¤ãƒ³ãƒˆã¯ã€ROLLBACKã•れãŸå¾Œã‚‚有効ã§ã™ã€‚1ï¼1ï¼ã¨ï¼’ï¼ï¼’ï¼ã¨ï¼“ï¼3ï¼ãªã«ã‚‚追加ã•れãªã„'ê次ã®ã‚ˆã†ã«SQL文を実行ã—ã¾ã—ãŸã€‚ 表TBL1ã®åˆ—COL1ã«è¿½åŠ ã•れãŸãƒ‡ãƒ¼ã‚¿ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。    INSERT INTO TBL1(COL1) VALUES(10);    GRANT SELECT ON TBL1 TO PUBLIC;    INSERT INTO TBL1(COL1) VALUES(20);    TRUNCATE TABLE TBL2;    INSERT INTO TBL1(COL1) VALUES(30);    ROLLBACK; ’・GRANT,TRUNCATEæ–‡ã«ã‚ˆã‚Šã‚³ãƒŸãƒƒãƒˆã•れã¾ã™ã€‚(暗黙ã®ã‚³ãƒŸãƒƒãƒˆï¼‰ ・ROLLBACKã•れるã®ã¯ã€æœ€å¾Œã®INSERTæ–‡ã ã‘ã§ã™ã€‚Á〠暗黙ã®ã‚³ãƒŸãƒƒãƒˆã«ã¤ã„㦠】 ・一般的ã«ã¯ã€COMMIT文を実行ã—ã¦ã€æ˜Žç¤ºçš„ã«ã‚³ãƒŸãƒƒãƒˆã—ã¾ã™ã€‚ ・COMMIT以外ã§ã‚‚ã€DDLæ–‡ã«ã‚ˆã‚Šæš—é»™ã«ã‚³ãƒŸãƒƒãƒˆãŒè¡Œãªã‚れã¾ã™ã€‚ ≪å‚考≫DDLæ–‡ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ãªå‘½ä»¤ã§ã™ã€‚   CREATE,ALTER,DROP,GRANT,REVOKE,TRUNCATEç­‰1ï¼1ï¼ã¨ï¼’ï¼ï¼’ï¼ã¨ï¼“ï¼3ï¼ãªã«ã‚‚追加ã•れãªã„(Þ「販売管ç†ã€è¡¨ã‚’営業部ã®Aã•ã‚“ãŒæ›´æ–°ã—ã¦ã„ã¾ã™ã€‚åŒã˜å–¶æ¥­éƒ¨ã®Bã•ã‚“ãŒåŒã˜ã€Œè²©å£²ç®¡ç†ã€è¡¨ã‚’検索ã—ãŸã¨ãã€ã©ã†ãªã‚‹ã§ã—ょã†ã‹ã€‚ (A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。¶・「販売管ç†ã€è¡¨ã‚’営業部ã®Aã•ã‚“ãŒæ›´æ–°ã—ã¦ã‚‹ã®ã§ã€ãƒ­ãƒƒã‚¯ãŒã‹ã‹ã‚Šã¾ã™ã€‚ ・他ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã€å¾…ã¤ã“ã¨ãªãæ›´æ–°å‰ã®ãƒ‡ãƒ¼ã‚¿ã‚’見るã“ã¨ãŒã§ãã¾ã™ã€‚ ・他ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã€Aã•ã‚“ãŒã‚³ãƒŸãƒƒãƒˆã™ã‚‹ã¨æ›´æ–°ãƒ‡ãƒ¼ã‚¿ã‚’見るã“ã¨ãŒã§ãã¾ã™ã€‚ü〠読ã¿å–り一貫性ã«ã¤ã„㦠】 ・更新中ã®ãƒ‡ãƒ¼ã‚¿ã¯ã€ãƒ­ãƒƒã‚¯ãŒã‹ã‚Šã€ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯æ›´æ–°ã§ãã¾ã›ã‚“。 ・但ã—ã€æ¤œç´¢ã«é–¢ã—ã¦ã¯ã€å¾…ãŸã•れるã“ã¨ãªãã€æ›´æ–°å‰ã®ãƒ‡ãƒ¼ã‚¿ã‚’見るã“ã¨ãŒ  ã§ãã¾ã™ã€‚コミット後ã«ã¯ã€æ›´æ–°ãƒ‡ãƒ¼ã‚¿ã‚’見るã“ã¨ãŒã§ãã¾ã™ã€‚ ãƒ»åŒæ™‚実行性ã¨ãƒ‡ãƒ¼ã‚¿ã®ä¸€è²«æ€§ãŒä¸¡ç«‹ã—ã¦ã„ã¾ã™ã€‚ ・更新å‰ãƒ‡ãƒ¼ã‚¿ã‚’UNDOè¡¨é ˜åŸŸã«æ ¼ç´ã™ã‚‹ã“ã¨ã§ã“ã®æ©Ÿèƒ½ã‚’実ç¾ã—ã¦ã„ã¾ã™ã€‚FAã•ã‚“ãŒæ›´æ–°ã—ã¦ã„ã‚‹ã®ã§ã€ãƒ­ãƒƒã‚¯ã«ã‚ˆã‚Šå¾…ãŸã•れる7Aã•ã‚“ãŒæ›´æ–°ã—ã¦ã„ã‚‹ã®ã§ã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹:Aã•ã‚“ãŒæ›´æ–°ã—ãŸãƒ‡ãƒ¼ã‚¿ã‚’見るã“ã¨ãŒã§ãã‚‹UAã•ã‚“ãŒæ›´æ–°ã—ã¦ã„ã‚‹ã®ã§ã€æ›´æ–°å‰ã®ãƒ‡ãƒ¼ã‚¿ã‚’見るã“ã¨ãŒã§ãã‚‹)H次ã®SQLæ–‡ã§è¡¨åˆ¶ç´„ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。­・表制約åˆã¯åˆ—制約ã¯ã€æ§‹æ–‡ãŒé•ã„ã¾ã™ã€‚(NOT NULLã¯ã€åˆ—制約ã®ã¿ï¼‰ ・CREATE TABLE TBL1( COL1 NUMBER,           COL2 NUMBER,           CONSTRAINTS P_KEY PRIMARY KEY(COL1)); ・上記以外ã®é¸æŠžè‚¢ã¯ã€ã™ã¹ã¦åˆ—制約ã§ã™ã€‚ã〠表制約ã¨åˆ—制約ã«ã¤ã„㦠】 ・表制約ã¨åˆ—制約ã¯ã€æ§‹æ–‡ãŒé•ã„ã¾ã™ã€‚ ・表制約ã¨åˆ—制約ã¯ã€æ··åœ¨ã—ã¦è¨˜è¿°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ãƒ»è¡¨åˆ¶ç´„ã®æ§‹æ–‡ï¼š    CREATE TABLE 表å     ( 列å データ型,       ...      列å データ型,      ,制約       ...      ,制約 ); ãƒ»åˆ—åˆ¶ç´„ã®æ§‹æ–‡ï¼š    CREATE TABLE 表å     ( 列å データ型 制約,       ...      列å データ型 制約); ・NOT NULLã¯ã€åˆ—制約ã®ã¿ã§ã™ã€‚ VCREATE TABLE TBL1( COL1 NUMBER PRIMARY KEY,          COL2 NUMBER );RCREATE TABLE TBL1( COL1 NUMBER UNIQUE,          COL2 NUMBER );SCREATE TABLE TBL1( COL1 NUMBER NOT NULL,          COL2 NUMBER );ŠCREATE TABLE TBL1( COL1 NUMBER,          COL2 NUMBER,          CONSTRAINTS P_KEY PRIMARY KEY(COL1));_CREATE TABLE TBL1( COL1 NUMBER,          COL2 NUMBER REFERENCES TBL2(COL1));*mLONGåž‹ã®ãƒ‡ãƒ¼ã‚¿ã«é–¢ã™ã‚‹èª¬æ˜Žã§èª¤ã£ã¦ã„ã‚‹ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。‚・LONGåž‹ã®ãƒ‡ãƒ¼ã‚¿ã‚’WHEREå¥ã«è¨˜è¿°ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 ・上記以外ã¯ã€ã™ã¹ã¦æ­£ã—ã„説明ã§ã™ã€‚ƒ〠LONG,LONG RAWåž‹ã«ã¤ã„㦠】 ・1ã¤ã®è¡¨ã«ï¼‘ã¤ã ã‘定義ã§ãã¾ã™ã€‚ ・索引ã€åˆ¶ç´„ã«ä½¿ç”¨ã§ãã¾ã›ã‚“。 ・WHEREå¥ã«ã¯æŒ‡å®šã§ãã¾ã›ã‚“。 ・SELECT/UPDATE/INSERTã¯å¯èƒ½ã§ã™ã€‚ ・DISTINCT/COUNT/LENGTH/VSIZEã«æŒ‡å®šã§ãã¾ã›ãˆã‚“。 ・LONGåž‹ã¯ã€å¯å¤‰é•·æ–‡å­—列型ã€LONG RAWåž‹ã¯ã€å¯å¤‰é•·ãƒã‚¤ãƒŠãƒªãƒ¼åž‹ã§ã€  最大2Gã¾ã§æ ¼ç´ã§ãã¾ã™ã€‚ 《例》1ã¤ã®è¡¨ã«ã€LONGåž‹ã¨LONG RAW型を指定ã™ã‚‹ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚   SQL>CREATE TABLE TBL1 ( COL1 LONG,COL2 LONG RAW );   ORA-01754:LONGåž‹ã®åˆ—ã¯è¡¨ã«ï¼‘ã¤ã®ã¿å«ã‚られã¾ã™*å¯å¤‰é•·ã®æ–‡å­—型データã§ã‚る。<1ã¤ã®è¡¨ã«ï¼‘ã¤ã ã‘定義ã™ã‚‹ã“ã¨ãŒã§ãる。-索引ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ã¯ã§ããªã„。,WHEREå¥ã«è¨˜è¿°ã™ã‚‹ã“ã¨ãŒã§ãる。-æœ€å¤§ã®æ ¼ç´ã‚µã‚¤ã‚ºã¯ï¼’ï¼§ã§ã‚る。+V表TBL1ã®åˆ—COL1を削除ã™ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。”・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> ALTER TABLE TBL1 DROP COLUMN COL1;  表ãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚ß〠列ã®å‰Šé™¤ã«ã¤ã„㦠】 ・書å¼ï¼šALTER TABLE 表å DROP COLUMN 列å [CASCADE CONSTRAINTS] ãƒ»è¡¨ã®æŒ‡å®šåˆ—を削除ã—ã¾ã™ã€‚ ãƒ»è¡¨ã®æœ€å¾Œã®åˆ—ã¯ã€å‰Šé™¤ã§ãã¾ã›ã‚“。(以下ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ï¼‰  「ORA-12983:表ã®åˆ—ã‚’ã™ã¹ã¦å‰Šé™¤ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。〠・削除ã—ãŸåˆ—ã¯ã€ROLLBACKã§ãã¾ã›ã‚“。 ・列ã«ãƒ‡ãƒ¼ã‚¿ãŒæ ¼ç´ã•れã¦ã„ã¦ã‚‚削除ã§ãã¾ã™ã€‚ ・削除列ãŒã€å¤–部å‚ç…§ã®è¦ªã‚­ãƒ¼åˆã¯CHECK制約ã®å ´åˆå‰Šé™¤ã§ãã¾ã›ã‚“。  親キーã®å ´åˆã«ã¯ã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚  「ORA-12992:親キーã®åˆ—ã¯å‰Šé™¤ã§ãã¾ã›ã‚“。〠 但ã—ã€CASCADE CONSTRAINTSå¥ã‚’指定ã™ã‚Œã°ã€å‰Šé™¤å¯èƒ½ã§ã™ã€‚"ALTER TABLE TBL1 DROP COLUMN COL1;$ALTER TABLE TBL1 DELETE COLUMN COL1;"ALTER TABLE TBL1 DROP COL1 COLUMN;#ALTER TABLE TBL1 CLEAR COLUMN COL1;列ã®å‰Šé™¤ã¯ã§ããªã„。,Þ次ã®SQLæ–‡ã¯ã€SQL99æ§‹æ–‡ã«ã‚ˆã‚‹è¡¨çµåˆã§ã™ã€‚ åŒã˜å‡¦ç†ã®SQL文を(A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SELECT P.PID,P.PNAME,D.PICO FROM PRD P LEFT OUTER JOIN PDETAIL D     ON P.PID = D.PID;J・SQL99æ§‹æ–‡ã¨åŒã˜Oracleã®è¡¨çµåˆæ§‹æ–‡ã‚’求ã‚ã‚‹å•題ã§ã™ã€‚¡ 〠左外部çµåˆã«ã¤ã„㦠】 ・構文:SELECT ... FROM 表åA,表åB         WHERE 表åA.列å = 表åB.列å(+);  2ã¤ã®è¡¨ã‚’çµåˆã—ã¾ã™ãŒã€å·¦å´ã®è¡¨ã§ã€å³å´ã®è¡¨ã¨ä¸€è‡´ã—ãªã„行も出力  ã—ã¾ã™ã€‚  ○SQL99ã®æ§‹æ–‡:SELECT ... FROM 表åA LEFT OUTER JOIN 表åB         ON 表åA.列å = 表åB.列å; 《例》å˜ç´”ãªï¼’ã¤ã®è¡¨ã§ã€å·¦å¤–部çµåˆã‚’示ã—ã¾ã™ã€‚   SQL>SELECT * FROM PRD; â†PRD表ã®å†…容ã§ã™ã€‚    PID PNAME   ----- ------     10 DISK10     20 DISK20   SQL>SELECT * FROM PDETAIL; â†PDETAIL表ã®å†…容ã§ã™ã€‚    PID PICO   ----- ------     10 TOKYO     30 OSAKA   SQL>SELECT P.PID,P.PNAME,D.PICO  â†å†…部çµåˆã§ã™ã€‚       FROM PRD P,PDETAIL D WHERE P.PID = D.PID;    PID PNAME PICO   ----- ------ -----     10 DISK10 TOKYO   â†ä¸€è‡´ã™ã‚‹è¡Œã®ã¿å‡ºåŠ›ã—ã¾ã™ã€‚   SQL>SELECT P.PID,P.PNAME,D.PICO  â†å·¦å¤–部çµåˆã§ã™       FROM PRD P,PDETAIL D WHERE P.PID = D.PID(+);    PID PNAME PICO   ----- ------ -----     10 DISK10 TOKYO     20 DISK20      â†å·¦å´ã®è¡¨ã«ã®ã¿å­˜åœ¨ã™ã‚‹è¡Œã‚‚出力ã—ã¾ã™ã€‚ mSELECT P.PID,P.PNAME,D.PICO FROM PRD P,PDETAIL D              WHERE P.PID(+) = D.PID;gSELECT P.PID,P.PNAME,D.PICO FROM PRD P,PDETAIL D              ON P.PID = D.PID;mSELECT P.PID,P.PNAME,D.PICO FROM PRD P,PDETAIL D              WHERE P.PID = D.PID(+);mSELECT P.PID,P.PNAME,D.PICO FROM PRD P,PDETAIL D              WHERE P.PID =(+) D.PID;-½次ã®SQLæ–‡ã¨åŒã˜å‡¦ç†ã®SQL文を(A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SELECT P.PID,P.PNAME,D.PICO FROM PRD P INNER JOIN PDETAIL D    ON P.PID = D.PID WHERE P.PID > 20;|・SQLæ§‹æ–‡ã¨åŒã˜Oracleã®è¡¨çµåˆæ§‹æ–‡ã‚’求ã‚ã‚‹å•題ã§ã™ã€‚ ・表çµåˆã¨æ¤œç´¢æ¡ä»¶ã®ã‚ã‚‹æ§‹æ–‡ã§ã™ã€‚ÿ〠等価çµåˆï¼ˆæ¤œç´¢æ¡ä»¶ï¼‰ã«ã¤ã„㦠】 ・構文:SELECT ... FROM 表åA,表åB      WHERE 表åA.列å = 表åB.列å AND 検索æ¡ä»¶;  2ã¤ã®è¡¨ã‚’çµåˆã—ã€æ¤œç´¢æ¡ä»¶ã§çµžã‚Šè¾¼ã¿ã¾ã™ã€‚  ○SQLã®æ§‹æ–‡:SELECT ... FROM 表åA INNER JOIN 表åB          ON 表åA.列å = 表åB.列å WHERE 検索æ¡ä»¶; kSELECT P.PID,P.PNAME,D.PICO FROM PRD P,PDETAIL D            USING PID WHERE P.PID > 20;sSELECT P.PID,P.PNAME,D.PICO FROM PRD P,PDETAIL D            WHERE P.PID = D.PID AND P.PID > 20;rSELECT P.PID,P.PNAME,D.PICO FROM PRD P,PDETAIL D            ON P.PID = D.PID WHERE P.PID > 20;vSELECT P.PID,P.PNAME,D.PICO FROM PRD P,PDETAIL D            WHERE P.PID = D.PID HAVING P.PID > 20;.]作æˆã—ãŸãƒ“ãƒ¥ãƒ¼ã‚’æ›¸ãæ›ãˆã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。²・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚   SQL> CREATE OR REPLACE VIEW V1 AS SELECT COL1,COL2 FROM TBL1;   ビューãŒä½œæˆã•れã¾ã—ãŸã€‚ãã€ ãƒ“ãƒ¥ãƒ¼ã®æ›¸ãæ›ãˆã«ã¤ã„㦠】 ・書å¼ï¼šCREATE OR REPLACE VIEW ビューå AS SELECTæ–‡ ・CREATEæ–‡ã§ã€OR REPLACEå¥ã‚’指定ã™ã‚‹ã“ã¨ã§ã€åŒã˜ãƒ“ューåã§ã€ãƒ“ューを ã€€æ›¸ãæ›ãˆã¾ã™ã€‚-CREATE VIEW V1 AS SELECT COL1,COL2 FROM TBL1;3CREATE FORCE VIEW V1 AS SELECT COL1,COL2 FROM TBL1;,ALTER VIEW V1 AS SELECT COL1,COL2 FROM TBL1;8CREATE OR REPLACE VIEW V1 AS SELECT COL1,COL2 FROM TBL1;5CREATE REPLACE VIEW V1 AS SELECT COL1,COL2 FROM TBL1;/lビューを使用ã—ãŸæ›´æ–°ã§ã€æ›´æ–°å¯èƒ½ãªãƒ“ューをã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。K・表をçµåˆã—ãŸãƒ“ューã¯ã€åˆ¶é™ã¯ã‚りã¾ã™ãŒå¯èƒ½ã§ã™ã€‚Ñ〠ビューã§ã®æ›´æ–°ã«ã¤ã„㦠】  ○更新å¯èƒ½ãƒ“ュー  ・表をçµåˆã—ãŸãƒ“ュー(DMLæ–‡ãŒçµåˆè¡¨ã®ï¼‘ã¤ã®ã¿ã‚’æ›´æ–°ã™ã‚‹ï¼‰  ・ビューã«ã‚ˆã‚Šè¡¨ã‚’æ›´æ–°ã§ãã¾ã™ã€‚  ○更新ã§ããªã„ビュー  ・GROUP BYå¥ã‚’使用ã—ãŸãƒ“ュー  ・å¼ã«ã‚ˆã‚Šå®šç¾©ã—ãŸãƒ“ュー  ・DISTINCTå¥ã‚’使用ã—ãŸãƒ“ュー  ・グループ関数を使用ã—ãŸãƒ“ュー  ・擬似列ROWNUMを使用ã—ãŸãƒ“ュー表をçµåˆã—ãŸãƒ“ュー#GROUP BYå¥ã‚’使用ã—ãŸãƒ“ュー!å¼ã«ã‚ˆã‚Šå®šç¾©ã—ãŸãƒ“ュー#DISTINCTå¥ã‚’使用ã—ãŸãƒ“ュー*グループ関数を使用ã—ãŸãƒ“ュー0cSQL*Plus環境ã®è¨­å®šã‚’行ãªã†ãƒ•ァイルåã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 P・SQL*Plus環境ã®è¨­å®šã‚’行ãªã†ãƒ•ァイルåã«é–¢ã™ã‚‹å•題ã§ã™ã€‚ó〠LOGIN.SQLã«ã¤ã„㦠】 ・SQL*Plusã®ç’°å¢ƒã‚’設定ã™ã‚‹ãƒ•ァイルã§ã™ã€‚ ・LOGIN.SQLã¯ã€SQL*Plusã®èµ·å‹•ディレクトリã«é…ç½®ã—ã¾ã™ã€‚ ・LOGIN.SQLã«ã¯ã€SQLæ–‡ã€PL/SQLブロックã€SQL*Plusコマンドを格ç´ã™ã‚‹ã“ã¨ãŒ  ã§ãã¾ã™ã€‚ ・LOGIN.SQLãŒãªãã¦ã‚‚SQL*Plusã¯ã€ã‚¨ãƒ©ãƒ¼ã«ã¯ãªã‚Šã¾ã›ã‚“。  ORACLE.INI LOGIN.SQL LOGIN.ORA ORACLE.SQL LOGIN.INI1„ユーザーBrianã®ãƒ‘スワードをI6n8Zq8ã«å¤‰æ›´ã™ã‚‹SQLæ–‡ã§æ­£ã—ã„ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。ò・パスワードを変更ã™ã‚‹SQLæ–‡ã®æ§‹æ–‡ã«ã¤ã„ã¦ã®å•題ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> ALTER USER BRIAN IDENTIFIED BY I6n8Zq8;  ユーザーãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚ Ü〠パスワードã®å¤‰æ›´ã«ã¤ã„㦠】 ・書å¼ï¼šALTER USER ユーザーå IDENTIFIED BY パスワードå; ・ALTER USERæ–‡ã§ã¯ã€ãƒ‘スワードã€ãƒ‡ãƒ•ォルト表領域ã€ä¸€æ™‚表領域ã€ã‚¯ã‚©ãƒ¼ã‚¿ã‚’  変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ・変更ã«ã¯ã€æ¨©é™ãŒå¿…è¦ã§ã€ä¸€èˆ¬ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒãƒ¦ãƒ¼ã‚¶ãƒ¼è‡ªèº«ã§å¤‰æ›´ã§ãã‚‹ã®ã¯ã€  パスワードã ã‘ã§ã™ã€‚ ・ALTER USERæ–‡ã§ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼åã®å¤‰æ›´ã¯ã§ãã¾ã›ã‚“。 )ALTER USER BRIAN MODIFY PASSWORD I6n8Zq8;'ALTER USER BRIAN IDENTIFIED BY I6n8Zq8;,ALTER USER BRIAN RENAME PASSWORD TO I6n8Zq8;%ALTER USER BRIAN PASSWORD BY I6n8Zq8;%ALTER USER BRIAN CHANGE INTO I6n8Zq8;2é †åºS1を作æˆã—ã¾ã—ãŸã€‚ ç¾åœ¨ã®é †åºå€¤ã‚’å–å¾—ã™ã‚‹ãŸã‚ã®è¨˜è¿°ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。Y・ç¾åœ¨ã®é †åºå€¤ã‚’å–å¾—ã™ã‚‹ã«ã¯ã€ã€Œé †åºå.CURRVALã€ã‚’使用ã—ã¾ã™ã€‚ë〠順åºå€¤ã®å–å¾—ã«ã¤ã„㦠】 ・ç¾åœ¨ã®é †åºå€¤ã‚’å–å¾—ã™ã‚‹ã«ã¯ã€ã€Œé †åºå.CURRVALã€ã‚’使用ã—ã¾ã™ã€‚ ・順åºã‚’次ã«é€²ã‚ã€é †åºå€¤ã‚’å–å¾—ã™ã‚‹ã«ã¯ã€ã€Œé †åºå.NEXTVALã€ã‚’使用ã—ã¾ã™ã€‚ S1.CURVAL S1.CURRENT S1.CURRVAL S1.TMPVALS1.VALUE3Ã次ã®ã‚ˆã†ãªé †åºS1を作æˆã—ã¾ã—ãŸã€‚作æˆã—ãŸé †åºã«é–¢ã™ã‚‹èª¤ã£ãŸèª¬æ˜Žã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ï¼’ã¤é¸ã‚“ã§ä¸‹ã•ã„。  SQL> create sequence s1 start with 10 increment by 5                     minvalue 5 maxvalue 30;  順åºãŒä½œæˆã•れã¾ã—ãŸã€‚Á・順åºã‚’åˆæœŸåŒ–ã™ã‚‹ãŸã‚ã«ã€å§‹ã‚ã«S1.CURRVALを実行ã™ã‚‹  ⇒順åºã‚’åˆæœŸåŒ–ã™ã‚‹ãŸã‚ã«å®Ÿè¡Œã™ã‚‹ã®ã¯NEXTVALã§ã™ã€‚ ・順åºå€¤ã¯ã€æœ€å¤§å€¤ã®ï¼“ï¼ã‚’è¶Šãˆã‚‹ã¨ã€æœ€å°å€¤ã®ï¼•ã«ã‚‚ã©ã‚‹  ⇒CYCLEã®æŒ‡å®šãŒãªã„å ´åˆã€æœ€å¤§å€¤ã‚’è¶Šãˆã‚‹ã¨ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚   ORA-08004:   順åºS1.NEXTVALã®exceedsMAXVALUEã¨çŸ›ç›¾ã—ã¦ã„ã¾ã™ã€‚インスタンス化ã§ãã¾ã›ã‚“³〠順åºã«ã¤ã„㦠】 ・書å¼ï¼šCREATE SEQUENCE é †åºå START WITH 開始値         INCREMENT BY 増分値 MINVALUE 最å°å€¤ MAXVALUE 最大値        [ CYCLE | NOCYCLE ]        [ CACHE キャッシュ値 | NOCACHE ] ・必須ãªã®ã¯ã€é †åºåã ã‘ã§ã™ã€‚ ・開始値ã€å¢—åˆ†å€¤ã€æœ€å°å€¤ã€æœ€å¤§å€¤ç­‰ã¯çœç•¥ã§ãã¾ã™ã€‚ ・順åºã¯ã€è¡¨ã¨ã¯ç‹¬ç«‹ã—ã¦ã„ã‚‹ã®ã§è¤‡æ•°ã®è¡¨ã§ä½¿ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ・順åºã‚’åˆæœŸåŒ–ã™ã‚‹ãŸã‚ã«NEXTVALを実行ã—ã¾ã™ã€‚  (順åºã‚’åˆæœŸåŒ–ã—ãªã„ã§CURRVALを実行ã™ã‚‹ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ï¼‰ ・順åºã§æœ€å¤§å€¤ã‚’è¶ŠãˆãŸå ´åˆã€CYCLE指定ãŒãªã„ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚ ・最å°å€¤ã¯ã€é–‹å§‹å€¤ã‚ˆã‚Šå¤§ããã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。Fé †åºã‚’åˆæœŸåŒ–ã™ã‚‹ãŸã‚ã«ã€å§‹ã‚ã«S1.CURRVALを実行ã™ã‚‹$é †åºã®å¢—分値ã¯ã€ï¼•ã§ã‚ã‚‹*é †åºã®å§‹ã‚ã®å€¤ã¯ã€ï¼‘ï¼ã§ã‚ã‚‹Né †åºå€¤ã¯ã€æœ€å¤§å€¤ã®ï¼“ï¼ã‚’è¶Šãˆã‚‹ã¨ã€æœ€å°å€¤ã®ï¼•ã«ã‚‚ã©ã‚‹Bé †åºå€¤ã¯ã€æœ€å¤§å€¤ã®ï¼“ï¼ã‚’è¶Šãˆã‚‹ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹4Ý次ã®ã‚ˆã†ãªé †åºS1を作æˆã—ã¾ã—ãŸã€‚ 作æˆã—ãŸé †åºã®ï¼‘~5回目ã®å€¤ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> create sequence s1 increment by -1;  順åºãŒä½œæˆã•れã¾ã—ãŸã€‚Q・増分値ãŒè² æ•°ã®å ´åˆã®ãƒ‡ãƒ•ォルトã®é–‹å§‹å€¤ã¯ã€ï¼ï¼‘ã§ã™ã€‚“〠順åºã®å¢—分値ã«ã¤ã„㦠】 ・増分値ãŒè² æ•°ã®å ´åˆã®ãƒ‡ãƒ•ォルトã®é–‹å§‹å€¤ã¯ã€ï¼ï¼‘ã§ã™ã€‚ ãƒ»å¢—åˆ†å€¤ãŒæ­£æ•°ã®å ´åˆã®ãƒ‡ãƒ•ォルトã®é–‹å§‹å€¤ã¯ã€ï¼‘ã§ã™ã€‚ ・CREATE SEQUENCE S1;  S1ã®é †åºå€¤ã¯ã€ï¼‘,2,3,4...ã¨ãªã‚Šã¾ã™ã€‚ ・CREATE SEQUENCE S2 INCREMENT BY -1;  S2ã®é †åºå€¤ã¯ã€ï¼ï¼‘,ï¼ï¼’,ï¼ï¼“,ï¼ï¼”...ã¨ãªã‚Šã¾ã™ã€‚ ・CREATE SEQUENCE S3 INCREMENT BY 5;   S3ã®é †åºå€¤ã¯ã€ï¼‘ã€ï¼–,11ã€ï¼‘ï¼–...ã¨ãªã‚Šã¾ã™ã€‚ ・CREATE SEQUENCE S4 INCREMENT BY -5;   S4ã®é †åºå€¤ã¯ã€ï¼ï¼‘ã€ï¼ï¼–ã€ï¼ï¼‘1ã€ï¼ï¼‘ï¼–...ã¨ãªã‚Šã¾ã™ã€‚ $1ã€ï¼ã€ï¼ï¼‘ã€ï¼ï¼’ã€ï¼ï¼“*ï¼ï¼‘ã€ï¼ï¼’ã€ï¼ï¼“ã€ï¼ï¼”ã€ï¼ï¼•'ï¼ã€ï¼ï¼‘ã€ï¼ï¼’ã€ï¼ï¼“ã€ï¼ï¼”1ï¼ï¼Œï¼™ï¼Œï¼˜ï¼Œï¼—,6エラーã«ãªã‚‹5—次ã®ã‚ˆã†ãªé †åºS1を作æˆã—ã¾ã—ãŸã€‚  SQL> CREATE SEQUENCE S1;  ç¾åœ¨ã®é †åºã®å€¤ã¯ã€ï¼‘ã§ã™ã€‚  次ã®SQL文を実行ã—ãŸæ™‚ã®å€¤ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> SELECT S1.CURRVAL,S1.NEXTVAL,S1.CURRVAL,S1.NEXTVAL FROM DUAL;™・Oracleã¯ã€å˜ä¸€ã®SQLæ–‡ã«ã€è¤‡æ•°ã®NEXTVALãŒã‚ã£ã¦ã‚‚一度ã®NEXTVALを実行ã—〠 複数ã®CURRVALãŒã‚ã£ã¦ã‚‚åŒã˜å€¤ã‚’è¿”ã—ã¾ã™ã€‚  ç¾åœ¨ã®é †åºå€¤ã¯ï¼‘ãªã®ã§ã€ï¼‘度ã ã‘増分ã—ã€ï¼’ã®å€¤ã‚’è¿”ã—ã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> SELECT S1.CURRVAL,S1.NEXTVAL,S1.CURRVAL,S1.NEXTVAL FROM DUAL;   CURRVAL  NEXTVAL  CURRVA NEXTVAL  --------- --------- -------- --------       2     2     2    2®〠CURRVALã¨NEXTVALã«ã¤ã„㦠】 ・å˜ä¸€ã®SQLæ–‡ã«ã€è¤‡æ•°ã®NEXTVALãŒã‚ã£ã¦ã‚‚一度ã®NEXTVALを実行ã—ã¾ã™ã€‚ ・å˜ä¸€ã®SQLæ–‡ã«ã€è¤‡æ•°ã®CURRVALãŒã‚ã£ã¦ã‚‚åŒã˜å€¤ã‚’è¿”ã—ã¾ã™ã€‚ ・å˜ä¸€ã®SQLæ–‡ã«ã€NEXTVALã€CURRVALãŒã‚ã‚‹å ´åˆã€åŒã˜å€¤ã‚’è¿”ã—ã¾ã™ã€‚1ã€ï¼’,2,21,2,2,32,2,2,21,3,3,33,3,3,36ké †åºå€¤å–å¾—ã®NEXTVAL,CURRVALãŒä½¿ç”¨å¯èƒ½ãªã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 ]・UPDATEæ–‡ã®å‰¯å•åˆã›ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“ãŒã€SETå¥ã§ã¯ä½¿ç”¨ã§ãã¾ã™ã€‚É〠順åºå€¤å–å¾—ã®NEXTVAL,CURRVALã®åˆ¶é™äº‹é …ã«ã¤ã„㦠】 NEXTVAL,CURRVALã¯ã€SQLæ–‡ã®ä»¥ä¸‹ã®å€‹æ‰€ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。 ・SELECT,UPDATE,DELETEæ–‡ã®å‰¯å•åˆã› ・DISTINCTã®ã‚ã‚‹SELECTæ–‡ ・GROUP BY,ORDER BYã®ã‚ã‚‹SELECTæ–‡ ・SELECTæ–‡ã®WHEREå¥ ãƒ»CREATE TABLEæ–‡ã®DEFAULTå¥ ãƒ»CHECK制約SELECTæ–‡ã®WHEREå¥CREATE TABLEæ–‡ã®DEFAULTå¥SELECTæ–‡ã®å‰¯å•åˆã› CHECK制約UPDATEæ–‡ã®SETå¥7ŒユーザーKellyã®è¡¨é ˜åŸŸUSERSã®ä½¿ç”¨é‡ã‚’10Mãƒã‚¤ãƒˆã«åˆ¶é™ã™ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。    ä・表領域ã®ä½¿ç”¨å®¹é‡ã‚’制é™ã™ã‚‹SQLæ§‹æ–‡ã®å•題ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> ALTER USER Kelly QUOTA 10M ON USERS  ユーザーãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚å〠表領域ã®ä½¿ç”¨å®¹é‡ã®åˆ¶é™ã«ã¤ã„㦠】 ・書å¼ï¼šALTER USER ユーザーå QUOTA サイズ ON 表領域å; ã€€è¡¨é ˜åŸŸã®æœ€å¤§ä½¿ç”¨å®¹é‡ã‚’指定ã—ã¾ã™ã€‚  サイズã¯ã€æ•°å€¤ã®å¾Œã«M,Kを付ã‘ã¦ãƒ¡ã‚¬ãƒã‚¤ãƒˆ,キロãƒã‚¤ãƒˆã‚’表ã—ã¾ã™ã€‚  ã“ã®å‘½ä»¤ã‚’実行ã™ã‚‹ã«ã¯ã€ALTER USER システム権é™ãŒå¿…è¦ã§ã™ã€‚  ユーザー作æˆã®CREATE USERæ–‡ã§ã‚‚QUOTA以下åŒã˜è¨˜è¿°ã§å®¹é‡ã‚’制é™ã§ãã¾ã™ã€‚ 《例》ユーザーKellyã®è¡¨é ˜åŸŸUSERSã‚’20MBã€TEMPã‚’5MB変更ã—ã¾ã™ã€‚   ALTER USER Kelly QUOTA 20M ON USERS QUOTA 5M ON TEMP;)ALTER USER Kelly USED LIMIT 10M ON USERS;&ALTER USER Kelly LIMITED 10M ON USERS;'ALTER USER Kelly QUOTA BY 10M ON USERS;*ALTER USER Kelly RESTRICT TO 10M ON USERS;$ALTER USER Kelly QUOTA 10M ON USERS;8®ユーザーCarlã®è¡¨é ˜åŸŸUSERSã§ã®ä½¿ç”¨å®¹é‡ã‚’無制é™ã«å¤‰æ›´ã™ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。                ð・表領域ã®ä½¿ç”¨å®¹é‡ã‚’無制é™ã«ã™ã‚‹SQLæ§‹æ–‡ã®å•題ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> ALTER USER Carl QUOTA UNLIMITED ON USERS;  ユーザーãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚î〠表領域ã®ä½¿ç”¨å®¹é‡ã®ç„¡åˆ¶é™æŒ‡å®šã«ã¤ã„㦠】 ・書å¼ï¼šALTER USER ユーザーå QUOTA UNLIMITED ON 表領域å;   指定ã®è¡¨é ˜åŸŸã§ã®ä½¿ç”¨å®¹é‡ã‚’無制é™ã«ã—ã¾ã™ã€‚   使用容é‡ã®ç„¡åˆ¶é™ã¯ã€CREATE USERæ–‡ã§ã‚‚åŒã˜æ§‹æ–‡ã§ã™ã€‚ 《例》ユーザーMikeã®è¡¨é ˜åŸŸUSERSã®ä½¿ç”¨å®¹é‡ã‚’無制é™ã«ã—ã€è¡¨é ˜åŸŸTEMPã®ä½¿ç”¨    容é‡ã‚’5Mã«å¤‰æ›´ã—ã¾ã™ã€‚   ALTER USER Mike QUOTA UNLIMITED ON USERS QUOTA 5M ON TEMP;'ALTER USER Carl QUOTA NOLIMIT ON USERS;$ALTER USER Carl QUOTA -1 ON USERS;'ALTER USER Carl QUOTA NOLIMIT ON USERS;)ALTER USER Carl QUOTA UNLIMITED ON USERS;'ALTER USER Carl QUOTA UNLIMIT ON USERS;9ŸユーザーMikeを削除ã™ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 但ã—ã€Mikeã¯ã€è¤‡æ•°ã®ã‚ªãƒ–ジェクトを所有ã—ã¦ã„ã¾ã™ã€‚í・オブジェクトを所有ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’削除ã™ã‚‹SQLæ§‹æ–‡ã®å•題ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> DROP USER Mike CASCADE;  ユーザーãŒå‰Šé™¤ã•れã¾ã—ãŸã€‚½〠データベースユーザーã®å‰Šé™¤ã«ã¤ã„㦠】 ・DROP USER ユーザーå CASCADE;  [CASCADE]を指定ã™ã‚‹ã¨ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’削除ã™ã‚‹å‰ã«ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ‰€æœ‰ã™ã‚‹ã‚ªãƒ–ジェ  クトを削除ã—ã¾ã™ã€‚  オブジェクトを所有ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’「CASCADEã€æŒ‡å®šãªã—ã§å‰Šé™¤ã§ãã¾ã›ã‚“。  ユーザーãŒä½œæˆã—ãŸãƒ­ãƒ¼ãƒ«ã¯å‰Šé™¤ã•れã¾ã›ã‚“。  ã“ã®å‘½ä»¤ã®å®Ÿè¡Œã«ã¯ã€DROP USERシステム権é™ãŒå¿…è¦ã§ã™ã€‚ 《例》オブジェクトを所有ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼Mikeを削除ã™ã‚‹ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚  SQL> DROP USER Mike;  ORA-01922:MIKE'を削除ã™ã‚‹ã«ã¯CASCADEを指定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™DROP USER Mike WITH CASCADE;#DROP USER Mike CASCADE CONSTRAINTS;DROP USER Mike CASCADE;*DROP USER Mike CASCADE INCLUDE TABLE DATA; DROP USER Mike ON DELTE CASCADE;:‹ユーザーBrianã¨Carlã«ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«æŽ¥ç¶šã™ã‚‹æ¨©é™ã‚’付与ã™ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 ïãƒ»ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«æŽ¥ç¶šã™ã‚‹ã‚·ã‚¹ãƒ†ãƒ æ¨©é™ã¯ã€CREATE SESSIONã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> GRANT CREATE SESSION TO Brian,Carl;  権é™ä»˜ä¸ŽãŒæˆåŠŸã—ã¾ã—ãŸã€‚ú〠システム権é™ã®ä»˜ä¸Žã«ã¤ã„㦠】 ・書å¼ï¼šGRANT システム権é™å TO ユーザーå;  システム権é™ã‚’ユーザーã«ä»˜ä¸Žã—ã¾ã™ã€‚ ○多ãã®ã‚·ã‚¹ãƒ†ãƒ æ¨©é™ãŒã‚りã¾ã™ã€‚システム権é™ã®ä¸€éƒ¨ã‚’ã€ä»¥ä¸‹ã«ç¤ºã—ã¾ã™ã€‚ ãƒ»ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«æŽ¥ç¶šã™ã‚‹ã€€ï¼šCREATE SESSION ・表を作æˆã™ã‚‹ã€€ã€€ã€€ã€€ã€€ã€€ï¼šCREATE TABLE,CREATE ANY TABLE ・表ã€ãƒ“ューを検索ã™ã‚‹ã€€ã€€ï¼šSELECT ANY TABLE ・表ã€ãƒ“ューã§è¡Œã‚’æ›´æ–°ã™ã‚‹ï¼šUPDATE ANY TABLE ・表ã€ãƒ“ューã§è¡Œã‚’追加ã™ã‚‹ï¼šINSERT ANY TABLE  システム権é™ã‚’付与ã™ã‚‹ã«ã¯ã€ADMIN OPTION付ã®ã‚·ã‚¹ãƒ†ãƒ æ¨©é™ã¾ãŸã¯  GRANT ANY PRIVILEGEシステム権é™ãŒä»˜ä¸Žã•れã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚%GRANT DATABASE SESSION TO Brian,Carl; GRANT ANY SESSION TO Brian,Carl;"GRANT ALTER SESSION TO Brian,Carl;#GRANT CREATE SESSION TO Brian,Carl;%GRANT DATABASE CONNECT TO Brian,Carl;;表TBL1を作æˆã—ãŸç›´å¾Œã§ã™ãŒã€åˆ—COL1ã¨COL2ã®ãƒ‡ãƒ¼ã‚¿åž‹ã‚’変更ã™ã‚‹SQL文をã€(A)ã‹ã‚‰(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。Ø・列を変更ã™ã‚‹SQLæ§‹æ–‡ã®å•題ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> ALTER TABLE TBL1 MODIFY ( COL1 CHAR(10),COL2 NUMBER);  表ãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚ 〠列ã®å¤‰æ›´ã«ã¤ã„㦠】 ・構文:ALTER TABLE 表å MODIFY ( 列å データ型,.. ,列å データ型); ・変更ã™ã‚‹åˆ—ãŒç©ºãªã‚‰ã°ãƒ‡ãƒ¼ã‚¿åž‹ã‚’変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 《例》変更ã™ã‚‹åˆ—ã«ã™ã§ã«ãƒ‡ãƒ¼ã‚¿ãŒã‚ã‚‹å ´åˆã«ã¯ã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚  SQL>ALTER TABLE TBL1 MODIFY COL1 CHAR(10);  ORA-01439:データ型を変更ã™ã‚‹ã«ã¯ã€ä¿®æ­£ã™ã‚‹åˆ—を空ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ ―――――――――――――――――――――――――――――――――― ã€å‚照資料】  Oracle9i SQLリファレンス リリース1(9.0.1) 製å“番å·:J04117-013ALTER TABLE TBL1 CHANGE COL1 CHAR(10),COL2 NUMBER;3ALTER TABLE TBL1 MODIFY COL1 CHAR(10),COL2 NUMBER;6ALTER TABLE TBL1 MODIFY COL1 CHAR(10) AND COL2 NUMBER;5ALTER TABLE TBL1 MODIFY ( COL1 CHAR(10),COL2 NUMBER);0ALTER TABLE TBL1 ADD COL1 CHAR(10),COL2 NUMBER;<—次ã®SQLæ–‡ã§è¡¨TBL1ã«æ–°ã—ã„列COL3を追加ã—ã¾ã™ã€‚ 表TBL1ã«ã¯ã€ï¼‘ï¼è¡Œã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚ 列を追加ã—ãŸæ™‚ã®æ—¢å­˜è¡Œã®èª¬æ˜Žã§æ­£ã—ã„ã‚‚ã®ã‚’ã€(A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ㄠ SQL> ALTER TABLE TBL1 ADD COL3 NUMBER DEFAULT 100;ô・表ã«ãƒ‡ãƒ•ォルト値を指定ã—ã¦åˆ—を追加ã™ã‚‹SQLæ–‡ã®å•題ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> ALTER TABLE TBL1 ADD COL3 NUMBER DEFAULT 100;  表ãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚î〠列ã®è¿½åŠ ï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤æŒ‡å®šï¼‰ã«ã¤ã„㦠】 ・書å¼ï¼šALTER TABLE 表å ADD 列å データ型 デフォルト; ・デフォルトを指定ã—ã¦åˆ—を追加ã—ãŸå ´åˆã€æ—¢å­˜è¡Œã®è¿½åŠ åˆ—ã«ã¯ãƒ‡ãƒ•ォル  ト値ãŒè¨­å®šã•れã¾ã™ã€‚ ・デフォルトを指定ã—ãªã„å ´åˆã€æ—¢å­˜è¡Œã®è¿½åŠ åˆ—ã«ã¯NULLãŒè¨­å®šã•れã¾ã™ã€‚ 《例》表TBL1ã«ï¼’行ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã€ã“ã®è¡¨ã«åˆ—COL3を追加ã—ã¾ã™ã€‚   SQL>SELECT * FROM TBL1;      C1   C2   ------- ------     112  201     123  211   SQL> ALTER TABLE TBL1 ADD COL3 NUMBER DEFAULT 100;   SQL>SELECT * FROM TBL1;      C1   C2   C3â†è¿½åŠ ã—ãŸåˆ—COL3ã«ã¯ã€ãƒ‡ãƒ•ォルト100ãŒè¨­å®šã•れる   ------- ------ ------     112  201  100     123  211  100 @既存行データã®åˆ—COL3ã«ã¯ã€æ•°å€¤ï¼ãŒè¨­å®šã•れるI既存行データã®åˆ—COL3ã«ã¯ã€ãƒ‡ãƒ•ォルト値ãŒè¨­å®šã•れる;既存行データã®åˆ—COL3ã«ã¯ã€NULLãŒè¨­å®šã•れる3既存行データãŒã‚ã‚‹ã®ã§ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹=Ä表TBL1を以下ã®ã‚ˆã†ã«å®šç¾©ã—ã¦ã€ãƒ‡ãƒ¼ã‚¿ã‚’1行追加ã—ã¾ã—ãŸã€‚ 表TBL1ã®åˆ—ã®å¤‰æ›´ã§ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。  SQL> CREATE TABLE TBL1      (COL1 VARCHAR2(10),COL2 NUMBER(5,2),COL3 CHAR(10));    COL1       COL2 COL3    ---------- ---------- ----------    abcd       1.2 TOKYO   1行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ ‰・列ã®å¤‰æ›´ã®å•題ã§ã™ã€‚ ・COL3ã‚’CHAR(6)ã«å¤‰æ›´ã™ã‚‹ã¯ã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚  ORA-01441:大ãã™ãŽã‚‹å€¤ãŒã‚ã‚‹ãŸã‚ã€åˆ—ã®é•·ã•を減らã›ã¾ã›ã‚“。 ・COL3ã‚’NUMBER(5,3)ã«å¤‰æ›´ã™ã‚‹ã¯ã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚  ORA-01440:精度ã¾ãŸã¯ã‚¹ã‚±ãƒ¼ãƒ«ã‚’下ã’ã‚‹ã«ã¯ã€ä¿®æ­£ã™ã‚‹åˆ—を空ã«ã™ã‚‹å¿…è¦ãŒã‚り  ã¾ã™ã€‚¼〠列ã®å¤‰æ›´ã«ã¤ã„㦠】 ・書å¼ï¼šALTER TABLE 表å MODIFY 列å データ型;  (1).åˆ—ã®æ‹¡å¤§  ・既存列ã®ãƒ‡ãƒ¼ã‚¿é•·ã‚’拡大ã™ã‚‹å¤‰æ›´ã¯å¯èƒ½ã§ã™ã€‚ ã€€ãƒ»æ—¢å­˜åˆ—ã®æ•°å€¤ã®æ•°å€¤ç²¾åº¦ã®æ‹¡å¤§å¤‰æ›´ã¯å¯èƒ½ã§ã™ã€‚  (2).列ã®ç¸®å°  ・既存列ã®ãƒ‡ãƒ¼ã‚¿ã«å½±éŸ¿ã—ãªã„縮å°å¤‰æ›´ã¯å¯èƒ½ã§ã™ã€‚    å¯å¤‰é•·åž‹ã§ã¯ã€æœ€ã‚‚大ããªãƒ‡ãƒ¼ã‚¿é•·ã¾ã§ã®ç¸®å°ãŒå¯èƒ½ã§ã™ã€‚    固定長型ã§ã¯ã€ç¸®å°ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。  (3).列型ã®å¤‰æ›´  ・変更ã™ã‚‹åˆ—ãŒã™ã¹ã¦NULLãªã‚‰ã°ã€ãƒ‡ãƒ¼ã‚¿åž‹ã®å¤‰æ›´ãŒå¯èƒ½ã§ã™ã€‚    ãŸã¨ãˆã°ã€NUMBERåž‹ã‹ã‚‰CHARåž‹ã¸å¤‰æ›´ã§ãã¾ã™ã€‚!COL1ã‚’VARCHAR2(6)ã«å¤‰æ›´ã™ã‚‹!COL2ã‚’NUMBER(6,3)ã«å¤‰æ›´ã™ã‚‹COL3ã‚’CHAR(6)ã«å¤‰æ›´ã™ã‚‹COL1ã‚’CHAR(20)ã«å¤‰æ›´ã™ã‚‹!COL3ã‚’NUMBER(5,3)ã«å¤‰æ›´ã™ã‚‹>Öプライベートシノニムã®SYM1を作æˆã—ã€ãƒ‘ブリックシノニムã®SYM1を作æˆã—ã¾ã—ãŸã€‚ å˜ã«SYM1ã¨ã—ãŸå ´åˆã«ä½¿ç”¨ã•れるシノニムをã€(A)~(D)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。£・パブリックシノニムã¨ãƒ—ライベートシノニムã§åŒã˜åå‰ã‚’定義ã—ãŸå ´åˆã«å„ªå…ˆçš„  ã«ä½¿ç”¨ã•れるåå‰ã‚’å•ã†å•題ã§ã™ã€‚‘〠åŒã˜åå‰ã®ã‚·ãƒŽãƒ‹ãƒ ã«ã¤ã„㦠】 ・パブリックã¨ãƒ—ライベートã§åŒã˜ã‚·ãƒŽãƒ‹ãƒ åãŒã‚ã‚‹å ´åˆã«ã¯ã€  プライベートシノニムãŒä½¿ç”¨ã•れã¾ã™ã€‚ ・シノニムã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã¨ä¾¿åˆ©ã•ã®ãŸã‚ã«ä½¿ç”¨ã•れã¾ã™ã€‚  (1).オブジェクトã®åå‰ã¨æ‰€æœ‰è€…ã‚’éš ã™ã€‚  (2).ユーザーã®SQL 文をå˜ç´”化ã™ã‚‹ã€‚ ―――――――――――――――――――――――――――――――――― ã€ä»Šæ—¥ã®ç”¨èªžã€‘ シノニム  シノニムã¨ã¯ã€è¡¨ã€ãƒ“ューã€ãƒžãƒ†ãƒªã‚¢ãƒ©ã‚¤ã‚ºãƒ‰ãƒ»ãƒ“ューã€é †åºã€  プロシージャã€ãƒ•ァンクションã¾ãŸã¯ãƒ‘ッケージã«å¯¾ã™ã‚‹åˆ¥åã§ã™ã€‚ ―――――――――――――――――――――――――――――――――― ã€å‚照資料】 Oracle9i データベース概è¦ã€€ãƒªãƒªãƒ¼ã‚¹1(9.0.1)プライベートシノニムパブリックシノニム!最近ã«å®šç¾©ã—ãŸã‚·ãƒŽãƒ‹ãƒ !最後ã«å®šç¾©ã—ãŸã‚·ãƒŽãƒ‹ãƒ ?•å‚ç…§æ•´åˆæ€§ã‚’確èªã™ã‚‹ã«ã¯ã€ã©ã®ãƒ“ューã®ã©ã®åˆ—を調ã¹ã‚Œã°ã‚ˆã„ã§ã—ょã†ã‹ã€‚ (A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 Ÿ・制約定義を確èªã™ã‚‹ãŸã‚ã«å‚ç…§ã™ã‚‹ãƒ“ューã¯ã€USER_CONSTRAINTSã§ã™ã€‚ ・USER_CONS_CONSTRAINTSã¨ã„ã†ãƒ“ューã¯ã€ã‚りã¾ã›ã‚“。 ž〠USER_CONSTRAINTSビューã«ã¤ã„㦠】  USER_CONSTRAINTSã¯ã€ç¾è¡Œã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ‰€æœ‰ã™ã‚‹è¡¨ã®åˆ¶ç´„定義を示ã—ã¾ã™  USER_CONSTRAINTSビューã®åˆ—CONSTRAINT_TYPEã¯ã€VARCHAR2(1)㧠 「制約定義ã®ã‚¿ã‚¤ãƒ—ã€ã‚’表ã—ã¦ã„ã¾ã™ã€‚  ・制約定義ã®ã‚¿ã‚¤ãƒ—ã¯ã€ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚   C(表ã§ã®ãƒã‚§ãƒƒã‚¯åˆ¶ç´„)   P(主キー)   U(一æ„ã®ã‚­ãƒ¼ï¼‰   R(å‚ç…§æ•´åˆæ€§ï¼‰   V(ビューã§ã®ãƒã‚§ãƒƒã‚¯ãƒ»ã‚ªãƒ—ション付ã)   O(ビューã§èª­å–り専用) ≪å‚考≫  ALL_CONSTRAINTS:ç¾è¡Œãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚¢ã‚¯ã‚»ã‚¹ã§ãる表ã®åˆ¶ç´„定義を示ã—ã¾ã™ã€‚  DBA_CONSTRAINTS:データベース内ã®åˆ¶ç´„定義をã™ã¹ã¦ç¤ºã—ã¾ã™ã€‚  USER_CONS_COLUMNS:ç¾è¡Œãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ‰€æœ‰ã—制約定義ã•れã¦ã„る列を示ã—ã¾ã™ã€‚ ―――――――――――――――――――――――――――――――――― ã€å‚照資料】Oracle9i データベース・リファレンス リリース1(9.0.1) AUSER_CONSTRAINTSビューã®CONSTRAINT_TYPE列ãŒã€ŒRã€ã§ã‚ã‚‹AUSER_CONSTRAINTSビューã®CONSTRAINT_TYPE列ãŒã€ŒFã€ã§ã‚ã‚‹FUSER_CONS_CONSTRAINTSビューã®CONSTRAINT_TYPE列ãŒã€ŒRã€ã§ã‚ã‚‹FUSER_CONS_CONSTRAINTSビューã®CONSTRAINT_TYPE列ãŒã€ŒFã€ã§ã‚ã‚‹@ALL_CONSTRAINTSビューã®CONSTRAINT_TYPE列ãŒã€ŒCã€ã§ã‚ã‚‹@¿パブリックシノニムを作æˆã™ã‚‹SQLæ–‡ã§ã€ç©ºç™½ã®éƒ¨åˆ†ã‚’埋ã‚る語をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。   SQL> CREATE PUBLIC SYNONYM SYM1 [  ] Bill.TBL1;ó・パブリックシノニムを作æˆã™ã‚‹SQLæ–‡ã®æ§‹æ–‡ã®å•題ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> CREATE PUBLIC SYNONYM SYM1 FOR Bill.TBL1;  シノニムãŒä½œæˆã•れã¾ã—ãŸã€‚‰〠パブリックシノニムã®ä½œæˆã«ã¤ã„ã¦ã€‘ ・書å¼ï¼šCREATE PUBLIC シノニムå FOR オブジェクトå; ・シノニムåã®æœ€å¤§é•·ã¯32ãƒã‚¤ãƒˆã§ã™ã€‚ ・スキーマ・オブジェクトã¯ã€å­˜åœ¨ã—ãªãã¦ã‚‚シノニムを作æˆã§ãã¾ã™ã€‚ ・パブリックシノニムã¯ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚ ASTOFORONFROMA›表TBL1を削除ã™ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 但ã—ã€TBL1ã¯ã€åˆ¥ã®è¡¨ã‹ã‚‰FOREIGN KEY制約定義ã•れã¦ã„ã¾ã™ã€‚â・å‚ç…§æ•´åˆæ€§å®šç¾©ã®ã‚る表を削除ã™ã‚‹SQLæ–‡ã®å•題ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> DROP TABLE TBL1 CASCADE CONSTRAINTS;  表ãŒå‰Šé™¤ã•れã¾ã—ãŸã€‚ô〠制約ã®ã‚る表ã®å‰Šé™¤ã«ã¤ã„㦠】 ・書å¼ï¼šDROP TABLE 表å CASCADE CONSTRAINS; ・å‚ç…§æ•´åˆæ€§åˆ¶ç´„ã®ã‚る表を削除ã™ã‚‹ã«ã¯ã€CASCADE CONSTRAINTSを指定ã—ã¾ã™ã€‚ ・削除ã™ã‚‹ã«ã¯ã€è¡¨ãŒã‚¹ã‚­ãƒ¼ãƒžå†…ã«ã‚ã‚‹ã‹ã€DROP ANY TABLEシステム権é™ãŒå¿…è¦ ã€€ã§ã™ ・表を削除ã—ã¦ã‚‚ã€è¡¨ã‚’基ã«ä½œæˆã—ãŸãƒ“ューã¯å‰Šé™¤ã•れã¾ã›ã‚“。  (ビューã¯ã€ç„¡åйã«ãªã‚Šã¾ã™ï¼‰ ・削除ã—ãŸè¡¨ã¯ã€ãƒ­ãƒ¼ãƒ«ãƒãƒƒã‚¯ã§ãã¾ã›ã‚“。 《例》å‚ç…§æ•´åˆæ€§ã®ã‚る表をCASCADEを指定ã›ãšã«å‰Šé™¤ã™ã‚‹ã¨ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ã«ãª    りã¾ã™ã€‚  SQL>DROP TABLE TBL1;  ORA-02449: 表ã®ä¸€æ„キーã¾ãŸã¯ä¸»ã‚­ãƒ¼ãŒå¤–部キーã«å‚ç…§ã•れã¦ã„ã¾ã™ã€‚%DROP TABLE TBL1 INCLUDING TABLE DATA;TRUNCATE TABLE TBL1;DROP TABLE TBL1 CASCADE;$DROP TABLE TBL1 CASCADE CONSTRAINTS;"DROP TABLE TBL1 ON DELETE CASCADE;Bfスキーマオブジェクトã§ãªã„ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。¼・ロールã€è¡¨é ˜åŸŸã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ç­‰ã¯ã€éžã‚¹ã‚­ãƒ¼ãƒžã‚ªãƒ–ジェクトã§ã™ã€‚ ・表ã€ãƒ“ューã€é †åºã€ã‚·ãƒŽãƒ‹ãƒ ã€åˆ¶ç´„ã¯ã€ã‚¹ã‚­ãƒ¼ãƒžã‚ªãƒ–ジェクトã§ã™ã€‚ — 〠スキーマオブジェクトã«ã¤ã„㦠】 ・スキーマã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒä½¿ç”¨å¯èƒ½ãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ»ã‚ªãƒ–ジェクトã®é›†åˆã§ã™ã€‚ ・データベース・ユーザーã¯ã€1 ã¤ã®ã‚¹ã‚­ãƒ¼ãƒžã‚’所有ã—ã¾ã™ã€‚ ・スキーマã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚ˆã£ã¦æ‰€æœ‰ã•れã€ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¨åŒã˜åå‰ã‚’æŒã¡  ã¾ã™ã€‚ ・表領域ã¨ã‚¹ã‚­ãƒ¼ãƒžã¨ã®é–“ã«é–¢é€£ä»˜ã‘ã¯ãªãã€åŒã˜ã‚¹ã‚­ãƒ¼ãƒžã®ã‚ªãƒ–ジェクトを  別ã®è¡¨é ˜åŸŸã«å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ・スキーマオブジェクトã¨ã—ã¦ã€ä»¥ä¸‹ã®ã‚ˆã†ãªã‚‚ã®ãŒã‚りã¾ã™ã€‚  (1).表  (2).ビュー  (3).é †åº ã€€(4).シノニム  (5).制約  (6).データベース・リンク  (7).ストアド・ファンクションã€ã‚¹ãƒˆã‚¢ãƒ‰ãƒ»ãƒ—ロシージャ  (8).データベース・トリガー  (9).パッケージ  (10).クラスタ  (11).外部プロシージャ・ライブラリ  (12).Java クラスã€Java リソースã€Java ソース ・éžã‚¹ã‚­ãƒ¼ãƒžã‚ªãƒ–ジェクトã¨ã—ã¦ã€ä»¥ä¸‹ã®ã‚ˆã†ãªã‚‚ã®ãŒã‚りã¾ã™ã€‚  (1).コンテキスト  (2).ディレクトリ  (3).プロファイル  (4).ロール  (5).ロールãƒãƒƒã‚¯ãƒ»ã‚»ã‚°ãƒ¡ãƒ³ãƒˆ  (6).表領域  (7).ユーザー ―――――――――――――――――――――――――――――――――― ã€å‚照資料】 Oracle9i ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹æ¦‚è¦ ãƒªãƒªãƒ¼ã‚¹1(9.0.1)部å“番å·ï¼šJ04100-01 Oracle9i SQLリファレンス リリース1(9.0.1)部å“番å·: J04117-01表 シノニム制約 ユーザー ロールCqSQL*PLUSã‹ã‚‰ãƒ†ã‚­ã‚¹ãƒˆã‚¨ãƒ‡ã‚£ã‚¿ã‚’呼ã³å‡ºã™ã‚³ãƒžãƒ³ãƒ‰ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。b・SQL*Plusã‹ã‚‰ãƒ†ã‚­ã‚¹ãƒˆãƒ»ã‚¨ãƒ‡ã‚£ã‚¿ã‚’呼ã³å‡ºã™ã‚³ãƒžãƒ³ãƒ‰ã«é–¢ã™ã‚‹å•題ã§ã™ã€‚ã〠EDITコマンド(SQL*Plus)ã«ã¤ã„㦠】  形å¼ï¼šEDIT [フォイルå]  ファイルåã¯ã€çœç•¥å¯èƒ½ã§ã€çœç•¥æ™‚ã«ã¯ã€ãƒãƒƒãƒ•ã‚¡ã®å†…容ãŒå¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚  EDITã®çœç•¥å½¢ã¯ã€EDã§ã™ã€‚ ・SQL*Plus を終了ã›ãšã«ã€ï¼¯ï¼³ã®ãƒ‡ãƒ•ォルト・テキスト・エディタを実行ã—ã¾ã™ã€‚ ・ファイルã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®æ‹¡å¼µå­ã¯ã€ŒSQLã€ã§ã™ã€‚ ―――――――――――――――――――――――――――――――――― ã€å‚照資料】 SQL*Plusユーザーズ・ガイドãŠã‚ˆã³ãƒªãƒ•ァレンス リリース9.0.1 部å“番å·:J04131-01 ―――――――――――――――――――――――――――――――――― EDITVI!EDITEDITOR$EDITORD†SQL*PLUSã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰ãƒ•ァイルを呼ã³å‡ºã—実行ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。_・SQL*Plusã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰ãƒ•ァイルを実行ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã«é–¢ã™ã‚‹å•題ã§ã™ã€‚œ〠START,@コマンド(SQL*Plus)ã«ã¤ã„㦠】  形å¼ï¼šSTART コマンドファイルå  指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ãƒ•ァイルã®SQL*Plus文を実行ã—ã¾ã™ã€‚  STARTã®çœç•¥å½¢ã¯ã€STAã§ã™ã€‚  @(アットマーク)ã¯ã€STARTコマンドã¨åŒã˜åƒãã‚’ã—ã¾ã™ã€‚ ・コマンドファイル内ã«ã‚³ãƒžãƒ³ãƒ‰ãƒ•ァイルを記述ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ・ファイルã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®æ‹¡å¼µå­ã¯ã€ŒSQLã€ã§ã™ã€‚ 《例》JOB1.SQLã¨ã„ã†ã‚³ãƒžãƒ³ãƒ‰ãƒ•ァイルを実行ã—ã¾ã™ã€‚   @JOB1GOSTARTLOADEXECUTE@EOracleデータベースã§ã€é‡è¦ãªã®ã§ãƒŸãƒ©ãƒ¼åŒ–ã—ãŸæ–¹ãŒã‚ˆã„ファイルをã€(A)~(E)ã®ä¸­ã‹ã‚‰ï¼’ã¤é¸ã‚“ã§ä¸‹ã•ã„。§・REDOログファイルã¯ã€å¤šé‡åŒ–ãŒå¿…è¦ã§ã™ã€‚ ãƒ»é¸æŠžè‚¢ã¯ï¼’ã¤ãªã®ã§ã€å¤šé‡åŒ–ãŒæŽ¨å¥¨ã•れる制御ファイルãŒé¸æŠžè‚¢ã«ãªã‚Šã¾ã™ã€‚™〠物ç†ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹æ§‹é€ ã«ã¤ã„㦠】 ・Oracleデータベースã¯ã€ï¼‘å˜ä½ã¨ã—ã¦æ‰±ã‚れるデータã®é›†åˆã§ã™ã€‚ ・データベースã«ã¯ã€è«–ç†æ§‹é€ ã¨ç‰©ç†æ§‹é€ ãŒã‚りã¾ã™ã€‚ ・物ç†ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹æ§‹é€ ã¯ã€ä»¥ä¸‹ã®ï¼“ã¤ã®ãƒ•ã‚¡ã‚¤ãƒ«ã§æ§‹æˆã•れã¾ã™ã€‚  (1).データファイル :ã™ã¹ã¦ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ»ãƒ‡ãƒ¼ã‚¿ãŒæ ¼ç´ã•れã¾ã™ã€‚  (2).REDOログファイル:データã«åŠ ãˆã‚‰ã‚ŒãŸå¤‰æ›´ã®è¨˜éŒ²ãŒæ ¼ç´ã•れã¾ã™ã€‚  (3).制御ファイル  :データベースã®ç‰©ç†æ§‹é€ ã®ã‚¨ãƒ³ãƒˆãƒªãŒæ ¼ç´ã•れã¾ã™ã€‚ ―――――――――――――――――――――――――――――――――― ã€å‚照資料】  Oracle9iãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹æ¦‚è¦ ãƒªãƒªãƒ¼ã‚¹1(9.0.1)部å“番å·:J04100-01 ―――――――――――――――――――――――――――――――――― データファイル$åˆæœŸåŒ–パラメータファイル制御ファイルREDOログファイルパスワードファイルFS環境変数NLS_LANGã®è¨˜è¿°å½¢å¼ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。A・環境変数NLS_LANGã®è¨˜è¿°å½¢å¼ã«é–¢ã™ã‚‹å•題ã§ã™ã€‚’〠NLS_LANGã«ã¤ã„㦠】 ・書å¼ï¼šNLS_LANG = 言語_地域.文字セット ・クライアントã§ä½¿ç”¨ã™ã‚‹è¨€èªžã€åœ°åŸŸã€ã‚­ãƒ£ãƒ©ã‚¯ã‚¿ãƒ»ã‚»ãƒƒãƒˆã‚’設定ã—ã¾ã™ã€‚ ・NLS_LANGã¯ã€èµ·å‹•時ã«èª­ã¿è¾¼ã¾ã‚Œã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®æŽ¥ç¶šæ™‚ã«ã‚µãƒ¼ãƒãƒ¼ã«é€ä¿¡  ã—ã¾ã™ã€‚ ・サーãƒãƒ¼ã¨ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã§æ–‡å­—セットãŒç•°ãªã‚‹å ´åˆã«ã¯ã€è‡ªå‹•çš„ã«å¤‰æ›ã•れ  ã¾ã™ã€‚ ・NLS_LANGã¯ã€ã‚ªãƒ—ションã§ã™ã€‚ ―――――――――――――――――――――――――――――――――― ã€å‚照資料】 Oracle9i グローãƒãƒªã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ãƒ»ã‚µãƒãƒ¼ãƒˆãƒ»ã‚¬ã‚¤ãƒ‰ リリース1(9.0.1) ―――――――――――――――――――――――――――――――――― (NLS_LANG = 言語.地域.文字セット(NLS_LANG = 文字セット.言語.地域(NLS_LANG = 地域_言語.文字セット(NLS_LANG = 言語_地域.文字セット(NLS_LANG = 地域.言語.文字セットGiSQL文を解æžã—ãŸå®Ÿè¡Œè¨ˆç”»ãŒæ ¼ç´ã•れる場所をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。W・SQL文を解æžã—ãŸå®Ÿè¡Œè¨ˆç”»ãŒæ ¼ç´ã•れる場所を求ã‚ã‚‹å•題ã§ã™ã€‚ÿã€ å®Ÿè¡Œè¨ˆç”»ã®æ ¼ç´å…ˆã«ã¤ã„㦠】 ・実行計画ã¯ã€SGA(システム・グローãƒãƒ«é ˜åŸŸ)ã®å…±æœ‰ãƒ—ãƒ¼ãƒ«ã«æ ¼ç´ã•れã¾ã™ã€‚ ・正確ã«ã¯ã€SGAã®å…±æœ‰ãƒ—ールã®å…±æœ‰SQLé ˜åŸŸã«æ ¼ç´ã•れã¾ã™ã€‚ ・複数ユーザーãŒä½¿ç”¨ã™ã‚‹åŒã˜SQL文を共有SQLé ˜åŸŸã«æ ¼ç´ã—ã¦ãƒ¡ãƒ¢ãƒªãƒ¼ã‚’節約  ã—ã¾ã™ã€‚ ―――――――――――――――――――――――――――――――――― ã€å‚照資料】 Oracle9i ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹æ¦‚è¦ ãƒªãƒªãƒ¼ã‚¹1(9.0.1) ―――――――――――――――――――――――――――――――――― SGAã®REDOログãƒãƒƒãƒ•ã‚¡3SGAã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒãƒƒãƒ•ァキャッシュSGAã®å…±æœ‰ãƒ—ール$プログラムグローãƒãƒ«é ˜åŸŸSGAã®ãƒ©ãƒ¼ã‚¸ãƒ—ールŒ0Æ  ã€ä»Šæ—¥ã®ç”¨èªžã€‘実行計画  DMLæ–‡ã®å®Ÿè¡Œã«ã¯ã€å¤šãã®ã‚¹ãƒ†ãƒƒãƒ—ã‚’å¿…è¦ã¨ã—ã¾ã™ã€‚  OracleãŒæ–‡ã®å®Ÿè¡Œã«ä½¿ç”¨ã™ã‚‹ã‚¹ãƒ†ãƒƒãƒ—ã®çµ„åˆã›ã‚’ã€å®Ÿè¡Œè¨ˆç”»ã¨å‘¼ã³ã¾ã™ã€‚  実行計画ã«ã¯ã€ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹è¡¨ã”ã¨ã®ã‚¢ã‚¯ã‚»ã‚¹æ–¹æ³•や表ã®çµåˆé †åºãŒå«ã¾ã‚Œã¾ã™ã€‚HžUPDATEæ–‡ã®å‡¦ç†ã‚’表ã™(1)~(5)ã‚’ã€UPDATEæ–‡ã®æ­£ã—ã„処ç†ã®æµã‚Œã®é †ç•ªã«ä¸¦ã¹ã¦ã„ã‚‹ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  (1).変更履歴をREDOログãƒãƒƒãƒ•ã‚¡ã«æ›¸ã込む  (2).変更å‰ã®ãƒ‡ãƒ¼ã‚¿ã‚’UNDOã‚»ã‚°ãƒ¡ãƒ³ãƒˆã«æ›¸ã込む  (3).ãƒãƒƒãƒ•ァ・キャッシュ上ã®å¤‰æ›´ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã‚’ロックã™ã‚‹  (4).実行計画よりデータファイルã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã¨UNDOセグメントをロードã™ã‚‹  (5).ãƒãƒƒãƒ•ァ・キャッシュ内ã®ãƒ‡ãƒ¼ã‚¿ã‚’æ›¸ãæ›ãˆã‚‹~・変更履歴をREDOãƒ­ã‚°ã«æ›¸ãè¾¼ã¿ã€ãã®å¾Œã€å¤‰æ›´å‰ã®ãƒ‡ãƒ¼ã‚¿ã‚’UNDOã‚»ã‚°ãƒ¡ãƒ³ãƒˆã«æ›¸  ãè¾¼ã¿ã¾ã™ô〠UPDATEæ–‡ã®å‡¦ç†ã®æµã‚Œã«ã¤ã„㦠】 ・UPDATEæ–‡ã®å‡¦ç†ã®æµã‚Œã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  (1).実行計画よりデータファイルã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã¨UNDOセグメントをロードã™ã‚‹  (2).ãƒãƒƒãƒ•ァ・キャッシュ上ã®å¤‰æ›´ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã‚’ロックã™ã‚‹  (3).変更履歴をREDOログãƒãƒƒãƒ•ã‚¡ã«æ›¸ã込む  (4).変更å‰ã®ãƒ‡ãƒ¼ã‚¿ã‚’UNDOã‚»ã‚°ãƒ¡ãƒ³ãƒˆã«æ›¸ã込む  (5).ãƒãƒƒãƒ•ァ・キャッシュ内ã®ãƒ‡ãƒ¼ã‚¿ã‚’æ›¸ãæ›ãˆã‚‹4→3→1→2→53→4→1→2→54→3→2→1→53→4→2→1→52→4→3→1→5I†SQL*Plusã§ã€ç‰¹å®šåˆ—ã®é‡è¤‡ã™ã‚‹å€¤ã‚’表示ã—ãªã„よã†ã«ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。n・SQL*Plusã§ã€ç‰¹å®šåˆ—ã®é‡è¤‡å€¤ã‚’表示ã—ãªã„よã†ã«ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã«é–¢ã™ã‚‹å•題ã§ã™ã€‚ƒ 〠BREAKコマンドã«ã¤ã„ã¦ã€‘ ・書å¼ï¼šBREAK [ON レãƒãƒ¼ãƒˆè¦ç´  [å‡¦ç† [処ç†]]] ... ・レãƒãƒ¼ãƒˆå†…ã§æ›¸å¼ã‚’変更ã™ã‚‹å ´æ‰€ãŠã‚ˆã³æ›¸å¼ã®å¤‰æ›´æ–¹æ³•を設定ã—ã¾ã™ã€‚  指定列ã®å€¤ãŒå¤‰ã‚ã‚‹ãŸã³ã«è¡Œã‚’スキップã™ã‚‹ã‚ˆã†ã«è¨­å®šã§ãã¾ã™ã€‚  BREAKã ã‘ã§ã€ç¾åœ¨ã®BREAK定義内容を表示ã—ã¾ã™ã€‚  コマンドã®çœç•¥å½¢ã¯ã€BREã§ã™ã€‚  レãƒãƒ¼ãƒˆè¦ç´ ã®æ§‹æ–‡: {列å|å¼|ROW|REPORT}  処ç†ã®æ§‹æ–‡: [SKI[P] n|[SKI[P]] PAGE] [NODUP[LICATES]|DUP[LICATES]] 《例》表TBL1ã®è¡¨ç¤ºã§ã€BREAK指定ãªã—ã¨ã‚りã®å ´åˆã‚’示ã—ã¾ã™ã€‚  SQL>SELECT * FROM TBL1 ORDER BY COL1; â†åˆ—COL1ã§ORDER BYã—ã¾ã™    COL1   COL2   COL3 --------- --------- ---------     10     1    11     10     2    25     20     5    45     20     5    50     30     3    60  SQL>BREAK ON COL1 â†åˆ—COL1ã«ãƒ–レークを指定ã—ã¾ã™  SQL>SELECT * FROM TBL1 ORDER BY COL1;    COL1   COL2   COL3 --------- --------- ---------     10     1    11           2    25 â†åˆ—COL1ãŒåŒã˜å€¤ãªã®ã§è¡¨ç¤ºãŒæŠ‘æ­¢ã•れる     20     5    45           5    50     30     3    60  SQL>BREAK â†BREAKã ã‘ã§ç¾åœ¨ã®BREAK状態を表示ã—ã¾ã™ã€‚  break(col1上) nodupCOMPUTECOLUMNGROUPBREAKDISTINCTJl列å˜ä½ã«è¨­å®šã§ãるオブジェクト権é™ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。f・列å˜ä½ã§ã€è¨­å®šã§ãるオブジェクト権é™ã¯ã€INSERT/UPDATE/REFERENCESã ã‘ã§ã™ã€‚›〠列å˜ä½ã§è¨­å®šå¯èƒ½ãªã‚ªãƒ–ジェクト権é™ã«ã¤ã„㦠】 ・INSERT/UPDATE/REFERENCESãŒè¡¨ã¾ãŸã¯ãƒ“ューã®åˆ—å˜ä½ã§æ¨©é™ã®è¨­å®šãŒå¯èƒ½ã§ã™ã€‚ ・列を指定ã—ãªã„å ´åˆã€è¡¨ã¾ãŸã¯ãƒ“ューã®ã™ã¹ã¦ã®åˆ—ãŒå¯¾è±¡ã¨ãªã‚Šã¾ã™ã€‚ 《例》ユーザーCarlã«ã€è¡¨TBL1ã®åˆ—COL1ã®INSERT権é™ã€åˆ—COL2ã¨COL3ã«UPDATE㮠   権é™ã‚’付与ã™ã‚‹å‘½ä»¤ã§ã™ã€‚   GRANT INSERT (COL1),UPDATE (COL2,COL3) ON TBL1 TO Carl; ―――――――――――――――――――――――――――――――――― ã€å‚照資料】 Oracle9i SQLリファレンス リリース1(9.0.1)2001å¹´10月 部å“番å·:J04117-01 ―――――――――――――――――――――――――――――――――― EXECUTEINSERT REFERENCESUPDATESELECTKœ次ã®SQLæ–‡ã§ã€è¡¨TBL1を作æˆã—ã¾ã—ãŸã€‚ ã“ã®è¡¨TBL1ã®ä¸»ã‚­ãƒ¼ã®åˆ¶ç´„åã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。   SQL> CREATE TABLE TBL1        (COL1 NUMBER PRIMARY KEY,        COL2 NUMBER,        COL3 VARCHAR(20));á・制約åを指定ã—ãªã„å ´åˆã«ã¯ã€SYS_Cã®å½¢å¼ã§åå‰ãŒç”Ÿæˆã•れã¾ã™ã€‚  002744ã¯ã€ã‚·ã‚¹ãƒ†ãƒ ãŒç”Ÿæˆã—ãŸå€¤ã§ã€ä¸€æ„ã®æ•°å€¤ã§ã™ã€‚ ・表TBL1ã®ä¸»ã‚­ãƒ¼ã®åˆ¶ç´„åを確èªã™ã‚‹SQL文を実行ã—ãŸçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãª  りã¾ã™ã€‚  SQL> select constraint_name from user_constraints        where constraint_type = 'P' and table_name = 'TBL1';  CONSTRAINT_NAME  -------------------------  SYS_C002744¸〠デフォルトã®åˆ¶ç´„åã«ã¤ã„㦠】 ・明示的ã«åˆ¶ç´„åを指定ã—ãªã„å ´åˆã«ã€ã‚·ã‚¹ãƒ†ãƒ ã«ã‚ˆã‚Šä»˜ã‘られる制約åã¯ã€  SYS_Cxxxxxxã§ã™ã€‚(xxxxxxã¯ã€ä¸€æ„ã®æ•°å€¤ã§ã™) ≪å‚考≫  制約ã«é–¢ã™ã‚‹æƒ…å ±ã¯ã€USER_CONSTRAINTSã¾ãŸã¯USER_CONS_COLUMNSã®ãƒ‡ãƒ¼ã‚¿  ディクショナリを検索ã—ã¾ã™ã€‚  ・USER_CONSTRAINTS  制約タイプや制約ã«é–¢ã™ã‚‹è©³ç´°ãªæƒ…å ±  ・USER_CONS_COLUMNS 制約ãŒå®šç¾©ã•れãŸåˆ—ã®æƒ…å ± ―――――――――――――――――――――――――――――――――― ã€å‚照資料】 Oracle9i SQL リファレンス リリース1(9.0.1)2001å¹´10月 部å“番å·:J04117-01 ――――――――――――――――――――――――――――――――――  SYS_002744 SYSC_002744 SYS_N002744 SYS_C002744 CNS_002744Ln列COL1ã®è¡¨ç¤ºå¹…ã‚’18文字ã«å¤‰æ›´ã™ã‚‹SQL*Plusã®å‘½ä»¤ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。¡・列ã®è¡¨ç¤ºæ–‡å­—å¹…ã‚’Aã®ã‚ã¨ã®æ•°å€¤ã§æŒ‡å®šã—ã¾ã™ã€‚ ・表示文字幅ã¯ã€åŠè§’ã®æ–‡å­—æ•°ã§ã™ã€‚å…¨è§’ã®æ–‡å­—æ•°ã§ã¯ã‚りã¾ã›ã‚“。…〠COLUMN(SQL*Plus)ã«ã¤ã„㦠】 ・書å¼ï¼šCOLUMN [{列å|å¼} [オプション..]]  オプションã¯ã€æ¬¡ã®é€šã‚Šã§ã™ã€‚    ALIAS 別å    CLEAR    ENTMAP {ON|OFF}    FOLD_AFTER    FOLD_BEFORE    FORMATã€€è¡¨ç¤ºæ›¸å¼ ã€€ã€€ã€€HEADING ヘッダー文字列    JUSTIFY {LEFT|CENTER|CENTRE|RIGHT}    LIKE {å¼|別å}    NEWLINE    NEW_VALUE 変数å    NOPRINT|PRINT    NULL 文字列    OLD_VALUE 変数å    ON|OFF    WRAPPED|WORD_WRAPPED|TRUNCATED ・特定ã®åˆ—ã«ã¤ã„ã¦è¡¨ç¤ºå±žæ€§ã‚’指定ã—ã¾ã™ã€‚ ・COLUMNã®çœç•¥å½¢ã¯ã€COLã§ã™ã€‚ ・設定ã¯ã€ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’終了ã™ã‚‹ã¾ã§æœ‰åйã§ã™ã€‚ ・「COLUMNã€ã§ã€ç¾è¡Œã®ã™ã¹ã¦ã®åˆ—ã®è¡¨ç¤ºå±žæ€§ã‚’表示ã—ã¾ã™ã€‚ ・「CLEAR COLUMNSã€ã§ã€ã™ã¹ã¦ã®åˆ—ã®å±žæ€§ã‚’リセットã—ã¾ã™ã€‚ COLUMN COL1 FORMAT 18;COLUMN IS COL1 FORMAT 18;COLUMN COL1 FORMAT A18;COLUMN COL1 IS 18;COLUMN COL1 FORMAT C18;M³次ã®ï¼“ã¤ã®å‘½ä»¤ã‚’実行ã—ã¾ã—ãŸã€‚ ユーザーBILLãŒè¡¨TBL1ã«ä»˜ä¸Žã•れã¦ã„るオブジェクト権é™ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。     GRANT ALL ON TBL1 TO BILL;     REVOKE DELETE ON TBL1 FROM BILL;     REVOKE UPDATE ON TBL1 FROM BILL;¨・ALLã§ä¸ŽãˆãŸã‚ªãƒ–ジェクト権é™ã‚’ã€REVOKEã§å€‹åˆ¥ã«å–り消ã™å•題ã§ã™ã€‚ ・権é™ã®ä»˜ä¸Žã‚’ã€æ¬¡ã®SQLæ–‡ã§ç¢ºèªã—ã¾ã™ã€‚  SQL> select privilege from user_tab_privs_made         where table_name = 'TBL1' and grantee = 'BILL';  PRIVILEGE  -----------------------------------  ALTER  INDEX  INSERT  SELECT  REFERENCES  ON COMMIT REFRESH  QUERY REWRITE  DEBUG¡〠オブジェクト権é™ã®å–り消ã—ã«ã¤ã„㦠】 ・ALLã§ä»˜ä¸Žã•れãŸã‚ªãƒ–ジェクト権é™ã¯ã€REVOKEã§å€‹åˆ¥ã«å–り消ã™ã“ã¨ãŒã§ãã¾ã™ã€‚ ≪å‚考≫  システム権é™ã§ã‚‚ã€ALLã§ä»˜ä¸Žã—ãŸæ¨©é™ã‚’ã€å€‹åˆ¥ã«å–り消ã™ã“ã¨ãŒã§ãã¾ã™ãŒã€  オブジェクト権é™ã§ã¯ã€ŒALLã€ã§ã™ãŒã€ã‚·ã‚¹ãƒ†ãƒ æ¨©é™ã§ã¯ã€ŒALL PRIVILEGESã€ã‚’  指定ã—ã¾ã™ã€‚ALTERSELECTDELETEUPDATEINSERTNi一æ„制約ã«é–¢ã™ã‚‹èª¬æ˜Žã§é–“é•ã£ã¦ã„ã‚‹ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。È・一æ„制約ã§ã¯ã€åŒã˜å€¤ã‚’æ ¼ç´ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“ãŒã€NULLã¯å¯¾è±¡å¤–ãªã®ã§ã€  複数ã®NULL行をæŒã¤ã“ã¨ãŒã§ãã¾ã™ã€‚ ・一æ„制約ã®åˆ—ã¯ã€æœ€å¤§ï¼“2列指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ・1ã¤ã®åˆ—ã«ã‚ˆã‚Šä¸€æ„制約を指定ã—ãŸå ´åˆã€åˆ—制約ã¾ãŸã¯è¡¨åˆ¶ç´„を指定ã§ãã¾ã™ã€‚  但ã—ã€è¤‡æ•°åˆ—ã«ã‚ˆã‚‹ä¸€æ„制約ã®å ´åˆã¯ã€è¡¨åˆ¶ç´„ã®ã¿ã§ã™ã€‚ ・一æ„åˆ¶ç´„ã®æŒ‡å®šã§ã€è‡ªå‹•çš„ã«ç´¢å¼•ãŒä½œæˆã•れã¾ã™ã€‚ã¾ãŸåˆ¶ç´„を無効ã«ã™ã‚‹ã¨  索引ã¯è‡ªå‹•çš„ã«å‰Šé™¤ã•れã¾ã™ã€‚“〠一æ„制約ã®NULLã¨ç´¢å¼•ã«ã¤ã„㦠】 ・一æ„制約ã«ã¯ã€NULL値を格ç´ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ・一æ„åˆ¶ç´„ã®æŒ‡å®šã§ã€è‡ªå‹•çš„ã«ç´¢å¼•ãŒä½œæˆã•れã¾ã™ã€‚ ・一æ„制約を無効ã«ã™ã‚‹ã¨ã€è‡ªå‹•çš„ã«ç´¢å¼•ã¯å‰Šé™¤ã•れã¾ã™ã€‚6一æ„åˆ¶ç´„ã®æŒ‡å®šã«ã¯ã€UNIQUEå¥ã‚’使用ã™ã‚‹4NULLã¯ã€ï¼‘行ã ã‘æ ¼ç´ã™ã‚‹ã“ã¨ãŒã§ãã‚‹N一æ„制約ã«ã€è¤‡æ•°åˆ—を指定ã™ã‚‹å ´åˆã®æœ€å¤§ã¯ï¼“2個ã§ã‚ã‚‹<列制約ã¾ãŸã¯è¡¨åˆ¶ç´„を指定ã™ã‚‹ã“ã¨ãŒã§ãã‚‹6制約を無効ã«ã™ã‚‹ã¨ã€ç´¢å¼•ã¯å‰Šé™¤ã•れるOÛå‚ç…§æ•´åˆåˆ¶ç´„ã§ã€è¦ªè¡¨ã®è¦ªã‚­ãƒ¼ã‚’削除ã—ãŸæ™‚ã«ã€å¯¾å¿œã™ã‚‹å­è¡¨ã®å¤–部キーも削除ã™ã‚‹ãŸã‚ã«ã€å‚ç…§æ•´åˆæ€§ã®å®šç¾©æ™‚ã«æŒ‡å®šã™ã‚‹å¥ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。|・親表ã®è¦ªã‚­ãƒ¼ã‚’削除ã—ãŸæ™‚ã«ã€å¯¾å¿œã™ã‚‹å­è¡¨ã®å¤–部キーを削除ã™ã‚‹ãŸSQLæ–‡ã®å•題  ã§ã™ã€‚〠ON DELETE CASCADEå¥ã«ã¤ã„㦠】 ・親キーを削除ã—ãŸæ™‚ã«ã€å¯¾å¿œã™ã‚‹å¤–部キーも削除ã—ã¾ã™ã€‚ ・å‚ç…§æ•´åˆæ€§ã§ã€è¦ªè¡¨ã®è¦ªã‚­ãƒ¼ã®å‰Šé™¤å‡¦ç†ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  (1).指定ãªã—ã®å ´åˆ   親キーã«å¯¾å¿œã™ã‚‹å¤–部キーãŒãªã„å ´åˆã«ã¯ã€è¦ªã‚­ãƒ¼ã‚’削除ã§ãã¾ã™ã€‚   親キーã«å¯¾å¿œã™ã‚‹å¤–部キーãŒã‚ã‚‹å ´åˆã«ã¯ã€è¦ªã‚­ãƒ¼ã‚’削除ã§ãã¾ã›ã‚“。  (2).ON DELETE CASCADEå¥ã‚’指定ã—ãŸå ´åˆ   親キーを削除ã—ãŸæ™‚ã«ã€å¯¾å¿œã™ã‚‹å¤–部キーを削除ã—ã¾ã™ã€‚  (3).ON DELETE SET NULLLå¥ã‚’指定ã—ãŸå ´åˆ   親キーを削除ã—ãŸæ™‚ã«ã€å¯¾å¿œã™ã‚‹å¤–部キー値をNULLã«ã—ã¾ã™ã€‚ 《例》å­è¡¨TBL1を定義ã—ã¾ã™ã€‚  外部キーã¯åˆ—COL1ã§ã€è¦ªè¡¨TBL2ã®åˆ—C1ã¨ã®é–“ã§ã€å‚ç…§æ•´åˆæ€§ã‚’定義ã—ã¾ã™ã€‚  親表TBL2ã®åˆ—C1ã«ã¯ä¸»ã‚­ãƒ¼ãŒå®šç¾©ã•れã¦ã„ã‚‹ã¨ã—ã¾ã™ã€‚   CREATE TABLE TBL1    (COL1 NUMBER REFERENCES TBL2(C1) ON DELETE CASCADE,    COL2 NUMBER);  ON DELETEON DELETE CASCADEON DELETE CONSTRAINTON DELETE CASCADE CONSTRAINTON DELETE REFERENCES 0þ  ã€ä»Šæ—¥ã®ç”¨èªžã€‘ 親表ã¨å­è¡¨  親表(å‚照表)  å­è¡¨ã®å¤–部キーãŒå‚ç…§ã™ã‚‹è¡¨ã§ã€è¦ªè¡¨ã®è¦ªã‚­ãƒ¼ï¼ˆå‚照キー)ã«ã¯ã€ä¸»ã‚­ãƒ¼  ã¾ãŸã¯ä¸€æ„キーを指定ã—ã¾ã™ã€‚å­è¡¨ã®å®šç¾©å‰ã«ä½œæˆã—ã¾ã™ã€‚  å­è¡¨ï¼ˆä¾å­˜è¡¨ï¼‰  外部キーã®ã‚る表ã§ã€å­è¡¨ã®å¤–部キーã¯ã€è¦ªè¡¨ã®è¦ªã‚­ãƒ¼ï¼ˆå‚ç…§ã‚­ãƒ¼ï¼‰ã¨æ•´åˆæ€§  ãŒä¿ãŸã‚Œã€è¦ªè¡¨ã®è¦ªã‚­ãƒ¼å€¤ä»¥å¤–ã«ã€å­è¡¨ã®å¤–部キー値を追加ã€å¤‰æ›´ã™ã‚‹ã“ã¨ã¯  ã§ãã¾ã›ã‚“。  但ã—ã€å­è¡¨ã®å¤–部キーãŒNOT NULL指定ã§ãªã‘れã°ã€å¤–部キーã«NULL値を格ç´ã§ãã¾ã™ã€‚PÆç¾åœ¨2002å¹´11月26æ—¥åˆå¾Œ3時15分ã§ã™ã€‚ 次ã®SQL文を実行ã—ãŸæ™‚ã«ã€æˆ»ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。   SQL> SELECT ROUND(SYSDATE,'MON') FROM DUAL;¼・ROUNDï¼ˆæ—¥ä»˜ï¼‰é–¢æ•°ã®æ›¸å¼ã¯ã€ROUND(date,fmt)ã§ã™ã€‚ ・書å¼å†…ã®fmtã®'MON'ã¯ã€æœˆã®æŒ‡å®šã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> SELECT ROUND(SYSDATE,'MON') FROM DUAL;  ROUND(SY  --------  02-12-01  ç¾åœ¨ã®æ—¥ä»˜ãŒ2002å¹´06月27æ—¥ãªã‚‰ã°ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> SELECT ROUND(SYSDATE,'MON') FROM DUAL;  ROUND(SY  --------  02-07-01¬ 〠ROUND(日付)関数ã®fmt指定ã«ã¤ã„㦠】 ・書å¼ï¼šROUND(date,fmt) ・dateを書å¼ãƒ¢ãƒ‡ãƒ«fmtã§æŒ‡å®šã—ãŸå˜ä½ã«ä¸¸ã‚ãŸçµæžœã‚’戻ã—ã¾ã™ã€‚ ・fmtã‚’çœç•¥ã™ã‚‹ã¨ã€dateã¯æœ€ã‚‚è¿‘ã„æ—¥ã«ä¸¸ã‚られã¾ã™ã€‚ ・書å¼ãƒ¢ãƒ‡ãƒ«fmtã®ä¸€éƒ¨ã‚’以下ã«ç¤ºã—ã¾ã™ã€‚   書å¼ãƒ¢ãƒ‡ãƒ«ã€€ã€€ä¸¸ã‚å˜ä½   ----------  ---------   YYYY     年   YEAR   YY   MONTH     月   MON   MM   DDD      日   DD   DAY      週ã®é–‹å§‹æ—¥   DY   D   HH      時   HH12   HH24   MI      分  例:ç¾åœ¨2002å¹´11月26æ—¥åˆå¾Œ3時15分ã§ã™ã€‚  SQL>SELECT ROUND(SYSDATE) FROM DUAL; â†fmtçœç•¥ã®æ™‚  ROUND(SY  --------  02-11-27ã€€â†æ™‚é–“ãŒä¸¸ã‚られ27æ—¥ã«ãªã‚Šã¾ã™ã€‚  SQL>SELECT ROUND(SYSDATE,'DAY') FROM DUAL; â†fmtã«DAY指定時  ROUND(SY  --------  02-11-24ã€€â†æ›œæ—¥ãŒä¸¸ã‚られ24日(日)ã«ãªã‚Šã¾ã™ã€‚  SQL>SELECT ROUND(SYSDATE,'YY') FROM DUAL; â†fmtã«YY指定時  ROUND(SY  --------  03-01-01 â†å¹´ãŒä¸¸ã‚られ翌年ã®å…ƒæ—¦ã«ãªã‚Šã¾ã™ã€‚ 02-12-2602-07-0102-11-2702-12-0102-12-31QƒSQL*Plusã®ã‚³ãƒžãƒ³ãƒ‰ãŒè¤‡æ•°è¡Œã«æ¸¡ã‚‹å ´åˆã«ã€è¡Œæœ«ã«å…¥åŠ›ã™ã‚‹æ–‡å­—ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。_・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> DESC -  > TBL1Ã〠SQL*Plusコマンドを継続ã™ã‚‹æ–¹æ³•ã«ã¤ã„㦠】 ・長ã„入力ã«ãªã‚Šã€SQL*Plusã®ã‚³ãƒžãƒ³ãƒ‰ã‚’継続ã™ã‚‹å ´åˆã«ã¯ã€è¡Œæœ«ã§ã€-  (ãƒã‚¤ãƒ•ン記å·)を入力ã—ã¾ã™ã€‚ ・ã“れã¯ã€SQL*Plusã®ã‚³ãƒžãƒ³ãƒ‰ã‚’入力ã™ã‚‹å ´åˆã§ã€SQL文を入力ã™ã‚‹å ´åˆã§ã¯  ã‚りã¾ã›ã‚“。"' (シングルクォート記å·)+ (プラス記å·)- (ãƒã‚¤ãƒ•ン記å·)_ (アンダースコア記å·)&& (アンパサンド記å·)R©表領域ã«ã€ç„¡åˆ¶é™ã®ã‚¯ã‚©ãƒ¼ã‚¿ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚ user_ts_quotasビューã®max_blocks列ã®å€¤ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。¢・無制é™ã®user_ts_quotasビューã®max_block列値ã¯ã€-1ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select MAX_BYTES,MAX_BLOCKS from user_ts_quotas;   MAX_BYTES MAX_BLOCKS   --------- ----------      -1     -1ý〠無制é™ã®ã‚¯ã‚©ãƒ¼ã‚¿ã«ã¤ã„㦠】 ・クォータãŒç„¡åˆ¶é™æ™‚ã®MAX_BYTES列ã€MAX_BLOCKS列ã®å€¤ã¯ã€-1ã«ãªã‚Šã¾ã™ã€‚ ・USER_TS_QUOTASã¯ã€ç¾è¡Œã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å¯¾ã™ã‚‹è¡¨é ˜åŸŸã®å‰²å½“ã¦ã‚’示ã—ã¾ã™ã€‚ ・USER_TS_QUOTASビューã®å†…容ã¯ã€ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚   列 å      列ã®å†…容  --------------- -----------------------------------------------  TABLESPACE_NAME 表領域å  BYTES      ユーザーã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸãƒã‚¤ãƒˆæ•°  MAX_BYTES    ユーザーã®å‰²å½“ã¦åˆ¶é™ï¼ˆãƒã‚¤ãƒˆå˜ä½ï¼‰  BLOCKS     ユーザーã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸOracleãƒ–ãƒ­ãƒƒã‚¯ã®æ•°  MAX_BLOCKS   ユーザーã®å‰²å½“ã¦åˆ¶é™ï¼ˆOracleブロックå˜ä½ï¼‰-10NULL unlimited 999,999,999Svリモートデータベース内ã®è¡¨TBL1ã‚’å‚ç…§ã—ã¦ã„ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。È・リモート・データベース上ã®è¡¨ã‚’å‚ç…§ã™ã‚‹ã«ã¯ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ»ãƒªãƒ³ã‚¯ã®å®Œå…¨  ã¾ãŸã¯éƒ¨åˆ†çš„ãªåå‰ã§è¡¨ã‚’修飾ã—ã¾ã™ã€‚ ・表åã®å¾Œã«ï¼ ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ»ãƒªãƒ³ã‚¯åを指定ã—ã¦ã€ãƒªãƒ¢ãƒ¼ãƒˆãƒ»ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹å†…㮠 オブジェクトã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¾ã™ã€‚ ‚〠データベース・リンクã®å‚ç…§ã«ã¤ã„㦠】 ・リモートã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹å†…ã®ã‚ªãƒ–ジェクトをå‚ç…§ã™ã‚‹å ´åˆã«ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ»  リンクを使用ã—ã¾ã™ã€‚ ・データベース・リンクåã¯ã€ï¼‘28ãƒã‚¤ãƒˆä»¥å†…ã§ã€ãƒ”リオドã¨ã‚¢ãƒƒãƒˆãƒžãƒ¼ã‚¯ã‚’  使用ã§ãã¾ã™ã€‚ ・データベース・リンクã¯ã€ã‚¹ã‚­ãƒ¼ãƒžãƒ»ã‚ªãƒ–ジェクトã§ã™ã€‚ ―――――――――――――――――――――――――――――――――― ã€å‚照資料】  Oracle9i データベース管ç†è€…ガイド  リリース1(9.0.1) 2001 å¹´10 月 部å“番å·: J04097-01 ―――――――――――――――――――――――――――――――――― SELECT * FROM RDB@TBL1;SELECT * FROM TBL1@RDB;SELECT * FROM RDB.TBL1;SELECT * FROM RDB\TBL1;SELECT * FROM \\RDB\TBL1;TSQL*Plusã§ã€å•åˆã›ã§ï¼‘ï¼ä»¶ä»¥ä¸Šæˆ»ã•ã‚ŒãŸæ™‚ã«ã€ä»¶æ•°ã‚’表示ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。°・å•åˆã›ã§ï¼‘ï¼ä»¶ä»¥ä¸Šã®ãƒ¬ã‚³ãƒ¼ãƒ‰ãŒè¿”ã•れãŸã‚‰ãƒ¬ã‚³ãƒ¼ãƒ‰ä»¶æ•°ã‚’表示ã™ã‚‹ã«ã¯ã€  以下ã®ã‚ˆã†ã«ã€æŒ‡å®šã—ã¾ã™ã€‚   SQL> SET FEEDBACK 10〠FEEDBACKコマンドã«ã¤ã„㦠】 ・書å¼ï¼šFEED[BACK] {6|n|ON|OFF} ・å•åˆã›ã«ã‚ˆã£ã¦n件以上ã®ãƒ¬ã‚³ãƒ¼ãƒ‰ãŒè¿”ã•れãŸã‚‰ãƒ¬ã‚³ãƒ¼ãƒ‰ã®æ•°ã‚’表示ã—ã¾ã™ã€‚ ・FEEDBACK ONã¯ã€ãƒ¬ã‚³ãƒ¼ãƒ‰ä»¶æ•°è¡¨ç¤ºè¨±å¯ã§ã€FEEDBACK 1ã¨åŒã˜ã§ã™ã€‚ ・FEEDBACK OFFã¯ã€ãƒ¬ã‚³ãƒ¼ãƒ‰ä»¶æ•°è¡¨ç¤ºæŠ‘æ­¢ã§ã€FEEDBACK 0ã¨åŒã˜ã§ã™ã€‚ ・FEEDBACKã®çœç•¥å½¢ã¯ã€FEEDã§ã™ã€‚RESULTMAXDATAANSWERFEEDBACKECHOBACKUî表tbl1ã«ã¯ã€ï¼–ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚ç…§ã—ã¦ä¸‹ã•ã„) 次ã®SQL文を実行ã—ãŸæ™‚ã«æˆ»ã•れる行数をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select DISTINCT COL1,PNAME from tbl1;‰・DISTNCT関数ã§ã€ï¼’ã¤ã®åˆ—ã®é‡è¤‡ãŒå–り除ã‹ã‚Œã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select DISTINCT COL1,PNAME from tbl1;     COL1 PNAME  --------- ---------------      1 OSAKA      1 TOKYO      2 TOKYO      3 NAGOYA      3 SENDAI  5行ãŒé¸æŠžã•れã¾ã—ãŸã€‚õ〠DISTINCTå¥ã®è¤‡æ•°åˆ—指定ã«ã¤ã„㦠】 ・SELECTæ–‡ã§ã®DISTINCTå¥ã¯ã€é‡è¤‡ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã‚’å–り除ãã¾ã™ã€‚ ・DISTINCTå¥ã§ã€è¤‡æ•°åˆ—を指定ã—ãŸå ´åˆã«ã¯ã€æŒ‡å®šåˆ—ã§ã®é‡è¤‡ãƒ‡ãƒ¼ã‚¿ã‚’å–り除ãã¾ã™ã€‚ï¼–5ï¼”3エラーã«ãªã‚‹@ÌÒ    表tbl1ã«ã¯ã€ï¼–ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2 PNAME       ---------- ---------- ------------------            1    1 TOKYO            1    2 OSAKA            2    1 TOKYO            3      NAGOYA            3      SENDAI            3    6 NAGOYA    6行ãŒé¸æŠžã•れã¾ã—ãŸã€‚Vˆ表TBL1ã¯ã€ï¼’ã¤ã®åˆ—COL1ã¨COL2を主キーã¨ã™ã‚‹åˆ¶ç´„ãŒå®šç¾©ã•れã¦ã„ã¾ã™ã€‚ 表TBL1ã«ã¯ã€ï¼“ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚ç…§ã—ã¦ä¸‹ã•ã„) æ­£ã—ã実行ã•れるSQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。â・複数列ã«ã‚ˆã‚‹ä¸»ã‚­ãƒ¼ã®å ´åˆã«ã‚‚個別ã®åˆ—ã«NULL値を格ç´ã§ãã¾ã›ã‚“。 ・「INSERT INTO TBL1(COL2,COL1) VALUES(5,9);ã€ã¯ã€åˆ—ã®é †ç•ªãŒCOL2,COL1㪠 ã®ã§é‡è¤‡ã™ã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。ß〠主キー制約ã®è¤‡æ•°åˆ—指定ã«ã¤ã„㦠】 ・主キーã«ã¯ã€NULLå€¤ã®æ ¼ç´ã¯ã§ãã¾ã›ã‚“ãŒã€è¤‡æ•°åˆ—ã«ã‚ˆã‚‹ä¸»ã‚­ãƒ¼åˆ¶ç´„ã§ã‚‚〠 個別ã®åˆ—ã«NULLã‚’æ ¼ç´ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。.INSERT INTO TBL1(COL2,COL1) VALUES(NULL,NULL);+INSERT INTO TBL1(COL1,COL2) VALUES(1,NULL);+INSERT INTO TBL1(COL1,COL2) VALUES(NULL,9);(INSERT INTO TBL1(COL2,COL1) VALUES(9,1);(INSERT INTO TBL1(COL2,COL1) VALUES(5,9);T—  表TBL1ã«ã¯ã€ï¼“ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚  列COL1ã¨COL2ã®å†…容ã¯ã€ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚   SQL> select COL1,COL2 from tbl1;         COL1   COL2      ---------- ----------           1    9           3    9           5    9    3行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ W¹以下ã®ã‚ˆã†ã«ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼å¤‰æ•°ã‚’定義ã—ã¦ã€SQL文を実行ã—ã¾ã™ã€‚ SQLæ–‡ã®ç©ºç™½ã‚’埋ã‚る内容をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 但ã—ã€è¡¨TBL1ã®åˆ—COL3ã¯ã€æ–‡å­—åž‹ã®å¤‰æ•°ã§ã™ã€‚  SQL> DEFINE PNAME = 1234  SQL> select COL1,COL2 from TBL1 where COL3 = [  ];y・ユーザー変数ã®å‚ç…§ã®å•題ã§ã™ã€‚ ãƒ»ãƒ‡ãƒ¼ã‚¿åž‹ãŒæ–‡å­—列ã®å ´åˆã€å˜ä¸€å¼•用符ã§å›²ã„ã¾ã™ã€‚“〠ユーザー変数ã®å‚ç…§ã«ã¤ã„㦠】 ・ユーザー変数ã®å®šç¾©ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«è¡Œãªã„ã¾ã™ã€‚   書å¼ï¼šDEFINE 変数å = 文字列 ・ユーザー変数をå‚ç…§ã™ã‚‹ã«ã¯ã€å¤‰æ•°åã®å‰ã«ã€&(アンパサンド)を付ã‘ã¾ã™ã€‚&&PNAME@PNAME'$PNAME' '&&PNAME'"@PNAME"X‚表TBL1ã«å¯¾ã—ã¦æ¤œç´¢ã€æ›´æ–°ã®æ¨©é™ã‚’ã™ã¹ã¦ã®äººã«ä»˜ä¸Žã™ã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。ç・ã™ã¹ã¦ã®ã²ã¨ã«ä»˜ä¸Žã™ã‚‹ã«ã¯ã€PUBLICを指定ã—ã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> GRANT SELECT,UPDATE ON TBL1 TO PUBLIC;  権é™ä»˜ä¸ŽãŒæˆåŠŸã—ã¾ã—ãŸã€‚†〠GRANT権é™(TO PUBLIC)ã«ã¤ã„㦠】 ・ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«æ¨©é™ã‚’付与ã™ã‚‹å ´åˆã¯ã€PUBLICを指定ã—ã¾ã™ã€‚#GRANT SELECT,UPDATE TO TBL1 TO ALL;&GRANT SELECT,UPDATE TO TBL1 TO PUBLIC;#GRANT SELECT,UPDATE ON TBL1 TO ALL;&GRANT SELECT,UPDATE ON TBL1 TO PUBLIC;$GRANT SELECT,UPDATE ON TBL1 FOR ALL;Y€SQL*Plusã§ã€ãƒ¬ãƒãƒ¼ãƒˆã®ä¸€ç•ªä¸Šã«ã‚¿ã‚¤ãƒˆãƒ«ã‚’設定ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。K・ヘッダーã¯ã€TTITLEã€ãƒ•ッターã¯ã€BTITLEã§æŒ‡å®šã—ã¾ã™ã€‚Þ〠TTITLEã«ã¤ã„㦠】 ・構文:TTITLE [æ›¸å¼æŒ‡å®š [タイトル・テキスト|変数] ...] [ON|OFF] ・レãƒãƒ¼ãƒˆãƒšãƒ¼ã‚¸ã®ä¸Šéƒ¨ã®ã‚¿ã‚¤ãƒˆãƒ«ï¼ˆãƒ˜ãƒƒãƒ€ãƒ¼ï¼‰ã‚’設定ã—ã¾ã™ã€‚ ãƒ»æ›¸å¼æŒ‡å®šã«ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ãªã‚‚ã®ãŒã‚りã¾ã™ã€‚    COL n    SKIP [n]    TAB n    LEFT    CENTER    RIGHT    BOLD    FORMAT 書å¼ãƒ¢ãƒ‡ãƒ« ・TTITLEã®ã‚¿ã‚¤ãƒˆãƒ«ã®é•·ã•ã¯ã€2400文字以内ã§ã™ã€‚ ・TTITLEã®çœç•¥å½¢ã¯ã€TTIã§ã™ã€‚ ・レãƒãƒ¼ãƒˆãƒšãƒ¼ã‚¸ã®ä¸‹éƒ¨ã®ã‚¿ã‚¤ãƒˆãƒ«ï¼ˆãƒ•ッター)ã¯ã€BTITLEã§è¨­å®šã—ã¾ã™ã€‚ ã€Šä¾‹ã€‹å³æ·»ãˆã§ã€ã‚¿ã‚¤ãƒˆãƒ«ã¨é ç•ªå·ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã‚’指定ã—ã¾ã™ã€‚  SQL> TTITLE RIGHT '集計レãƒãƒ¼ãƒˆ:é ç•ªå·' SQL.PNO ―――――――――――――――――――――――――――――――――― ã€å‚照資料】  SQL*Plus ユーザーズ・ガイドãŠã‚ˆã³ãƒªãƒ•ァレンス  リリース9.0.1 2001 å¹´10 月 部å“番å·: J04131-01 ―――――――――――――――――――――――――――――――――― TITLEHTITLETTITLESTITLEBTITLEZr上ä½ï¼®ç•ªç›®ã¾ã§ã‚’検索ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã™ã‚‹æ“¬ä¼¼åˆ—ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。`・副å•ã„åˆã‚ã›ã¨ROWNUM擬似列ã«ã‚ˆã‚Šã€ä¸Šä½ï¼®ç•ªç›®ã®ãƒ‡ãƒ¼ã‚¿ã‚’求ã‚ã¾ã™ã€‚Ú〠ROWNUM擬似列ã«ã¤ã„㦠】 ・ROWNUMã¯ã€å•åˆã›ã«ã‚ˆã‚Šæˆ»ã•れる行ã«ä»˜ã‘られãŸç•ªå·ã§ã™ã€‚ ・ROWNUMã«ã‚ˆã‚Šå•åˆã›ã§æˆ»ã•れる行数を制é™ã§ãã¾ã™ã€‚ 《例》注文数ã®å¤šã„上ä½ï¼‘ï¼ç•ªç›®ã¾ã§ã®å•†å“情報を検索ã—ã¾ã™ã€‚   SQL> SELECT * FROM ( SELECT * FROM SALTBL ORDER BY ORDNUM DESC )               WHERE ROWNUM < 11;  <注æ„>比較æ¡ä»¶ã®ã€ŒROWNUMï¼žæ­£ã®æ•´æ•°ã€ã¯ã€å¸¸ã«å½ã¨ãªã‚Šã€è¡Œã¯æˆ»ã•れã¾ã›ã‚“。 ―――――――――――――――――――――――――――――――――― ã€å‚照資料】  Oracle9i SQL リファレンス リリース1(9.0.1)  2001 å¹´10 月 部å“番å·: J04117-01 ―――――――――――――――――――――――――――――――――― ROWIDROWNUMLEVELUIDORDERED[Ã次ã®ã‚ˆã†ã«SQL文を実行ã—ã¾ã—ãŸã€‚ 表TBL1ã®COL1ã«è¿½åŠ ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。   COMMIT;   INSERT INTO TBL1(COL1) VALUES(10);   SAVEPOINT S1;   INSERT INTO TBL1(COL1) VALUES(20);   SAVEPOINT S2;   INSERT INTO TBL1(COL1) VALUES(30);   ROLLBACK;Ý・ROLLBACKæ–‡ã§ã€ãƒ­ãƒ¼ãƒ«ãƒãƒƒã‚¯ã™ã‚‹ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆã‚’指定ã—ãªã„å ´åˆã«ã¯ã€  ç¾è¡Œãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã®ã™ã¹ã¦ã®å¤‰æ›´ãŒå–消ã•れã€ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã¯  終了ã—ã¾ã™ã€‚ –〠セーブãƒã‚¤ãƒ³ãƒˆã®æŒ‡å®šã®ãªã„ROLLBACKコマンドã«ã¤ã„㦠】 ・セーブãƒã‚¤ãƒ³ãƒˆã®æŒ‡å®šã®ãªã„ROLLBACKæ–‡ã¯ã€ç¾è¡Œã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å…¨ä½“ã‚’  ロールãƒãƒƒã‚¯ã—ã¾ã™ã€‚    ROLLBACK; ・指定セーブãƒã‚¤ãƒ³ãƒˆã«ãƒ­ãƒ¼ãƒ«ãƒãƒƒã‚¯ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«æŒ‡å®šã—ã¾ã™ã€‚    ROLLBACK TO S1; ã¾ãŸã¯ ROLLBACK TO SAVEPOINT S1; ≪å‚考≫ SAVEPOINTæ–‡ã§ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆåを指定ã—ãªã„ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚    SAVEPOINT; â†ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆåãŒãªã„ã®ã§ã€ã‚¨ãƒ©ãƒ¼ã§ã™ã€‚ ―――――――――――――――――――――――――――――――――― ã€å‚照資料】Oracle9i SQL リファレンス  リリース1(9.0.1)2001 å¹´10 月 部å“番å·: J04117-01 ―――――――――――――――――――――――――――――――――― 10ã®ã¿10ã¨2020ã®ã¿ 10,20ã¨30何も追加ã•れãªã„\Ò表TBL1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚ç…§ã—ã¦ä¸‹ã•ã„) 以下ã®SQLæ–‡ãŒè¿”ã™å€¤ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。    SQL> select AVG(COL1) from TBL1;³・AVGã¯ã€å¹³å‡ã‚’求ã‚る関数ã§ã™ã€‚ ・NULLã¯ã€å¯¾è±¡å¤–ã¨ãªã‚‹ã®ã§ã€ç·æ•°60ã‚’3ã§å‰²ã‚‹ã®ã§ã€20ãŒè¿”りã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚   SQL> select AVG(COL1) from TBL1;    AVG(COL1)    ---------        20È〠グループ関数ã§ã®NULLã®æ‰±ã„ã«ã¤ã„㦠】 ・グループ関数ã§ã¯ã€NULLã¯å¯¾è±¡å¤–ã¨ãªã‚Šã¾ã™ã€‚ ・例外ã¯ã€count(*)ã§ã€NULLもカウントã®å¯¾è±¡ã«ãªã‚Šã¾ã™ã€‚ NULL122060エラーã«ãªã‚‹ôÐ   表TBL1ã«ã¯ã€ï¼•ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚   表TBL1ã®åˆ—COL1ã®å€¤ã¯ã€ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚(空白部ã¯ã€NULLã§ã™ï¼‰    SQL> select col1 from TBL1;          COL1       ----------           10                       20                       30    5行ãŒé¸æŠžã•れã¾ã—ãŸã€‚]™次ã®SQL文を実行ã—ãŸæ™‚ã«è¿”ã•れる値をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select TO_CHAR(1234.5678,'L999G999') from DUAL;ï・TO_CHARé–¢æ•°ã®æ›¸å¼æŒ‡å®šã§ã€Lã¯ã€é€šè²¨è¨˜å·ã€Gã¯ã€æ¡åŒºåˆ‡ã‚Šã§ã™ã€‚ ・9ã¯ã€å…ˆé ­ã®ï¼ã‚’サプレスã—ã¾ã™ã€‚å°æ•°ç‚¹éƒ¨ã¯ã€æ¡æ•°ã§ä¸¸ã‚られã¾ã™ã€‚ ・#ã¯ã€æ›¸å¼æŒ‡å®šã®æ¡æ•°ã§ã€æ•´æ•°éƒ¨ã‚’表ç¾ã—ãれãªã„å ´åˆã«è¡¨ç¤ºã•れã¾ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚   SQL> select TO_CHAR(1234.5678,'L999G999') from DUAL;   TO_CHAR(1234.5678,   -----------------         \1,235¨〠TO_CHARé–¢æ•°ã®æ•°å€¤æ›¸å¼(L,G,D)ã«ã¤ã„㦠】 ・TO_CHARé–¢æ•°ã®æ•°å€¤æ›¸å¼  (1).L   ローカル通貨記å·ï¼ˆNLS_CURRENCYパラメータã®å€¤ï¼‰ã‚’戻ã—ã¾ã™   デフォルトã¯ã€å††ãƒžãƒ¼ã‚¯ã€Œ\ã€ã«ãªã‚Šã¾ã™  (2).G   æ¡åŒºåˆ‡ã‚Šï¼ˆNLS_NUMERIC_CHARACTERパラメータã®å€¤ï¼‰ã‚’戻ã—ã¾ã™   デフォルトã¯ã€ã‚«ãƒ³ãƒžã€Œ,ã€ã«ãªã‚Šã¾ã™  (3).D ã€€ã€€å°æ•°ç‚¹æ–‡å­—(NLS_NUMERIC_CHARACTERパラメータã®å€¤ï¼‰ã‚’戻ã—ã¾ã™   デフォルトã¯ã€ãƒ”リオド「.ã€ã«ãªã‚Šã¾ã™123,457\123,456 $1,234.568\1,235 ###########^{group byå¥ã®ã‚ã‚‹SQLæ–‡ã§ã™ã€‚エラーã«ãªã‚‰ãªã„SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。 û・select COL1,COL2 from TBL1 group by 2;  group byå¥ã«ã€åˆ—番å·ã‚’指定ã—ãŸå ´åˆã€  「ORA-00979: GROUP BYã®å¼ã§ã¯ã‚りã¾ã›ã‚“ã€ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚ ・select COL1,max(COL2) from TBL1 group by COL1;  selectã®åˆ—åã‚’ã€group byå¥ã§æŒ‡å®šã—ã¦ã„ã‚‹ã®ã§ã€ã‚¨ãƒ©ãƒ¼ã«ã¯  ãªã‚Šã¾ã›ã‚“。 ・select COL1 Summary,min(COL2) from TBL1 group by Summary;  列別åã‚’group byå¥ã§æŒ‡å®šã—ãŸå ´åˆã€  「ORA-00904: 列åãŒç„¡åйã§ã™ã€‚ã€ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚ ・select COL1 * 1.5,avg(COL2) from TBL1 group by COL1 * 1.5;  selectã®å¼ã‚’ã€group byå¥ã§æŒ‡å®šã—ã¦ã„ã‚‹ã®ã§ã€ã‚¨ãƒ©ãƒ¼ã«ã¯ãªã‚Šã¾ã›ã‚“。 ・select COL1,max(COL2) from TBL1 group by COL2;  selectã®åˆ—ãŒã€group byå¥ã®åˆ—åã«æŒ‡å®šã—ã¦ã„ãªã„å ´åˆã€  「ORA-00979: GROUP BYã®å¼ã§ã¯ã‚りã¾ã›ã‚“ã€ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚¿〠group byå¥ã«ã¤ã„㦠】 ・group byå¥ã«ã€åˆ—別åã€åˆ—番å·ã‚’指定ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 ・group byå¥ã«ã€select列ã®å¼ã‚’指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚&select COL1,COL2 from TBL1 group by 2;.select COL1,max(COL2) from TBL1 group by COL1;9select COL1 Summary,min(COL2) from TBL1 group by Summary;:select COL1 * 1.5,avg(COL2) from TBL1 group by COL1 * 1.5;.select COL1,max(COL2) from TBL1 group by COL2;_iorder byå¥ã®ã‚ã‚‹SQLæ–‡ã§ã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 Œ・select COL1,COL2 from TBL1 order by 2;   列番å·ã‚’使用ã—ãŸorder byå¥ã§ã™ã€‚ ・select COL1 Summary,COL2 from TBL1 order by Summary;   列別åを使用ã—ãŸorder byå¥ã§ã™ã€‚ ・select COL1,COL2 from TBL1 order by COL1 * 1.5;   列åã‚’å«ã‚€å¼ã‚’使用ã—ãŸorder byå¥ã§ã™ã€‚ ・select COL1,COL2 from TBL1 order by COL3;   select列ã«ãªã„列åを使用ã—ãŸorder byå¥ã§ã™ã€‚ ・select COL1,max(COL2) from TBL1 order by COL2;   select列ã«ã€åˆ—åã¨ã‚°ãƒ«ãƒ¼ãƒ—関数ãŒã‚りã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚  「ORA-00937: å˜ä¸€ã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚°ãƒ«ãƒ¼ãƒ—関数ã§ã¯ã‚りã¾ã›ã‚“。〖〠order byå¥ã«ã¤ã„㦠】 ・order byå¥ã«ã¯ã€åˆ—別åã€åˆ—番å·ã€å¼ã€select列ã«ãªã„列を指定ã™ã‚‹ã“ã¨ãŒ  ã§ãã¾ã™ã€‚&select COL1,COL2 from TBL1 order by 2;4select COL1 Summary,COL2 from TBL1 order by Summary;/select COL1,COL2 from TBL1 order by COL1 * 1.5;)select COL1,COL2 from TBL1 order by COL3;.select COL1,max(COL2) from TBL1 order by COL2;`š表TBL1ã«ã¯ã€ï¼”ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚(資料1をå‚ç…§ã—ã¦ä¸‹ã•ã„) 次ã®SQL文を実行ã—ãŸæ™‚ã€ã©ã®ã‚ˆã†ãªé †ç•ªã§åˆ—PNAMEãŒè¿”ã•れるã§ã—ょã†ã‹ã€‚ (A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> select PNAME from tbl1 order by PNAME; E・order byå¥ã§ã€NULL値ã¯ã€ä¸€ç•ªå¤§ããªå€¤ã¨ãªã‚Šã¾ã™ã€‚ô〠order byã®æ˜‡é †æ–‡å­—列ã®ä¸¦ã³ã«ã¤ã„㦠】 ・order byã§ã€æ–‡å­—列を昇順ã«ä¸¦ã¹ãŸå ´åˆã€æ–‡å­—コードã®é †ç•ªã«ãªã‚Šã¾ã™ã€‚ ・ã“ã“ã§ã¯ã€æ•°å€¤ï¼œå¤§æ–‡å­—ï¼œå°æ–‡å­—<NULLã®é †ã§å¤§ãããªã‚Šã¾ã™ã€‚NULL→12345→TOKYO→tokyo12345→TOKYO→tokyo→NULLTOKYO→12345→tokyo→NULLTOKYO→tokyo→12345→NULLNULL→TOKYO→tokyo→12345¸ë    表TBL1ã«ã¯ã€ï¼”ä»¶ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã™ã€‚    SQL> select * from tbl1;          COL1   COL2  PNAME       ---------- ---------- --------------------            3    9  TOKYO            4    1  tokyo            3    2              1    4  12345    4行ãŒé¸æŠžã•れã¾ã—ãŸã€‚ as列COL1ã®åˆ—見出ã—ã®æŒ‡å®šã§ã€æ­£ã—ããªã„SQL文をã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。Î・列別åã¯ã€ã‚·ãƒ³ã‚°ãƒ«å¼•用符ã§ã¯å›²ã„ã¾ã›ã‚“。 ・||ã¯ã€æ–‡å­—ãŠã‚ˆã³CLOBデータを連çµã™ã‚‹é€£çµæ¼”ç®—å­ã§ã™ã€‚ ・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> select COL1 as Summary from TBL1;        Summary   ----------------         210〠列別åã®æŒ‡å®šã«ã¤ã„㦠】 ・列別åを指定ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ãªæ–¹æ³•ãŒã‚りã¾ã™ã€‚  (1).列åã®å¾Œã«ã€åˆ—別åを記述ã—ã¾ã™  (2).列åã®å¾Œã«ã€ãƒ€ãƒ–ル引用符を付ã‘ã¦åˆ—別åを記述ã—ã¾ã™    列別å内ã«ã€ç©ºç™½ç­‰ãŒã‚ã‚‹å ´åˆã§ã™ã€‚  (3).列åã®å¾Œã«ã€asを指定ã—ã¦åˆ—別åを記述ã—ã¾ã™!select COL1 as Summary from TBL1;select COL1 Summary from TBL1; select COL1 "Summary" from TBL1; select COL1 'Summary' from TBL1;!select COL1 || Summary from TBL1;brSQLæ–‡ã®è¨˜è¿°ã§ã€ã‚°ãƒ«ãƒ¼ãƒ—関数をãƒã‚¹ãƒˆã§ãã‚‹æ·±ã•ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。6・グループ関数ã®ãƒã‚¹ãƒˆæ•°ã®å•題ã§ã™ã€‚Ø〠グループ関数ã®ãƒã‚¹ãƒˆã«ã¤ã„㦠】 ・グループ関数ã®ãƒã‚¹ãƒˆã¯ã€ï¼’ã¾ã§ã§ã™ã€‚  ≪å‚考≫ グループ関数ã®ãƒã‚¹ãƒˆãŒï¼“ã®å ´åˆã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚  SQL> select count(avg(sum(col1))) from tbl1 group by col1;  ORA-00935: グループ関数ã®ãƒã‚¹ãƒˆãƒ»ãƒ¬ãƒ™ãƒ«ãŒæ·±ã™ãŽã¾ã™ã€‚1ï¼’ï¼”3ï¼特ã«åˆ¶é™ã¯ãªã„cŠ表を削除ã—ã¾ã™ã€‚削除ã™ã‚‹è¡¨ã¨ã„ã£ã—ょã«å‰Šé™¤ã•れãªã„ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。N・表を削除ã—ã¦ã‚‚ã€ãƒ“ューã€ã‚·ãƒŽãƒ‹ãƒ ã¯å‰Šé™¤ã•れã¾ã›ã‚“。–〠表ã®å‰Šé™¤ã¨ä¾å­˜é–¢ä¿‚ã«ã¤ã„㦠】 ・表ã®å‰Šé™¤ã«é–¢é€£ã™ã‚‹å‡¦ç†ã¯ã€ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚  (1).表ã«å¯¾å¿œä»˜ã‘られã¦ã„る索引ã€åˆ¶ç´„ã€ãƒˆãƒªã‚¬ãƒ¼ã¯ã€å‰Šé™¤ã•れã¾ã™ã€‚  (2).表ã«ä¾å­˜ã—ã¦ã„るビューã¯ã€å‰Šé™¤ã•れã¾ã›ã‚“。無効ã«ãªã‚Šã¾ã™ã€‚  (3).表ã®ã‚·ãƒŽãƒ‹ãƒ ã¯ã€å‰Šé™¤ã•れã¾ã›ã‚“。使用ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 ビュー索引 シノニム制約 トリガーdfnumber(5)ã®ãƒ‡ãƒ¼ã‚¿åž‹ã«æ ¼ç´ã§ããªã„データをã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。ë・「99999.99ã€ã®å ´åˆã€å°æ•°ç‚¹ä»¥ä¸‹ãŒä¸¸ã‚られã¦ã€æ•´æ•°ï¼•æ¡ã‚’è¶Šãˆã¦ã‚‹ãŸã‚ã«ã€  以下ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚  「ORA-01438: 指定ã—ãŸç²¾åº¦ã‚’è¶…éŽã—ãŸå€¤ãŒåˆ—ã«æŒ‡å®šã•れã¦ã„ã¾ã™ã€ 〠numberã®æ•´æ•°æŒ‡å®šã«ã¤ã„㦠】 ・numberã§æ•´æ•°ã‚’指定ã™ã‚‹ã«ã¯ã€number(n)ã¾ãŸã¯number(n,0)ã¨ã—ã¾ã™ã€‚ ・整数部ãŒè¶…ãˆã‚‹å ´åˆã«ã¯ã€æ ¼ç´ã§ããšã«ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚ ãƒ»å°æ•°éƒ¨ã¯ã€æŒ‡å®šç²¾åº¦ã§ä¸¸ã‚られã¾ã™ã€‚99999.99-99999NULL 12345.6789 -1.23456789o–グループ関数ã§å–り出ã—ãŸè¡Œã«ã€æ¡ä»¶ã‚’指定ã—ã¦ãƒ‡ãƒ¼ã‚¿ã‚’検索ã™ã‚‹ãŸã‚ã®å¥ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。`・グループ関数ã®çµæžœã‚’ã•らã«çµžã‚Šè¾¼ã‚€ãŸã‚ã®å¥ã«ã¤ã„ã¦ã®å•題ã§ã™ã€‚Π〠HAVINGå¥ã«ã¤ã„㦠】 ・グループ化ã—ãŸè¡Œã‚’ã€HAVINGå¥ã®æ¡ä»¶ãŒçœŸã®è¡Œã«æ¤œç´¢ã‚’絞り込ã¿ã¾ã™ã€‚ ・GROUP BYã¨HAVINGã¯ã€ã©ã¡ã‚‰ã‚’å…ˆã«è¨˜è¿°ã—ã¦ã‚‚å¯èƒ½ã§ã™ã€‚ ・HAVINGã«ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—関数を記述ã§ãã¾ã™ã€‚WHEREå¥ã«ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—関数を  記述ã§ãã¾ã›ã‚“。 《例》以下ã®ã‚ˆã†ãªè¡¨ã«ã€GROUP BYã®ã¿ã‚’指定ã—ãŸçµæžœã¨ã€GROUP BYã¨HAVING    を使用ã—ãŸçµæžœã®ä¾‹ã‚’示ã—ã¾ã™  SQL> select * from tbl1; â†ï¼’ã¤ã®åˆ—ã‚’æŒã¤è¡¨ã®å†…容ã§ã™   COL1 COL2  ---------- ----------   10 120 â†è¡¨ã«ã¯ã€ï¼•ä»¶ã®è¡ŒãŒã‚りã¾ã™   10 250   20 115   20 30   30 220  SQL> select col1,sum(col2) from tbl1 group by col1; â†GROUP BYå¥ã®ã¿   COL1 SUM(COL2)  ---------- ----------   10 370 â†COL1ã§ã‚°ãƒ«ãƒ¼ãƒ—化ã—ã€ï¼“ä»¶ã®è¡ŒãŒæˆ»ã‚Šã¾ã™   20 145   30 220  SQL> select col1,sum(col2) from tbl1      group by col1 having sum(col2) > 200; â†GROUP BYã¨HAVINGを指定   COL1 SUM(COL2)  ---------- ----------   10 370 â†COL1ã§ã‚°ãƒ«ãƒ¼ãƒ—化ã—ã€SUM(COL2)ãŒ200より大ãㄠ  30 220  2件ã®è¡ŒãŒæˆ»ã‚Šã¾ã™ ―――――――――――――――――――――――――――――――――― <å‚照資料>  SQL*Plus ユーザーズ・ガイドãŠã‚ˆã³ãƒªãƒ•ァレンス  リリース9.0.1 2001 å¹´10 月 部å“番å·: J04131-01HAVINGWHEREGROUP BYDISTINCTEXTRACTg­SQL*Plusã®SPOOLコマンドã§ã€ãƒ•ァイルåã ã‘を指定ã—ãŸå ´åˆã«ã€ãƒ‡ãƒ•ォルトã§ä»˜åŠ ã•れる拡張å­ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。 M・SPOOLコマンドã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®æ‹¡å¼µå­ã«é–¢ã™ã‚‹å•題ã§ã™ã€‚Å〠SPOOLコマンド(SQL*Plusã®ã‚³ãƒžãƒ³ãƒ‰ï¼‰ã€‘ ・構文:SPOOL [filename[.ext]|OFF|OUT] ・ファイルåを指定ã™ã‚‹ã¨å•åˆã›çµæžœã‚’ãƒ•ã‚¡ã‚¤ãƒ«ã«æ ¼ç´ã—ã¾ã™ã€‚ ・OFFを指定ã™ã‚‹ã¨ã€ã‚¹ãƒ—ãƒ¼ãƒ«ã‚’åœæ­¢ã—ã¾ã™ã€‚ ・OUTを指定ã™ã‚‹ã¨ã€ã‚¹ãƒ—ãƒ¼ãƒ«ã‚’åœæ­¢ã—ã¦ã€ãƒ‡ãƒ•ォルト・プリンタã«é€ä¿¡ã—ã¾ã™ã€‚ ・ファイル拡張å­ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®æ‹¡å¼µå­ã¯ã€.LSTã¾ãŸã¯.LISã§ã™ã€‚ ・SPOOLã®çœç•¥å½¢ã¯ã€SPOã§ã™ã€‚ ―――――――――――――――――――――――――――――――――― <å‚照資料>  SQL*Plus クイック・リファレンス  リリース9.2 2002 å¹´7 月 部å“番å·: J06277-01TXTSQLSRCLSTOUTh¾ç¾åœ¨2003å¹´2月25æ—¥ã§ã™ã€‚ 以下ã®SQL文を実行ã—ãŸçµæžœã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。  SQL> SELECT TO_CHAR(TO_DATE('98/02/03','RR/MM/DD'),'YYYY') FROM DUAL;¨・実際ã®SQLã®å®Ÿè¡Œçµæžœã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚  SQL> SELECT TO_CHAR(TO_DATE('98/02/03','RR/MM/DD'),'YYYY') FROM DUAL;  TO_C  ----  1998í〠RR日付書å¼ã«ã¤ã„㦠】 ・RR日付書å¼ã¯ã€ç¾åœ¨ã®å¹´ã®ä¸‹ï¼’æ¡ã¨æŒ‡å®šã®å¹´ã®ä¸‹ï¼’æ¡ã«ã‚ˆã‚Šã€å¹´ã®ä¸Šï¼’æ¡ãŒå¤‰æ›  ã•れã¾ã™ã€‚ ・YY日付書å¼ã¯ã€ç¾åœ¨ã®æ—¥ä»˜ã®å¹´ã‚’è¿”ã—ã¾ã™ãŒã€RR日付書å¼ã¯ã€ç¾åœ¨ã®å¹´ã¨æŒ‡å®šã®  年ã«ã‚ˆã‚Šè¿”ã•れる年ãŒå¤‰åŒ–ã—ã¾ã™ã€‚ ・ç¾åœ¨ã®å¹´ã®ä¸‹ï¼’æ¡ãŒï¼ï½žï¼”ï¼™ã§ã€æŒ‡å®šã—ãŸå¹´ã®ä¸‹ï¼’æ¡ãŒï¼•ï¼ï½žï¼™ï¼™æ™‚  ç¾åœ¨ã®å¹´ã®ä¸Šï¼’æ¡ï¼ï¼‘ã«å¤‰æ›ã—ã¾ã™ ・ç¾åœ¨ã®å¹´ã®ä¸‹2æ¡ãŒï¼•ï¼ï½žï¼™ï¼™ã§ã€æŒ‡å®šã—ãŸå¹´ã®ä¸‹ï¼’æ¡ã®ï¼ï½žï¼”ï¼™ã®æ™‚  ç¾åœ¨ã®å¹´ã®ä¸Šï¼’æ¡ï¼‹ï¼‘ã«å¤‰æ›ã—ã¾ã™ ・上記以外ã®å ´åˆã«ã¯ã€ç¾åœ¨ã®å¹´ã®ä¸Šï¼’æ¡ã¯ã€ãã®ã¾ã¾ã§ã™ã€‚ 《例》ã“ã®å•é¡Œã®æ›¸å¼ã®RRãŒYYã®å ´åˆã«ã¯ã€2098ã«å¤‰æ›ã•れã¾ã™ã€‚  SQL> SELECT TO_CHAR(TO_DATE('98/02/03','YY/MM/DD'),'YYYY') FROM DUAL;   TO_C   ----   2098 ―――――――――――――――――――――――――――――――――― <å‚照資料>  Oracle9i SQL リファレンス  リリース2(9.2) 2002 å¹´7 月 部å“番å·: J06261-0119982098219819992003nTSELECTæ–‡ã®åŸºæœ¬çš„ãªæ©Ÿèƒ½ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ï¼“ã¤é¸ã‚“ã§ä¸‹ã•ã„。?・SELECTæ–‡ã®åŸºæœ¬çš„ãªæ©Ÿèƒ½ã«ã¤ã„ã¦ã®å•題ã§ã™ã€‚²〠SELECTæ–‡ã®åŸºæœ¬çš„ãªæ©Ÿèƒ½ã«ã¤ã„㦠】 ã€€ãƒ»é¸æŠž...表ã‹ã‚‰è¡Œã‚’å–り出㙠 ・射影...表ã‹ã‚‰åˆ—ã‚’å–り出㙠 ・çµåˆ...複数表ã‹ã‚‰å–り出㙠―――――――――――――――――――――――――――――――――― <å‚照資料>  SQL*Plus ユーザーズ・ガイドãŠã‚ˆã³ãƒªãƒ•ァレンス  リリース9.0.1 2001 å¹´10 月 部å“番å·: J04131-01å°„å½±é¸æŠž抽出抽影çµåˆe`表定義時ã«ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹åˆ—åã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。€・「会員-番å·ã€ã¨ã€Œä¼šå“¡%番å·ã€ã¯ã€ä»¥ä¸‹ã®ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚  「ORA-00911: 文字ãŒç„¡åйã§ã™ã€°〠スキーマ・オブジェクトã®ãƒãƒ¼ãƒŸãƒ³ã‚°ã«ã¤ã„㦠】 (1).åå‰ã¯ã€1~30ãƒã‚¤ãƒˆã¾ã§ã§ã™ã€‚   例外ã¯ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹åã®æœ€å¤§8 ãƒã‚¤ãƒˆã¨ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ»ãƒªãƒ³ã‚¯åã®æœ€å¤§   128ãƒã‚¤ãƒˆã§ã™ã€‚ (2).åå‰ã¯ã€å¤§æ–‡å­—ã¨å°æ–‡å­—ãŒåŒºåˆ¥ã•れã¾ã›ã‚“。 (3).åå‰ã«ã€è‹±æ•°å­—ãŠã‚ˆã³ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢ï¼ˆ_)ã€ãƒ‰ãƒ«è¨˜å·ï¼ˆ$)ã€ã‚·ãƒ£ãƒ¼ãƒ—è¨˜å· ã€€ã€€ï¼ˆ#)ãŒä½¿ç”¨ã§ãã¾ã™ã€‚ (4).åå‰ã«ã€Oracleã®äºˆç´„語ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。 (5).åå‰ã‚’二é‡å¼•用符ã§å›²ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚ãã®å ´åˆã«ã¯ã€åå‰ã‚’å‚ç…§ã™ã‚‹æ™‚   ã«ã‚‚ã€åå‰ã‚’二é‡å¼•用符ã§å›²ã¿ã¾ã™ã€‚ 会員-ç•ªå· ä¼šå“¡#ç•ªå· ä¼šå“¡$ç•ªå· ä¼šå“¡_番å· 会員%番å·fユーザーãŒã‚¢ã‚¯ã‚»ã‚¹ã§ãる表ã®åˆ¶ç´„ã®å‚ç…§æ•´åˆæ€§ã‚’調ã¹ã‚‹ãŸã‚ã®ãƒ“ューをã€(A)~(E)ã®ä¸­ã‹ã‚‰é¸ã‚“ã§ä¸‹ã•ã„。á・USER_CONSTRAINTSã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ‰€æœ‰ã™ã‚‹è¡¨ã®åˆ¶ç´„定義を示ã—ã¾ã™ã€‚ ・DBA_CONSTRAINTSã¯ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ã™ã¹ã¦ã®è¡¨ã®åˆ¶ç´„定義を示ã—ã¾ã™ã€‚ ・ALL_CONSTRAINTSã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚¢ã‚¯ã‚»ã‚¹ã§ãる表ã®åˆ¶ç´„定義を示ã—ã¾ã™ã€‚ ・USER_CONS_COLUMNSã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ‰€æœ‰ã—ã€åˆ¶ç´„定義ã•れã¦ã„る列を示ã—ã¾ã™ã€‚ ・USER_CONS_OBJ_COLUMNSã¯ã€ç¾è¡Œã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ‰€æœ‰ã™ã‚‹è¡¨ã®åˆ—ãŒåˆ¶ç´„ã‚’å—㑠 る型ã«é–¢ã™ã‚‹æƒ…報を示ã—ã¾ã™ã€‚ ・ã“ã®å ´åˆã«ã¯ã€ALL_CONSTRAINTSビューã®CONSTRAINT_TYPE列を調ã¹ã¾ã™ã€‚Ÿ〠データ・ディクショナリ表ã®åˆ†é¡ž 】 データ・ディクショナリ表ã¯ã€æŽ¥é ­èªžã«ã‚ˆã‚Šå¤§ãã3ã¤ã«åˆ†é¡žã•れã¾ã™ã€‚ (1).ALL_ビュー   ç¾è¡Œã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚¢ã‚¯ã‚»ã‚¹ã§ãる情報を表示ã—ã¾ã™ã€‚   ALL_ビューã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¹ã‚­ãƒ¼ãƒžæƒ…報以外ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ä»˜ä¸Žã•れ㟠  権é™ã«ã‚ˆã‚Šã‚¢ã‚¯ã‚»ã‚¹ã§ãる情報を表示ã—ã¾ã™ã€‚ (2).DBA_ビュー   データベース全体ã«é–¢é€£ã™ã‚‹æƒ…報を表示ã—ã¾ã™ã€‚   DBA_ビューã¯ã€ç®¡ç†è€…ãŒä½¿ç”¨ã—ã¾ã™ã€‚   DBA_ビューã®è¡¨ç¤ºã«ã¯ã€SELECT_ANY_TABLE権é™ãŒå¿…è¦ã§ã™ã€‚ (3).USER_ビュー   ç¾è¡Œã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¹ã‚­ãƒ¼ãƒžã®æƒ…報を表示ã—ã¾ã™ã€‚   USER_ビューã®è¡¨ç¤ºã«ã¯ã€ç‰¹åˆ¥ãªæ¨©é™ã¯å¿…è¦ã‚りã¾ã›ã‚“。 ―――――――――――――――――――――――――――――――――― <å‚照資料>  Oracle9i データベース・リファレンス  リリース2(9.2)2002å¹´7月 部å“番å·ï¼šJ06256-01DBA_CONSTRAINTSALL_CONSTRAINTSUSER_CONSTRAINTSUSER_CONS_COLUMNSUSER_CONS_OBJ_COLUMNSiiオブジェクト権é™ã‚’付与ã§ãã‚‹ã‚‚ã®ã‚’ã€(A)~(E)ã®ä¸­ã‹ã‚‰ã™ã¹ã¦é¸ã‚“ã§ä¸‹ã•ã„。Ö・SYS,SYSTEMユーザーã¯ã€ã‚ªãƒ–ジェクト権é™ã‚’付与ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 ・オブジェクト権é™ã®ä»˜ä¸Žã¯ã€with admin optionã§ã¯ãªã〠 with grant optionã§è¡Œãªã„ã¾ã™ã€‚ï〠オブジェクト権é™ã®ä»˜ä¸Žã«ã¤ã„㦠】 ・オブジェクト権é™ã‚’付与ã§ãã‚‹ã®ã¯ã€ã‚ªãƒ–ジェクト権é™ã®æ‰€æœ‰è€…㨠 WITH GRANT OPTIONã§ã‚ªãƒ–ジェクト権é™ãŒä»˜ä¸Žã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã ã‘ã§ã™ã€‚ ―――――――――――――――――――――――――――――――――― <å‚照資料>  SQL*Plus ユーザーズ・ガイドãŠã‚ˆã³ãƒªãƒ•ァレンス  リリース9.0.1 2001 å¹´10 月 部å“番å·: J04131-018WITH