νΈλμμ μ΄λ?
λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€λ νλμ λ Όλ¦¬μ κΈ°λ₯μ μννκΈ° μν μμ μ λ¨μ λλ
νλ²μ λͺ¨λ μνλμ΄μΌ ν μΌλ ¨μ μ°μ°λ€μ μλ―Ένλ€.
νΈλμμ μ λ°μ΄ν°λ² μ΄μ€ μμ€ν μμ λ³νμ μ΄ λ° ν볡 μμ μ μ²λ¦¬λλ μμ μ λ Όλ¦¬μ λ¨μ
μ¬μ©μκ° μμ€ν μ λν μλΉμ€ μꡬμ μμ€ν μ΄ μλ΅νκΈ° μν μν λ³ν κ³Όμ μ μμ λ¨μ
νΈλμμ νΉμ§
- μμμ±
- νΈλμμ μ ν κ° μ΄μμ λμμ λ Όλ¦¬μ μΌλ‘ ν κ°μ μμ λ¨μλ‘ λ¬Άμ
- μμμ±μ νΈλμμ λ²μμ μλ λͺ¨λ λμμ΄ λͺ¨λ μ€νλκ±°λ λλ λͺ¨λ μ€νμ΄ μ·¨μλ¨μ 보μ₯
- λͺ¨λ λμμ΄ μ±κ³΅μ μΌλ‘ μ€νλλ©΄ νΈλμμ μ μ±κ³΅
- νλλΌλ μ€ν¨νλ©΄ νΈλμμ μ μ€ν¨νκ³ λͺ¨λ κ³Όμ μ λ‘€λ°±
- μΌκ΄μ±
- νΈλμμ μ΄ μ’ λ£λλ©΄, μμ€ν μ λΉμ¦λμμ κΈ°λνλ μνκ° λ¨.
- μμ ꡬ맀 νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μ€νλλ©΄ κ²°μ λ΄μ, ꡬ맀 λ΄μ μκ³ μ λ³΄κ° λΉμ¦μ§μ€μ λ§κ² μ μ₯λκ³ λ³κ²½λ¨
- κ³ λ¦½μ±
- νΈλμμ μ λ€λ₯Έ νΈλμμ κ³Ό λ 립μ μΌλ‘ μ€νλμ΄μΌ νλ©°, μλ‘ λ€λ₯Έ νΈλμμ μ΄ λμΌν λ°μ΄ν°μ λμμ μ κ·Ό ν κ²½μ° μλ§κ² λμ μ κ·Όμ μ μ΄
- λμ μ κ·Ό μ μ΄λ μ€μ ν 격리 λ 벨μ λ°λΌ λ¬λΌμ§.
- μ§μμ±
- νΈλμμ μ΄ μλ£λλ©΄, κ·Έ κ²°κ³Όλ μ§μμ μΌλ‘ μ μ§λμ΄μΌ ν¨.
- νμ¬μ μ΄ν리μΌμ΄μ μ΄ λ³κ²½λκ±°λ μμ΄μ§λλΌλ λ°μ΄ν°λ μ μ§λ¨
- μΌλ°μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€λ λ€λ₯Έ 물리μ μΈ μ μ₯μλ₯Ό ν΅ν΄μ νΈλμμ κ²°κ³Όκ° μ μ₯
COMMIT κ³Ό ROLLBACK
νΈλμμ μ μ΄μ΄λ COMMIT ROLLBACK,SAVEPOINTκ° μλ€. μ€λΌν΄μ INSERT, UPDATE,DELETE λͺ λ Ήμ μ€ννλ©΄ μλμΌλ‘ νΈλμμ μ΄ μλ£λ μνκ° μλλ―λ‘ COMMIT λλ ROLLBACK λͺ λ Ήμ μ΄μ©νμ¬ νΈλμμ μ μλ£ ν΄μΌ νλ€.
| λͺ μΉ | μ€λͺ |
| COMMIT | νΈλμμ μ΄ μλ£( INSERT, UPDATE,DELETE μλ£)λ μνλ‘ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λλ€ |
| ROLLBACK | νΈλμμ μ΄ μ·¨μ( INSERT, UPDATE,DELETE μ·¨μ)λ μνλ‘ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λμ§ μλλ€ |
| SAVEPOINT | νΈλμμ λ΄μ ν μμ μ νμνλ€. ROLLBACK TO savepoint λͺ λ Ήμ΄λ‘ νμ μ§μ κΉμ§ ROLLBACKνλλ° μ°μΈλ€. |
CREATE TABLE emp2 AS SELECT * FROM emp; -- ν
μ΄λΈ μμ±
DELETE FROM emp2 WHERE empNo = '1001';
DELETE FROM emp2 WHERE empNo = '1002';
SELECT * FROM emp2;
SAVEPOINT a; -- νΈλμμ
μ ν μμ μ μ€μ
DELETE FROM emp2 WHERE empNo = '1003';
SELECT * FROM emp2;
ROLLBACK TO a; -- λ§μ§λ§μ DELETE νκ²λ§ ROLLBACK
SELECT * FROM emp2 ORDER BY EMPNO;
12CλΆν° μΆκ°λ μλ‘μ΄ κΈ°λ₯
Top-N
쿼리λ μμκ° μ§μ λ λ°μ΄ν° μ§ν©μμ λ°νλλ ν μλ₯Ό μ ννλ λ°©λ²μ μ 곡νλ€. μΈνΈμμ μμ λλ νμ "N"κ°μ ν μλ₯Ό λ¦¬ν΄ νκ±°λ λ°μ΄ν°λ₯Ό ν΅ν΄ νμ΄μ§ ν λ λ§€μ° μ μ©νλ€.
-- κΈμ¬ λ΄λ¦Όμ°¨μ μ λ ¬νμ¬ μ²μλΆν° 3κ°μ νλ§ μΆλ ₯
SELECT *
FROM emp
ORDER BY sal DESC
FETCH FIRST 3 ROWS ONLY;
--κΈμ¬ λ΄λ¦Όμ°¨μ μ λ ¬νμ¬ 5κ°λ₯Ό 건λλ°κ³ λ€μλΆν° 3κ°μ νλ§ μΆλ ₯
SELECT *
FROM emp
ORDER BY sal DESC
OFFSET 5 ROWS FETCH FIRST 3 ROWS ONLY;
-- κΈμ¬ λ΄λ¦Όμ°¨μ μ λ ¬νμ¬ μμ 10%
SELECT *
FROM emp
ORDER BY sal
FETCH FIRST 10 PERCENT ROWS ONLY;
INVISIBLE column
12CλΆν°λ ν μ΄λΈμμ INVISIBLE column(보μ΄μ§ μλ 컬λΌ) μμ±μ΄ κ°λ₯νλ€. INVISIBLE columnμ λ€μ μμ μ μ²λ¦¬ν λ 컬λΌμ΄ 보μ΄μ§ μλλ€. κ°μ 컬λΌμ INVISIBLE 컬λΌμΌλ‘ λ§λ€ μ μλ€.
CREATE TABLE test8(
rum NUMBER PRIMARY KEY,
name VARCHAR2(30) NOT NULL,
tel VARCHAR2(30) INVISIBLE
);
SELECT * FROM test8;--μ보μ
SELECT * FROM col WHERE tname = 'TEST8'; --μ보μ
SELECT * FROM cols WHERE table_name = 'TEST8'; -- 보μ
--INVISIBLE 컬λΌμ΄ 보μ΄μ§λ§ INVISIBLE 컬λΌμΈμ§λ νμΈ λΆκ°
SELECT * FROM user_tab_cols WHERE table_name = 'TEST8'; -- 보μ
--HIDDEN_COLUMN μ»¬λΌ νλͺ©μμ INVISIBLE νμΈ κ°λ₯
INSERT INTO test8 VALUES(1,'a'); -- κ°λ₯ tel μ΄ INVISIBLEμ΄λ―λ‘ κ°λ₯
INSERT INTO test8 VALUES(2,'b','nn'); -- μλ¬
IDENTITY column
μλμΌλ‘ μ«μκ° μ¦κ°λλ IDENTITY columnμ μ§μνλ€. λ΄λΆμ μΌλ‘ μνμ€λ₯Ό μ΄μ©νμ¬ κ΄λ¦¬νλ€. IDENTITY columnμ ν μ΄λΈλ§λ€ νλμ IDENTITY columnλ§ κ°μ§ μ μλ€.
CREATE TABLE test7(
num NUMBER GENERATED AS IDENTITY PRIMARY KEY,
subject VARCHAR2(100) NOT NULL
);
INSERT INTO test7(subject)VALUES('a');
INSERT INTO test7(num,subject)VALUES(s,'b');--μλ¬
DEFAULT
- DEFAULT κ°μΌλ‘ μνμ€μ NETVALμ¬μ©
CREATE TABLE, ALTER TABLE λͺ λ Ήμ DEFAULT κ°μΌλ‘ μνμ€μ CURRVAL,NETVALλ₯Ό μ¬μ© ν μ μλ€. DEFAULTκ°μΌλ‘ μνμ€μ NETVAL μλ ν μ΄λΈμμ λ°μ΄ν°λ₯Ό INSERTν ROLLBACK νλ©΄ μνμ€ κ°μ κ³μ μ¦κ°νλ€.
- NULLκ°μ μν DEFAULTκ° μ§μ
NULLμ΄ μ λ ₯λ κ²½μ° NULLλμ μ λ ₯λ κ°μ DEFAULTλ‘ μ§μ νλ κΈ°λ₯μ΄ μΆκ° λμλ€. CREATE TABLE, ALTER TABLEλͺ λ Ήμ DEFAULT κ°μ μ€μ ν λ ON NULL μ΅μ μ μΆκ°νλ©΄ NULLκ°μ΄ μ λ ₯λλ κ²½μ° DEFAULT κ°μ΄ μΆκ°λλ€.
'π» > ORACLE' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| (28)[ORACLE] 11μΌμ°¨ : PL/SQL - 2 (0) | 2024.03.25 |
|---|---|
| (28)[ORACLE] 11μΌμ°¨ : PL/SQL (1) | 2024.03.25 |
| [ORACLE] 9μΌμ°¨ : κ³ κΈμΏΌλ¦¬ (1) | 2024.03.22 |
| [ORACLE] 9μΌμ°¨ : λ·° λ° μνμ€, μλ Έλ (0) | 2024.03.21 |
| [ORACLE] 9μΌμ°¨ : μλΈ μΏΌλ¦¬ (0) | 2024.03.21 |