Database/Oracle SQL: 43개의 글
문자형 함수란 CHAR, VARCHAR2 타입을 인수로 받아 VARCHAR2 타입의 값을 반환하는 함수이다.CONCAT(char1, char2)CONCAT 함수는 Concatenation의 약자로 두 문자를 결합하는 역할을 한며, "||" 연산자와 같은 역할을 한다.-- CONCAT 예제SELECT CONCAT('www.', 'oracleclub')||'.com' name FROM DUAL; NAME------------------www.gurubee.net INITCAP(char), LOWER(char), UPPER(char)INITCAP : 주어진 문자열의 첫 번째 문자를 대문자로 변환시켜 준다.LOWER : 주어진 문자열을 소문자로 변환시켜 준다.UPPER : 주어진 문자열을 대문자로 변환시켜 준다..
숫자형 함수란 수 값을 인수로 받아 NUMBER 타입의 값을 반환하는 함수이다.ABS(n)ABS 함수는 절대값을 계산하는 함수이다.-- ABS 예제SELECT ABS (-1.234) absolute FROM DUAL; ABSOLUTE---------- 1.234 CEIL(n)CEIL 함수는 올림값을 반환하는 함수이다.-- CEIL 양수 예제SELECT CEIL(10.1234) "CEIL" FROM DUAL; CEIL---------- 11 -- CEIL 음수 예제SELECT CEIL(-10.1234) "CEIL" FROM DUAL; CEIL---------- -10 FLOOR(n)FLOOR 함수는 버림값을 반환하는 함수이다.-- FLOOR 양수 예제SELECT FLOOR(10.1234) "FLOOR" F..
COMMIT 과 ROLLBACK이전의 커밋(COMMIT)이 일어난 뒤부터 다음의 커밋(COMMIT) 전까지의 작업이 하나의 트랜잭션 이며, 커밋과 롤백(ROLLBACK)은 이러한 트랜잭션 단위로 데이터 베이스에서 발생한 작업을 저장, 삭제하는 일이다.- 자동 COMMIT : DDL(Create, Alter, Drop), DCL(Grant, Revoke)- 자동 ROLLBACK : 비정상적인 종료, system failure SQL> DELETE FROM emp WHERE empno = 7521 ; 한 개의 행이 삭제 되었습니다. SQL> COMMIT; 커밋이 완료 되었습니다 -- 한 개의 행을 삭제하고, COMMIT 문으로 데이터를 영구히 저장했다. -- 이 것은 하나의 트랜잭션이 여기서 종료되고, 새로..
트랜잭션(TRANSACTION)- 트랜잭션은 데이터 처리의 한 단위 이다.- 오라클 서버에서 발생하는 SQL문들이 하나의 논리적인 작업 단위로써 성공하거나 실패하는 일련의 SQL문을 트랙잭션이라 보면 된다.- 오라클 서버는 트랜잭션을 근거로 데이터의 일관성을 보증 한다.- 트랜잭션은 데이터를 일관되게 변경하는 DML문장으로 구성된다 (COMMIT, ROLLBACK, SAVEPOINT)TRANSACTION의 시작- 실행 가능한 SQL문장이 제일 처음 실행될 때TRANSACTION의 종료- COMMIT이나 ROLLBACK- DDL이나 DCL문장의 실행(자동 COMMIT)- 기계 장애 또는 시스템 충돌(crash)- deadlock 발생- 사용자가 정상 종료자동 COMMIT은 다음의 경우 발생 한다.- DDL..
CROSS JOINCartesian Product 값을 얻을때 사용 한다. -- 아래 SQL문장을 실행해 보자 SQL> SELECT ename FROM emp CROSS JOIN deptINNER JOIN- 일반 조인시 ,(콤마)를 생략하고 INNER JOIN을 추가하고, WHERE절 대신 ON절을 사용하면 된다.- INNER는 생략 가능 하다.- 아래 두 조인의 결과 값은 같다. -- INNER JOIN을 사용한 문장 SQL> SELECT e.empno, e.ename FROM dept d INNER JOIN emp e ON d.deptno=e.deptno; -- 일반적인 SQL 문장 SQL> SELECT e.empno, e.ename FROM dept d , emp e WHERE d.deptno=e...
Outer Join 이란?- Equi Join은 조인을 생성하려는 두 개의 테이블의 한쪽 컬럼에서 값이 없다면 테이터를 반환하지 못한다.- 동일 조건에서 조인 조건을 만족하는 값이 없는 행들을 조회하기 위해 Outer Join을 사용 한다.- Outer Join 연산자는 "(+)" 이다.- 조인시 값이 없는 조인측에 "(+)"를 위치 시킨다.- Outer Join 연산자는 표현식의 한 편에만 올 수 있다.Outer Join 예제Equi Join과 Outer Join의 비교.-- Equi Join 으로 부서 번호를 조회하는 예제SELECT DISTINCT(e.deptno), d.deptno, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno; DEPTNO DEP..
조인(Join)Join 이란?- 둘 이상의 테이블을 연결하여 데이터를 검색하는 방법 이다.- 보통 둘 이상의 행들의 공통된 값 Primary Key 및 Foreign Key값을 사용하여 조인 한다.- 두 개의 테이블을 SELECT문장 안에서 조인 하려면 적어도 하나의 컬럼이 그 두 테이블 사이에서 공유 되어야 한다.Join 방법과 방식- 조인의 방법 : Equi Join (등가 조인, 내부조인) , Non-Equi Join , Self Join , Outer Join- 조인의 방식 : Nested Loop Join, Sort Merge Join, Hash JoinEqui Join- 가장 일반적으로 사용하는 Equality Condition(=)에 의한 조인이다- Equi join의 성능을 높이기 위해서는..
테이블 예명(Alias)- 테이블 Alias로 column을 단순, 명확히 할 수 있다.- 현재의 SELECT 문장에 대해서만 유효하다.- 테이블 Alias는 길이가 30자 까지 가능하나 짧을수록 더욱 좋다.- 테이블 Alias는 의미가 있어야 한다.- FROM절에 테이블Alias 설정시 해당 테이블 Alias는 SELECT문장에서 테이블 이름 대신에 사용 한다.-- 사원수가 3명이 넘는 부서의 부서명과 사원수 조회 SQL> SELECT a.dname, b.cnt FROM dept a, (SELECT deptno, COUNT(empno) cnt FROM emp GROUP BY deptno) b WHERE a.deptno = b.deptno AND b.cnt > 3 DNAME CNT ------------..
SELECT문은 데이터베이스로부터 저장되어 있는 데이터를 검색하는데 사용 한다.SELECT 문법- DISTINCT : 중복되는 행을 제거하는 옵션.- * : 테이블의 모든 column을 출력.- alias : 해당 column에 대해서 다른 이름을 부여할 때 사용.- table_name : 질의 대상 테이블 명- WHERE : 조건을 만족하는 행들 만 검색- condition : column, 표현식, 상수 및 비교 연산자- ORDER BY : 질의 결과 정렬을 위한 옵션(ASC:오름차순(Default),DESC내림차순)SQL문의 작성 방법- SQL 문장은 대소문자를 구별하지 않는다.- SQL 문장은 한 줄 또는 여러 줄에 입력될 수 있다.- 일반적으로 키워드는 대문자로 입력한다. 다른 모든 단어, 즉 ..
MERGE 문의 이해- MERGE문은 조건에 따라서 데이터의 삽입,갱신,삭제 작업을 한번에 할 수 있다.- 해당 행이 존재하는 경우 UPDATE(DELETE포함 할 수 있음)를 수행하고, 새로운 행일경우 INSERT를 수행한다.- 대상 테이블에 대한 UPDATE/INSERT 조건은 ON절에 의해 결정된다.- MERGE문에서 CLOB 사용시 업데이트 할 내용이 2000bytes가 넘을때 ORA-00600 오류가 발생하며, patch set 11.2.0.2 버전으로 해결할 수 있다.MERGE [ hint ] INTO [ schema. ] { table | view } [ t_alias ] USING { [ schema. ] { table | view } | subquery } [ t_alias ] ON ( ..