하늬아시 2023. 5. 16. 17:37

전에 썼던 정리 게시글을 먼저 보시는 것을 추천드립니다.

 

 

목차

1. 연산자 종류
2. 산술 연산자
3. 비교 연산자
4. 논리 연산자
5. 비트 논리 연산자
6. 연결 연산자
7. IN 연산자
8. LIKE 연산자

 

 


 

1. 연산자 종류

SQL 연산자는 산술 연산자,

                        비교 연산자,

                        논리 연산자,

                        비트 논리 연산자,

                        연결 연산자,

                         IN 연산자,

                         LIKE 연산자 등이 있습니다.

 

 


 

2. 산술 연산자

연  산  자 의     미 우선순위
+ 더하기 7
- 빼기 7
* 곱하기 6
/ 나누기 6

 

산술 연산자의 우선순위 중 같은 것끼리는 각각의 BDMS에 따라 다 다릅니다.

    예를 들어 곱하기와 나누기의 우선순위가 둘 다 1이면 곱하기가 먼저입니다.

    MySQL 연산자의 우선순위는 http://www.tcpschool.com/mysql/mysql_operator_arithmetic에서 확인해 보시기 바랍니다.

 

 


 

3. 비교 연산자

연  산  자 의     미 우선순위
= 같다 11
<=> 같다 (NULL이랑 비교 가능) 11
>= 크거나 같다 11
> 크다 11
<= 작거나 같다 11
< 작다 11
<>, != 같지 않다 11

 

 


 

4. 논리 연산자

연  산  자 의     미 우선순위
NOT 부정 13
AND 그리고 (논리 곱) 14
OR 또는 (논리 합) 16
XOR 배타적 참 15

 

 


 

5. 비트 논리 연산자

DBMS별로 나누는 이유는 2진수 연산이어서 10진수 연산보다 빠르기 때문에 사용하게 됩니다.

DBMS AND OR XOR
Oracle bitand(피연산자1, 피연산자2)    
MsSQL 피연산자1 & 피연산자2 피연산자1 | 피연산자2 피연산자1 ^ 피연산자2
MySQL 피연산자1 & 피연산자2 피연산자1 | 피연산자2 피연산자1 ^ 피연산자2

 

 


 

6. 연결 연산자

DBMS 연 산 자 표 현 식
Oracle || 피연산자1 || 피연산자2
MsSQL + 피연산자1 + 피연산자2
MySQL 공백 피연산자1 공백 피연산자2

 

 


 

7. IN 연산자

IN 연산자

피연산자1에 있는 피연산자2, 피연산자3... 등의 내용을 선택할 때 사용합니다.
AND 연산자를 사용하면 AND를 계속 입력해 줘야 하기도 하고 가독성도 낮기 때문에 AND 연산자를 여러 개 사용할 땐 IN 연산자를 사용합니다.
예시 코드
[피연산자1] IN (피연산자2, 피연산자3...)
[컬럼/값] IN (값1, 값2...)

사용 코드
SELECT name, email FROM test_table WHERE id in ('leelise', 'haniasi')

출력
+----------+---------+--------------------------+
| name     | id      | email                    |
+----------+---------+--------------------------+
| 이리세   | leelise | l.lise413@gmail.com      |
+----------+---------+--------------------------+
| 하늬아시 | haniasi | hani.asi471135@gmail.com |
+----------+---------+--------------------------+​




NOT IN 연산자

IN 연산자와 반대로 피연산자1에 있는 피연산자2, 피연산자3... 등의 내용을 제외한 나머지를 선택할 때 사용합니다.
예시 코드
[컬럼/값] NOT IN (값1, 값2...)

사용 코드
SELECT name, email FROM test_table WHERE id NOT IN('leelise')

출력
+----------+---------+--------------------------+
| name     | id      | email                    |
+----------+---------+--------------------------+
| 하늬아시 | haniasi | hani.asi471135@gmail.com |
+----------+---------+--------------------------+​

 

IN 연산자의 우선순위는 11입니다.

 

 


 

8. LIKE 연산자

테이블에 저장된 값 중에 문자열의 패턴을 검색하는 데 사용됩니다.

 

와일드 카드 의   미 예시 우선순위
% 모든 문자 id like '%라면%' 11
_ 하나의 문자 id like '라_' 11

 

LIKE 연산자

모든 문자를 매칭하고 싶을 때
사용 코드
SELECT * FROM test_table WHERE name LIKE '%면%'

출력
+-----------+
| name      |
+-----------+
| 진라면     |
+-----------+
| 불닭볶음면 |
+-----------+
| 신라면     |
+-----------+
| 라면볶이   |
+-----------+​




하나의 문자를 매칭하고 싶을 때
사용 코드
SELECT * FROM test_table WHERE name LIKE '_라면'

출력
+-------+
| name  |
+-------+
| 진라면 |
+-------+
| 신라면 |
+-------+