DataBase (20) 썸네일형 리스트형 인덱스(INDEX) INDEX란 DB에 테이블 검색 속도를 향상시키기 위한 자료구조 별도의 추가 저장 공간을 활용하여 인덱스 생성 데이터와 데이터 위치를 포함한 자료구조 생성 데이터를 빠르게 찾을 수 있기 때문에 디스크 엑세스 횟수 감소 DBMS에서 인덱스를 자동으로 사용하며 유지 보수 수행 인덱스는 언제든지 생성 및 삭제가 가능하며 다른 테이블이나 인덱스에 영향을 주지 않음 인덱스를 통해 데이터 조회를 위한 SELECT뿐만 아니라 UPDATE와 DELETE의 성능도 향상 INDEX 관리 데이터에 변경이 발생하면 최신 상태 유지를 위해 인덱스 관리 필요 인덱스가 적용된 컬럼은 최신 데이터를 정렬된 상태로 유지 INSERT, UPDATE, DELETE 발생 시 인덱스 관리 수행 INSERT : 새로운 데이터에 대한 인덱스 추.. VIEW 뷰란? 사용자에게 접근이 허락 된 데이터만 제한적으로 제 하나 이상의 테이블로부터 유도 된 가상 테이블 뷰에 대한 질의 실행시 정의된 테이블로 대체되어 실행 임시 작업을 위한 용도로 활용되고 사용상의 편의성을 최대화함 특징 테이블에서 유도되었기 때문에 구조가 같다. 가상 테이블이라 물리적으로 구현되지 않아있다. 데이터의 논리적 독립성 제공 뷰로 필요한 데이터만 처리하므로 관리 용이 여러 테이블을 조인하여 뷰 생성 가능 뷰에 나타나지 않은 데이터를 안전하게 보호 테이블의 기본키를 포함하여 뷰를 구성하면 삽입, 삭젝, 갱신 가능 장점 단점 - 논리적 데이터 독립성 제공 - 동일 데이터에 대해 동시에 여러 사용자 요구 지원 - 사용자의 데이터 관리 편의성 제공 - 접근 제어를 통한 보안 제공 - 독립적 인덱스.. 서브 쿼리 종류 서브 쿼리의 종류는 3가지로 나뉘는데 사용하는 위치에 따라 나뉜다. 첫번째, SELECT절에서 사용되는 스칼라 서브 쿼리 스칼라 영어로 한번에 한가지라는 뜻으로 하나의 행을 반환하는 서브쿼리이다. SELECT *, (SELECT dept_name FROM Departments d WHERE d.dept_id = e.dept_id) -- 이 부분이 스칼라 서브쿼리 FROM Employees e 이처럼 Employees의 테이블의 없는 컬럼을 다른 테이블과 조인하여 사용이 가능하다. 두번째, FROM절에서 사용되는 인라인 뷰 인라인 뷰는 FROM절에서 사용되는 서브쿼리로 하나의 임시 테이블을 만든다고 생각하면 된다. 그렇게 때문에 메인 쿼리에서는 인라인뷰(서브쿼리)에서 SELECT한 컬럼만 사용이 가능하다... Sub Query, 중첩 서브쿼리 서브쿼리란 하나의 쿼리문 안에 또 다른 쿼리가 들어있는 모습이다. 단일 쿼리만으로 어려운 쿼리에 사용된다. 다른 테이블에서 데이터 값을 조회한 후 조건을 사용 가능. 사용시 주의 사항 서브쿼리를 괄호로 감싸서 사용한다. 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다. 서브쿼리에서는 ORDER BY 를 사용하지 못한다. 서브쿼리 실행 후 메인 쿼리 실행 여러 서브쿼리 중첩 가능 서브쿼리가 사용가능한 구절 SELECT 절 FROM 절 WHERE 절 HAVING 절 ORDER BY 절 INSERT 문의 VALUES 절 UPDATE 문의 SET 절 서브쿼리 비교 연산자 종류 연산자 종류 사용처 단일행 연산자 =, , =, , != 단일행, 다중열 다중행 연산자 IN, NOT IN, EXIS.. [SQL] 집합 연산자. UINON UNION ALL 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법 중에 또 다른 방법이 있는데 그 방법이 바로 집합 연산자(Set Operator)를 사용하는 방법이다. 종류는 아래와 같다. 집합 연산자 연산자의 의미 UNION 여러 개의 SQL문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 만든다. UNION ALL 여러 개의 SQL문의 결과에 대한 합집합으로 중복된 행도 그대로 결과로 표시된다. 즉, 단순히 결과만 합쳐놓은 것이다. 일반적으로 여러 개의 결과가 상호 배타적인(Exclusive)일 때 많이 사용한다. 개별 SQL문의 결과가 서로 중복되지 않는 경우, UNION과 결과가 동일한다. (결과의 정렬 순서에는 차이가 있을 수 있음) INTERSECT 여러 개의S.. [SQL] ORDER BY ORDER BY 절은 SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으로 정렬하여 출력 하는데 사용한다. ORDER BY 절에 칼럼(Column)명 대신에 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능 하다. 그리고 별도로 정렬 방식을 지정하지 않으면 기본적으로 오름차순이 적용 되며, SQL 문장의 제일 마지막에 위치한다. SELECT 칼럼명 [ALIAS명] FROM 테이블명 [WHERE 조건식] [GROUP BY 칼럼(Column)이나 표현식] [HAVING 그룹조건식] [ORDER BY 칼럼(Column)이나 표현식[ASC 또는 DESC]]; ※ ASC : 오름차순, DESC : 내림차순 [예제] SELECT PLAYER_NAME 선수명 ,.. [SQL] 집계함수, GROUP BY, HAVING 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려준다. 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수 GROUP BY 절은 행들을 소그룹화 한다. 집계 함수명 ( DISTINCT 칼럼이나 표현식 ) ALL : Default 옵션이므로 생략 가능함 DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션임 자주 사용되는 주요 집계 함수들은 다음과 같다. 집계함수 종류 집계 함수 설명 COUNT(*) NULL 값을 포함한 행의 수 COUNT(표현식) 표현식이 NULL을 제외한 행의 SUM([DISTINCT | ALL] 표현식) 표현식이 NULL을 제외한 합계 출력 AVG([DISTINCT | ALL] 표현식) 표현식이 NULL을 제외한 평균 출력 MAX([DISTIN.. [SQL] JOIN ON, WHERE 차이 DB의 쿼리를 만들다보면 JOIN을 많이 사용하게 되는데 ON과 WHERE문으로 조건을 만들어 JOIN을 하게 된다. ON과 WHERE 둘 다 조건에 관한 함수인데 이 둘의 차이점을 알아보자. 먼저 알아야할 것은 SQL의 문법 실행 순서이다. SQL의 실행 순서를 자세히 보면 ON과 JOIN, WHERE 따로 나눠져있으며 순서도 다르다. TABLE01 TABLE02 A B A C 1 2 1 3 3 5 7 5 7 9 11 13 위와 같은 두개의 테이블이 있다고 하고 설명을 해보자. 1. ON절 하나만 사용 SELECT * FROM TABLE01 a LETF JOIN TABLE02 b ON a.A = b.A; [결과] A B A C 1 2 1 3 3 5 NULL NULL 7 9 7 5 11 13 NULL N.. 이전 1 2 3 다음 목록 더보기