mysql 연습 데이터로 쿼리 작성해보는 사이트로 이동
위 링크로 이동해서 아래 쿼리를 입력해보자.
SELECT TRUE, FALSE;
출력 : 1, 0
mysql에서 true는 숫자 1, false는 숫자 0으로 표시된다.
SELECT NOT TRUE, NOT 1, NOT 0, NOT FALSE;
출력 : 0, 0, 1, 1
SELECT 0 = TRUE, 1 = TRUE, 0 = FALSE, 1 = FALSE;
출력 : 0, 1, 1, 0
SELECT * FROM Customers WHERE TRUE;
WHERE TRUE 를 입력하면 Customers 테이블의 전체 데이터를 가져온다.
SELECT * FROM Customers WHERE FALSE;
WHERE FALSE를 입력하면 어떤 데이터도 가져오지 않는다.
SELECT * FROM Customers WHERE Country = 'Mexico';
Country가 Mexico인것들만 출력한다.
‘참’, TRUE 인 데이터들만 보여주는 것이다.
SELECT TRUE IS TRUE;
출력 : 1
IS 의미 : 조건 값들이 모두 같은 경우를 의미한다.
~은 ~이다. 같다.
SELECT TRUE IS NOT FALSE;
출력 : 1
영어 의미 그대로 이해하면 된다.
TRUE는 FALSE가 아니므로 참인 1이 출력되는 것이다.
SELECT ( FALSE IS TRUE ) IS NOT TRUE;
출력 : 1
의미 : 거짓은 참이 아니다. 이 말은 참이므로 1이 출력된다.
수학처럼 괄호를 먼저 읽어주고 나머지 읽어주면 된다.
SELECT TRUE AND FALSE, TRUE OR FALSE;
출력 : 0, 1
의미 : AND 는 둘 다 참이여야 한다.
OR 는 둘 중에 하나라도 참이면 참이다.
그래서 AND 는 false로 0, OR는 둘 중에 하나만 참이면 되니까 TRUE인 1
SELECT 2 + 3 = 6 OR 2 * 3 = 6;
출력 : 1
의미 : OR는 둘 중에 하나만 참이여도 참, TRUE.
SELECT 2 + 3 = 6 OR 2 * 4 = 6;
출력 : 0
의미 : OR이지만 둘 다 거짓이므로 FALSE인 0이 출력된다.
SELECT 2 + 3 = 6 AND 2 * 3 = 6;
출력 : 0
의미 : 2 + 3 = 6 이고 2 * 3 = 6이다.
둘 다 맞아야 TRUE, 1 이다. AND는 값이 하나라도 거짓이면 FALSE이다.
SELECT *
FROM Orders
WHERE CustomerID = 87
AND EmployeeID = 5;
두 조건을 모두 충족하는 데이터를 출력해준다.
SELECT *
FROM Orders
WHERE CustomerID = 87
OR EmployeeID = 5;
위의 쿼리를 입력하면 AND로 데이터를 조회할 때보다 더 많은 데이터가 출력된다.
둘 중에 하나의 조건이라도 맞는 모든 데이터를 보여주기 때문이다.
SELECT *
FROM Products
WHERE ProductName = 'Tofu'
OR CategoryID = 8;
OR, AND
SELECT *
FROM Products
WHERE ProductName = 'Tofu'
AND CategoryID = 8;
위 쿼리를 입력하면 출력되는 데이터가 없다.
두 조건을 만족하는 데이터가 없기 때문이다.
SELECT *
FROM OrderDetails
WHERE ProductID = 20
AND ( OrderID = 10384 OR Quantity = 12 );
위의 코드와 비슷해보이지만 결과는 다르다.
위의 코드는 괄호 안의 조건을 먼저 조회한 후, ProductID가 20인 데이터를 출력한다.
하지만 아래 코드는 ProductID 가 20이고 OrderID 가 10384이거나
Quantity가 12인 데이터를 모두 출력해서 보여준다.
각 조건에 부합하는 모든 데이터를 조회한다.
SELECT *
FROM OrderDetails
WHERE ProductID = 20
AND OrderID = 10384
OR Quantity = 12 ;
'SQL' 카테고리의 다른 글
[ mysql ] IN 연산자 (0) | 2021.09.01 |
---|---|
[ mysql ] 비교 연산자 쿼리 연습 (0) | 2021.09.01 |
[ mysql ] 사칙 연산 (0) | 2021.08.31 |
[ mysql ] ORDRE BY, LIMIT, AS 별칭 한글 가능, WHERE, OR 복습 (0) | 2021.08.31 |
[ mysql ] LIMIT 사용법 (0) | 2021.08.31 |