alter table 테이블명 add 컬럼명 데이터
ex) alter table EMP add HP varchar(20);
EMP
라는 테이블에 컬럼HP
를 추가할 경우
alter table 테이블명 modify 컬럼명 데이터
alter table 테이블명 Rename column 컬럼 to 컬럼
ex) alter table EMP modify(job varchar2(20));
EMP
라는 테이블에JOB
의 테이터타입을 수정할 경우
ex) alter table EMP rename column job to emp_job
EMP
테이블의JOB
의 컬럼명을emp_job
으로 바꿔줌
update 테이블명 set 컬럼 =' ' where 컬럼 =' ';
ex) update EMP set loc = 'Seoul' where deptno =40;
EMP
테이블의deptno
가 40인 지역을Seoul
로 수정해준다
drop table 테이블명;
ex) drop table EMP
delete from 테이블명 where 컬럼 = ' '
ex) delete from EMP where job = 'SALESMAN'
job
이salesman
의 직업을 가진 데이터를 삭제한다
EMP에 속한 사원 중 50번 부서에서 근무하는 사원들의 평균 급여보다 많은 급여를 받고 있는 사원들을 70번 부서로 옮기는 SQL문을 작성하세요
답안) update emp set deptno = 70 where sal > (select avg(sal) from emp where deptno =50 group by deptno);
해설) 테이블의 평균 급여를 먼저 검색하여 서브쿼리문으로 만들어주고
(select avg(sal) from emp where deptno =50 group by deptno)
그 평균 급여보다 많은 급여를 받는 것을 조건으로 테이블을 70번 부서로 수정하여 옮겨준다
EMP에 속한 사원 중 60번 부서의 사원 중에 입사일이 가장 빠른 사원보다 늦게 입사한 사원의 급여를 10% 인상하고 80번 부서로 옮기는 SQL문을 작성하세요
답안) update emp set deptno = 80 , sal = sal*1.1 where hiredate >
(select min(hiredate) from emp where deptno = 60 group by deptno);
해설) 부서 번호가 60번 사원 중 입사일 가장 빠른 입사일을 구하여 서브쿼리로 만들고
(select min(hiredate) from emp where deptno = 60 group by deptno)
그 입사일보다 늦게 입사하게 부등호를 표시해 deptno = 80 , sal = sal*1.1 로 수정해준다
EMP에 속한 사원 중 급여 등급이 5인 사원을 삭제하는 SQL문을 작성하세요
답안) delete from emp where empno in
(select empno from emp, salgrade where sal between losal and hisal and grade = 5);
해설) EMP 테이블의 급여 5등급을 salgrade 테이블로 사원번호를 구해주고 서브쿼리를 만들어준다
그리고 기타연산자 "in"을 사용하여 delete를 사용하여 삭제해준다