목록Study/Oracle (14)
쥬로그
* 데이터사전은 메타데이터를 저장하는 읽기 전용 DB이다. * DML은 따로 COMMIT해줘야 하지만 DDL은 자동으로 COMMIT되어 DB에 반영된다. * 메타데이터 - 데이터를 위한 데이터 - DB, 테이블의 스키마에 대한 정보를 저장하는 테이블 - DB명 테이블명, 컬럼명, 사용자명, ... ♣ 데이터 사전 (Data Dictionary) - 데이터베이스의 정보 저장 - 시스템 카탈로그(System Catalog)라고도 함 - 일반적으로 읽기전용정보(Read-only) ♣ 데이터 디렉토리 (Data Directory) - DBMS의 모든 데이터가 저장되는 디텍토리(폴더) - DB 저장, 상태 및 로그 저장 > TAB : 테이블의 약자 : 접속한 사용자가 소유한 테이블의 ..
* index는 데이터를 빠르게 찾기 위해 사용하는 보조 자료구조이다. * index는 B-트리 외에도 R-트리, 해시 등 다양한 인덱스가 있다. * INDEX - 검색을 빠르게 하기 위한 자료구조(주로 B-트리 계열) : 레코드 추가/수정/삭제 시 해당 컬럼으로 다시 정렬한 후 검색에 필요한 값들을 미리 계싼해 검색 속도를 높인 (trade off) - 기본키는 자동으로 인덱스 설정 - 인덱스 ON/OFF를 통해 검색 속도 차이 체감 (대량의 데이터일수록 큰 영향) - 조인(JOIN)시에도 영향을 줌 - 빠른 검색을 위해서는 데이터가 반드시 정렬(Sorting)되어 있어야 한다. - 정렬되어 있지 않다면 평균적으로 전체 데이터의 절반 필요 - 정렬되어 있을 경우 데이터를 빠른 시간 안에 찾을 수 있음 ..
* 사용자를 추가하는 데 사용하는 DDL문은 CREATE USER이다. * 오라클에서는 사용자별로 권한을 설정하는 것 외에 역할을 정의하고 역할별로 권한 설정을 하고, 사용자별로 역할을 부여할 수 있다. * 권한 설정 ♣ 접근 권한(Access Control) 설정 - DCL (Data Control Language) : 권한 및 역할 설정 언어 : 특정 테이블에 대한 CRUD(Create/Retreive/Update/Delete) 권한 -> 권한 부여(GRANT) / 권한 회수(REVOKE)로 나뉨 -> 주로 DBA(DataBase Administrator)가 설정 ♣ 권한 - 시스템권한 (System. Privileges) - 객체권한 (Object Privileges)..
* ALTER TABLE / DATABASE 는 이미 생성된 테이블이나 DB의 스키마를 변경할 때 사용한다. * 테이블을 삭제하려면 DROP TABLE을 사용한다. 테이블은 놔두고 데이터만 삭제하려면 TRUNCATE TABLE을 사용한다. * 스키마 수정 - 이미 생성된 스키마에 대해 수정할 경우 사용한다. > 테이블 컬럼 추가/삭제/수정 ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 ALTER TABLE 테이블명 DROP COLUMN 컬럼명 ALTER TABLE 테이블명 CHANGE 컬럼명 new_컬럼명 데이터타입 (컬럼명 변경) ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 (컬럼 타입 변경) > 기본키 제약 조건 추가/삭제 ALTER TABLE 테이..
* 정규화가 필요한 이유는 동일한 정보가 여러 군데 나오는 것을 막고 데이터의 무결성을 유지하기 위해서다. * 외래 키로 연결되어 있는 때, 레코드를 추가하는 경우 원래 테이블에 레코드가 이미 존재해야 한다. 삭제할 경우에는 참조되는 원래 테이블의 레코드가 아무도 자신을 참조하지 않아야 삭제 가능하다. 즉, 외래 키로 연결되어 있는 테이블의 경우 삽입/삭제 순서를 신중하게 해야한다. * 중복정보 제거 - 테이블 간의 정보는 중복되지 않아야 한다. : 동일한 정보가 여러 군데 테이블에 저장되어 있으면 수정에 대한 부담과 무결성(Integrity) 유지가 쉽지 않다. : 하나의 정보는 한 군데만 나오도록 한다. - 이를 위해 정규화(Normalization)을 통해..
* 스키마는 테이믈/DB(데이터베이스)의 구조나 데이터타입을 정의한다. * 제약 조건은 레코드를 추가할 때 외에도 수정/삭제할 때도 적용된다. * 자료형 (Data Types) ♧ NUMBER (a, b) - 숫자를 다루는 데 사용하는 데이터 타입 - number(10, 2) 소수점 기준으로 10자리, 소수점 이하 2자리 - 다른 시스템/언어와의 호환성을 위해 int/float도 허용 ♧ 문자열 - CHAR (size): 고정 길이 문자열 - VARCHAR2 (size): 가변 길이 문자열 ♧ Long - 2GB 이내의 문자열을 처리하는 데이터 타입 ♧ Date - 날짜와 관련한 데이터를 저장하는 데이터 타입 ♧ CLOB (Character Large Obj..
* 서브쿼리는 쿼리문 안에 또 다른 쿼리문이 들어있는 형태를 말한다. 서브쿼리문은 보통 ( )로 감싼다. * MySQL과는 달리 오라클은 합집합(UNION), 교집합(INTERSECT), 차집합(MINUS) 연산을 지원한다. * 서브쿼리 - 쿼리문 내에 또 다른 쿼리문이 있는 형태 - 서브쿼리는 메인쿼리에 포함되는 관계 - () 를 사용해 감싸는 형태 - ORDER BY를 사용하지 못한다. - 사용 가능한 위치 -> SELECT / FROM / WHERE / HAVING / ORDER BY VALUES(INSERT) / SET(UPDATE)... - 단일행(Single Row) 서브쿼리 : 결과가 레코드 하나인 서브쿼리 : 일반 연산자(=, >, 1. select count(*..
* LIKE 검색에서 사용하는 와일드 카드는 %와 _가 있다. %는 0자 이상 여러 자에 매칭되는 와일드카드 문자이고, _는 1자에 대응하는 와일드카드 문자이다. * HAVING 절을 사용해서 GROUP BY한 결과물에 조건을 줘서 필터링해 표시한다. * LIKE 검색 - 정확한 키워드를 모를 경우 일부만으로 검색하는 방법 - 와일드카드 (Wildcard) %: 0 ~ n글자 _: 1 글자 - 와일드카드를 사용하여 검색 select 컬럼명 from 테이블명 where 컬럼명 like 패턴 ! LIKE 검색은 매칭 과정에 DBMS 부담이 크기 때문에 OR와 같은 논리조건자를 중복해서 사용하지 않는 게 좋음 ex) select * from 테..
* SELECT INTO(CREATE TABLE SELECT ... INTO)는 쿼리 결과를 테이블로 생성하고 싶을 때 사용한다. * INSERT INTO SELECT는 쿼리 결과를 기존의 테이블에 추가하고 싶을 때 사용한다. * SELECT INTO - 쿼리 결과를 새 테이블로 만든다. - 기존에 존재하지 않는 테이블이 새로 생성된다. (일종의 뷰와 동일한 효과) - 오라클에서는 아래와 같이 선언한다. (뷰와 차이점) CREATE TABLE 테이블명 AS SELECT * FROM 테이블명 √ SQL은 비절차적 언어로 에러 시 튜닝 처리 ex) 업무가 SALESMAN인 직원만 찾아서 따로 emp_salesman이라는 테이블을 생성해서 넣으시..
* 오라클은 표준 조인 외에 크로스조인, 내추럴조인, 외부조인(=), non-equal 조인, using과 같은 자체적으로 지원하는 조인형식이 있다. * 별명(ALIAS)는 테이블의 컬럼명을 쿼리결과에 노출하고 싶지 않거나 알기 쉽게 표시하고 싶을 때 사용한다. * JOIN의 개념, 종류 - 서로 다른 테이블을 공통 컬럼을 기준으로 합치는(결합하는) 테이블 단위 연산 - 조인의 결과 테이블은 이전 테이블의 컬럼 수의 합과 같다. - 조인 시 서로 다른 테이블에 같은 컬럼명이 존재하면 구분을 위해 테이블명.컬럼명 으로 표시 select * from 테이블 1 join 테이블2 on 테이블 1.컬럼명 = 테이블2.컬럼명 ex) emp 테이블과 dept 테이블을 조인하시오. (emp.deptno = dept...