DROP과 TRUNCATE로 삭제한 데이터, 테이블은 다시 복구 할 수 없다.
INSERT, UPDATE, DELETE문 반영을 위해서는 '내가 완벽히 이 작업을 마무리하겠다'는 COMMIT이 필요
DELETE, UPDATE문은 WHERE조건을 빼버리면 모든 행이 변경되니 주의
날짜
SYSDATE 오늘 날짜
SYSDATE - 30 한달전 날짜
직접 기입 TO_DATE('20230829' 'YYYYMMDD')
DELETE
TRUNCATE 모두 초기화, 롤백 불가능
DELETE 원하는 데이터만, ROLLBACK가능, 모든 데이터 삭제의 경우에는 TRUNCATE가 더 빠름
TRUNCATE TABLE NETFLIX
DELETE FROM NETFLIX
INNER JOIN
이너조인의 형태가 INNER JOIN~ON 구문으로도 가능하고 FROM 절에 테이블명을 콤마로 적어두고 WHERE 절에서 조인 조건 표기도 가능. STANDARD JOIN
select A.video_name, A.category, B.cast_member
from netflix A, netflix_cast B
where A.video_name = B.video_name;
select A.video_name, A.category, B.cast_member
from netflix A
inner join netflix_cast B
on A.video_name = B.video_name;
DUAL
SELECT SYSDATE FROM DUAL;
DUAL 시스템에서 제공하는 더미 테이블
임의의 상수값, 정의된 값만 가져올 때 사용
날짜/시간 함수
SELECT SYSDATE FROM DUAL; --현재 날짜시간
SELECT ADD_MONTHS(SYSDATE, 3) FROM DUAL; --현재 날짜+3개월 (3개월후)
SELECT ADD_MONTHS(SYSDATE, -3) FROM DUAL; -- 현재 날짜-3개월 (3개월전)
SELECT TRUNC(SYSDATE) FROM DUAL; --현재날짜에서 시간부분은 나오지 않게 00:00:00 처리됨
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL; --시간을 24시간 단위로 출력하겠다
REPLACE
SELECT REPLACE('하이THERE', '하이', 'HI') FROM DUAL;
SELECT REPLACE('HITHERE', 'THERE') FROM DUAL;
SELECT REPLACE('010-1111-2222', '-') FROM DUAL;
SELECT REPLACE('안녕하세요.
봄여름가을겨울입니다.', CHR(10)) FROM DUAL; -- ENTER값은 CHR(10)으로 표현된다.
SELECT REPLACE(CAST_MEMBER, '이지은', '아이유') FROM NETFLIX_CAST; -- 컬럼내에서 REPLACE 방법
SUBSTR
INDEX 0부터가 아닌 1부터 시작한다.
SELECT SUBSTR('ABCDE', 3, 2) FROM DUAL; -- 3번째부터 두개를 가져오겠다
SELECT SUBSTR('ABCDE', 2) FROM DUAL; -- 2번째부터 끝까지 가져오겠다
SELECT SUBSTR('ABCDE', -4, 3) FROM DUAL; -- 끝에서 4번째부터 3개를 가져오겠다.
SELECT SUBSTR(CAST_MEMBER, 1, 1) || '*' || SUBSTR(CAST_MEMBER, 3) FROM NETFLIX_CAST; -- ||는 CONCAT