[SQL] 기초 - 2

Robin·2023년 8월 29일

SQL

목록 보기
4/7

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
profile
Always testing, sometimes dog walking

0개의 댓글