본문 바로가기

DB42

인덱스 관리(By Oracle) □ 인덱스 ○ 인덱스는 SQL 명령문의 처리 속도를 향상시키기 위해 칼럼에 대해 생성하는 객체 ○ 인덱스는 포인트를 이용하여 테이블에 저장된 데이터를 랜덤 액세스하기 위한 목적으로 사용 □ 인덱스의 종류 ○ 고유 인덱스 ○ 비고유 인덱스 ○ 단일 인덱스 ○ 결합 인덱스 ○ DESCENDING INDEX ○ 함수기반 인덱스 □ 인덱스 구조 □ 인덱스가 효율적인 경우 ○ WHERE 절이나 조인 조건절에서 자주 사용되는 칼럼 ○ 전체 데이터중에서 10~15% 이내의 데이터를 검색하는 경우 ○ 두개 이상의 칼럼이칼럼이WHERE절이나 조인 조건에서 자주 사용되는 경우 ○ 테이블에 저장된 데이터의 변경이 드문 경우 ○ 열에 널 값이 많이 포함된 경우경우, 열에 광범위한 값이 포함된경우 □ 고유 인덱스 : 유일한 값.. 2024. 1. 23.
데이터 무결성(By Oracle) □ 데이터 무결성 제약조건의 개념 ○ 데이터 무결성 제약조건의 개념 - 데이터의 정확성과 일관성을 보장 - 데이터의 정확성을 유지하여 다양한 종류의 업무규칙 고려한 예 → student 테이블에서 학년 데이터는 1,2,3,4 중의 하나의 값만 입력 → 모든 학번은 유일 → student 테이블의 지도교수 번호는 professor 테이블의 교수 번호중의 하나와 반드시 일치 □ 데이터 무결성 제약조건의 장점 ○ 테이블 생성시 무결성 제약조건을 정의 가능 ○ 테이블에 대해 정의, 데이터 딕셔너리에 저장되므로 응용 프로그램에서 입력된 모든 데이터에 대해 동일하게 적용 ○ 제약조건을 활성화, 비활성화 할 수 있는 융통성 □ 고유키 무결성 제약조건 ○ 한 테이블 내에서 칼럼이 동일한 값을 가질 수 없음을 정의하는 .. 2024. 1. 22.
테이블 관리(By Oracle) □ 테이블 생성은 테이블에 대한 구조를 정의하고, 데이터를 저장하기 위한 공간을 할당하는 과정 □ 테이블에 대한 구조 정의는 테이블을 구성하는 칼럼의 데이터 타입과 무결성 제약조건을 정의하는 과정 □ 테이블 이름 정의방법 ○ 문자(A-Z, a-z)로 시작, 30자 이내 ○ 문자(a-z,A-Z), 숫자(0-9), 특수문자(_,$,#) 사용 가능 ○ 대소문자 구별 없음, 소문자로 저장하려면 단일 인용부호 이용 ○ 동일 사용자가 소유한 다른 객체의 이름과 중복 불가 ○ 서로 다른 테이블에서 동일한 데이터를 저장하는 칼럼 이름은 가능하면 같은 이름을 사용 ○ 필요에 따라 언제든지 테이블 생성 가능 ○ 완성된 설계도에 따라 테이블을 생성 권장 CREATE [GLOBAL TEMPORARY] TABLE [schema.. 2024. 1. 22.
DML(Data Manpulation Language) ALTER SEQUENCE sequence [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE n | NOCACHE]; □ 테이블에 새로운 데이터를 입력하거나 기존 데이터를 수정 또는 삭제하기 위한 명령어 □ 종류 ○ INSERT : 새로운 데이터 입력 명령어 - INSERT INTO table [(column [, column…])] VALUES (value [, value…]); insert into student values(10110, '홍길동', 'hong', '1', '8501011143098', '85/01/01', '041)638-314', 170,.. 2024. 1. 22.
서브쿼리 (By Oracle) □ 하나의 SQL 명령문의 결과를 다른 SQL 명령문에 전달하기 위해 두개 이상의 SQL 명령문을 하나의 SQL명령문으로 연결처리하는 방법 □ 단일행 서브쿼리 ○ 서브쿼리에서 단 하나의 행만을 검색하여 메인쿼리에 반환하는 질의문 ○ 메인쿼리의 WHERE 절에서 서브쿼리의 결과와 비교할 경우에는 반드시 단일행 비교 연산자 중 하나만 사용해야함 - 단일 행 비교 연산자 : =, >, >=, , any (select height from student where grade = '4'); ○ ALL - 메인쿼리의 비교 조건에서 서브쿼리의 출력 결과와 하나라도 일치하면 메인쿼리 조건절이 참이 되는 연산자 - ANY 연산자와 차이점 → > ANY : 서브쿼리 결과 중에서 최소 값보다 크면 메인쿼리의 비교 조건이 참.. 2024. 1. 22.
조인함수 (By Oracle) □ 개념 ○ 하나의 SQL 명령문에 의해 여러 테이블에 저장된 데이터를 한번에 조회할수 있는 기능 - 관계형 데이터베이스 분야의 표준 - 두개 이상의 테이블을 ‘결합’ 한다는 의미 □ 조인의 필요성 ○ 조인을 사용하지 않는 일반적인 예 - 학생 주소록을 출력하기 위해 학생들의 학번, 이름, 소속학과 이름을 검색 - 학생에 대한 정보 검색하는 단계 필요 - 학생 정보에서 소속학과번호 정보를 추출하여 소속학과 이름을 검색하는 단계 필요 □ 카티션 곱 ○ 두 개 이상의 테이블에 대해 연결 가능한 행을 모두 결합 ○ WHERE 절에서 조인 조건절을 생략하거나 잘못 설정한 경우 ○ 대용량 테이블에서 발생할 경우 SQL명령문의 처리속도 저하 ○ 개발자가 시뮬레이션을 위한 대용량의 실험용 데이터를 생성하기 위해 의도.. 2024. 1. 22.
그룹함수 (by Oracle) □ 그룹함수 ○ 테이블의 전체 행을 하나 이상의 컬럼을 기준으로 그룹화하여 그룹별로 결과를 출력하는 함수 ○ 그룹함수는 통계적인 결과를 출력하는데 자주 사용 ○ GROUP BY : 전체 행을 group_by_expression을 기준으로 그룹화 ○ HAVING : GROUP BY 절에 의해 생성된 그룹별로 조건 부여 ○ 종류 □ Count함수 ○ 테이블에서 조건을 만족하는 행의 갯수를 반환하는 함수 COUNT ({* | [DISTINCT | ALL] expr}) ○ ‘*’은 NULL을 포함한 모든 행의 개수 ○ DISTINCT는 중복되는 값을 제외한 행의 개수 ○ ALL은 중복되는 값을 포함한 행의 개수, 기본값은 ALL ○ expr 인수에서 사용 가능한 데이터 타입은 CHAR, VARCHAR2, ○ N.. 2024. 1. 22.
일반함수 (by Oracle) □ NVL 변환 함수 ○ NVL 함수는 NULL을 0 또는 다른 값으로 변환하기 위한 함수 ○ NVL(expression1, expression2) ○ expression1 : NULL을 포함하는 칼럼 또는 표현식 ○ expression2 : NULL을 대체하는 값 ○ 주의 : expression1과 expression2는 반드시 동일한 데이터 타입이어야함 select name, position, sal, comm, sal*comm, sal*nvl(comm,0) s1, nvl(sal*comm,sal) s2 from professor where deptno = 201 □ NVL2 함수 ○ NVL2 함수는 첫 번째 인수 값이 NULL이 아니면 두 번째 인수 값을 출력하고, 첫 번째 인수 값이 NULL이면 세.. 2024. 1. 19.
데이터 타입변환 (by Oracle) □ 데이터 타입의 변환 : 숫자나 날짜 타입을 문자와 함께 결합하거나 보고서 양식에 맞추기 위해 주로 사용 □ 묵시적 데이터 타입 변환 ○ 묵시적인 데이터 타입 변환은 정확한 연산을 위하여 오라클에서 데이터 타입을 내부적으로 변환하는 경우 ○ 문자 타입의 숫자타입으로 변환은 문자열이 숫자로 구성된 경우에만 가능 □ 명시적인 데이터 타입변환 ○ 사용자가 데이터 타입 변환함수를 이용하여 명시적으로 데이터 타입을 변환 ○ TO_CHAR - 날짜나 숫자를 문자로 변환하기 위해 사용 - 날짜 출력 형식 변경 - TO_CHAR (number | date, ‘format’) ○ 날짜함수 변환 --ex1 select studno, TO_CHAR(birthdate, 'YY-MM') birthdate from studen.. 2024. 1. 19.