728x90
<SELECT 사칙연산>
- 사칙연산: +,-,*,/,%,MOD
SELECT 5 - 2.5 AS deffrence;
>>> 5 - 2.5를 deffrence으로 가져와라.
<결과>
SELECT 3 * (2+4) / 2, 'Hello';
>> 3 * (2+4) / 2과, 'Hello'를 가져와라.
<결과>
1. SELECT 'abc' + 3;
>> 'abc'는 숫자가 아니기 때문에 3으로 출력
2. SELECT 'abc' * 3;
>> 'abc'는 숫자가 아니기 때문에 0으로 출력
<1 결과>
<2 결과>
1. SELECT orderid, productid, orderid + productid AS '더하기'
FROM orderdetails;
>> orderdetails에서 productid와 productid,
orderid + productid를 더한 데이터를 '더하기'로 가져와라.
2. SELECT productname, price / 2 AS HalfPrice
FROM products;
>> products에서 productname과, price / 2한 데이터를 HalfPrice로 가져와라.
<1 결과>
<2 결과>
<논리 연산자>
- 1 = TRUE, true, True, !FALSE, NOT 0
- 0 = FALSE, false, False, !TRUE, NOT 1
1. SELECT * FROM customers WHERE TRUE;
>> customers의 모든 데이터 출력
2. SELECT * FROM customers WHERE FALSE;
>> customers의 모든 데이터 출력 X
<1 결과>
<2 결과>
<IS 판단>
- is를 기준으로 양쪽의 뜻이 같으면 1, 다르면 0
SELECT FALSE IS TRUE; > 0
SELECT TRUE IS FALSE; > 0
SELECT TRUE IS FALSE; > 0
SELECT TRUE IS NOT FALSE; > 1
SELECT FALSE IS NOT FALSE; > 0
SELECT (TRUE IS FALSE) IS NOT FALSE;
>> TRUE IS FALSE = 0
NOT FALSE = 1
0 IS 1 > 0
<결과>
<AND, OR>
연산자 판단 시,
- -- AND(&&): 양쪽이 TRUE일 때만 TRUE (1)
- OR(||): 한쪽만 TRUE면 TRUE (1)
1. SELECT TRUE AND FALSE, TRUE OR FALSE;
2. SELECT 2 + 3 = 6 OR 2 * 3 = 6;
SELECT * FROM products
WHERE productname = 'Tofu' OR categoryid = 8;
SELECT * FROM orderdetails
WHERE `ProductID` = 20 AND (orderid = 10514 OR `Quantity` = 50);
<1 결과>
<2 결과>
SELECT * FROM products
WHERE productname = 'Tofu' OR categoryid = 8;
>> products에서
productname = 'Tofu'이거나 categoryid = 8인 데이터를 가져와라.
<결과>
<비교연산자>
- =: 같다
- !,<>: 같지 않다
1. SELECT 1 = 1, !(1 <> 1), NOT(1 < 2), 1 > 0 IS NOT FALSE;
2. SELECT 'A' = 'A', 'A' != 'B', 'A' < 'B', 'A' > 'B';
SELECT 'Apple' > 'Banana' OR 1 < 2 IS TRUE;
SELECT 'A' = 'a';
SELECT productname, price, price > 20 as Expensive
FROM products;
SELECT productname, price NOT price > 20 as cheap
FROM products;
<결과 1>
<결과 2>
1. SELECT 'Apple' > 'Banana' OR 1 < 2 IS TRUE;
'Apple' > 'Banana': 0
>> 1 < 2: 1
0또는 1는 1이다 >> 1
2. SELECT 'A' = 'a';
>> 영어 대소문자를 구분하지 않음
3. SELECT productname, price, price > 20 as Expensive
FROM products;
>> products 테이블에서
productname, price, price가 20보다 큰지 판단하여
Expensive로 출력하시오.
<결과 1>
<결과 2>
<결과 3>
<범위연산>
- BETWEEN {MIN} AND {MAX}: {작은 조건} AND {큰 조건} >> 두 사이에 있는 값
- NOT BETWEEN {MIN} AND {MAX}: 두 사이의 값이 아닌 것
SELECT 55 BETWEEN 1 AND 10;
>> 55는 1과 10 사이에 있는가
SELECT * FROM orderdetails
WHERE `ProductID` BETWEEN 1 AND 4;
<결과>
1. SELECT * FROM orderdetails
WHERE `ProductID` BETWEEN 1 AND 4;
>> orderdetails중에서 `ProductID`가 1과 4 사이에 있는 내용을 가져와라.
2. SELECT * FROM customers
WHERE `CustomerName` BETWEEN 'b' AND 'd';
>> customers 중에서 CustomerName가 b와 d 사이에 있는 데이터를 가져와라.
<결과1>
<결과2>
<IN>
- IN(...): 괄호 안의 값들 가운데 있는지
- NOT IN(...): 괄호 안의 값들 가운데 없는지
SELECT 1 + 4 IN (2, 3, 4);
>> 1 + 4 (5)가 2, 3, 4 사이에 있는가 > 없어서 0
SELECT 'Hello' IN (1, True, 'hello');
>> 1, True, 'hello' 사이에 'Hello'가 있는가
(h와 H를 구분하지 않기 때문에 맞다고 판단)
<결과>
1. SELECT * FROM customers
WHERE `City` IN ('Torino', 'Paris', 'Portland', 'Madrid');
>> customers 테이블 중,
'Torino', 'Paris', 'Portland', 'Madrid'에 있는 City를 출력하시오.
2. SELECT * FROM customers
WHERE `City` NOT IN ('Torino', 'Paris', 'Portland', 'Madrid');
>> customers 테이블 중,
'Torino', 'Paris', 'Portland', 'Madrid'에 없는 City를 출력하시오.
<결과 1>
<결과 2>
<LIKE>
- LIKE 'A%c': % 0~N문자를 나타내는 패턴
- LIKE 'A__c': _의 개수만큼 문자를 나타내는 패턴
SELECT 'HELLO' LIKE 'HEL__', >> _가 2개라 일치
'HELLO' LIKE 'h___o', >> 총 개수가 맞고, 대소문자를 가리지 않아 일치
'HELLO' LIKE 'HE_LO', >> 총 개수가 맞아서 일치
'HELLO' LIKE '_____', >> 총 개수가 맞아서 일치
'HELLO' LIKE '_HELLO', >> 총 개수가 맞지 않아 틀림
'HELLO' LIKE 'HEL_', >> 총 개수가 맞지 않아 틀림
'HELLO' LIKE 'H_O'; >> 총 개수가 맞지 않아 틀림
<결과>
SELECT * FROM orderdetails
WHERE `OrderID` LIKE '1025_';
>> orderdetails 중에서 OrderID가 다섯자리이고 1025인 데이터를 출력하라.
<결과>
'프로그래밍 언어 > SQL' 카테고리의 다른 글
SQL 함수 간단 실습 :: JOIN (내부 조인, 외부 조인, 셀프 조인) (0) | 2024.01.25 |
---|---|
SQL 함수 간단 실습 :: 시간/날짜 관련 함수 (0) | 2024.01.24 |
SQL 함수 간단 실습 :: 문자열 관련 함수 (0) | 2024.01.23 |
SQL 함수 간단 실습 :: 숫자 관련 함수 (0) | 2024.01.22 |
SQL 함수 간단 실습 :: SELECT문 (0) | 2024.01.11 |