SQL

[SQL | ORACLE] - 비교, 관계 연산자

빛날희- 2021. 5. 12. 21:47

SQL에선 비교, 관계 연산자 등을 통해 내가 원하는 데이터를 테이블에서 추출할 수 있다. 이번 포스팅에선 연산자와 비교, 관계 연산자에 대해 간단히 알아보고자 한다. 

 

 

▶ 숫자, 문자 연산자:

 

- SQL에서 숫자를 연산하기 위해 다음과 같이 +를 사용할 수 있다.

SELECT 1+'5' FROM TABLE;

여기서 주의해야 할 점은 숫자형 1과 문자형 5를 더해도 에러가 나지 않고 문자형 5가 숫자로 인식되어 6을 도출한다는 것이다. SQL에서 + 연산자는 무조건 숫자 연산을 하는데 사용되는 것으로 정의되어 있기 때문에 숫자가 문자형으로 와도 이를 숫자로 인식하고 연산을 수행한다. 하지만 1+ 'a' 와 같은 경우는 a를 숫자로 연산할 수 없기 때문에 오류가 난다. 

 

- 문자를 연산하기 위해선 || 을 사용한다. 

SELECT 1 || '5' FROM TABLE;

위의 코드 결과로는 15가 도출된다. +가 숫자연산자라면 ||는 문자연산자 이기 때문에 1이 숫자형이라도 문자형으로 인식하여 두 문자를 이어준다. 

 

 

▶ 비교연산자:

 

다음과 같은 비교연산자가 존재한다. 

더보기

SQL 비교연산자

= : 같다

!=, ^=, <> : 다르다

>, < , >= , <= : 초과, 미만, 이상, 이하

IS NULL, IS NOT NULL: NULL이다 , NULL이 아니다

해당 연산자를 통해 데이터를 조회하고 싶다면 WHERE절을 사용할 수 있다. 

 

예시)

 

> 테이블에서 AGE가 10이상인 데이터를 조회하시오. 

SELECT * FROM TABLE WHERE age >= 10;

해당 sql을 통해 나이가 10이상인 모든 레코드들을 조회할 수 있다. 

 

 

▶ 관계연산자:

 

다음과 같은 관계연산자가 존재하고 마찬가지로 WHERE절에서 구현할 수 있다. 

더보기

SQL 관계연산자

AND: 둘다 만족하는 경우

NOT: 조건을 부정하는 경우

OR: 둘 중 하나를 만족하는 경우

BETWEEN: 두 조건 사이의 조건에 있는 경우

IN: 어떤 요소들에 특정요소가 포함되어 있는 경우

예시) 

 

> 테이블에서 나이가 10에서 12 인 데이터를 조회하시오.

SELECT * FROM TABLE WHERE AGE BETWEEN 10 AND 12;

BETWEEN을 통해 나이가 10 이상, 12 이하인 레코드들을 조회할 수 있다. 주의할 점은 BETWEEN은 해당 수들을 포함하는 즉 이상, 이하의 관계만 나타낼 수 있다. 미만, 초과의 관계를 나타내기 위해선 다음과 같은 명령어를 사용할 수 있다. 

SELECT * FROM TABLE WHERE AGE > 10 AND AGE < 12;

 

> 테이블에서 나이가 3,10, 15인 데이터를 조회하시오. 

SELECT * FROM TABLE AGE IN (3,10,15);
SELECT * FROM TABLE AGE=3 OR AGE= 10 OR AGE =15;

IN과 OR을 사용하여 두가지 명령어로 나타내보았다.