728x90
140623
# 점심과제 문제293. adams 라는 유저를 생성하고 adams 라는 유저에게 적절한 권한을 주고 adams 라는 유저로 접속해서 아래 테이블을 생성하시오. ename에 unique 제약을 걸고 sal에 0~7000 사이의 데이터만 입력되도록 check 제약을 걸고 제약에 위반된 데이터를 입력해서 입력이 안 되는 insert 문장 작성하시오 테이블명 : emp500 컬럼명 empno, ename, sal #scott 창에서 CREATE USER adams IDENTIFIED BY tiger; GRANT CONNECT TO adams; GRANT UNLIMITED TABLESPACE TO adams; GRANT CREATE TABLE TO adams; #adams 창에서 create table emp500 (empno number(10), ename varchar(10), sal number(10)); alter table emp500 add constraint emp_sal_ck check(sal between 0 and 7000); alter table emp500 add constraint emp_ename_un unique(ename); insert into emp500(sal) values(8000); insert into emp500(sal) * ERROR at line 1: ORA-02290: check constraint (ADAMS.EMP_SAL_CK) violated |
#마무리 과제 마지막문제1. 부서 테이블에 토탈월급(sumsal) 컬럼을 추가하고 상호관련 서브쿼리 update 문을 이용해서 부서 테이블의 sumsal 을 해당 부서번호의 토탈월급으로 값을 갱신하시오 ALTER TABLE DEPT ADD sumsal NUMBER(10); SELECT * FROM DEPT; UPDATE DEPT d SET sumsal = (SELECT SUM(sal) FROM EMP e WHERE e.deptno=d.deptno); 마지막문제2. 사원 테이블에 아래의 제약을 각각 거시오 empno – primary key ename – unique sal – check(0~8000) deptno – not null 제약을 거시오 위에서 생성한 제약을 모두 한꺼번에 삭제하는 스크립트를 data dictionary를 이용해서 생성하시오 ALTER TABLE EMP ADD CONSTRAINT emp_empno_pk PRIMARY KEY(empno); ALTER TABLE EMP ADD CONSTRAINT emp_ename_un UNIQUE(ename); ALTER TABLE EMP ADD CONSTRAINT emp_sal_ck check(sal BETWEEN 0 AND 8000); ALTER TABLE EMP MODIFY sal CONSTRAINT emp_deptno_nn NOT NULL; SELECT 'ALTER TABLE EMP drop CONSTRAINT ' || constraint_name || ';' FROM user_constraints; |
'빅데이터과정 > SQL ' 카테고리의 다른 글
#7_140623_DCL(Data Control Language) (0) | 2014.07.14 |
---|---|
#7_140623_CORRELATED SUBQUERY (0) | 2014.07.14 |
#7_140623_EXISTS (0) | 2014.07.14 |
#7_140623_PAIRWISE (0) | 2014.07.14 |
#7_140623_ALTER TABLE (0) | 2014.07.14 |