백엔드/Oracle

Oracle : SQL ( SELECT -2 )

두개의 문 2023. 7. 6. 14:34
연습 

 

-- 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;