본문 바로가기
반응형

SQL186

오라클 SELECT 후 INSERT 하는 방법 정리 오라클에서 SELECT INSERT를 수행하는 방법은 동일한 테이블, 컬럼일 경우 혹은 테이블과 컬럼이 다를 경우 두 가지의 경우가 있는데 먼저 테이블이나 컬럼이 같을 경우에는 INSERT INTO 테이블명 SELECT 컬럼명 FROM 테이블명 이런 식으로 사용한다 여기서 테이블명 뒤에 컬럼을 지정해주지 않을 경우에는 INSERT 하려는 테이블의 모든 컬럼을 작성해주어야 한다 특정 컬럼에만 INSERT 하려면 INSERT INTO 테이블명(컬럼명) SELECT 컬럼명 FROM 테이블명 과 같이 컬럼을 지정해줘야 한다 여기서 테이블과 컬럼이 다를 경우에는 스크린샷 위의 방법처럼 맞추기 힘들기 때문에 아래 방법으로 진행하게 된다 다음으로는 SELECT INSERT 시 시퀀스(Sequence)를 섞는 경우인데.. 2020. 6. 2.
오라클 WHERE절 ANY SOME ALL 사용방법 및 예제 오라클에서 WHERE 절에 사용되는 ANY, SOME, ALL 사용방법을 알아보자 먼저 ANY와 SOME은 동일한 기능인데 ANY(값, 값, 값) 중에서 조건이 하나라도 맞으면 조회한다 SAL > ANY(1000, 1500) 으로 걸면 SAL이 1000 OR 1500보다 크면 조회하게 된다 다음으로는 ALL인데 ALL은 조건에 모두 맞을 경우에만 조회하게 된다 예제에 사용한 SAL > ALL(1000, 1500) 의 경우에는 SAL이 1000, 1500보다 큰 경우에만 조회되게 된다 2020. 5. 20.
오라클 NULL 개념 및 사용방법 정리 오라클에서 NULL은 해당 컬럼 안에 아무 정보가 없다 (absence of information) 라는 말인데 컬럼에 뭔가 넣어주지 않았기 때문에 정보가 없는 상태를 NULL 이라고 한다 '', 0도 뭔가 없는 것 같은데 공백과 0이라는 값이므로 NULL은 아니다 다만 오라클에서는 ''를 넣어 삽입 시 아무 값도 없으므로 NULL로 취급한다 그래도 NULL은 ''나 0이 아니기 때문에 WHERE 절에서 WHERE 컬럼명 = '' 이런 식으로 사용이 불가능하며 WHERE 컬럼명 IS NULL WHERE 컬럼명 IS NOT NULL 위와 같이 NULL인 것과 NULL이 아닌 것을 식별하게 된다 NULL을 특정 값으로 변환해서 조회하고 싶을 때에는 NVL, NVL2를 사용하게 되는데 오라클 NVL, NVL2.. 2020. 5. 20.
오라클 테이블 컬럼 디폴트 설정 변경 삭제방법 오라클에서 테이블 내 컬럼에 디폴트를 설정하여 해당 컬럼에 값을 넣지 않고 삽입하더라도 기본값이 삽입되게 할 수 있는데 위 스크린샷을 보면 EMP 테이블에 EMPNO, ENAME만 넣고 삽입하였는데 JOB, MGR, HIREDATE도 값이 들어온 것이 보인다 값을 넣지 않고 삽입해도 기본값이 들어오게 된 것이다 이 외에도 자주 보게되는 예제는 날짜에 디폴트 값으로 SYSDATE를 넣어줘서 삽입 시 자동으로 날짜가 들어오게 하는 등이다 다음으로 디폴트 설정, 변경, 삭제방법은 아래와 같다 디폴트 설정, 변경 ALTER TABLE 테이블명 MODIFY 컬럼명 컬럼명의_데이터타입(크기) DEFAULT 값; ALTER TABLE 테이블명 MODIFY 컬럼명 컬럼명의_데이터타입 DEFAULT SYSDATE; 디폴.. 2020. 5. 19.
오라클 != <> ^= 차이 정리글 오라클에서 != ^= 세개로 특정 값이 아닌 경우의 조건을 걸 수 있는데 SELECT * FROM TB WHERE COL '값' 이런 식으로 사용하게 된다 그런데 셋 중에 하나만 쓰면 되지 왜 세개나 되는거지? 성능 차이가 있나? 싶겠지만 세 개중에 어느 것을 사용해도 성능 차이는 없다 != 를 사용하면 로 변환되어 사용되기 때문에 차이가 있다는 말이 있는데 그렇게 해도 성능 차이는 없다 그렇다면 저 세 문법중에 아무거나 써도 된다는 말인데 뭘 쓰는게 가장 낫냐면 역시 를 쓰는 것이 가장 낫다 SQL 기본 문법에서 NOT EQUAL은 를 사용하기 때문에 어느 DB를 사용한다 할지라도 는 똑같이 적용이 가능하다 따라서 3개를 사용 가능하고 성능은 모두 똑같지만 가급적이면 를 사용하는 것이 가장 낫다 2020. 5. 18.
오라클 WHERE OR 문 사용방법 오라클에서 조회 시 WHERE 절에 OR를 넣어 EMP 테이블의 HIREDATE가 19800101 ~ 19811231 안에 속하는 값이면서 DEPTNO는 '20'이거나 ENAME이 'CLARK'인 값을 가져오려고 하는데 조회를 해 보니 조건이 제대로 적용되지 않고 모든 행이 나오는 것이 보인다 OR를 제대로 사용하지 못해서 이런 결과가 나온 것이다 OR은 다음과 같은 방식으로 사용한다 먼저 AND를 넣은 후 괄호를 치고 처음에 조건을 넣어주면 조건에 해당하지 않을 때만 OR문을 수행하게 된다 즉 1=2이라고 써 놓은 곳에 조건을 넣고 조건에 해당하지 않을 때만 아래의 OR를 타게 된다는 것! 위의 경우에는 1=2는 항상 틀리기 때문에 HIREDATE가 19800101 ~ 19811231에 속하면서 DEP.. 2020. 5. 14.

반응형