Data Base/Oracle SQL

23.10.06. Oracle SQL ② SELECT 문

잇꼬 2023. 10. 6. 16:03
728x90
반응형
SMALL

■ 리터럴 문자열(' ')
- 숫자, 날짜, 문자는 작은 따옴표로 묶어야 한다.
- 연결연산자인 ||를 사용하지 않고 그대로 '사원 번호는 ' employee_id로 사용한다면 에러발생한다.(문법)

SELECT 'My name is '||last_name||' '||first_name as "name"
FROM hr.employees;

-- 오류발생
SELECT 'My name's '||last_name||' '||first_name as "name" 
FROM hr.employees; 

/* My name is = My name's 출력 하기 위해서는 ''s 로 표현 */
SELECT 'My name''s '||last_name||' '||first_name as "name" 
FROM hr.employees;


■ q 연산자
- q'[리터럴문자열]' : [] 안에 있는 문자열을 문자로 인식. 단, 같은 괄호끼리 묶어줘야 에러없이 진행된다.
- q'<리터럴문자열>' , q'{리터럴문자열}', q'(리터럴문자열)', q'!리터럴문자열!'

SELECT q'[My name''s ]'||last_name||' '||first_name as "name"
FROM hr.employees;

SELECT q'<["My name''s "]>'||last_name||' '||first_name as "name"
FROM hr.employees;


■ 중복행 제거
- distinct 키워드를 이용해서 중복을 제거할 수 있다. 
- distinct : SELECT 절 제일 앞에 한번만 사용해야 한다. 
- distinct : 나머지 값 + 숫자의 상자(키워드) 

SELECT department_id
FROM hr.employees; 

SELECT distinct department_id
FROM hr.employees;

SELECT department_id, job_id
FROM hr.employees; 

SELECT distinct department_id, job_id
FROM hr.employees;

[계획 설명]

중복 제외하지 않았을 경우

중복 제외했을 경우


알고리즘 퀴즈

Q1) 여럿 숫자들 중에서 유니크한 숫자만 뽑기 위해서 어떻게 해야 하는가?
- 숫자의 정렬해서 중복되는 숫자를 제외하고 하나를 뽑기


Q2) 여럿 숫자들 중에서 상자 10개를 줬을때 어떤 기준 나눌 것인가? 

- plan_hash (계획 설명) 
- 숫자의 몫과 나머지 값 중의 나머지 값으로 기준을 잡는다

728x90
반응형
LIST