All of My Records

[Oracle] 연산자

by 캐떠린

연산자, Operator

  1. 산술 연산자
    • +, -, *, /
    • % → 나머지 연산자가 없다!! 대신 mod() 라는 함수로 제공한다.
  2. 문자열 연산자(concat)
    • | | 를 사용한다.
SELECT name || '님' FROM tblMen;
  1. 비교 연산자
    • >, >=, <, <=
    • = : Java의 ==와 동일
    • <> : Java의 !=와 동일
    • 논리값 반환 → SQL에는 boolean이 없다 → 명시적으로 표현 불가능 → 조건이 필요한 상황에서 내부적으로 사용
    • 컬럼 리스트에서 사용 불가
    • 조건절에서 사용
  2. 논리 연산자
    • and → Java의 &&와 동일
    • or → Java의 ||와 동일
    • not → Java의 !와 동일
    • 논리값 반환
    • 컬럼 리스트에서 사용 불가
    • 조건절에서 사용
  3. 대입 연산자
    • =
    • 컬럼 = 값
    • UPDATE 문에서 사용
  4. 3항 연산자
    • 없음
    • 제어문 없음
  5. 증감 연산자(Java의 ++, --)
    • 없음
  6. SQL 연산자
    • IN, BETWEEN, LIKE, IS 등...

 

연산자 사용 예시

-- population, area 컬럼의 자료형: NUMBER
SELECT population, area
  FROM tblCountry;

SELECT population + area FROM tblCountry;
SELECT population - area FROM tblCountry;
SELECT population * area FROM tblCountry;
SELECT population / area FROM tblCountry;

-- name, couple 컬럼의 자료형: VARCHAR2
-- ORA-01722: invalid number -> SQL에서 '+'은 피연산자로 숫자만 가질 수 있다.(문자열 연산 불가)
SELECT name, couple, name + couple FROM tblMen;
-- 문자열 더하기 연산자는 '||' 이다.
SELECT name, couple, name || couple FROM tblMen;

-- boolean값은 존재하지 않기 때문에 아무곳에서나 쓸 수 있는건 아니다.(특히 시각적으로 보이는 작업에서는 쓸 수 없다.) > WHERE 절에서 사용 가능!
SELECT height, weight FROM tblMen WHERE height > weight;

 

테이블 별칭(Alias)
- SELECT * FROM tblMen m;
- as를 붙이지 않고도 사용 가능하다.(가독성 향상 + 개발자 편함)

 

컬럼의 별칭(Alias)
- 가공 유무 상관없이 별칭을 붙일 수 있다. But!! 되도록 가공된 컬럼에 적용
- 함수 결과에도 적용
- ★★★컬럼명이 식별자로 적합하지 않을 때 사용 → 적합한 식별자로 수정
- 식별자로 사용 불가능한 상황 → 억지로 적용할 때
- column명에는 as 생략 가능!
- 공백은 인식 불가하다. → 공백을 지우거나 " "(큰따옴표)를 사용한다. ex) "여자 친구"
- 예약어, 키워드는 식별자로 사용이 불가하다. (" " 사용 시 가능하나, 헷갈리므로 사용 지양)
SELECT
    name AS 이름,
    age,
    age-1 AS 나이,
    couple AS 여자친구,
    name "SELECT"
FROM tblMen;​

 

*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업

블로그의 정보

All of My Records

캐떠린

활동하기