목록SQL (8)
개발자꿈나무
1. SQL문을 사용할 때 인덱스 컬럼을 변형하게 되면 데이터베이스가 인덱스를 사용하지 않는 경우가 발생 SELECT * FROM table WHERE age + 10 = 30 //인덱스 사용불가 SELECT * FROM table WHERE abe = 20 + 10 //인덱스 사용가능 2. NULL조건을 사용하면 FULL TABLE SCAN 발생 SELECT * FROM table WHERE age IS NULL //인덱스 사용불가 SELECT * FROM table WHERE age > 0 //인덱스 사용가능 3. NOT을 사용하게 되면 일반적으로 NOT에 사용된 값이 아닌 데이터일 비율이 높아 인덱스를 타지 않는 경우 발생 SELECT * FROM table WHERE age != 30 //인덱스 ..
옵티마이저란 : 사용자가 실행한 SQL을 해석하고, 데이터 추출을 위한 실행계획을 수립하는 프로세스 옵티마이저 종류(오라클) ; 다른 DBMS들은 CBO만 제공 - RBO : 초창기 버전부터 제공함 - CBO : v10g부터 기본 설정으로 적용되고 있음 RBO(Rule Based Optimizer) - 기본적으로 15개의 순위가 매겨진 규칙 존재! -> 이를 기초로 실행계획 수립 - SQL에 대한 실행계획이 하나 이상일 경우 순위가 높은 규칙을 이용 - 수립될 계획 예측이 쉬우므로 개발자가 원하는대로 처리하기에 유용 CBO(Cost Based Optimizer) - 대상 row들을 처리하는데 필요한 자원 사용을 최소화해서 궁극적으로 데이터를 빨리 처리하는 데 목표 - 비용 산정 요소 : 각종 통계 정보,..
NOT NULL : NULL 허용하지 않음, NULL을 제외한 데이터 중복은 허용 UNIQUE : 지정한 열이 유일한 값을 가져야함. 중복 불가. NULL은 중복 가능 PRIMARY KEY : 유일한 값이면서 NULL 허용하지 않음, 테이블에 하나만 지정 가능 FOREIGN KEY : 다른 테이블의 열을 참조하여 존재하는 값만 입력 가능 CHECK : 설정한 조건식을 만족하는 데이터만 입력 가능 -- 제약 조건은 데이터 무결성을 보장하기 위해 제공됨 종류 설명 영역 무결성 (domain integrity) 열에 저장되는 값의 적정 여부를 확인. 자료형, 적절한 형식의 데이터, NULL 여부 값은 정해 놓은 범위를 만족하는 데이터임을 규정 개체 무결성 (entity integrity) 테이블 데이터를 유일..
동의어 : 테이블, 뷰, 시퀀스 등 객체 이름 대신 사용할 수 있는 다른 이름을 부여하는 객체 CREATE [PUBLIC] SYNONYM 동의어 이름 FOR [사용자.][객체 이름]; create synonym E FOR EMP; SELECT * FROM E; DROP SYNONYM E; -- 이것도 역시 생성이 안된다면 system 계정에서 권한을 받아야한다.
시퀀스 : 오라클 데이터베이스에서 특정 규칙에 맞는 열 속 숫자를 생성하는 객체 시퀀스 생성부터 삭제까지 CREAT SEQUENCE [SEQUENCE NAME] [INCREMENT BY N]-- 얼마씩 증가할건지. 기본값 1 [START WITH N]-- 시퀀스 시작 값. 기본값 1 [MAXVALUE N || MAXVALUE]-- 최댓값 [MINVALUE N || MINVALUE]-- 최솟값 [CYCLE || NOCYCLE]-- 최댓값에 도달했을 경우 nocycle이면 중단, 오류 발생. cycle이면 start with 값으로 변경 [CACHE N || NOCACHE]-- 생성할 번호를 미리 메모리에 할당해 놓은 수 지정. 기본값은 20 -- 시퀀스를 통해 삽입할 테이블 설정 INSERT INTO DE..