-
DB MYSQL 기본 다지기[4편] - 참(TRUE) 및 거짓(FALSE)Programming and Database/SQL 2022. 6. 13. 23:21반응형
DB MY SQL 기본 다지기[4편] - 참(TRUE) 및 거짓(FALSE)
연산자 의미 IS 양쪽이 모두 TRUE 또는 FALSE IS NOT 한쪽은 TRUE, 한쪽은 FALSE SELECT TRUE, FALSE;
▶ TRUE는 영어의 사전적 의미로 참을 의미하므로 숫자 1을 의미, 반대로 FALSE의 경우 사전적 의미로 거짓을 의미하므로 숫자 0을 의미
SELECT !TRUE, NOT 1, !FALSE, NOT 0, NOT TRUE, NOT FALSE;
▶ SQL의 참/거짓에서 !와 NOT을 사용하여 0 또는 1로 표현할 수 있습니다.
★구문 설명
1. !TRUE의 경우 참의 반대를 의미하므로 1의 반대인 0이 출력
2. NOT 1의 경우 1을 부정하는 의미로 반대의 0이 출력
3. !FALSE의 경우 거짓의 반대를 의미하므로 0의 반대인 1이 출력
4. NOT 0의 경우 0을 부정하는 의미로 반대의 1이 출력
5. NOT TRUE의 경우 참의 반대를 의미하므로 0이 출력
6. NOT FALSE의 경우 부정의 반대를 의미하므로 1이 출력SELECT 0=FALSE, 1=FALSE, 0=TRUE, 1=TRUE;
▶ SQL의 참/거짓에서 0과 1을 활용하여 TRUE와 FALSE를 표현할 수 있습니다.
★구문 설명
1. 0=FALSE의 경우 0은 거짓을 의미하는 FALSE로 참입니다 그러므로 1 출력(참)
2. 1=FALSE의 경우 1은 참을 의미하므로 FALSE가 아닙니다. 그러므로 0 출력(거짓)
3. 0=TRUE의 경우 0은 거짓을 의미하므로 TRUE가 아닙니다. 그러므로 0 출력(거짓)
4. 1=TRUE의 경우 1은 참을 의미하는 TRUE로 참입니다. 그러므로 1 출력(참)SELECT * FROM Products WHERE TRUE;
▶ Product 테이블에서 모든 컬럼을 조회했을 때는 참이기 때문에 데이터가 그대로 조회가 됩니다.
SELECT * FROM Products WHERE FALSE;
▶ Product 테이블에서 모든 컬럼을 조회했을 때 참이면서도 조건문에 FALSE로 표현했기 때문에 데이터가 조회되지 않습니다.
SELECT TRUE IS TRUE; -- IS는 양쪽이 같을 경우 참 또는 거짓으로 판단을 합니다. TRUE=TRUE가 참이기 때문에 1로 출력이 됩니다. TRUE IS TRUE 1
▶ IS는 양쪽이 같을 경우 참으로 판단을 합니다. TRUE=TRUE가 참이기 때문에 1로 출력이 됩니다.
SELECT TRUE IS NOT FALSE; -- TRUE의 참이 NOT FALSE 즉 거짓의 반대인 참으로 TRUE = NOT FALSE가 참이기 때문에 1로 출력이 됩니다. TRUE IS NOT FALSE 1
▶ TRUE의 참이 NOT FALSE 즉 거짓의 반대인 참으로 TRUE = NOT FALSE가 참이기 때문에 1로 출력이 됩니다.
SELECT TRUE IS NOT TRUE; -- TRUE 참이 NOT TRUE 즉 거짓고 비교했을때 같지 않기 때문에 0이 출력이 됩니다. TRUE IS NOT TRUE 0
▶ TRUE 참이 NOT TRUE 즉 거짓고 비교했을 때 같지 않기 때문에 0이 출력이 됩니다.
SELECT (TRUE IS FALSE) IS NOT TRUE; -- (TRUE IS FALSE)의 결과는 0으로 FALSE이며 이 결과 값과 NOT TRUE 즉 FALSE의 값이기 때문에 FALSE=FALSE로 1의 결과 값이 출력됩니다. (TRUE IS FALSE) IS NOT TRUE 1
▶ (TRUE IS FALSE)의 결과는 0으로 FALSE이며 이 결과 값과 NOT TRUE 즉 FALSE의 값이기 때문에 FALSE=FALSE로 1의 결과 값이 출력됩니다.
SELECT (TRUE IS FALSE) IS TRUE; -- (TRUE IS FALSE)의 값이 0이므로 FALSE를 의미하고 TRUE와 비교 했을때 거짓으로 0으로 출력이 됩니다. (TRUE IS FALSE) IS TRUE 0
▶ (TRUE IS FALSE)의 값이 0이므로 FALSE를 의미하고 TRUE와 비교했을 때 거짓으로 0으로 출력이 됩니다.
연산자 의미 AND, && 양쪽이 모두 TRUE일 때만 TRUE OR, || 한쪽은 TRUE면 TRUE SELECT TRUE AND FALSE, TRUE OR FALSE; -- AND의 경우는 양쪽을 비교했을때 같으면 1이고 다르면 0이므로 첫번째 컬럼은 0으로 출력, TRUE OR FALSE의 경우는 어느 한쪽이 TRUE이면 1이므로 1이 출력 TRUE AND FALSE TRUE OR FALSE 0 1
▶ AND의 경우는 양쪽을 비교했을때 같으면 1이고 다르면 0이므로 첫 번째 컬럼은 0으로 출력, TRUE OR FALSE의 경우는 어느 한쪽이 TRUE이면 1이므로 1이 출력
SELECT 1+3=4 OR 1*7=5; SELECT 1+3=4 || 1*7=5; -- SELECT 문에서 앞에 있는 1+ 3=4는 참으로 TRUE이고 1*7=5는 FALSE 입니다. OR 또는 || 는 한쪽이 TRUE이면 1로 판단을 하기 때문에 결과는 1로 출력이 됩니다. 1+3=4 OR 1*7=5 1
▶ SELECT 문에서 앞에 있는 1+ 3=4는 참으로 TRUE이고 1*7=5는 FALSE입니다. OR 또는 || 는 한쪽이 TRUE이면 1로 판단을 하기 때문에 결과는 1로 출력이 됩니다.
SELECT 1+3=4 AND 1*7=5; -- 마찬가지로 1+3=4는 TRUE이고 1*7=5는 FALSE일 경우 AND는 두개 모두 TRUE를 만족해야 합니다. 만족하지 않기 때문에 0이 출력이 됩니다. 1+3=4 AND 1*7=5 0
▶ 마찬가지로 1+3=4는 TRUE이고 1*7=5는 FALSE일 경우 AND는 두개 모두 TRUE를 만족해야 합니다. 만족하지 않기 때문에 0이 출력이 됩니다.
SELECT 1+3=4 AND 1*7=7; SELECT 1+3=4 && 1*7=7; -- AND 또는 &&를 사용하여 양쪽 모두 TRUE이기 때문에 결과 값은 1로 출력이 됩니다. 1+3=4 AND 1*7=7 1
▶ AND 또는 &&를 사용하여 양쪽 모두 TRUE이기 때문에 결과 값은 1로 출력이 됩니다.
SELECT * FROM Orders;
▶ Orders 테이블에서 전체 컬럼을 조회했을 때 OrderID, CustomerID, EmployeeID, OrderData, ShipperID의 칼럼을 전체적으로 조회할 수 있습니다.
SELECT * FROM Orders WHERE CustomerId = 15 AND EmployeeID = 4;
▶ Orders 테이블에서 Where 조건절에 AND를 사용하게 되면 CustomerId가 15 일경우와 EmployeeID가 4일 경우의 조건을 충족하여 출력하면 CustomerID가 15이면서 EmployeeID가 4인 경우가 출력이 됩니다.
SELECT * FROM Orders WHERE CustomerId = 34 or EmployeeID = 4;
▶ 반대로 Where 조건절에 OR를 사용하게 되면 CustomerId가 15 일경우 또는 EmployeeID가 4일 경우의 모든 조건을 충족해서 출력이 됩니다. 다시 말해 어느 한쪽의 조건이라도 충족이 되면 성립
SELECT * FROM Products;
▶ SELECT 문에서 Products 테이블을 모두 조회하면 ProductID, ProductName, SupplierID, CategortID... 외 모두의 컬럼이 조회됩니다.
SELECT * FROM Products WHERE ProductName = 'Chais' OR CategoryID = 2;
▶ SELECT 문에서 Products 테이블을 조회 후 조건절에 OR를 사용하여 PoductName이 문자열 'Chais' 또는 CategoryID = 2일때 출력을 하게 되면 ProductName이 Chais인 것과 CategoryID가 2인 것들이 모두 출력된 것을 확인할 수 있습니다.
SELECT * FROM Products WHERE ProductName = 'Chais' AND CategoryID = 2;
▶ 반대로 OR를 AND로 변경했을경우는 양쪽 모두를 만족시켜야 하는데 그렇지 못하기 때문에 결과 값이 아무것도 출력되지 않는 것을 확인할 수 있습니다.
SELECT * FROM OrderDetails;
▶ SELECT 문에서 OrderDetails 테이블을 모두 조회하면 OrderDetailID, OrderID, ProductID, Quantity의 컬럼들이 출력되는 것을 확인합니다.
SELECT * FROM OrderDetails WHERE ProductID=42 AND (Quantity=10 OR OrderID=10249);
▶ SELECT문에서 OrderDetails 테이블을 조회 후 조건걸에서 ProductID가 42가 참으로 충족해야 하고 AND를 사용했기 때문에 반대도 참이 되어야 합니다. () 괄호를 사용하여 안에 Quantity=10일 경우 또는 OrderID=10249를 만족할 때 모두 출력되는 그 결과 앞에 있는 ProductID=42를 만족시켜 해당 결과 값이 조회가 됩니다.
2022.06.13 - [Programming and Database/SQL] - DB MYSQL 기본 다지기[3편] - 연산 응용(덧셈/뺄셈/곱셈/나눗셈/나머지)
2022.06.12 - [Programming and Database/SQL] - DB MYSQL 기본 다지기[2편] - 연산(덧셈/뺄셈/곱셈/나눗셈/나머지)
2022.06.09 - [Programming and Database/SQL] - DB MYSQL 기본 다지기[1편] - SELECT
PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.
포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.
* 얄코 My sql 강좌를 참조하여 테스트하였습니다.
반응형'Programming and Database > SQL' 카테고리의 다른 글
DB Oracle 테이블 생성, 데이터 입력/조회하는 방법(1) (6) 2022.12.22 DB Oracle 스키마 생성하는 방법 (14) 2022.12.22 DB MYSQL 기본 다지기[3편] - 연산 응용(덧셈/뺄셈/곱셈/나눗셈/나머지) (2) 2022.06.13 DB MYSQL 기본 다지기[2편] - 연산(덧셈/뺄셈/곱셈/나눗셈/나머지) (6) 2022.06.12 DB MYSQL 기본 다지기[1편] - SELECT (2) 2022.06.09