-- 모든 실습문제는 EMP 테이블의 데이터 보존을 위해 BEGIN TRAN...
-- ROLLBACK TRAN 구문을 사용할 것
begin tran
ROLLBACK TRAN
-- 1. EMP 테이블에서 사원번호가 7499번인 사원의 월급을 5000달러로 바꿔라.
select * from EMP

update EMP
set SAL = 5000
where EMPNO = 7499

-- 2. EMP테이블에서 부서번호가 20번인 사원들의 월급을 4000달러로 바꿔라.

update EMP
set SAL = 4000
where DEPTNO = 20

-- 3. DEPT 테이블에 아래의 조건으로 데이터를 입력하라.
-- 부서번호: 50, 부서위치: BOSTON,  부서명: RESERCH

select * from DEPT

insert into DEPT values (50, 'BOSTON', 'RESERCH')

-- 4. 사원번호가 7698번인 사원의 부서번호를 7499번 사원의
--부서번호로 바꿔라.

 

update EMP
set DEPTNO = (select DEPTNO from EMP where EMPNO = 7369)
where EMPNO = 7698

-- 5. EMP 테이블에 아래와 같은 데이터를 삽입하라.
-- 사원번호: 9900, 사원이름: JACKSON, 직업: SALESMAN, 부서번호: 10

insert into EMP(EMPNO, ENAME, JOB, DEPTNO) values (9900,'JACKSON','SALESMAN',10)

-- 6. INSERT...SELECT 문을 이용하여 직업이 'SALESMAN'인
-- 사원의 사원번호, 이름, 직업을 EMP 테이블에 입력하라.

select * from EMP

insert EMP(EMPNO,ENAME,JOB)
select EMPNO,ENAME,JOB from EMP where JOB = 'salesman'

-- 7. 사원번호가 7369번인 사원과 같은 직업을 가진 사원들의
-- 월급을 7698번 사원의 월급으로 수정하라.


update EMP
set SAL = (select SAL from EMP where EMPNO = 7369)
where JOB = (select JOB from EMP where EMPNO = 7369)


-- 8. SCOTT과 같은 직업을 가진 사원을 모두 삭제하라.

delete from EMP
where JOB = (select JOB from EMP where ENAME = 'SCOTT')

-- 9. 'SCOTT'의 월급을 'SMITH'의 월급과 같게 수정하라.

update EMP
set SAL = (select SAL from EMP where ENAME = 'SMITH')
where ename = 'SCOTT'

-- 10. 'ALLEN'의 직업을 'SCOTT'의 직업과 같게 수정하라.
select * from EMP

update EMP
set JOB = (select JOB from EMP where ENAME = 'SCOTT')
where ENAME = 'ALLEN'

-- 11. 사원번호가 7499번인 사원과 같은 직업을 가진 사원들의
-- 입사일을 오늘날짜로 변경하라.
update EMP
set HIREDATE = GETDATE()
where JOB = (select JOB from EMP where EMPNO = 7499)

-- 12. SCOTT과 같은 직업을 가진 사원들의 월급을 0으로 수정하라.

update EMP
set SAL = 0
where JOB = (select JOB from EMP where ENAME = 'SCOTT')

'개발 > SQL' 카테고리의 다른 글

MS-SQL 데이터베이스 만들기 [ create table , create database ]  (0) 2011.05.18
MS-SQL 문제 50문  (0) 2011.05.18
MS - SQL 수정문법 [ insert into , insert ~ select ]  (0) 2011.05.18
MS-SQL 조건문  (0) 2011.05.18
MS-SQL 기본문제 9문  (0) 2011.05.18

/*
자기 부서의 평균월급보다 월급이 많은 사원의 이름, 월급, 부서번호, 부서 평균월급출력.
*/

select job , AVG(sal) as [평균연봉] , DEPTNO
from emp
where job != 'clerk'
group by job

select ENAME, SAL, e.DEPTNO, sample.avgsal
from emp e, (select DEPTNO, AVG(SAL) as [avgsal] from emp group by DEPTNO) sample
where e.DEPTNO = sample.DEPTNO
 and e.SAL > sample.avgsal
 
 
select  ENAME,SAL
from EMP
where SAL > ( select avg(SAL) from EMP )

exec sp_help emp

--insert into 테이블에값 입력

insert into EMP values(9999,'tom','salesman',7902,GETDATE(),800,25,30)

select *
from emp

insert EMP(EMPNO,ENAME) values(8888,'bill')

--update 테이블에 입력되어있는 값을 수정
update EMP
set SAL = 7800
where ENAME = 'tom'

--delete
delete from EMP
where ENAME in('tom','bill')

/*
insert ~ select
기존의 테이블에서 레코드를 가져다가
기존의 테이블에 입력시키는 것.

select ~ into
기존의 테이블에서 레코드를 가져다가
새로운 테이블을 만들면서 입력시키는 것
*/


--select ~ into
select empno, ename, DEPTNO into t_table
from emp
where DEPTNO = 10


select * from t_table

insert t_table select empno, ENAME, DEPTNO from EMP where DEPTNO = 20

'개발 > SQL' 카테고리의 다른 글

MS-SQL 문제 50문  (0) 2011.05.18
MS-SQL 문제 12문  (0) 2011.05.18
MS-SQL 조건문  (0) 2011.05.18
MS-SQL 기본문제 9문  (0) 2011.05.18
MS-SQL 정렬문법 [order by , top ]  (0) 2011.05.18


--allen보다 월급이 높은사람의 이름과 월급 출력

select SAL
from emp
where ENAME = 'allen'

select ENAME, SAL
from emp
where SAL >=( select SAL from emp where ENAME = 'allen' );

select ENAME, SAL
from EMP
where SAL in(( select SAL from emp where JOB = 'salesman' ))

select ENAME, SAL
from EMP
where SAL > ( select MAX(SAL)  from EMP  where DEPTNO = 20);

--all 연산자 조건문에서 안에들어있는 모든값을 포함.
select ENAME, SAL
from EMP
where SAL > all( select SAL  from EMP  where DEPTNO = 20);

--any 연산자조건 안에들어있는 값중 하나라도 만족하는경우
select ENAME, DEPTNO
from EMP
where deptno = any(select DEPTNO from EMP where ename like '%T%')

'개발 > SQL' 카테고리의 다른 글

MS-SQL 문제 12문  (0) 2011.05.18
MS - SQL 수정문법 [ insert into , insert ~ select ]  (0) 2011.05.18
MS-SQL 기본문제 9문  (0) 2011.05.18
MS-SQL 정렬문법 [order by , top ]  (0) 2011.05.18
MS-SQL 기초문제  (0) 2011.05.18

+ Recent posts