연습
-- 7. IN 연산
-- • 몇 개의 낱개의 검색어와 비교할 때, 이 검색어들이 서로 연관되어 있지 않은 경우에 사용하는 연산자
-- → 이 검색어가 같으면 true, 다르면 false
-- • WHERE 컬럼명 IN ( value1, value2, ... 여러 조건 )
-- → value의 경우, 컬럼명의 데이터타입과 일치하는 데이터값이 와야함
-- • IN연산은 OR연산과 유사하지만, OR연산의 경우 중복되는 데이터를 모두 적어야 하므로 혼동 가능성 있음
-- 반면, IN연산의 경우 중복되는 부분을 한번만 쓰므로 보다 깔끔한 표현이 가능
-- 예) 잠실역에서 7시와 9시에 탑승한 고객 검색에서 7시, 9시가 바로 그 대상 검색어에 해당됨
-- "잠실역에서 7시와 9시에 승/하차한 고객 검색"
SELECT * FROM SUBWAY_STATISTICS ss
WHERE STATION_NAME = '잠실(216)'
AND
BOARD_TIME IN (7, 9);
-- 위의 IN연산을 OR연산으로 작성해 비교해보자
SELECT * FROM SUBWAY_STATISTICS ss
WHERE STATION_NAME = '잠실(216)'
AND
( BOARD_TIME = 7 OR BOARD_TIME = 9 );
-- 8. BETWEEN 연산자
-- • 연속적인 검색 값의 범위를 질의할 때 사용
-- "선릉역에서 승/하차 인원 500명 이상 1000명 이하 검색
SELECT * FROM SUBWAY_STATISTICS ss
WHERE STATION_NAME LIKE '선릉%'
AND PASSENGER_NUMBER >= 500
AND PASSENGER_NUMBER <= 1000 ;
SELECT * FROM SUBWAY_STATISTICS ss
WHERE
STATION_NAME LIKE '선릉%' AND
PASSENGER_NUMBER BETWEEN 500 AND 1000 ;
-- 9. ORDER BY : 레코드 정렬
-- • ORDER BY 컬럼명 [ ASC | DESC ]
-- ① ASC : 오름차순 - 기본
-- ② DESC : 내림차순
-- • ORDER BY 컬럼1, 컬럼2
-- : 컬럼1에 대해 정렬 후, 동일한 값이 있을 경우 컬럼2에 대해 정렬
-- • ORDER BY 1, 2 (1은 컬럼1을 가르킴, 2는 컬럼2를 가르킴)
-- SELECT절에 명시한 첫번째와 두번째 컬럼을 숫자로 가르킨다.
-- 설정한 방식으로 각 컬럼을 정렬한다
-- 컬럼이름 대신 컬럼의 순서를 이용했음
-- 테이블에서 컬럼의 순서는 1부터 시작
SELECT * FROM SUBWAY_STATISTICS ss ORDER BY STATION_NAME ASC;
SELECT * FROM SUBWAY_STATISTICS ss ORDER BY STATION_NAME DESC;
SELECT * FROM SUBWAY_STATISTICS ss ORDER BY STATION_NAME DESC, BOARD_TIME ;
-- "선릉역에서 승/하차 날짜 및 승객수로 정렬 | 정렬컬럼은 컬럼 번호 이용
SELECT STATION_NAME, BOARDING_DATE , PASSENGER_NUMBER
FROM SUBWAY_STATISTICS ss
WHERE STATION_NAME LIKE '선릉%'
ORDER BY 2, 3 DESC ;
-- "모든 컬럼에 대해서 번호로 정렬해보자"
SELECT * FROM SUBWAY_STATISTICS ss
WHERE STATION_NAME LIKE '선릉%'
ORDER BY 1, 2, 3, 4, 5, 6;
-- 10. SQL 연산자
-- • 데이터들을 상대로 특정 계산을 수행한 후, 결과를 반환함
-- 연산자는 내부적으로는 함수에 해당
-- • SQL에서 데이터 = 데이터 + 연산자 + 데이터 ...
-- • 비교연산자 : =, != or <>, >, <, >=, <=
-- • 기본연산자
-- ➊ 산술연산자
-- + : 두 숫자의 합 / 날짜의 합
-- - : 두 숫자의 차 / 날짜의 차
-- * : 두 숫자의 곱
-- / : 두 숫자의 나누기
-- || : SQL에서 문자열 결합 연산자로, 두 문자열을 결합함
-- ※ 다른 언어에서는 OR연산의 연산자로 사용하는 경우도 있으니 주의하기
-- 사칙연산 연습
SELECT 100 + 100 "100 + 100 = ",
100 - 100 "100 - 100 = ",
100 * 100 "100 * 100 = ",
100 / 100 " 100 / 100 = ",
'환영합니다. ' || '오라클의 세계에 오신 것을...' AS "문자열 합치기 = "
FROM dual;
-- 오라클에서 사용하는 임시 테이블로, 주로 간단한 연습용으로 사용함
-- 두번째 피연산자의 값을 3으로 변경
SELECT 100 + 3 "100 + 3 = ",
100 - 3 "100 - 3 = ",
100 * 3 "100 * 3 = ",
100 / 3 " 100 / 3 = ",
'환영합니다. ' || 3 AS "문자열 합치기 = "
FROM dual;
'백엔드 > Oracle' 카테고리의 다른 글
Oracle : SQL ( 날짜형 함수 / 형변환 함수 / NULL 처리 함수 / GREATEST, LEAST, DECODE / WITH절 ) (0) | 2023.07.10 |
---|---|
Oracle : SQL - 내장 함수 (0) | 2023.07.07 |
Oracle : SQL ( SELECT - 1 ) (0) | 2023.07.05 |
45 - SQL : DML (0) | 2023.06.30 |
44 - Oracle : SQL 기본 (0) | 2023.06.29 |