Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

고마구의 개발 블로그

240528 6주차 화요일 - DB 03 본문

KDT풀스택과정 공부

240528 6주차 화요일 - DB 03

고마구 2024. 5. 28. 09:58

-부하직원이 없는 사원 정보를 출력하시오.
select * from emp where empno not in (select mgr from emp where mgr is not null);
select * from emp where empno !=all (select mgr from emp where mgr is not null);
All, NOT IN을 쓸 때, 서브 쿼리 반환 결과 집합에 NULL이 있으면 일치여부를 알 수 없다(공집합 반환);

 

4. 메일주소에    밑줄표시가    있는    사원을    출력하시오
select * from employees where email like '%\_%' ESCAPE '\'

8. 업무별    최저임금과    최고임금    사이의    봉급을    가지는    사원의    이름과    업무명을 출력하시오.
select e.first_name, j.job_title from employees e,jobs j where e.job_id=j.job_id and salary between min_salary and max_salary;

10.  2월    28일에    입사한    사원의    이름, 업무명, 부서명을    출력하시오.
select first_name,job_title,department_name from employees e,departments d,jobs j where e.job_id=j.job_id and
e.department_id=d.department_id and to_char(hire_date,'MMDD')=0228;

14.  2008년    1월    1일    이후에    입사한    사원을    출력하시오. 
SELECT * FROM EMPLOYEES where hire_date > '2008:01:01';
SELECT * FROM EMPLOYEES where hire_date > '2008-01-01';

18.  사원    이름과    임금을    출력하되    임금을    1000단위로    출력하시오. 
SELECT FIRST_NAME, SALARY, ROUND(SALARY, -3) FROM EMPLOYEES;

21.  5월에    입사한    사원을    출력하시오.
SELECT * FROM EMPLOYEES WHERE TO_CHAR(HIRE_DATE, 'MM')= 05;
SELECT * FROM EMPLOYEES WHERE EXTRACT(MONTH FROM CAST(hire_date AS TIMESTAMP))= 05;

23.  사원들의    이름과    첫    월급날을    출력하시오. 매월    1일이    월급    날이다. 
SELECT FIRST_NAME, HIRE_DATE, LAST_DAY(HIRE_DATE)+1 FROM EMPLOYEES;

26.  첫    글자는    대문자로, 나머지    글자는    소문자로    변환하여    성과    이름을    출력하시오. 
SELECT INITCAP(FIRST_NAME), INITCAP(LAST_NAME) FROM EMPLOYEES;

27.업무명의    첫    단어를    출력하시오.
SELECT JOB_TITLE, SUBSTR( JOB_TITLE, 1, INSTR(JOB_TITLE || ' ', ' ')-1 ) FROM JOBS;
INSTR(JOB_TITLE || ' ', ' ')-1 ,공백을 찾은 인덱스에 -1을 한다

28. 성의    3번째    문자    이후에    'b'가    포함된    사원의    이름의    길이를    출력하시오. 
SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES WHERE INSTR(LAST_NAME,'B') > 3


31. 현재    날짜와    2011년    1월    1일이    며칠    차이인지    출력하시오.
SELECT sysdate-to_DATE('2011-01-01') FROM dual;

32. 2002년 각    달마다    몇    명의    사원이    입사하였는지    출력하시오.
select to_char(hire_date,'MM'),count(*) from employees where to_char(hire_date,'YYYY')=2002 group by to_char(hire_date,'MM');

 

40. 10명이    넘는    사원이    입사한    연도를    출력하시오.
select to_char(hire_date,'YYYY') from employees group by to_char(hire_date,'YYYY') having count(to_char(hire_date,'YYYY'))>10;
select count(to_char(hire_date,'YYYY')) from employees group by to_char(hire_date,'YYYY');

46.사번    115번    사원의    현재    임금이    6000미만일    경우    8000으로    변경하시오.
update employees set salary=8000 where employee_id=115 and salary<6000;

 

50번부터

'KDT풀스택과정 공부' 카테고리의 다른 글

240530 6주차 목요일 - DB 05  (0) 2024.05.30
240529 6주차 수요일 - DB 04  (0) 2024.05.29
240524 5주차 금요일 - DB 02  (0) 2024.05.24
240523 5주차 목요일 - DB 01  (0) 2024.05.23
240521 5주차 화요일- JAVA 18  (0) 2024.05.21