프로젝트를 진행할때 SQL 작성의 표준을 정해두면 프로그램의 퀄리티가 한결 높아진다.
보통의 개발자들은 몰라서 안하는 경우가 많았고, 교육을 하면 대부분 수용을 하더란..
물론 개인적 경험이나 고집때문에 설득이 안되는 경우도 존재하는데.. 그땐 적당히 타협을 하던지..
아래는 한 프로젝트에서 진행했던 예시이다.
1. sql실행시 오류발생
2. sql식별자 표준 미준수 : 누락, 잘못지정된 건
3. select * 사용
4. no logging 옵션 사용 : dml 수행시 sql 에 nologging 옵션 지정
5. 금지 hint 사용 : 온라인 원장에 append
6. select for update : nowait 혹은 wait 옵션 누락
7. ansi sql 사용 : oracle native sql 이 표준
8. fetch first 사용 : 12 new feature
9. update/delete 문 where 절 누락
10. 빈공백 비교 : 빈공백 비교는 null 로 취급. is null is not null 변경
11. to_date 함수 format 누락 : format string 지정
12. decode 문 : case when 으로 대체
13. insert 문에 컬럼 미지정 : 컬럼 추가시 오류발생
14. online sql 의 with 사용 : with 를 인라인뷰로 대체
15. rownum 과 order by 가 동일 쿼리블록 : order by 먼저, 인라인뷰 밖에 rownum 사용
16. 테이블 alias 미사용 : 2개이상 조인시 alias 사용
17. 바인드 변수 누락 : 리터럴 -> 바인드 변수
18. 물리삭제 금지 테이블에 delete 문 사용 : update 로 수정
19. 비인가된 타 앱이 테이블 crud : 메타에 등록된 건만 가능
20. 한줄주석 사용 : /* 사용
21. order by 반복 : 인라인뷰 밖에서 최종 1회 order by
22. union 사용금지 : 가급적 union all
23. from 절에 alias 없는 table
24. order by 절에 순서값 금지 : 컬럼명 기술
25. alias 없는 스칼라서브쿼리
26. parallel degree 미지정
27. index_desc, index_asc 로 최대,최소겂 : min(),max() 사용
28. where 절 인덱스 컬럼 가공 : 함수로 가공된 인덱스컬럼, 함수 제거
위 기준에서 사이트에 따라 어느 것을 버리고 어느것을 선택할지 결정하고 그것을 준수 한다.