anott
기록
anott
  • 분류 전체보기
    • 오라클
    • SQL
    • 알고리즘
      • 백준저지
      • 프로그래머스
      • SWEA
    • 개발 관련
    • 프론트엔드
      • TypeScript, Next.js
      • React 공식문서 읽기
hELLO · Designed By 정상우.
anott

기록

SQL

SQL breadcrumbs

2023. 4. 9. 23:49
SQL 관련 이것저것을 정리합니다

 


SQL 키워드는 대문자로 작성하는 것이 좋을까?

대문자가 필수는 아니지만 보통 대문자로 작성하는 것 같아서 이유가 궁금했다.

stackoverflow의 유사한 질문에 대한 답변에 의하면 한때는 에디터가 대문자만 키워드로 인식해 하이라이트하던 때가 있었다고 한다. 이제는 소문자도 인식하니 그런 걱정은 안해도 될 것이다.

다만 오라클은 주의할 점이 있는데, 쿼리 자체는 같아도 대소문자가 다르면 서로 다른 쿼리로 인식하니 한 번 정한 방식대로 이어나가는 것이 중요할 것 같다.

대문자 외에도 들여쓰기 등 컨벤션을 찾아봤는데 다들 다양하게 사용하는 것 같았다. 쉼표(,)의 위치가 뒤로 가는지 앞으로 가는지 등 정말 다양했다.

 


WHERE 1=1의 역할은 무엇일까?

 

WHERE 1=1을 입력하는 경우가 종종 있었다. 그런데 1=1은 어차피 참이라 불필요한 입력인 것 같아서 사용하는 이유가 궁금해졌다.

ChatGPT에게 물어보았더니 코드 수정을 용이하게 하기 위함이라는 답변을 받었다. AND를 이용해서 쉽게 코드를 추가하거나 삭제할 수 있기 때문이라고 하면서 아래처럼 예시를 주었다.

 

/**** 1=1이 없는 경우 ****/
-- 수정하려면 WHERE 절 뒷부분을 수정해야한다

SELECT *
FROM orders
WHERE order_status = 'shipped'


/**** 1=1이 있는 경우 ****/
-- 수정하려면 줄마다 추가/삭제/주석처리 등 편하게 할 수 있다

SELECT *
FROM orders
WHERE 1 = 1
  AND order_status = 'shipped'
  AND order_date BETWEEN '2022-01-01' AND '2022-03-31'
  AND customer_id = 1234

 

다만 주의할 점으로는 SELECT문이 아닌 DML에서 실수로 WHERE 1=1만 존재하는 상태로 실행해서 오류가 나는 경우도 있으니 주의해야한다고 한다.

 

저작자표시 비영리 (새창열림)

'SQL' 카테고리의 다른 글

MySQL 기타  (0) 2021.09.12
프로그래머스 IS NULL  (0) 2021.09.11
프로그래머스 JOIN  (0) 2021.09.09
    'SQL' 카테고리의 다른 글
    • MySQL 기타
    • 프로그래머스 IS NULL
    • 프로그래머스 JOIN
    anott
    anott

    티스토리툴바