본문 바로가기

전체 글

(58)
25. 기타 오브젝트(3) [ WITH GRANT/ADMIN OPTION ] - 중간관리자에게 일부 권한을 일임하여 중간관리자가 제3자에게 권한을 부여하게 할 수 있는 옵션 - GRANT로 부여 시 옵션 전달 - WITH GRANT OPTION은 오브젝트 권한에 대해, WITH ADMIN OPTION은 시스템권한 및 롤에 대해 작업 시 사용 ** 정리) with grant option(테이블권한) : 직접회수 불가, 동시회수 가능 with admin option(시스템권한) : 직접회수 가능, 동시회수 불가 [ 실습 - 중간관리자를 통한 권한 관리 ] DBA : SYSTEM 중간관리자 : ITWILL 업무계정 : HONG 0. HONG 계정 생성(SYSTEM 계정에서 수행) create user hong identified by ..
24. 기타 오브젝트(2) 1. SYNONYM- 공식적으로 부여하는 테이블 별칭 - 보통 스키마.테이블명으로 조회하는 대신 테이블명만으로 조회되도록 설정하기 위해 사용                                       1) 생성 create [or replace] [public] synonym 별칭 for 원본이름; ** public : 시노님 생성자(소유자) 외에도 공용으로 사용가능한 별칭             public 생략 시에는 시노님 소유자만 별칭 사용 가능  2) 삭제  drop [public] synonym 시노님명; *주의)public synonym은 반드시 drop public synonym 명령어로 삭제!! [ 실습 - 시노님을 통한 테이블 접근 ] scott 계정에 dba 권한 부여) sys..
23. 기타 오브젝트(1) 1. 뷰(view) - 테이블처럼 조회 가능한 객체 - 물리적으로 실제 저장된 공간이 있지는 x - create view 권한을 가진자만이 생성 가능 1) 생성 create [or replace] view 뷰이름 as select ....; 2) 삭제 drop view 뷰이름; 3) 조회 select *   from dba_views  where owner = 'SCOTT'; ** DBA_VIEW 뷰를 사용하여 SYSTEM 뷰 찾을 수 있음 select *   from dba_views  where view_name like 'DBA_%TAB%'; ** dictionary view 종류 1) static dictionary view : 객체 현황 조회 - dba_XXX : 전체 객체 - all_XXX :..
22. 테이블의 내용 추가, 수정, 삭제 : DML(2) [ dml ] 1. insert 2. update ** 문법 단일 컬럼 수정) update 테이블명    set 수정할컬럼 = 수정할값         -- 서브쿼리 사용 가능  where 수정할조건;                        -- 서브쿼리 사용 가능  다중 컬럼 수정) update 테이블명    set 수정할컬럼1 = 수정할값1, 수정할컬럼2 = 수정할값2, ...  where 수정할조건;               update 테이블명    set (수정할컬럼1, 수정할컬럼2) = (select 수정할값1, 수정할값2                                from 테이블명                                 ...)  where 수정할조건;     ..
21. 테이블의 내용 추가, 수정, 삭제 : DML(1) [ DML ] - 데이터 수정 언어(구조 변경) - TCL(COMMIT, ROLLBACK)로 트랜잭션을 종료해야 함 1. INSERT - 행 단위 삽입 - ORACLE에서는 일반적으로 INSERT로 다중행 입력 불가(단, 서브쿼리 사용 시 동시에 입력 가능)  ** 문법 INSERT INTO 테이블명 VALUES(값1, 값2, ....);                   -- 테이블의 모든 컬럼의 값을 입력 시  INSERT INTO 테이블명(컬럼1, 컬럼2, ...) VALUES(값1, 값2, ....);   -- 테이블의 일부 컬럼의 값을 입력 시                                                             -- NOT NULL 선언된 컬럼은 반드시 입력..
20. 테이블 구조 생성, 변경, 제거 : DDL (2) 1. with문- 쿼리 내 임시테이블을 만드는 문법(해당 쿼리에서만 유효, 실제 저장되지는 X) - 가독성을 높이기 위해 사용 - select 문에서 주로 사용(dml에서도 사용 가능) ** 문법 with 임시테이블명(컬럼1, 컬럼2, ...) as select ....;      -- 저장하고자 하는 데이터 형태 정의 sql 문장...         -- 임시테이블을 사용하여 처리할 sql문 전달 예제) with std_test(name, grade, height) as (select name, grade, height   from student  where grade =4)     select * from std_test; ;  예제) student; exam_01을 조인하여 학번, 이름, 학년, 시..
19. 테이블 구조 생성, 변경, 제거 : DDL (1) [ SQL 종류 ] 1. DDL(Data Definition language) - 자동확정(auto commit) 1) CREATE : 객체(테이블) 생성 2) DROP : 객체(테이블) 삭제(구조를 삭제 -> 아예 없어짐) 3) ALTER : 객체(테이블) 변경(컬럼추가/컬럼삭제/데이터타입변경/사이즈변경,...) 4) TRUNCATE : 구조는 남기고 전체 데이터를 삭제(자동 저장됨, rollback 불가) 2. DML(Data Manipulation language) - rollback 또는 commit을 사용하여 명령어 수행 완료 처리 필수! 1) INSERT : 한 행씩 입력 2) DELETE : 한 행씩 삭제 3) UPDATE : 셀 단위로 데이터 변경 4) MERGE : 특정 테이블을 참고하여..
18. 서브쿼리(2) 1. 인라인 뷰 - from절 사용 서브쿼리 - 하나의 테이블처럼 사용 예제) emp에서 최소 급여자 출력 sol)select *   from emp e, (select deptno, min(sal) as min_sal                  from emp                 group by deptno) i  where e.deptno = i.deptno    and e.sal = i.min_sal;   예제) PROFESSOR 에서 학과별 평균급여보다 낮은 급여를 받는 교수의 이름, 학과명, 급여를      각 교수의 소속 학과의 평균급여와 함께 출력 sol)select deptno, avg(pay) as avg_pay    from professor  group by deptno;..