테이블의 날짜형 칼럼에 값을 입력 시 DATE형으로 만들어 입력을 하거나 NLS_DATE_FORMAT에 맞는 문자열이라면 문자열로 입력이 가능하다. 가끔
날짜형에 문자를 넣을 때 FORMAT이 맞지 않아 애로사항이 있을 수 있으니 NLS_DATE_FORMAT 값을 알고 그 형식대로 문자열을 입력하면 된다.
실제 날짜 표기(TO_CHAR, TO_DATE 실행시) “월요일”, “MON” 으로 표시를 좌우하는 NLS_DATE_FORMAT 값은 NLS_LANGUAGE 을 따른다.
NLS_DATE_FORMAT은 현재 시스템의 기본 날짜 입출력 형태를 지정하는
파라미터 이며 TO_CHAR, TO_DATE 함수의 기본 DATE FORMAT이다.
테이블의 날짜형 칼럼에 값을 입력 시 DATE형으로 만들어 입력을 하거나 NLS_DATE_FORMAT에 맞는 문자열이라면 문자열로 입력이 가능하다. 가끔
날짜형에 문자를 넣을 때 FORMAT이 맞지 않아 애로사항이 있을 수 있으니 NLS_DATE_FORMAT 값을 알고 그 형식대로 문자열을 입력하면 된다.
실제 날짜 표기(TO_CHAR, TO_DATE 실행시) “월요일”, “MON” 으로 표시를 좌우하는 NLS_DATE_FORMAT 값은 NLS_LANGUAGE 을 따른다.
NLS_DATE_FORMAT은 현재 시스템의 기본 날짜 입출력 형태를 지정하는
파라미터 이며 TO_CHAR, TO_DATE 함수의 기본 DATE FORMAT이다.
언어 : 현재 사용자가 사용하는 언어적 특성을 결정짓는 값
문자셋, 정렬방식, 날짜 표기에 사용되는 기호(년/월/일, YYYY/MM/DD)
Default 값은 AMERICAN 이다.
실제 날짜 표기(TO_CHAR,TO_DATE 실행시 - 월요일, MON 으로 표시를 좌우하는 NLS_DATE_FORMAT 값은 NLS_LANGUAGE 을 따른다.
영역 : 현재 사용자 언어의 영역의 특성을 결정짓는 값
Language 값만 설정하면, Language 값을 따른다. ( KOREAN ==> KOREA )
문자셋 : 현재 사용자의 시스템이 인식할 수 있는 문자셋의 값
만약에 Windows Client에서 한국어 환경을 사용하는 경우 NLS_LANG 값을′KOREAN_KOREA.KO16MSWIN949′로
유닉스 Client에서 한국어를 입출력한다면 다음과 같이 NLS_LANG을 ′KOREAN_KOREA.KO16KSC5601′로 설정 할 수 있다.
리터럴(Literal) SQL이란? SQL문장 작성시 WHERE절의 비교되는 값에 문자/숫자 상수값을 하드코딩해서 작성한 것을 말하며, Bind Variable SQL이란 WHERE절의 특정값을 표시하는 자리에 바인드 변수 형태(:B)로 표시한 것을 말한다.
리터럴 SQL문을 많이 사용하면 하드파싱의 빈도를 높이게 되어 Library Cache 내에서 Cache되는 SQL문들이 자주 age out 하게 되므로 주기를 빠르게 하고 Dictionary Cache의 사용률을 높이게 된다. 이러한 Shared SQL Area의 SQL문 중에서 리터럴 SQL 문들을 찾아서 Bind Variable을 이용한 방법으로 바꾸어야 성능향상에 도움이 된다.
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
21번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
하나의 SELECT문의 결과가 다른 Select문의 결과와 합집합, 교집합, 차집합 등 새로운 결과를 만들어 낼 때 사용하는 연산자 이다. 이러한 집한 연산자를 사용하기 위해서는 연산을 하는 SELECT문의 결과와 칼럼 구조(개수, 타입)가 같아야 한다. 즉 같은 데이터 형이며 순서 또한 같아야 한다. 결과의 칼럼 명은 첫번째 SELECT문의 칼럼 명이 사용된다.
UNION : 연결된 Select문의 결과 합을 구해준다. 중복된 것은 하나만 보여줌
UNION ALL : 연결된 Select문의 결과 합을 구해준다.
중복된 ROW가 있더라도 모두 보여줌, 정렬이 일어나지 않는다.
INTERSECT : 연결된 Select문의 결과 교집합을 구해준다.
MINUS : 연결된 Select문의 결과 차를 구해준다.
LIKE : Query 조건으로 와일드카드를 사용 할 때 이용 한다. 와일드 카드인 ‘%’는 0개 이상의 문자, ‘_’(Under bar)는 한 개의 문자를 의미 한다. 또한 비교하려는 문자에 ‘%’, ‘_’등이 포함되어 있어 와일드 카드로서의 의미보다는 문자로서(리터럴값 자체)의 의미를 나타내기 위해서는 ESCAPE 옵션을 이용 한다.
NVL(expr1, expr2)
: IF expr1 IS NULL expr2 ELSE expr1, expr1과 expr2의 DataType이 다르면 expr2를 비교전 expr1로 변환 한다.
NVL2(expr1, expr2, expr3)
: IF expr1 IS NULL THEN expr3 ELSE expr2, expr1은 어떠한 DataType 이라도 가능하며 expr2 및 expr3의 경우 LONG을 제외한 DataType이면 된다. 만약 expr2와 espr3가 DataType이 다르다면 비교전에 expr3을 expr2로 변환 한다.
(해시조인과 관련된 오라클힌트)해시조인은 두테이블 중 작은 테이블(Build Input, Driving Table)을 메모리에 조인키를 기반으로 해시테이블을 생성하고 해시테이블내에 행들을 위치시키기 위해 해시함수를 이용하며 나머지 테이블을 스캔하면서 메모리에 있는 해시테이블과 조인 조건을 만족하는 데이터를 찾는 조인이다. 중첩루프조인과 같이 조인시 발생하는 랜덤액세스에 대한 부하가 없는 조인방식이다. 관계형 데이터베이스에서 가장 비용이 많이 들어가는 조인방법으로 주로 작은 테이블과 큰 테이블의 조인 시 사용되며 , 드라이빙 조건과 상관없이 좋은 성능을 발휘할 수 있는 조인 방법이며 대체로 제일 빠르다.
COALESCE (expr1, expr2,,,,)
: 여러 expr중 처음 NULL 아닌 요소를 리턴 한다.
GREATEST (expr1, expr2,,,,)
: 여러 expr중 최대인 것을 리턴 한다.
LEAST (expr1, expr2,,,,)
: 여러 expr중 최소인 것을 리턴 한다.
언어 : 현재 사용자가 사용하는 언어적 특성을 결정짓는 값
문자셋, 정렬방식, 날짜 표기에 사용되는 기호(년/월/일, YYYY/MM/DD)
Default 값은 AMERICAN 이다.
실제 날짜 표기(TO_CHAR,TO_DATE 실행시 - 월요일, MON 으로 표시를 좌우하는 NLS_DATE_FORMAT 값은 NLS_LANGUAGE 을 따른다.
영역 : 현재 사용자 언어의 영역의 특성을 결정짓는 값
Language 값만 설정하면, Language 값을 따른다. ( KOREAN ==> KOREA )
문자셋 : 현재 사용자의 시스템이 인식할 수 있는 문자셋의 값
만약에 Windows Client에서 한국어 환경을 사용하는 경우 NLS_LANG 값을′KOREAN_KOREA.KO16MSWIN949′로
유닉스 Client에서 한국어를 입출력한다면 다음과 같이 NLS_LANG을 ′KOREAN_KOREA.KO16KSC5601′로 설정 할 수 있다.
리터럴(Literal) SQL이란? SQL문장 작성시 WHERE절의 비교되는 값에 문자/숫자 상수값을 하드코딩해서 작성한 것을 말하며, Bind Variable SQL이란 WHERE절의 특정값을 표시하는 자리에 바인드 변수 형태(:B)로 표시한 것을 말한다.
리터럴 SQL문을 많이 사용하면 하드파싱의 빈도를 높이게 되어 Library Cache 내에서 Cache되는 SQL문들이 자주 age out 하게 되므로 주기를 빠르게 하고 Dictionary Cache의 사용률을 높이게 된다. 이러한 Shared SQL Area의 SQL문 중에서 리터럴 SQL 문들을 찾아서 Bind Variable을 이용한 방법으로 바꾸어야 성능향상에 도움이 된다.
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
21번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
하나의 SELECT문의 결과가 다른 Select문의 결과와 합집합, 교집합, 차집합 등 새로운 결과를 만들어 낼 때 사용하는 연산자 이다. 이러한 집한 연산자를 사용하기 위해서는 연산을 하는 SELECT문의 결과와 칼럼 구조(개수, 타입)가 같아야 한다. 즉 같은 데이터 형이며 순서 또한 같아야 한다. 결과의 칼럼 명은 첫번째 SELECT문의 칼럼 명이 사용된다.
UNION : 연결된 Select문의 결과 합을 구해준다. 중복된 것은 하나만 보여줌
UNION ALL : 연결된 Select문의 결과 합을 구해준다.
중복된 ROW가 있더라도 모두 보여줌, 정렬이 일어나지 않는다.
INTERSECT : 연결된 Select문의 결과 교집합을 구해준다.
MINUS : 연결된 Select문의 결과 차를 구해준다.
LIKE : Query 조건으로 와일드카드를 사용 할 때 이용 한다. 와일드 카드인 ‘%’는 0개 이상의 문자, ‘_’(Under bar)는 한 개의 문자를 의미 한다. 또한 비교하려는 문자에 ‘%’, ‘_’등이 포함되어 있어 와일드 카드로서의 의미보다는 문자로서(리터럴값 자체)의 의미를 나타내기 위해서는 ESCAPE 옵션을 이용 한다.
NVL(expr1, expr2)
: IF expr1 IS NULL expr2 ELSE expr1, expr1과 expr2의 DataType이 다르면 expr2를 비교전 expr1로 변환 한다.
NVL2(expr1, expr2, expr3)
: IF expr1 IS NULL THEN expr3 ELSE expr2, expr1은 어떠한 DataType 이라도 가능하며 expr2 및 expr3의 경우 LONG을 제외한 DataType이면 된다. 만약 expr2와 espr3가 DataType이 다르다면 비교전에 expr3을 expr2로 변환 한다.
(해시조인과 관련된 오라클힌트)해시조인은 두테이블 중 작은 테이블(Build Input, Driving Table)을 메모리에 조인키를 기반으로 해시테이블을 생성하고 해시테이블내에 행들을 위치시키기 위해 해시함수를 이용하며 나머지 테이블을 스캔하면서 메모리에 있는 해시테이블과 조인 조건을 만족하는 데이터를 찾는 조인이다. 중첩루프조인과 같이 조인시 발생하는 랜덤액세스에 대한 부하가 없는 조인방식이다. 관계형 데이터베이스에서 가장 비용이 많이 들어가는 조인방법으로 주로 작은 테이블과 큰 테이블의 조인 시 사용되며 , 드라이빙 조건과 상관없이 좋은 성능을 발휘할 수 있는 조인 방법이며 대체로 제일 빠르다.
COALESCE (expr1, expr2,,,,)
: 여러 expr중 처음 NULL 아닌 요소를 리턴 한다.
GREATEST (expr1, expr2,,,,)
: 여러 expr중 최대인 것을 리턴 한다.
LEAST (expr1, expr2,,,,)
: 여러 expr중 최소인 것을 리턴 한다.
The MyBatis data mapper framework makes it easier to use a relational database with object-oriented applications. This document explain about MyBatis basic concept.
사례로 알아보는 MariaDB 마이그레이션
현대적인 IT 환경과 애플리케이션을 만들기 위해 우리는 오늘도 고민을 거듭합니다. 최근 들어 오픈소스 DB가 많은 업무에 적용되고 검증이 되면서, 점차 무거운 상용 데이터베이스를 가벼운 오픈소스 DB로 전환하는 움직임이 대기업의 미션 크리티컬 업무까지로 확산하고 있습니다. 이는 클라우드 환경 및 마이크로 서비스 개념 확산과도 일치하는 움직임입니다.
상용 DB를 MariaDB로 이관한 사례를 통해 마이그레이션의 과정과 효과를 살펴 볼 수 있습니다.
MariaDB로 이관하는 것은 어렵다는 생각을 막연히 가지고 계셨다면 본 자료를 통해 이기종 데이터베이스를 MariaDB로 마이그레이션 하는 작업이 어렵지 않게 수행될 수 있다는 점을 실제 사례를 통해 확인하시길 바랍니다.
웨비나 동영상
https://www.youtube.com/watch?v=xRsETZ5cKz8&t=52s
1. Part 2. 관계형 데이터베이스
Chapter4. SQL
201515. 5. 10 STG 박하은
2. 기본 구조
• 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해
설계된 특수 목적의 프로그래밍 언어
select A1, A2, , An select절
from r1, r2, , rm from절
where P where절
A는 속성(Attribute)
R은 관계(Relation)
P는 서술어(predicate)
3. SELECT절
• 질의의 결과로 바라는 속성을 나열하는데 사용한다.
• SQL은 질의 결과와 함께 릴레이션내의 중복 허용
• 중복을 제거하려면 select 다음에 키워드 distinct를 기입
• 관계형 대수의 추출 연산에 대응한다.
select name
from TB_ETRIBER
-> name (TB_ETRIBER)
4. where절
• from절에 나타나는 릴레이션을 기반으로 한 애트리뷰트를 내
포하는 술어를 나열한다.
• 필요에 따라 논리연산자(and, or, not 등)를 사용
• 관계형 대수의 선택 연산에 대응한다.
select name
from TB_ETRIBER
where name=“박하은”
-> name=“박하은”(TB_ETRIBER)
5. from절과 재명명 연산
• 표현식의 계산에서 검색될 릴레이션들을 나열한다.
• 관계형 대수의 카티션 곱 연산에 대응한다.
select *
from TB_ETRIBER, TB_WT
-> TB_ETRIBER x TB_WT
• 릴레이션과 애트리뷰트의 재명명을 위한 SQL 기법은
as 절로 이루어진다.
old-name as new-name
6. Order by와 집합 연산
• order by는 각 애트리뷰트의 정렬을 수행한다.
• 내림차순을 위해서는 desc, 오름차순을 위해서는 asc를 사용하며
asc가 기본값이다.
select *
from TB_ETRIBER, TB_WT
order by name desc
• 집합 연산은 릴레이션의 연산을 위해 사용한다.
• union, intersect 및 except 세가지가 있으며 각각 , 및 에
대응한다.
(select name from TB_ETRIBER, TB_WT)
union
(select id from TB_ETRIBER, TB_WT)
name나 id를 갖고 있거나 둘 다 갖고 있는 직원
7. View
• 관계 데이터베이스의 데이터베이스 언어 SQL에서 하나 이상의 테
이블 (또는 다른 뷰)에서 원하는 모든 데이터를 선택하여, 그들을 사
용자 정의하여 나타낸 것이다.
• 기본 테이블과 같이 행과 열로 구성되지만, 다른 테이블에 있는 데
이터를 보여줄 뿐이며, 실제 테이블과 달리 데이터 자체를 포함하고
있는 것은 아니다.
• 생성 : CREATE VIEW 뷰이름 AS SELECT 구문;
• 삭제 : DROP VIEW 뷰이름;
8. Insert, Delete, Update
• 아래와 같은 SQL을 통해 데이터베이스에 있는 데이터를 삽입, 삭
제 및 수정 가능하다.
• 삽입 : insert into 테이블명 values(각속성에해당하는값)
• 삭제 : delete from 테이블명 where 조건문
• 수정 : delete 테이블명 set 수정내용 where 조건문
9. join
• join 연산은 두 릴레이션을 취해 또 다른 릴레이션을 결과로 돌려준다.
• from절 내에서 부 질의 표현식으로 사용된다.
• 유형 : inner join / left outer join / right outer join / full outer join
11. 데이터 정의어
• 테이블을 정의하기 위한 명령어 : create table
create table 테이블명 (속성1 도메인유형1, 속성2 도메인유형2);
• 테이블을 삭제하기 위한 명령어 : drop table
Drop table 테이블명;
• 테이블을 수정하기 위한 명령어 : alter table
Alter table 테이블명 add 속성1 도메인유형1;
12. 도메인 유형
• 테이블 내의 데이터 타입을 나타낸다.
• char(n) : 사용자가 지정한 길이 n을 가진 고정길이 문자열
• varchar(n) : 사용자가 지정한 최대 길이 n을 가진 가변길이 문자열
• Int : 정수(기계 종속인 정수들의 유한 부분 집합)
• Date : 4자리의 연, 월 및 일을 내포하는 날짜
• Time : 시, 분 및 초로 이루어진 하루의 시간
• null 값은 모든 도메인 유형에서 허용된다. 속성을 not null로 선언하면 그
속성에 null 값이 금지된다.