1. 집합연산자(SET_OPERATOR)- 연관된 데이터를 조회하는 방법 중 하나이다.- 여러 개의 질의의 결과를 연결하여 하나로 결합하는 방식 사용 (즉, 집합 연산자는 2개 이상의 질의 결과를 하나의 결과로 만들어 준다.) n 일반적으로 집합 연산자를 사용하는 상황- 서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때 사용한다. - 동일 테이블에서 서로 다른 질의를 수행하여 결과를 합치고자 할 때 사용한다.- 이외에도 튜닝관점에서 실행계획을 분리하고자 하는 목적으로도 사용한다. n 집합 연산자를 사용하기 위한 제약조건 (조건을 지키지 않을 시 데이터베이스가 오류 반환)- SELECT 절의 칼럼 수가 동일- SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이..
1. STANDARD SQL 개요- 표준 SQL의 기능STANDARD JOIN 끼능 추가(CROSS, OUTER JOIN 등 새로운 FROM 절 JOIN 기능들)SCALAR SUBQUERY, TOP-N QUERY 등의 새로운 SUBQUERY 기능들ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능WINDOW FUNCTION 같은 새로운 개념의 분석 기능들가. 일반 집합 연산자UNION 연산은 UNION 기능INTERSECTION 연산은 INTERSECT 기능DIFFERENCE 연산은 EXCEPT(Oracle은 MINUS) 기능PRODUCT 연산은 CROSS JOIN 기능나. 순수 관계 연산자SELECT 연산은 WHERE 절로 구현PROJECT 연산은 SELECT 절로 구현(NATU..
1. JOIN의 개요- 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것- JOIN은 관계형 데이터베이스의 가장 큰 장점이면서 대표적인 핵심 기능이라고 할 수 있다. 일반적인 경우 행들은 PRIMARY KEY(PK)나 FOREIGN KEY(FK) 값의 연관에 의해 JOIN이 성립된다. 하지만 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립 가능하다.- FROM절에 여러 테이블이 나열되더라도 SQL에서 데이터를 처리할 때는 단 두 개의 집합 간에만 조인이 일어나는 것이다. FROM 절에서 A, B, C 테이블이 나열되더라도 특정 2개의 테이블만 먼저 조인 처리되고, 2개의 테이블이 조인되어서 처리된 새로운 데이터 집합과 남은 한 개의 테이블이 다..
1. ORDER BY 정렬- ORDER BY 절에 칼럼(Column)명 대신 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능하다.- 기본적인 정렬순서는 오름차순(ASC), SQL 문장의 제일 마지막에 위치한다.- SELECT 칼럼명 ALIAS명 FROM 테이블명 WHERE 조건식 GROUP BY 칼럼(Column)이나 표현식 HAVING 그룹 조건식 ORDER BY 칼럼(Column)이나 표현식 [ASC 또는 DESC]- ASC(Ascending) : 조회한 데이터를 오름차순으로 정렬한다. (Default이므로 생략 가능)- DESC(Descending) : 조회한 데이터를 내림차순으로 정렬한다.- Oracle 에서는 NULL 값을 가장 큰 값으로 간주한다. SQL S..
1. 집계함수(Aggregate Function)- 특성n 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 반환하는 함수n GROUP BY 절은 행들을 소그룹화n SELECT 절, HAVING 절, ORDER BY 절에 사용- 집계함수 명 ( ALL칼럼이나 표현식)n ALL : Default 옵션이므로 생략 가능n DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션 집계 함수 사용 목적 COUNT(*) NULL 값을 포함한 행의 수를 출력한다. COUNT(표현식) 표현식의 값이 NULL 값인 것을 제외한 행의 수를 출력한다. SUM([DISTINCT | ALL] 표현식) 표현식의 NULL 값을 제외한 합계를 출력한다. AVG([DISTINCT | ALL] 표현식) 표현식의 NULL..
1. 내장 함수(BUILT-IN FUNCTION) 개요- 내장 함수는 SQL을 더욱 강력하게 해주고 데이터 값을 간편하게 조작하는데 사용된다.- 내장 함수는 벤더별로 가장 큰 차이를 보이는 부분이지만, 핵심적인 기능들은 이름이나 표현법이 다르더라도 대부분의 데이터베이스가 공통적으로 제공하고 있다.- 내장 함수는 다시 함수의 입력 값이 단일행 값이 되는 경우, 단일행 함수(Single-Row Function)와 여러 행의 값이 입력되는 다중행 함수(Multi-Row Fuction)로 나눌 수 있다.- 함수는 입력되는 값이 아무리 많아도 출력은 하나만 된다는 M:1 관계라는 중요한 특징을 가지고 있다.- 단일행 함수의 경우 단일행 내에 있는 하나의 값 또는 여러 값이 입력 인수로 표현될 수 있다.- 다중행 ..
1. WHERE 절- 사용자들은 자신이 원하는 자료만을 검색하기 위해서 SQL문장에 WHERE 절을 이용하여 자료들에 대하여 제한한다.- WHERE절에 조건이 없는 FTS(Full Table Scan) 문장은 SQL 튜닝의 1차적인 검토 대상이 된다. (FTS가 무조건 나쁜 것은 아니며 병렬처리 등을 이용해 유용하게 사용하는 경우도 많다.) n 연산자의 종류 구분 연산자 연산자의 의미 비교 연산자 = 같다. > 보다 크다. >= 보다 크거나 같다. 문자 유형간의 비교방법 구분 비교 방법 비교 연산자의 양쪽이 모두 CHAR 유형 타입인 경우 길이가 서로 다른 CHAR형 타입이면 작은 쪾에 SPACE를 추가하여 길이를 같게 한 후에 비교한다. 서로 다른 문자가 나올 때까지 비교한다. 달라진 첫 번째 문자의 ..
1. 트랜잭션 개요- 데이터베이스의 논리적 연산단위- 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 의미한다.- 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다.- 트랜재션은 분할할 수 없는 최소의 단위이다.- 따라서, 전부 적용하거나 전부 축소 즉, 트랜잭션은 ALL or NOTHING - 트랜잭션을 컨트롤 하는 TCL (TRANSACTION CONTROL LANGUAGE)- 커밋 (COMMIT) : 올바르게 반영된 데이터를 데이터베이스에 반영시키는 것- 롤백 (ROLLBACK) : 트랜잭션 시작 이전의 상태로 되돌리는 것- 저장점 (SAVEPOINT) : - 트랜잭션 대상이 되는 SQL- UPDATE, INSERT, DELETE 등 데이터를 수정하는 DML문- SELECT ..
- DML이란? 자료들을 입력, 수정, 삭제, 조회하는 명령어 (INSERT, UPDATE, DELETE, SELECT) 1. INSERT - INSERT INTO 테이블명 (컬럼리스트) VALUES (컬럼리스트에 넣을 값); - 해당 컬럼과 입력값을 1:1 Mapping 하여 입력한다. - 컬럼의 데이터가 문자 유형일 경우 ‘ (single quotation)로 입력할 값을 입력하낟. 숫자일 경우 붙이지 않는다. 2. UPDATE - UPDATE 테이블명 SET 컬럼명 = 값; 3. DELETE - DELETE FROM 테이블명 4. SELECT - SELECT [ALL/DISTINCT] 컬럼, 컬럼, … FROM 테이블명 - ALL : Default 옵션이므로 별도로 표시하지 않아도 된다. 중복된 데..
1. 데이터 유형 - 숫자 타입 ANSI/ISO 기준 : NUMERIC, DEMICAL, DEC, SMALLINT, INTEGER,INT, BIGINT, FLOAT, REAL, DOUBLE PRECISION SQL Server와 Sybase : 작은 정수형, 정수형, 큰 정수형, 실수형 등 + MONEY, SMALLMONEY Oracle : 숫자형 타입에 대해서 NUMBER 한 가지 숫자 타입의 데이터 유형만 지원 - 벤더에서 ANSI/ISO 표준을 사용할 떄는 기능을 중심으로 구현하므로, 일반적으로 표준과 다른 용어를 사용하는 것이 허용 Ex) NUMERIC -> NUMBER , WINDOW FUCTION ->ANALYTIC/RANK FUNCTION - 테이블의 칼럼이 가지고 있는 대표적인 4가지 데이..