//************************************************ -- Å×ÀÌºí¿¡ µ¥ÀÌÅÍ Ãß°¡ INSERT INTO Å×À̺í¸í [(Ä÷³¸í1, Ä÷³¸í2, ...)] VALUES (°ª1, °ª2, ...) ÇÑ°³ÀÇ Å×ÀÌºí¿¡ ÇϳªÀÇ Çุ Ãß°¡ ÇÒ ¼ö ÀÖ´Ù. ------------------------------------------------------------------ SELECT * FROM TAB; DROP TABLE TEST1 PURGE; DROP TABLE INSA1 PURGE; DROP TABLE INSA2 PURGE; CREATE TABLE TEST1 ( num NUMBER(7) PRIMARY KEY ,name VARCHAR2(20) NOT NULL ,birth DATE NOT NULL ,memo VARCHAR2(255) ); INSERT INTO TEST1 VALUES (1, 'È«±æµ¿', '2000-10-10', 'Å×½ºÆ®'); INSERT INTO TEST1 (num, name, birth, memo) VALUES (2, 'À̼ø½Å', '1999-01-01', 'Ã湫°ø'); INSERT INTO TEST1 VALUES (3, '¿À¶óŬ', '1999-12-12'); --¿À·ù(Çʵ尳¼ö¿Í °ªÀÇ °³¼ö°¡ ´Þ¶ó¼­) INSERT INTO TEST1 VALUES (3, '¿À¶óŬ', '1999-12-12', NULL); INSERT INTO TEST1 (num, name, birth) VALUES (4, '¼Ò³à½Ã´ë', '1988-01-01'); SELECT * FROM TEST1; ------------------------------------------------------------------ COMMIT; -- Æ®·£Àè¼Ç¿Ï·á(µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀå) ROLLBACK; -- Æ®·£Àè¼ÇÃë¼Ò(µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåµÇÁö ¾ÊÀ½) ------------------------------------------------------------------ INSERT INTO TEST1 VALUES (1, 'ȣȣȣ', '1999-10-10', 'Å×½ºÆ®'); -- ¿À·ù(Á¦¾àÁ¶°Ç À§¹Ý, ±âº»Å°´Â Áߺ¹À» Çã¿ëÇÏÁö ¾Ê´Â´Ù.) INSERT INTO TEST1 (num, name, memo) VALUES (5, 'À̼ø½Å', 'Ã湫°ø'); -- ¿À·ù(birth´Â NOT NULL ¼Ó¼ºÀ» °¡Áö°í Àִµ¥ birth¸¦ ÀÔ·ÂÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î) INSERT INTO TEST1 (num, name, memo, birth) VALUES (5, 'À̼ø½Å', 'Ã湫°ø', '05/05/88'); -- ¿À·ù(³¯Â¥ Çü½ÄÀÌ ¸ÂÁö ¾Ê¾Æ¼­) INSERT INTO TEST1 (num, name, memo, birth) VALUES (5, 'À̼ø½Å', 'Ã湫°ø', TO_DATE('05/05/88', 'MM/DD/YY')); -- YY´Â ½Ã½ºÅ۽ð£À» ±âÁØÀ¸·ÎÇϹǷΠ2088ÀÌ Ãß°¡ COMMIT; INSERT INTO TEST1 (num, name, memo, birth) VALUES (6, 'À̼ø½Å', 'Ã湫°ø', TO_DATE('05/05/88', 'MM/DD/RR')); COMMIT; SELECT * FROM TESt1 //************************************************ -- ¿©·¯Çà Ãß°¡ INSERT INTO Å×À̺í¸í [(Ä÷³¸í, Ä÷³¸í, ...)] subquery; ------------------------------------------------------------------ CREATE TABLE test2 AS SELECT num, name, birth FROM test1 WHERE 1=0; -- ±¸Á¶¸¸º¹»ç(Á¦¾à Á¶°ÇÀº º¹»ç µÇÁö ¾ÊÀ½) DESC test2 ------------------------------------------------------------------ -- Á¦¾àÁ¶°Ç È®ÀÎ SELECT constraint_name, table_name, constraint_type FROM user_constraints; ------------------------------------------------------------------ -- ¿©·¯Çà Ãß°¡(±âÁ¸ Å×À̺íÀÇ ÀڷḦ Ãß°¡) INSERT INTO test2 SELECT num, name, birth FROM TEST1; COMMIT; SELECT * FROM test2; INSERT INTO test2(name, birth) SELECT name, birth FROM TEST1; COMMIT; SELECT * FROM test2; //************************************************ -- ÇϳªÀÇ INSERT¹®À» ÀÌ¿ë ¿©·¯ Å×ÀÌºí¿¡ µ¥ÀÌÅÍ Ãß°¡ INSERT ALL | FIRST [INTO Å×À̺í_1 VALUES (Ä÷³_1, Ä÷³_2,...)] [INTO Å×À̺í_2 VALUES (Ä÷³_1, Ä÷³_2,...)] ....... Subquery; - ALL : ¼­ºê Äõ¸®ÀÇ °á°ú ÁýÇÕÀ» ÇØ´çÇÏ´Â insert Àý¿¡ ¸ðµÎ ÀÔ·Â - FIRST : ¼­ºê Äõ¸®ÀÇ °á°ú ÁýÇÕÀ» ÇØ´çÇϴ ù ¹ø° insert Àý¿¡ ÀÔ·Â ------------------------------------------------------------------ CREATE TABLE test3 AS SELECT * FROM test1 WHERE 1=0; CREATE TABLE test4 AS SELECT * FROM test1 WHERE 1=0; INSERT ALL INTO test3 VALUES(num, name, memo, birth) INTO test4 (num, name) VALUES (num, name) SELECT * FROM test1; COMMIT; SELECT * FROM test3; SELECT * FROM test4; //************************************************ -- Á¶°Ç¿¡ ¸¸Á·ÇÏ´Â ÀڷḸ ¿©·¯ Å×ÀÌºí¿¡ Ãß°¡ INSERT ALL WHEN Á¶°ÇÀý_1 THEN INTO [Å×À̺í_1] VALUES (Ä÷³_1, Ä÷³_2, ...) WHEN Á¶°ÇÀý_2 THEN INTO [Å×À̺í_2] VALUES (Ä÷³_1, Ä÷³_2, ...) ........ ELSE INTO [Å×À̺í_3] VALUES (Ä÷³_1, Ä÷³_2, ...) Subquery; ------------------------------------------------------------------ CREATE TABLE test5 AS SELECT * FROM test1 WHERE 1=0; CREATE TABLE test6 AS SELECT * FROM test1 WHERE 1=0; INSERT ALL WHEN num >3 THEN INTO test5 VALUES(num, name, memo, birth) WHEN num <=3 THEN INTO test6 (num, name) VALUES (num, name) SELECT * FROM test1; COMMIT; SELECT * FROM test5; SELECT * FROM test6; //************************************************ -- ¼öÁ¤ UPDATE Å×À̺í¸í SET Ä÷³¸í= º¯°æÇÒ°ª[, Ä÷³¸í= º¯°æÇÒ°ª, ...] [WHERE Á¶°Ç]; ------------------------------------------------------------------ SELECT * FROM TEST1; ------------------------------------------------------------------ UPDATE TEST1 SET birth='2010-10-10', memo='¼öÁ¤'; -- Àý´ë·Î ÀÌ·¸°Ô ÇÏ¸é ¾ÈµÈ´Ù. ÀÌ·¸°Ô ¼öÁ¤ÇÏ¸é ¦i°Ü³­´Ù.(Àüü°¡ ´Ù ¼öÁ¤µÇ¹Ç·Î) SELECT * FROM TEST1; ROLLBACK; ------------------------------------------------------------------ UPDATE TEST1 SET birth='2010-10-10', memo='¼öÁ¤' WHERE num=1; COMMIT; SELECT * FROM TEST1; ------------------------------------------------------------------ UPDATE TEST1 SET num=111 WHERE num=1; -- ±âº»Å°´Â NC ¼Ó¼ºÀ» °®Áö ¾Ê´Â´Ù. Áï º¯°æ °¡´É ÇÏ´Ù. COMMIT; SELECT * FROM TEST1; ------------------------------------------------------------------ UPDATE TEST1 SET num=2 WHERE num=111; -- ¿À·ù(±âº»Å° Áߺ¹) ------------------------------------------------------------------ CREATE TABLE score ( num NUMBER(7) PRIMARY KEY ,name VARCHAR2(20) NOT NULL ,com NUMBER(3) ,excel NUMBER(3) ,word NUMBER(3) ); INSERT INTO score(num, name) SELECT num, name FROM INSA WHERE num<=1007; COMMIT; SELECT * FROM score; UPDATE score SET com=35, excel=95, word=100 WHERE num=1001; UPDATE score SET com=85, excel=80, word=80 WHERE num=1002; UPDATE score SET com=45, excel=65, word=55 WHERE num=1003; UPDATE score SET com=75, excel=75, word=60 WHERE num=1004; UPDATE score SET com=85, excel=85, word=80 WHERE num=1005; UPDATE score SET com=85, excel=65, word=85 WHERE num=1006; UPDATE score SET com=65, excel=90, word=80 WHERE num=1007; COMMIT; SELECT num, name, com, excel, word, com+excel+word AS tot, ROUND((com+excel+word)/3, 1) AS ave, CASE WHEN com>=40 AND excel>=40 AND word>=40 AND (com+excel+word)/3 >= 60 THEN 'ÇÕ°Ý' WHEN (com+excel+word)/3 < 60 THEN 'ºÒÇÕ°Ý' ELSE '°ú¶ô' END AS pan FROM score; -- ¿©ÀÚÀÇ excel Á¡¼ö¿¡ + 5(insa Å×À̺í ÂüÁ¶) UPDATE score SET excel=excel+5 WHERE num IN (SELECT num FROM INSA WHERE SUBSTR(ssn, 8, 1) IN (2, 4)); COMMIT; //************************************************ -- ÀÚ·á »èÁ¦ DELETE [FROM] Å×À̺í¸í [WHERE Á¶°Ç]; ------------------------------------------------------------------ SELECT * FROM TAB; SELECT * FROM TEST1; ------------------------------------------------------------------ -- ¸ðµç ÀÚ·á »èÁ¦(Å×ÀÌºí ±¸Á¶´Â Áö¿öÁöÁö ¾Ê´Â´Ù.) DELETE FROM TEST1; COMMIT; SELECT * FROM TEST1; DROP TABLE TEST1 purge; ------------------------------------------------------------------ -- Á¶°Ç¿¡ ¸¸Á·ÇÏ´Â µ¥ÀÌÅÍ »èÁ¦ SELECT * FROM test2; DELETE FROM test2 WHERE num=1; -- FROMÀº »ý·« °¡´É COMMIT; SELECT * FROM test2; //************************************************ -- ¸ðµç ÀÚ·á »èÁ¦ TRUNCATE TABLE test2; -- ¸ðµç ÀڷḦ »èÁ¦ÇÏ´Â °æ¿ì DELETEº¸´Ù ºü¸§ -- ROLLBACK ºÒ°¡(ÀÚµ¿ COMMIT) SELECT * FROM test2; DROP TABLE test2 purge ------------------------------------------------------------------ -- score Å×À̺íÀÇ ¿©ÀÚ¸¸ »èÁ¦ SELECT * FROM score; DELETE FROM score WHERE num IN (SELECT num FROM INSA WHERE SUBSTR(ssn, 8, 1) IN (2, 4)); SELECT * FROM score; COMMIT; SELECT * FROM TAB; DROP TABLE test2 purge; DROP TABLE test3 purge; DROP TABLE test4 purge; DROP TABLE test5 purge; DROP TABLE test6 purge; SELECT * FROM TAB; //************************************************ -- MERGE(º´ÇÕ) MERGE INTO Å×À̺í_¸í º°Äª USING ´ë»óÅ×À̺í/ºä º°Äª ON Á¶ÀÎÁ¶°Ç WHEN MATCHED THEN UPDATE SET Ä÷³_1=°ª_1 ,Ä÷³_2=°ª_2 WHEN NOT MATCHED THEN INSERT (Ä÷³_1, Ä÷³_2, ...) VALUES(°ª_1, °ª_2, ...); ------------------------------------------------------------------ CREATE TABLE TEST1( id NUMBER PRIMARY KEY ,name VARCHAR2(20) ,pay NUMBER ,sudang NUMBER ); CREATE TABLE TEST2( id NUMBER PRIMARY KEY ,sudang NUMBER ); INSERT INTO TEST1(id, name, pay, sudang) VALUES (1, 'A', 100, 10); INSERT INTO TEST1(id, name, pay, sudang) VALUES (2, 'B', 150, 20); INSERT INTO TEST1(id, name, pay, sudang) VALUES (3, 'C', 130, 0); INSERT INTO TEST2(id, sudang) VALUES (2, 5); INSERT INTO TEST2(id, sudang) VALUES (3, 15); INSERT INTO TEST2(id, sudang) VALUES (4, 10); COMMIT; MERGE INTO test2 s USING (SELECT id, sudang FROM test1) t ON (s.id = t.id) WHEN MATCHED THEN UPDATE SET s.sudang=s.sudang+t.sudang WHEN NOT MATCHED THEN INSERT (s.id, s.sudang) VALUES (t.id, t.sudang); SELECT * FROM TEST1; SELECT * FROM TEST2; MERGE INTO test2 s USING test1 t ON (s.id = t.id) WHEN MATCHED THEN UPDATE SET s.sudang=s.sudang+t.sudang WHEN NOT MATCHED THEN INSERT (s.id, s.sudang) VALUES (t.id, t.sudang); DROP TABLE TEST1 purge; DROP TABLE TEST2 purge;