메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Additional Operation

noriwiki
Pinkgo (토론 | 기여)님의 2025년 4월 2일 (수) 08:23 판 (String Operation)

상위 문서: SQL

개요

SQL은 그 기본적인 문법을 바탕으로 다양한 여러 연산들을 지원한다.

Rename 연산

SQL 내에서 사용되는 relation의 이름들과 속성(attribute)의 이름들은 from 절에 있는 relation으로부터 유도된다. 하지만 이러한 방식으로 relation과 속성의 이름들을 사용할 때에는 예기치 못한 문제나 불편함이 발생할 수 있다. 따라서 SQL은 relation과 속성(attribute)의 이름을 "as" 구문을 사용하여 이름을 바꾸는 것을 하용한다.

old_name as new_name

이때 as는 select 절과 from 절 양쪽에서 사용될 수 있다.

as 절은 relation의 이름을 바꾸는 데 특히 유용하다. relation의 이름을 바꾸는 한 가지 이유는 긴 릴레이션 이름을 더 짧고 질의의 다른 부분에서 사용하기 더 편한 이름으로 바꾸기 위함이다. 예를 들어, “대학에서 어떤 과목이든 가르친 적이 있는 모든 교수들의 이름과 그들이 가르친 과목의 ID를 구하라.”와 같은 질의는 아래와 같이 간단하게 나타낼 수 있다.

select T.name, S.course_id
from instructor as T, teaches as S
where T.ID = S.ID;

relation 이름을 바꾸는 또 다른 이유는 같은 relation 내의 튜플들을 서로 비교하고자 할 때이다. 이 경우, 하나의 relation과 자기 자신과의 데카르트 곱(Cartesian product) 을 수행해야 하므로, 두 튜플을 구분하기 위해 다른 이름을 사용해야 한다. 예를 들어, “급여가 생물학(Biology) 학과에 속한 어떤 교수보다 높은 교수들의 이름을 구하라.”와 같은 질의는 아래와 같이 나타낼 수 있다.

select distinct T.name
from instructor as T, instructor as S
where T.salary > S.salary and S.dept_name = 'Biology';

이때 키워드 as는 사용하는 것이 선택적이며, 누락될 수도 있다. 이는 아래 예시가 잘 보여준다.

instructor T --instructor as T와 같은 뜻

String Operation

SQL에서는 문자열을 작은따옴표로 감싸서 지정한다. 예를 들어 'Computer'는 문자열을 의미한다. 문자열 내에 작은따옴표 문자가 포함되어야 하는 경우, 작은따옴표를 두 번 연속으로 써서 지정할 수 있다. 예를 들어 문자열 'Its right'는 다음과 같이 표현한다:

'It''s right'


또한 SQL은 SQL은 문자열에 대해 다양한 함수를 허용한다. 예를 들어 다음과 같은 작업들이 가능하다:

  • 문자열 연결(concatenation): ∥ 연산자를 사용
  • 부분 문자열 추출(substring)
  • 문자열 길이 측정
  • 문자열을 대문자로 변환: upper(string)
  • 소문자로 변환: lower(string)
  • 문자열 끝의 공백 제거: trim(string)

Pattern matching

SQL에서는 like 연산자를 사용하여 문자열에서 패턴 매칭(pattern matching) 을 수행할 수 있다. 이때 패턴매칭은 대소문자를 구분한다. 패턴은 두 가지 특수 문자를 이용해 정의된다:

  • 퍼센트 기호(%): 어떤 길이의 문자열이든 부분 문자열로 일치함.
  • 언더스코어(_): 아무 문자 하나와 일치함.

패턴 매칭의 예시는 다음과 같다:

  • 'Intro%': “Intro”로 시작하는 문자열과 일치
  • '%Comp%': “Comp”라는 부분 문자열이 포함된 문자열과 일치
  • '_ _ _': 정확히 세 글자인 문자열과 일치 (_가 3개)
  • '_ _ _%': 최소 세 글자 이상인 문자열과 일치

각주