본문 바로가기

카테고리 없음

SQL문 논리 연산자 알아보기

반응형

오늘 글에서는  논리 연산자에 대해서 확인을  하여 보도록 하겠습니다 .  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과 동일한  행만  출력을 합니다. 

 


이번 글에서는  여기까지  알아보겠습니다.  다음 글에서는   논리 연산자와  진릿값에 대해서  확인을 하여 보도록 하겠습니다. 

반응형