본문 바로가기
반응형

SQL/Oracle91

오라클 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.
오라클 ROWNUM 개념부터 활용까지 오라클에서 조회 컬럼에 ROWNUM을 추가해서 조회된 행이 몇번째 행인지 확인할 수 있는데 ROWNUM은 테이블에 추가하지 않아도 사용이 가능하다 다만 ROWNUM을 추가한 상태에서 ORDER BY로 ROWNUM이 아닌 다른 컬럼을 지정 시 ROWNUM이 엉망이 되는 것이 보이는데 이런 현상을 막기 위해서는 서브쿼리 안에서 ORDER BY를 한 결과를 가지고 ROWNUM을 걸어줘야 한다 오라클 서브쿼리 사용방법 및 예제 오라클에서 서브쿼리(Subquery)는 쿼리 안에 쿼리를 넣는다는 말인데 서브쿼리는 SELECT, FROM, WHERE 중 어디에든 올 수 있다 위 스크린샷과 같이 SELECT 쪽에 서브쿼리가 올 경우 스칼라 서브쿼리(Scalar Subqu.. wakestand.tistory.com 이제.. 2020. 4. 19.
오라클 OVER() 개념부터 사용법까지 오라클에서 OVER() 를 사용하면 GROUP BY나 서브쿼리를 사용하지 않고 분석 함수(SUM, MAX, COUNT)과 집계 함수(GROUP BY, ORDER BY)를 사용할 수 있는데 집계 함수 사용 시 서브쿼리가 지나치게 길어지는 것을 고려해보면 OVER를 사용해 쿼리 길이를 획기적으로 줄일 수 있다 OVER()는 분석_함수() OVER(PARTITION BY 컬럼 / ORDER BY 컬럼 / 세부 분할 기준) 으로 이루어지는데 여기서 분석 함수와 OVER()는 필수지만 OVER 안의 내용들은 필요할 경우에만 작성해주면 된다 (RANK, DENSE_RANK는 ORDER BY 필수) 분석 함수에는 COUNT(컬럼) - 갯수 SUM(컬럼) - 합계 AVG(컬럼) - 평균 MAX(컬럼) - 최대값 MIN.. 2020. 4. 18.

반응형