도서/모두를 위한 postgreSQL

Day10. 쿼리에 사용되는 연산자와 함수4

joje* 2023. 8. 5. 15:27

1. 서브쿼리에서 사용되는 연산자

: 다음의 연산자들은 서브쿼리에 이용되며, boolean 타입을 반환

  • EXISTS (서브쿼리) : 서브쿼리의 로우가 존재하면 참
  • <표현> IN (서브쿼리) : 서브쿼리의 로우 값 중 하나라도 표현식과 같다면 참
  • <표현> NOT IN (서브쿼리) : 서브쿼리의 로우 값 중 하나라도 표현식과 다르면 참
  • <표현> <비교연산자> ANY (서브쿼리) : 서브쿼리의 로우 값 중 하나라도 표현식과 같다면 참
  • <표현> <비교연산자> ALL (서브쿼리) : 서브쿼리의 로우 값 모두가 표현식과 같다면 참

 

2. 패턴매칭 연산자

2.1  LIKE 연산자

: 특정한 패턴을 가지고 있는 값들만을 조회할 수 있도록 도와줌

: 대소문자를 구분하지 않는다

: LIKE, NOT LIKE, ILIKE, NOT ILIKE 연산자와 동일 연산자로  ~~, !~~, ~~*, !~~*를 사용할 수 있다.

  • 조회할 컬럼명 LIKE '패턴';
  • 특정 값 LIKE '패턴';
  • SELECT 'pink' LIKE '_in_', 'pink' LIKE  'p%k', 'pink' LIKE 'p__';

** 패턴 입력 시 와일드카드 문자를 이용

%: 문자열을 대체 ex>'김%','%민'...

_ : 문자를 대체 ex>'김%','%민'...

 

2.2 SIMILAR TO 연산자

: LIKE 연산자와 다르게 메타문자를 사용할 수 있다.

  • WHERE student_name SIMILAR TO '(kim | LEE)%';

 

3. SQL 문자열 연산자와 함수

3.1 병합연산자

:'||' 을 이용해 문자열 간 병합이 가능하다

  • SELECT 'postgre' || 'sql' AS result, 'price: ' ||300||'won' AS result2;

3.2 문자열 함수

: 문자열의 길이를 반환하는 함수- length()

  • SELECT length('postgresql') AS length;

: 문자열을 길이로 분리해 반환하는 함수-substring()

  • SELECT substring('sujin_01012345678' from 1 for 5), substring('sujin_01012345678' from 7 for 16);

: 문자열의 좌측을 기준으로 길이로 분리해 반환하는 함수- left()

  • SELECT left('죽는 날까지 하늘을 우러러 한점 부끄럼이 없기를 잎새에 이는 바람에도 나는 괴로워했다.',15);

: 문자열을 결합해 주는 함수 - concat()

  • SELECT concat('my sql ', 'language ', 'is ', null, 'postgresql '); 

: 문자열의 위치를 찾아주는 함수-position()

  • SELECT position('postgre' in 'my sql language is postgresql');

: 문자열의 특정부분을 바꿔주는 함수

  • SELECT replace ('my sql language is postgresql' , ' postgre', ' not My');