DB + SQL

[SQL] - Select 구문 예제

dev_SiWoo 2020. 8. 20. 13:55

#실습용 DB(쿼리)파일 

mariadb_init.txt
0.01MB

 

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 구문을 통해 중복을 제거함

중복이 있는상태
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';

13번과 같은결과임

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)%';