컴퓨터/APM

MySQL : 중간테스트

하늘치 2008. 1. 11. 17:23
반응형
########### 데이타베이스 중간 테스트! ###########


alter table 테이블명1 rename 테이블명2;
alter table 테이블명 add 컬럼명 varchar(20);
alter table 테이블명 drop 컬럼명;
alter table 테이블명 change cname cname varchar(20);
필드명과 자료형을 변경 가능.
alter table 테이블명 change outlet outlet1 varchar(30);

update 테이블명 set 필드명=필드값(갱신하고자 하는 값) where 조건


################# 초기 데이타 #################

mysql> show databases;
+----------+
| Database |
+----------+
| company  |
| mysql    |
+----------+
2 rows in set (0.00 sec)


mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| car               |
| sale              |
| salesman          |
+-------------------+
3 rows in set (0.00 sec)


mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
+------+--------+------------+-------+--------+
7 rows in set (0.00 sec)


mysql> select * from sale;
+------+-----+------+
| sno  | cno | qty  |
+------+-----+------+
| s123 | c1  |   12 |
| s123 | c2  |   20 |
| s123 | c3  |   42 |
| s123 | c4  |   18 |
| s123 | c5  |   10 |
| s123 | c6  |   20 |
| s202 | c1  |   34 |
| s202 | c2  |   14 |
| s134 | c2  |   21 |
| s241 | c2  |   30 |
| s241 | c4  |   31 |
| s241 | c5  |   13 |
+------+-----+------+
12 rows in set (0.00 sec)


mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 서울   |
| c3  | 레조   | 1500 |   1100 | 인천   |
| c4  | 레조   | 2000 |   1200 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)












################# 문제 풀이 #################


1. salesman 테이블의 명칭을 employee 변경한다.
mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| car               |
| sale              |
| salesman          |
+-------------------+
3 rows in set (0.00 sec)


mysql> alter table salesman rename employee;
Query OK, 0 rows affected (0.00 sec)


mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| car               |
| employee          |
| sale              |
+-------------------+
3 rows in set (0.00 sec)

mysql> alter table employee rename salesman;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| car               |
| sale              |
| salesman          |
+-------------------+
3 rows in set (0.00 sec)


2. car 테이블에 vendor varchar(20) 컬럼을  추가한다.
mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | varchar(20) | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

mysql> alter table car add vendor varchar(20);
Query OK, 7 rows affected (0.09 sec)
레코드: 7개  중복: 0개  경고: 0개

mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | varchar(20) | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
| vendor | varchar(20) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)


3. car 테이블에 vendor 컬럼을 삭제해 본다.
mysql> alter table car drop vendor;
Query OK, 7 rows affected (0.06 sec)
레코드: 7개  중복: 0개  경고: 0개


mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | varchar(20) | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)


4. car 테이블의 cname 의 데이터 타입을 varchar(20)로 변경한다.
mysql>alter table car change cname cname int(10);
Query OK, 7 rows affected (0.05 sec)
레코드: 7개  중복: 0개  경고: 7개

mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | int(10)     | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table car change cname cname varchar(20);
Query OK, 7 rows affected (0.06 sec)
레코드: 7개  중복: 0개  경고: 0개

mysql> desc car;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| cno    | char(2)     |      | PRI |         |       |
| cname  | varchar(20) | YES  |     | NULL    |       |
| cc     | smallint(6) | YES  |     | NULL    |       |
| weight | smallint(6) | YES  |     | NULL    |       |
| outlet | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)


5. salesman 테이블에 '사번 s346, 이름:강길동, 입사일 :2004-12-12, 실적:200  지점명:부산'으로 레코드를 삽입하시오.
mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
+------+--------+------------+-------+--------+
7 rows in set (0.00 sec)


mysql> insert into salesman values('s346', '강길동', '2004-12-12', 200, '부산');
Query OK, 1 row affected (0.00 sec)


mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


6. salesman의 전체 레코드를 검색하시오.
mysql> desc salesman;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| sno    | char(4)     |      | PRI |         |       |
| sname  | char(10)    |      |     |         |       |
| hire   | date        | YES  |     | NULL    |       |
| point  | smallint(6) | YES  |     | NULL    |       |
| branch | char(10)    | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)


7. salesman 테이블에서 실적이 300점 이상의 사원의 이름과 지점명을 검색하시오.
mysql> select sname, branch from salesman where point>=300;
+--------+--------+
| sname  | branch |
+--------+--------+
| 김두환 | 경기   |
| 임흥석 | 부산   |
+--------+--------+
2 rows in set (0.03 sec)


8. 판매된 승용차의 차량 번호를 검색하라
mysql> select cno from sale;
+-----+
| cno |
+-----+
| c1  |
| c2  |
| c3  |
| c4  |
| c5  |
| c6  |
| c1  |
| c2  |
| c2  |
| c2  |
| c4  |
| c5  |
+-----+
12 rows in set (0.00 sec)


9. 판매된 승용차의 차량번호를 중복 없이 검색하라.
(select 필드명 from 테이블명 group by 그룹화하고자 하는 필드명)

mysql>select cno from sale group by cno;
+-----+
| cno |
+-----+
| c1  |
| c2  |
| c3  |
| c4  |
| c5  |
| c6  |
+-----+
6 rows in set (0.03 sec)


10. 서울이 출고지인 차량의 차량번호, 중량, 차량번호를 검색하라
mysql> select cname, weight, cno from car where outlet='서울';
+--------+--------+-----+
| cname  | weight | cno |
+--------+--------+-----+
| 소나타 |   1200 | c1  |
| 소나타 |   1300 | c2  |
+--------+--------+-----+
2 rows in set (0.00 sec)


11. 출고지가 부산이고 배기량이 2000cc 이상인 차량의 차랑명과 배기량을 검색하라
mysql> select cname, cc from car where outlet='부산' and cc>=2000;
+-------+------+
| cname | cc   |
+-------+------+
| SM5   | 2000 |
| SM5   | 2500 |
+-------+------+
2 rows in set (0.00 sec)


12. 영업사원의 모든 정보를 실적이 높은 순으로 검색하라.
mysql> select * from salesman order by point asc;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


13. 영업사원의 모든 정보를 실적순으로 오름차순 실적이 같은 경우 입사일로 내림차순하라.
mysql> select * from salesman order by point, hire desc;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


14. 실적이 높은 영업사원 5명의 영업사원의 모든 정보를 (실적 순으로) 검색하라
mysql> select * from salesman order by point desc limit 0,5;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
+------+--------+------------+-------+--------+
5 rows in set (0.00 sec)


15. 실적이 3등, 4등, 5등이 영업사원의 모든 정보를 검색하라.
mysql> select * from salesman order by point desc limit 2,3;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
+------+--------+------------+-------+--------+
3 rows in set (0.00 sec)


16. 전체 팔린 차량의 대수를 구하라
mysql> select sum(qty) from sale;
+----------+
| sum(qty) |
+----------+
|      265 |
+----------+
1 row in set (0.01 sec)


17. 영업사원들의 실적 점수의 평균을 구하라.
mysql> select avg(point) from salesman;
+------------+
| avg(point) |
+------------+
|   233.3333 |
+------------+
1 row in set (0.00 sec)


18. 영업 사원별로 판매한 전체 차량의 대수를 구하라.
mysql> select s.sname, sum(s1.qty) from salesman s, sale s1
where s.sno=s1.sno group by s.sname;

+--------+-------------+
| sname  | sum(s1.qty) |
+--------+-------------+
| 임흥석 |          74 |
| 기필호 |         122 |
| 김두환 |          48 |
| 박성식 |          21 |
+--------+-------------+
4 rows in set (0.00 sec)


19. 두 종류 이상의 차량을 판매한 영업사원의 사번을 구하라.
mysql> select sno from sale group by sno having count(cno)>=2;
+------+
| sno  |
+------+
| s123 |
| s202 |
| s241 |
+------+
3 rows in set (0.00 sec)


20. 차량명이 ‘레’로 시작되는 차량의 모든 정보를 검색하라.
mysql> select * from car where cname like '레%';
+-----+-------+------+--------+--------+
| cno | cname | cc   | weight | outlet |
+-----+-------+------+--------+--------+
| c3  | 레조  | 1500 |   1100 | 인천   |
| c4  | 레조  | 2000 |   1200 | 인천   |
+-----+-------+------+--------+--------+
2 rows in set (0.00 sec)


21. 차량명이 한글로 두 글자인 차량의 차량번호와 차량명을 검색하라
mysql> select cno, cname from car where cname like '____';
+-----+-------+
| cno | cname |
+-----+-------+
| c3  | 레조  |
| c4  | 레조  |
+-----+-------+
2 rows in set (0.00 sec)


22. 박씨가 아닌 영업사원의 사번과 이름을 검색하라.
mysql> select sno, sname from salesman where sname not like '박%';
+------+--------+
| sno  | sname  |
+------+--------+
| s123 | 기필호 |
| s202 | 김두환 |
| s241 | 임흥석 |
| s345 | 최재형 |
| s444 | 정종호 |
| s555 | 홍길동 |
| s346 | 강길동 |
+------+--------+
7 rows in set (0.00 sec)


23. 배기량이 널 값인 차량의 차량번호와 차량명을 검색하라.
mysql> select cno, cname from car where cc=null;
Empty set (0.00 sec)

mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 서울   |
| c3  | 레조   | 1500 |   1100 | 인천   |
| c4  | 레조   | 2000 |   1200 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)


24. 입사일이 2000부터 2003년 사이의 입사자들의 모든 정보를 검색하라.
mysql> select * from salesman where year(hire) between 2000 and 2003;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
+------+--------+------------+-------+--------+
3 rows in set (0.00 sec)


25. 입사년도가 2002년 사원의 모든 정보를 검색하라.
mysql> select * from salesman where year(hire)=2002;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
+------+--------+------------+-------+--------+
1 row in set (0.00 sec)


26. 판매 실적이 없는 사원들의 모든 정보를 검색하라.
mysql> select * from salesman where point is null;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
+------+--------+------------+-------+--------+
2 rows in set (0.00 sec)


27. 배기량이  2000cc 이상이면서 차의 중량이 1000 이상이면서 출고지가 인천인 차량번호와  차량명을 검색하시오.
mysql> select cno, cname from car where cc>=2000 and weight>=1000 and outlet='인천';
+-----+-------+
| cno | cname |
+-----+-------+
| c4  | 레조  |
+-----+-------+
1 row in set (0.00 sec)


28. 사번이 's123' 이고 판매량이 20 이상인 차량번호를 모두 검색하시오.
mysql> select cno from sale where sno='s123' and qty>=20;
+-----+
| cno |
+-----+
| c2  |
| c3  |
| c6  |
+-----+
3 rows in set (0.00 sec)


29. 영업사원들 중에서 실적 포인트가 300 이상 400 이하의 사원들의 모든 정보를 검색하시오.
mysql> select * from salesman where point between 300 and 400;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
+------+--------+------------+-------+--------+
2 rows in set (0.00 sec)


30. 차량의 출고지가 ‘부’로 시작하면서 배기량이 2000cc의 차량명을 검색하시오.
mysql> select cname from car where outlet like '부%' and cc=2000;
+-------+
| cname |
+-------+
| SM5   |
+-------+
1 row in set (0.00 sec)


31. 차량번호 'c1'을 판매한 영업사원의 이름과 입사년월일을 검색하시오.
mysql> select s.sname, s.hire from salesman s, sale s1, car c where c.cno=s1.cno

and s.sno=s1.sno and c.cno='c1';
+--------+------------+
| sname  | hire       |
+--------+------------+
| 기필호 | 1998-10-12 |
| 김두환 | 2000-05-03 |
+--------+------------+
2 rows in set (0.02 sec)


32. 자동차 판매량이 30 이상인 영업사원의 이름과 실적점수를 검색하시오.
mysql> select s.sname, s.point from salesman s, sale s1 where s.sno=s1.sno group by s1.sno having sum(s1.qty)>=30;
+--------+-------+
| sname  | point |
+--------+-------+
| 기필호 |   200 |
| 김두환 |   400 |
| 임흥석 |   300 |
+--------+-------+
3 rows in set (0.00 sec)


33. 사번이 's241' 사원의 실적점수를 150점 증가 시켜라
mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   300 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)

mysql> update salesman set point=point+150 where sno='s241';
Query OK, 1 row affected (0.01 sec)
일치하는 Rows : 1개 변경됨: 1개  경고: 0개

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   200 | 인천   |
| s202 | 김두환 | 2000-05-03 |   400 | 경기   |
| s134 | 박성식 | 2002-03-01 |   100 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   450 | 부산   |
| s345 | 최재형 | 2004-03-01 |   200 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   200 | 부산   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


34. 출고지가 ‘인천’인 차량의 배기량을 100cc 증가 시켜라.
mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 서울   |
| c3  | 레조   | 1500 |   1100 | 인천   |
| c4  | 레조   | 2000 |   1200 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)

mysql> update car set cc=cc+100 where outlet='인천';
Query OK, 2 rows affected (0.00 sec)
일치하는 Rows : 2개 변경됨: 2개  경고: 0개

mysql> select * from car;
+-----+--------+------+--------+--------+
| cno | cname  | cc   | weight | outlet |
+-----+--------+------+--------+--------+
| c1  | 소나타 | 1800 |   1200 | 서울   |
| c2  | 소나타 | 2000 |   1300 | 서울   |
| c3  | 레조   | 1600 |   1100 | 인천   |
| c4  | 레조   | 2100 |   1200 | 인천   |
| c5  | 카니발 | 3000 |   1800 | 광주   |
| c6  | SM5    | 2000 |   1300 | 부산   |
| c7  | SM5    | 2500 |   1350 | 부산   |
+-----+--------+------+--------+--------+
7 rows in set (0.00 sec)


35. 모드 사원의 실적을 50점 감소 시켜라
mysql> update salesman set point=point-50;
Query OK, 6 rows affected (0.00 sec)
일치하는 Rows : 8개 변경됨: 6개  경고: 0개

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   150 | 인천   |
| s202 | 김두환 | 2000-05-03 |   350 | 경기   |
| s134 | 박성식 | 2002-03-01 |    50 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   400 | 부산   |
| s345 | 최재형 | 2004-03-01 |   150 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   150 | 부산   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


36. 출고지가 ‘서울’인 차량의 차량명을 소나타2로 변경하라.
mysql> update car set cname='소나타2' where outlet='서울';
Query OK, 2 rows affected (0.00 sec)
일치하는 Rows : 2개 변경됨: 2개  경고: 0개

mysql> select * from car;
+-----+---------+------+--------+--------+
| cno | cname   | cc   | weight | outlet |
+-----+---------+------+--------+--------+
| c1  | 소나타2 | 1800 |   1200 | 서울   |
| c2  | 소나타2 | 2000 |   1300 | 서울   |
| c3  | 레조    | 1600 |   1100 | 인천   |
| c4  | 레조    | 2100 |   1200 | 인천   |
| c5  | 카니발  | 3000 |   1800 | 광주   |
| c6  | SM5     | 2000 |   1300 | 부산   |
| c7  | SM5     | 2500 |   1350 | 부산   |
+-----+---------+------+--------+--------+
7 rows in set (0.00 sec)


37. 입사년도가 2004년 사원들의 실적점수를 100점 증가 시키시오.
mysql> update salesman set point=point+100 where year(hire)=2004;
Query OK, 2 rows affected (0.00 sec)
일치하는 Rows : 4개 변경됨: 2개  경고: 0개

mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   150 | 인천   |
| s202 | 김두환 | 2000-05-03 |   350 | 경기   |
| s134 | 박성식 | 2002-03-01 |    50 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   400 | 부산   |
| s345 | 최재형 | 2004-03-01 |   250 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   250 | 부산   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


38. 사번이 's202' 인 사원의 레코드를 삭제하라.
mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   150 | 인천   |
| s202 | 김두환 | 2000-05-03 |   350 | 경기   |
| s134 | 박성식 | 2002-03-01 |    50 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   400 | 부산   |
| s345 | 최재형 | 2004-03-01 |   250 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   250 | 부산   |
+------+--------+------------+-------+--------+
8 rows in set (0.00 sec)


mysql> delete from salesman where sno='s202';
Query OK, 1 row affected (0.02 sec)


mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   150 | 인천   |
| s134 | 박성식 | 2002-03-01 |    50 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   400 | 부산   |
| s345 | 최재형 | 2004-03-01 |   250 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   250 | 부산   |
+------+--------+------------+-------+--------+
7 rows in set (0.00 sec)


39. 부산에서 출고되는 모든 차량의 레코드를 삭제하라
mysql> select * from car;
+-----+---------+------+--------+--------+
| cno | cname   | cc   | weight | outlet |
+-----+---------+------+--------+--------+
| c1  | 소나타2 | 1800 |   1200 | 서울   |
| c2  | 소나타2 | 2000 |   1300 | 서울   |
| c3  | 레조    | 1600 |   1100 | 인천   |
| c4  | 레조    | 2100 |   1200 | 인천   |
| c5  | 카니발  | 3000 |   1800 | 광주   |
| c6  | SM5     | 2000 |   1300 | 부산   |
| c7  | SM5     | 2500 |   1350 | 부산   |
+-----+---------+------+--------+--------+
7 rows in set (0.00 sec)

mysql> delete from car where outlet='부산';
Query OK, 2 rows affected (0.00 sec)

mysql> select * from car;
+-----+---------+------+--------+--------+
| cno | cname   | cc   | weight | outlet |
+-----+---------+------+--------+--------+
| c1  | 소나타2 | 1800 |   1200 | 서울   |
| c2  | 소나타2 | 2000 |   1300 | 서울   |
| c3  | 레조    | 1600 |   1100 | 인천   |
| c4  | 레조    | 2100 |   1200 | 인천   |
| c5  | 카니발  | 3000 |   1800 | 광주   |
+-----+---------+------+--------+--------+
5 rows in set (0.00 sec)


40. 영업사원의 모든 테이블을 삭제하라.
mysql> select * from salesman;
+------+--------+------------+-------+--------+
| sno  | sname  | hire       | point | branch |
+------+--------+------------+-------+--------+
| s123 | 기필호 | 1998-10-12 |   150 | 인천   |
| s134 | 박성식 | 2002-03-01 |    50 | 서울   |
| s241 | 임흥석 | 2003-06-12 |   400 | 부산   |
| s345 | 최재형 | 2004-03-01 |   250 | 인천   |
| s444 | 정종호 | 2004-11-01 |  NULL | NULL   |
| s555 | 홍길동 | 2004-04-04 |  NULL | 인천   |
| s346 | 강길동 | 2004-12-12 |   250 | 부산   |
+------+--------+------------+-------+--------+
7 rows in set (0.00 sec)

mysql> delete from salesman;
Query OK, 7 rows affected (0.00 sec)

mysql> select * from salesman;
Empty set (0.00 sec)

반응형