테이블의 데이터를 입력 / 수정 / 삭제 / 조회
SELECT INSERT UPDATE DELETE
<aside> ❗ UPDATE랑 DELETE는 꼭 WHERE 써주기! 꼭꼭
</aside>
<aside> 🐔 데이터 조회하기
“ “
로 감싸기 (’ ‘
는 불가능!)SELECT UPPER('mango pineapple kiwi') as UPPER, LOWER('mango pineapple kiwi') as LOWER, INITCAP('mango pineapple kiwi') as "initcap"
FROM DUAL;
</aside>
<aside> 🐠 테이블에 데이터 입력하기
INSERT INTO 테이블명(칼럼명1, 칼럼명2, 칼럼명3, …) VALUES(’값1’, ‘값2’, ‘값3’, …);
→ 데이터 타입에 따라 값 써줄때 숫자에는 ‘ ‘ 없이, 문자에는 ‘ ‘ 로 쓰기
INSERT INTO SALES.APAC_EMPS(EID, NAME, ADDRESS, SALARY, DEPTID, LOCATIONID) VALUES('2301','AMY','42 STREET','8500','10','20');
<aside> ⚠️ ?! 숫자에 ‘ ‘ 해도 왜 되는거지?
Oracle에서는 숫자(NUMBER) 형식의 컬럼에 문자열을 직접 삽입하더라도 암시적 형변환이 발생하여 자동으로 숫자로 변환될 수 있습니다. 이는 Oracle에서 데이터 형 변환 규칙에 따른 것입니다.
따라서 '2301'이라는 문자열을 숫자 형식의 컬럼에 삽입하면 Oracle은 자동으로 이를 숫자로 변환합니다. 이러한 자동 형변환은 데이터 형식 간의 호환성을 제공하며, 일반적으로 오라클은 문자열에서 숫자로의 변환을 허용합니다.
그러나 데이터 형 변환 시 주의해야 할 점이 있습니다. 데이터의 의도와 다르게 자동 변환이 발생할 수 있고, 오류가 발생할 수도 있습니다. 따라서 정확한 데이터 형식을 지정하여 삽입하는 것이 좋습니다. 이를 위해서는 데이터를 삽입하는 INSERT 문에서 숫자 컬럼에 대한 정확한 형식을 지정하도록 해야 합니다.
</aside>
</aside>
<aside> 🐡 데이터 수정하기
UPDATE 테이블명 SET 바꿀칼럼명 = ‘바꿀데이터값’ WHERE 구분할칼럼명 = 해당칼럼명의데이터;
→ WHERE 뒤에 오는 기준에 만족하는 애의 데이터를? 바꿀거야!
UPDATE SALES.APAC_EMPS SET LOCATIONID = 1001 WHERE EID = 2301;
</aside>
<aside> 🦈 데이터 삭제하기
DELETE SALES.APAC_EMPS WHERE EID = '2301';
</aside>
<aside> 🐙 GRANT {system_privilesges | object_privileges} TO user;
</aside>
<aside> 🐚 REVOKE {system_privilesges | object_privileges} FROM user;
</aside>
<aside> 😜 먼저 연결한 사람이 임자임! 업데이트하고 커밋하기 전까지 다른놈은 아무도 못건드려! ALL OR NOTHING → 다 먹히거나 아무것도 안먹히거나
</aside>
COMMIT/ROLLBACK 이전의 데이터 상태
COMMIT/ROLLBACK 이후의 데이터 상태