Oracle 143

2012.01.12 SQL 8일차(VIEW, 사용자권한제어, Role)

http://gyh214.tistory.com/65 : 인라인 뷰 연습예제입니다. VIEW(뷰) ; 가짜테이블 입니다. 아래에 자세한 설명 뷰는 기존에 생성된 테이블 또는 다른 뷰를 이용하여 생성되는 가상 테이블로 접근 할 수 있는 전체 데이터 중에서 일부만 접근 할 수 있도록 제한하기 위한 가상 테이블 기법이다. 전체 데이터 중 일부 사용자만 접근할 수 있도록 하여 데이터의 보안과 사용자의 편의성을 높이기 위해 사용한다. (* 한마디로 해당 view 로 쿼리가 들어오면 뷰를 생성할때 실행시켰던 서브쿼리들을 다시 실행시켜줍니다.) (결국 서브쿼리들을 묶어서 이름 지은것) 특징 : 데이터가 없습니다., 가상의 테이블이므로 실제 다른 테이블에게서 자료를 뺴와서 보여주기만 할 뿐 데이터가 없습니다. 주의사항 ..

Oracle/SQL 2012.01.12

인라인 뷰(Inline View)연습

•사원테이블(TEMP)에서 사원의 연봉이 동일한 직급을 가진 사원의 평균연봉보다 많이 받는 사원의 사번,이름,연봉을 출력하세요. select emp_id, emp_name, salary, temp.lev from ( select lev, avg(salary) avg_salary from temp group by lev ) v, temp where temp.lev = v.lev AND temp.salary > v.avg_salary; EMP_ID EMP_NAME SALARY LEV ---------- ---------- ---------- ---- 19960101 홍길동 72000000 과장 19930331 정도령 70000000 차장 19950303 이순신 56000000 대리 * temp,tdept 테..

Oracle/SQL 2012.01.12

2012.01.11 SQL 7일차(Index) ; 정의, 생성원리, 작동원리, 단점(index split 등등), 인덱스의 종류, 결합인덱스의 효율에 관한 이슈, REBUILD 등 INDEX의 전반적인 내용

인덱스(INDEX) 1. 정의 : 한마디로 데이터의 주소록, 데이터를 쉽고 빠르게 관리하려고 만듬 풀어서 설명하면 아파트에 누굴 찾고 싶은데 한집, 한집 , 한집 , 한집 , 한집 일일이 찾지 않고 관리실에 가서 해당되는 사람의 주소를 보고 바로 찾는 방법 (위 상황에서 관리실의 주소록 : INDEX) 2. 생성원리 FULL SCAN(LOCK) ---------> SORT (인덱스를 만드려면 정렬을 해야합니다.; 목록을 생성한 후 정렬을 해서 저장합니다.) 풀어서 설명하면, 도서관에 정리 안된 책장을 정리해서 목록을 만들고 싶은데, 일단 목록을 만드려면 무슨 책들이 있는지 알아야 합니다. 그래서 책들을 일일이 다 살펴봐야합니다(FULL SCAN) 그런데 중간에 누가 빌려가버리고, 다시 꽂아넣고 하면 헷갈..

Oracle/SQL 2012.01.12

2012.01.11 SQL 7일차(무결성제약조건 Constraint) ;N/N, PRIMARY KEY, FOREIGN KEY, UNIQUE KEY, CHECK, 관련 딕셔너리

무결성 제약조건(Constraint) ; 조건에 맞지않은 데이터는 입력되지 않게 하고, 맞는 데이터만 입력되게하는 제약조건 Constraint의 개념 : 데이터의 정확성과 일관성을 보장하기 위해 테이블 생성시에 각 칼럼에 대해 정의 하는 규칙을 의미 특징 1. 입력된 데이터가 조건에 맞나 검사해보기 떄문에 당연히 안쓴것보다는 속도가 저하 2. 규칙은 컬럼별로(컬럼별로 검문소를 하나씩 세운다고 생각하세요) 3. constraint 생성시 딕셔너리에 저장된다, (예 : user_constraints 테이블, user_cons_columns ) 4. 일시적으로 활성, 비활성할 수 있다. Constraint의 종류 1. NOT NULL : NULL이 아닌 값만 허용 2. Unique Key(고유키) : 중복되지..

Oracle/SQL 2012.01.11

2012.01.10 SQL 6일차(DELETE, Truncate, Drop들의 차이점, 데이터 딕셔너리)

자료를 삭제하는 명령어는 3가지가 있다. delete, truncate, drop 이 중 ELETE 는 DML명령어 TRUNCATE, DROP은 DDL명령어이다. 이것으로 인한 트랜젝션관리의 차이가 생길 수 있다. 이것 외에도 차이점이 존재하는데, 고객테이블이 존재하는데 100만행(건)의 자료가 있고, row칼럼은 데이터에 번호를 매긴 칼럼이다. (총 고객테이블의 용량은 100M) 만약에 DELETE FROM 고객 WHERE row BETWEEN 1 and 90만 하게 되면 남는 행은 10만건이 되게 된다. 하지만, 테이블 자체의 용량은 100M그대로이다. 우리 눈에는 지웠다고 표시되지만, 사실상 살아있다. TRUNCATE 고객; 의 경우에는 데이터가 다 지워지고, 용량도 지워지지만, 테이블의 구조는 살..

Oracle/SQL 2012.01.11

2012.01.10 SQL 6일차(DDL에 들어가는 데이터타입들에 대한 설명, DDL)

데이터 타입 숫자 number(p, s) p : 전체자리 수, s: 소수점 이하 예) number(5,3) : 12.345, number(3) : 218 ... number : 그냥 number만 쓰게 되면 총 38자리 양의정수 날짜 date 문자 char(n) : n 바이트 예약한 그대로 끝까지 사용하는 것(최대 2000bytes) varchar2(n) : n바이트 예약하고, 남는 자리가 있으면 반환(최대 4000bytes) varchar2의 단점 : 메모리반환 후에 update했는데 할당된 길이보다 길게 update해버렸을 때에는 곤란합니다. 이 경우에는 char는 별 문제가 되지 않습니다. (즉, update시에는 varchar2가 불리합니다.) (보통 insert를 update보다 훨씬 많이 수행..

Oracle/SQL 2012.01.11

2012.01.10 SQL 6일차(ITAS, CTAS, SQL 명령어들의 분류, 그 중 DML), 트렌젝션, 시퀀스

대량의 데이터를 다른 테이블로 옮기는 방법 2가지(ITAS, CTAS) ; 아이타스 , 씨타스 ITAS : Insert into Table name Select 예제 : insert into member2 select * from member; CTAS : Create Table name AS Select ... 예제 : create table member2 as select * from member; 차이점 : ITAS는 옮길 대상의 테이블이 존재하고, 데이터만 옮기고 싶을 때 사용하고, CTAS는 대상 테이블이 존재하지 않을 때, 사용합니다. ----------------------------------------------------------------------------- SQL 명령어들의 분..

Oracle/SQL 2012.01.10

2012.01.10 DDL 연습문제(CREATE TABLE, where절을 이용한 구조만 복사, 칼럼추가, 추가시 기본값, 칼럼삭제, 데이터타입변경, 테이블 이름변경

CREATE TABLE member 2 (userid varchar2(10), username varchar2(10), passwd varchar2(10), 3 idnum varchar2(10), phone number(13), address varchar2(20), regdate date, interest varchar2(15)); * 회원 테이블의 구조와 데이터 집합이 같은 member_second 테이블을 생성하세요 1 create table member_second 2 as select * 3 from member * 회원 테이블의 userid, username, passwd 칼럼만 복사하여 member_third 테이블을 생성하세요 SQL> create table member_third 2 as..

Oracle/SQL 2012.01.10