전체 글 (73) 썸네일형 리스트형 01. 제약 조건 종류 제약 조건이란? 오라클에서 사용하는 제약 조건은 테이블의 특정 열에 지정한다. 제약 조건을 지정한 열에 제약 조건에 부합하지 않는 데이터를 저장할 수 없다. 제약 조건 지정 방식에 따라 기존 데이터의 수정이나 삭제 가능 여부도 영향을 받는다. 제약 조건의 종류 1) NOT NULL ; 지정한 열에 NULL을 허용하지 않는다. NULL을 제외한 데이터의 중복은 허용된다. 2) UNIQUE ; 지정한 열이 유일한 값을 가져야 한다. 중복이 불가능하지만 NULL은 허용한다. 3) PRIMARY KEY : 지정한 열이 유일한 값이면서 NULL을 허용하지 않는다. 테이블에 하나만 지정 가능하다. 4) FOREIGN KEY : 다른 테이블의 열을 참조하여 존재하는 값만 입력할 수 있다. 5) CHECK : 설정한 .. 05. 공식 별칭을 지정하는 동의어 동의어란? 동의어(synonym)는 테이블, 뷰, 시퀀스 등 객체 이름 대신 사용할 수 있는 다른 이름을 부여하는 객체이다. 주로 테이블 이름이 너무 길어 사용이 불편할 때 좀더 간단하고 짧은 이름을 하나 더 만들어 주기 위해 사용한다. 동의어를 만들기 위해서는 CREATE문을 사용한다. CREATE [PUBLIC] SYNONYM 동의어 이름 FOR 사용자. 객체이름 ; - PUBLIC : 동의어를 데이터베이스 내 모든 사용자가 사용할 수 있도록 설정. 생략시 동의어를 생성한 사용자만 사용가능. PUBLIC으로 생성되어도 본래 객체의 사용 권한이 없으면 사용 불가능(선택) - 동의어 이름 : 생성할 동의어의 이름 (필수) - 사용자. : 생성할 동의어의 본래 객체 소유자를 지정한다. 생략시 현재 접속한 .. 04. 규칙에 따라 순번을 생성하는 시퀀스 시퀀스란? 시퀀스(sequence)는 오라클 데이터베이스에서 특정 규칙에 맞는 연속 숫자를 생성하는 객체이다. 번호를 사용해야 하는 사용자에게 계속 다음 번호를 만들어 주는 역할을 한다. 단지 연속하는 새로운 번호를 만드는 일이라면 MAX함수에 1을 더한 값을 사용해도 상관없을 것이다. 실제로 연속하는 숫자로 이루어진 웹 서비스의 새로운 게시판 번호나 상품 주문 번호 등을 생성할때 종종 생성하는 방식이다. SELECT MAX(번호) +1 FROM 게시판테이블; 하지만 이 방식은 테이블 데이터가 많아질수록 가장 큰 데이터를 찾고 새로운 번호를 계산하는 시간이 함께 늘어나기때문에 아쉬운 부분이 있고, 동시에 여러 곳에서 새로운 번호를 요구했을 경우 SELECT문의 결과 값이 같게 나와 번호가 중복될 수도 있.. 03. 테이블처럼 사용하는 뷰 뷰란? 흔히 가상테이블(virtual table)로 부르는 뷰(view)는 하나 이상의 테이블을 조회하는 SELECT문을 저장한 객체를 뜻한다. SELECT문을 저장하기 때문에 물리적 데이터를 따로 저장하지는 않는다. 따라서 뷰를 SELECT문의 FROM절에 사용하면 특정 테이블을 조회하는 것과 같은 효과를 얻을 수 있다. 뷰는 서브쿼리와 비슷해 보인다. [오류메세지에 자주 등장하던 '테이블 또는 뷰가 존재하지 않습니다.' 의 뷰가 이것이다!] 뷰의 사용 목적 뷰와 서브쿼리를 비교한 후 '서브쿼리가 있는데 뷰를 써야하나?' 는 생각이 들수도 있지만, 뷰는 편리성과 보안성의 목적으로 사용한다. 1) 편리성 = 실무에서 사용하는 SELECT문은 공부하는 예제와 같이 짧게 몇줄로 이루어진 것도 있지만 길게는 .. 02. 더 빠른 검색을 위한 인덱스 인덱스란? 색인이라는 뜻의 인덱스(INDEX)는 책 내용을 찾는 것과 마찬가지로 오라클 데이터베이스에서 데이터 검색 성능의 향상을 위해 테이블 열에 사용하는 객체를 뜻한다. 테이블에 보관된 특정 행 데이터의 주소, 즉 위치 정보를 책 페이지처럼 목록으로 만들어 놓은 것이다. 인덱스는 테이블 열을 여러가지 분석을 통해 선정하여 설정할 수 있다. 인덱스 사용 여부에 따라 데이터 검색 방식을 Table Full Scan, Index Scan으로 구분한다. 테이블 데이터를 처음부터 끝까지 검색하여 원하는 데이터를 찾는 방식은 Table Full Scan, 인덱스를 통해 데이터를 찾는 방식은 Index Scan이라고 한다. 인덱스도 오라클 데이터베이스 객체이므로 소유사용자와 사용권한이 존재한다. SCOTT계정으로.. 01. 데이터베이스를 위한 데이터를 저장한 데이터 사전 데이터사전이란? 오라클 데이터베이스 테이블은 사용자테이블과 데이터사전으로 나뉜다. 사용자 테이블은 데이터베이스를 통해 관리할 데이터를 저장하는 테이블을 뜻한다. 데이터 사전은 데이터베이스를 구성하고 운영하는 데 필요한 모든 정보를 저장하는 특수한 테이블로 데이터 베이스가 생성되는 시점에 자동으로 만들어진다. 데이터 사전에는 데이터베이스 메모리, 성능, 사용자, 권한, 객체 등 오라클 데이터베이스 운영에 중요한 데이터가 보관되어 있다. 만약 이 데이터에 문제가 발생한다면 오라클 데이터베이스 사용이 불가능해질 수도 있다. 따라서 오라클 데이터베이스는 사용자가 데이터 사전 정보에 직접 접근하거나 작업하는것을 허용하지 않는다. 대신 데이터 사전 뷰를 제공하여 SELECT 문으로 정보 열람을 할 수 있게 해 두었.. 04. 기타 명령어 테이블의 이름을 변경할때 사용하는 RENAME RENAME 변경할 테이블이름 TO 바꿀이름 ; 테이블의 데이터를 삭제하는 TRUNCATE 특정 테이블의 모든 데이터를 삭제한다. 데이터만 삭제하므로 테이블 구조에는 영향을 주지 않는다. TRUNCATE TABLE 테이블이름 >> DELETE와 유사하지만 ROLLBACK이 되지않는다는 점이 다르다. 삭제이후 복구할 수 없으므로 주의하자. 테이블을 삭제하는 DROP DROP TABLE 테이블이름 : 데이터베이스 객체를 삭제하는 데 사용한다. 테이블이 삭제되므로 테이블에 저장된 데이터도 모두 삭제된다. ROLLBACK으로 테이블 삭제 수행을 취소할 수 없지만, FLASHBACK 기능을 사용하면 복구할 수는 있다. FLASHBACK기능은 나중에 따로 알아보도록 하자. 03. 테이블을 변경하는 ALTER ALTER명령어는 이미 생성된 오라클 데이터베이스 객체를 변경할 때 사용한다. 테이블에 새 열을 추가 또는 삭제하거나 열의 자료형 또는 길이를 변경하는 등 테이블 구조 변경과 관련된 기능을 수행한다. 테이블에 열 추가하는 ADD ALTER TABEL명령어와 ADD키워드, 추가할 열 이름과 자료형을 명시하면 테이블에 새 열을 추가할 수 있다. 열 이름을 변경하는 RENAME ALTER명령어에 RENAME키워드를 사용하면 테이블의 열 이름을 변경할 수 있다. ALTER TABLE 테이블이름 RENAME COLUMN 변경할열이름 TO 바꿀이름 열의 자료형을 변경하는 MODIFY 테이블의 특정열의 자료형이나 길이를 변경할때 사용한다.길이를 변경하는 것은 테이블에 저장된 데이터에 문제가 생기지 않는 범위 내에서만.. 이전 1 2 3 4 5 6 7 ··· 10 다음