오늘 글에서는 논리 연산자에 대해서 확인을 하여 보도록 하겠습니다 . SLQ문에서 논리 연산자를 잘 이용을 하면 내가 원하는 조건으로 데이터를 추출을 할 수가 있습니다.
특히 논리 연산자를 이용을 하시면 복수의 검색 조건을 조합해서 이용을 할 수가 있습니다. 그럼 논리 연산자에 대해서 하나씩 확인을 하여 보도록 하겠습니다.
NOT연산자
'~가 아니다' 라는 조건을 지정을 하고 싶다면 <> 연산자를 이용을 하였습니다. NOT 연산자도 같은 부정이지만 좀더 폭넓게 사용을 할 수가 있는 것이 NOT 연산자 입니다.
단 NOT 연산자는 단독으로 이용을 할 수가 없습니다. 이용을 하고자 할 때는 다른 조건과 같이 이용을 해야 이용을 할 수가 있습니다. 그럼 어떻게 이용을 하는지 구문을 확인을 하여 보도록 하겠습니다.
SELECT M_Price , M_BUY FROM MyDB WHERE NOT M_Price > 5000 ;
위 구문을 확인을 하여 보면 MyDB 라는 테이블의 M_Price , M_BUY 열을 출력을 합니다. 조건은 M_Price 행이 5000원 이상이 조건이지만 NOT 연산자가 있기 때문에 부정이 되어서 5000원 미만의 데이터가 출력이 됩니다.
SELECT M_Price , M_BUY FROM MyDB WHERE M_Price < 5000 ;
위 구문과 동일한 구문이라고 이야기 할 수가 있습니다. 이렇게 간단한 구문을 작성을 할 때는 굳이 NOT 연산자를 이용을 할 필요가 없습니다.
좀더 복잡한 연산을 할 때 필요한 경우가 있습니다. 너무 무분별하게 이용을 하면 나중에 이해하기 너무 어렵습니다.
AND 와 OR 연산자
SQL문에서 간단한 조건을 지정을 해서 데이터를 추출을 하는 경우도 많습니다. 하지만 많은 경우가 복수의 검색 조건을 지정을 해서 검색을 해야 원하는 답이 나오는 경우가 많습니다.
조건을 검색을 이용을 할 때 이용을 하는 WHERE 구에서는 AND 와 OR 연산자를 이용을 해서 복수의 검색 조건 구문을 작성을 할 수가 있습니다.
먼저 AND 연산자는 양쪽 검색조건이 만족을 해야 조건이 참이 입니다. 하지만 OR 연산자는 양쪽중에 하나만 만족을 하여도 참이 됩니다.
그럼 예문을 보면 설명을 하도록 하겠습니다.
SELECT M_Price , M_BUY FROM MyDB WHERE M_Price = 5000 AND M_BUY = 5000 ;
위 구문을 보면 M_Price 가 5000원 동일하여야 하고 그리고 M_BUY 가 5000원가 동일해야 해당 데이터가 출력이 됩니다.
다음으로 OR 연산자의 구문을 확인을 하여 보도록 하겠습니다.
SELECT M_Price , M_BUY FROM MyDB WHERE M_Price = 5000 OR M_BUY = 5000 ;
위 구문을 해석을 하면 M_Price 가 5000원 동일하여야 하고 또는 M_BUY 가 5000원가 동일해야 합니다. 즉 하나만 만족을 하여도 해당 행은 출력이 됩니다.
우선 순위를 생각을 해야 합니다.
모든 연산을 할 때는 우선 순위가 있습니다. 그렇기 때문에 AND 와 OR 연산자도 우선 순위가 존재를 합니다. AND 연산자가 우선 순위에서 높습니다.
그렇기 때문에 조건식을 작성을 할 때 이 부분을 고려를 해서 작성을 해야 합니다. 좀더 쉽게 작성을 하기 위해서는 어떻게 해야 할 까요?
괄호를 이용을 하시면 됩니다.
만약 OR 연산자의 우선 순위를 높이고 싶다면 해당 연산자에 괄호를 적요을 하시면 됩니다.
SELECT M_Price , M_BUY , M_DAY FROM MyDB WHERE M_Price = 5000 AND (M_DAY = '2022-05-22' OR M_DAY = '2022-05-24) ;
이렇게 작성을 하시면 먼저 날짜에 관련된 조건을 확인을 하고 만족하는 행중에서 M_Price 열이 5000과 동일한 행만 출력을 합니다.
이번 글에서는 여기까지 알아보겠습니다. 다음 글에서는 논리 연산자와 진릿값에 대해서 확인을 하여 보도록 하겠습니다.