[SQL] - Select 구문 예제
#실습용 DB(쿼리)파일
1. emp 테이블에서 사번, 이름, 부서번호와 ok, ck, 9, 9999의 리터럴값을 가지도록 sql문 작성하라
SELECT empno, ename, deptno, 'OK','ck', 9 ,9999 FROM emp;
2. professor 테이블에서 부서번호를 중복되지않도록 출력하라
SELECT deptno FROM professor; # 중복이 보임
SELECT distinct deptno FROM professor; # distinct 구문을 통해 중복을 제거함
3. 학생들중 1학년만 출력하라
SELECT * FROM student WHERE grade=1;
4. 학생들중 1,2학년만 출력하라
SELECT * FROM student WHERE grade=1 OR grade=2;
5. 직원 중 부서코드가 10인 직원의 이름과, 급여, 부서코드를 출력하라
SELECT ename, salary, deptno as dno FROM emp WHERE deptno=10;
6. 직원 중 부서코드가 10인 직원의 이름과, 급여, 부서코드를 출력하라
SELECT ename, salary, deptno FROM emp WHERE deptno=10;
7. 급여가 800이상인 직원을 출력하라
SELECT * FROM emp WHERE salary>=800;
8. 교수 중 정교수만 출력하라.
SELECT * FROM professor WHERE POSITION='정교수';
9. 직원급여를 10% 인상했을때 인상된 급여가 1000 미만인 직원을 출력하라
SELECT salary, salary*1.1 FROM emp WHERE salary*1.1<1000;
10. 급여가 700이하인 직원만 5% 인상해주기로 결정, 인상 대상 직원과 직원명, 현재급여, 인상예정급여 출력하라
SELECT ename AS 직원명, salary AS 현재급여, salary*1.05 AS 인상예정급여 FROM emp WHERE salary<=700;
11. 학생중 1998 6월 30일 이후 출생인 학생을 출력하라
SELECT * FROM student WHERE birthday>'1998-06-30';
12. 학생중 1997년 6월 30일생 이후이면서 2학년인 학생들만 출력하라
SELECT * FROM student WHERE birthday>'1997-07-60' AND grade=2;
13. 학생중 1997년 6월 30일 이후부터 1998년 6월 30일 이전 학생을 출력하라
SELECT * FROM student WHERE birthday>='1997-06-30' AND birthday<'1998-06-30';
14.학생중 1997년 6월 30일 이후부터 1998년 6월 30일 이전 학생을 between 구문을 사용해서 출력하라
SELECT * FROM student WHERE birthday BETWEEN '1997-06-30' AND '1998-06-30';
15. 학생중 1997년 6월 30일 이후부터 1998년 6월 30일 이전 학생들 중 1학년을 출력하라 ( AND 중첩)
SELECT * FROM student WHERE birthday BETWEEN '1997-06-30' AND '1998-06-30' AND grade=1;
16. 1학년 학생중 몸무게가 70이상 80이하인 학생들을 출력하라. (AND 중첩)
SELECT * FROM student WHERE weight BETWEEN 70 AND 80 AND grade=1;
17. in 구문을 사용하여 1,4학년만 출력하라
SELECT * FROM student WHERE grade IN (1,4); # in을 사용하면 or을 여러개한것과 동일한 효과
18. 김씨인 학생들을 출력하라 (like 구문사용)
SELECT * FROM student WHERE name LIKE '김%';
19. 교수 중 '이수근'교수의 포지션을 '조교수'에서 '교수'로 정정하고 포지션이 교수로 끝나는 모든 교수들을 출력하라
UPDATE professor SET POSITION='교수' WHERE NO=1005;
SELECT * FROM professor WHERE POSITION LIKE '%교수';
20. 학생들 중 성명이 2글자인 학생들을 출력하시오.
SELECT * FROM student WHERE NAME LIKE '__';
21. 성명이 3글자인 학생들을 성명을 기준으로 오름차순과 내림차순으로 각각 정렬해서 출력하라.
SELECT * FROM student WHERE NAME LIKE '___' ORDER BY NAME ASC; #오름차순
SELECT * FROM student WHERE NAME LIKE '___' ORDER BY NAME DESC; # 내림차순
22. 이름에 '진'자가 들어간 학생들을 출력하여라
SELECT * FROM student WHERE NAME LIKE '%진%';
23. 서울지역이 아닌 학생들을 출력하여라
SELECT * FROM student WHERE tel NOT LIKE '02)%';