SQL3 [DB] WITH AS 문 사용하기 쿼리를 작성할때 과도한 서브 쿼리는 메인 쿼리의 더욱 복작하게 만든다. 이럴때 WITH AS 구문을 사용하면 그나마 복잡한 부분의 쿼리를 분리해 낼 수 있을 뿐만 아니라 반복적으로 쓰이는 서브 쿼리라면 성능의 향상을 덤으로 얻을 수 있다. 방법은 간단하다. 메인 쿼리 위에 WITH AS 구문을 사용해 서브 쿼리를 옮겨 놓는 것이다. WITH 이름 AS ( SELECT ... FROM ... WHERE ... ) SELECT .... FROM 이름 WHERE .... 서브쿼리가 여러개라 하더라도 걱정할 필요 없다. 각 서브쿼리를 , 로 구분하여 추가해 주면 된다. WITH 이름1 AS ( SELECT 문 ), 이름2 AS ( SELECT 문 ) SELECT ... FROM 이름1 LEFT OUTER JOI.. 2021. 7. 28. [도서] 김상형의 SQL 정복 김상형의 SQL 정복 어떤 언어나 기술을 공부 할때 난 여러 가지 책과 포스팅을 모두 찾아 서로 비교해 가면서 공부를 한다. 그리고 시간이 지나면 똑같은 방법으로 이전에 공부했던 책이 아닌 다른 책으로 비슷하게 또 다시 흝어 본다. 이번에 DB에 대해 다시 공부할 필요를 느끼고 있었는데 때마침 한빛미디어에서 '김상형의 SQL정복'을 리뷰할 책으로 보내 주었다. 정말 타이밍도 기가 막히다는 생각이 든다. 그리고 운이 매우 좋았다. 이 책의 주 타겟은 아마도 개발 공부를 막 시작했거나 좀더 나은 개발자가 되기 위해 더 많이 공부를 하고 싶어 하는 초보 개발자들일 것이다. 그렇다면 매우 적절한 책을 선택하지 않았나 싶다. 책의 표지에도 써있는 것처럼 이 책에서는 책을 쓰는 시점을 기준으로 3가지 메이저 DB를.. 2021. 6. 20. [SQL] 각 데이터베이스 별 like 검색 시 문자열 조합 방법 mysql(mariadb)나 oracle 등 각 데이터베이스 제품 별로 like 검색 시 문자열을 조합하는 방법에 약간의 차이가 있다. mysql(mariadb) code like CONCAT('문자열','문자열',....) ex ) code like CONCAT(#{code}, '%') code like CONCAT('%', #{code}, '%') oracle, db2 code like '문자열' || '문자열'.... ex) code like #{code} || '%' code like '%' || #{code} || '%' mssql code like '문자열' + '문자열'... ex) code like #{code} + '%' code like '%' + #{code} + '%' 2020. 12. 16. 이전 1 다음