SELECT EMPLOYEE_ID, LAST_NAME,
LOWER(JOB_ID), DEPARTMENT_ID
FROM EMPLOYEES e
WHERE LOWER(LAST_NAME) = 'king';
설명:
LOWER(JOB_ID): JOB_ID를 소문자로 변환하여 표시합니다.
LOWER(LAST_NAME): LAST_NAME을 소문자로 변환하여 'king'과 비교합니다.
쿼리 결과: 소문자로 변환된 업무 아이디와 함께 'King'인 사원의 정보가 반환됩니다.
요약:
이 쿼리는 LOWER 함수를 사용하여 특정 사원의 정보를 대소문자 구분 없이 검색하는 방법을 보여줍니다. 이와 같은 방법은 대소문자를 구분하지 않고 데이터를 검색할 때 유용합니다.
문제 2: 이 쿼리는 사원의 LAST_NAME이 'KING'인 데이터를 대문자로 검색하고 사원번호, 성명, 담당업무, 부서번호를 출력합니다.
SELECT EMPLOYEE_ID, LAST_NAME,
UPPER(JOB_ID), DEPARTMENT_ID
FROM EMPLOYEES e
WHERE UPPER(LAST_NAME) = 'KING';
설명:
UPPER(JOB_ID): JOB_ID를 대문자로 변환하여 표시합니다.
UPPER(LAST_NAME): LAST_NAME을 대문자로 변환하여 'KING'과 비교합니다.
쿼리 결과: 대문자로 변환된 업무 아이디와 함께 'KING'인 사원의 정보가 반환됩니다.
요약:
UPPER 함수를 사용하여 대소문자 구분 없이 데이터를 검색하는 방법을 보여줍니다. 소문자 또는 대문자로 저장된 데이터의 일관성을 확보할 수 있습니다.
SELECT DEPARTMENT_ID || DEPARTMENT_NAME || LOCATION_ID
FROM DEPARTMENTS d;
설명:
DEPARTMENT_ID, DEPARTMENT_NAME, LOCATION_ID가 연결된 하나의 문자열로 결과가 출력됩니다.
주의사항: SQL에서 ||는 문자열을 연결하는 연산자입니다. 다른 데이터베이스(예: MySQL)에서는 CONCAT() 함수를 사용합니다.
요약:
이 쿼리는 || 연산자를 사용하여 여러 열을 하나의 문자열로 결합하는 방법을 보여줍니다. 이는 데이터베이스에서 여러 열을 하나의 필드로 통합할 때 유용하게 사용됩니다.
문제 4: DEPARTMENT_ID가 30인 직원들의 EMPLOYEE_ID, LAST_NAME, MANAGER_ID를 연결하여 출력합니다.
SELECT CONCAT(CONCAT(EMPLOYEE_ID, LAST_NAME), MANAGER_ID)
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 30;
설명:
사용 함수:
CONCAT(): 두 개의 문자열을 결합합니다. 여기에선 두 번 사용하여 세 개의 문자열을 연결합니다.
쿼리 결과: 부서번호가 30인 사원의 번호, 이름, 담당 아이디가 하나의 문자열로 결합되어 출력됩니다.
요약:
CONCAT 함수를 사용하여 여러 열의 값을 하나의 문자열로 결합하는 방법을 보여줍니다. 복수의 문자열을 합쳐서 표현할 때 유용하게 사용됩니다.
문제 5: 목적: 급여와 커미션을 기준으로 사원의 평가를 구분하여 출력합니다.
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY,
SALARY + SALARY NVL(COMMISSION_PCT, 0) AS sal,
CASE
WHEN SALARY + SALARY NVL(COMMISSION_PCT, 0) >= 10000 THEN 'good'
WHEN SALARY + SALARY NVL(COMMISSION_PCT, 0) >= 5000 THEN 'average'
WHEN SALARY + SALARY NVL(COMMISSION_PCT, 0) >= 1 THEN 'bad'
WHEN SALARY + SALARY * NVL(COMMISSION_PCT, 0) = 0 THEN 'no good'
END AS grade
FROM EMPLOYEES e
ORDER BY sal;
설명:
사용 함수 및 연산자:
NVL(COMMISSION_PCT, 0): COMMISSION_PCT가 NULL인 경우 0을 사용하여 계산합니다.
CASE: 조건문을 사용하여 다양한 평가 기준을 설정합니다.
조건:
급여와 커미션의 합이 10000 이상: good
5000 이상 10000 미만: average
1 이상 5000 미만: bad
0: no good
쿼리 결과: 각 사원의 EMPLOYEE_ID, FIRST_NAME, SALARY, 계산된 급여(sal), 평가(grade)가 출력됩니다.
요약:
CASE 문을 사용하여 여러 조건에 따라 데이터를 분류하는 방법을 보여줍니다. 다양한 조건을 설정하여 데이터를 그룹화하거나 평가할 때 유용합니다.