2018. 3. 21. 17:17

안녕하세요 "타이니스타" 입니다.   저는 10년도 더 이전부터 네이버 포탈 시스템의 지식인 서비스를 이용해 왔는데요.

얼마전에 네이버 지식인 식물신 등급을 달성했습니다 !  여러 카테고리에 답변을 달았는데요.

그 중에 가장 열심히 답변했던 데이터베이스 분야에서의 지식 답변들 중 다른분들이 궁금할만한 내용을 추려서 글을 올리려 합니다. 

식물신

 식물신 아이콘이에요~  등급 : 식물신,  시작일 : 2006.03.08,  순위 : 상위 1만명(0.0154%) 이내,  주요활동 분야 : 데이터베이스, 사람과 그룹, 주거살림.   2018.03.21  일자  기준으로 상위 0.0154% 군요 ㅎㅎ

참고로 저는 현재 N포탈 데이터베이스 지식인 10위에 올라있어요~ 상대적으로 주류에 속하지 않으므로 순위가 높은편에 들어가고 있습니다. ^^

13.11.28 ..  이때부터 데이터베이스 분야 지식인 답변을 시작했군요.  이 시기부터 천천히 올라가보겠습니다.

질문 제목 : "저게 왜 라만 출력되요?"  해당 질문의 질문 내용은 이렇습니다.

select substr('오라클매니아', 3, 4), substrb('오라클매니아', 3, 4) from dual;

답변 : substrb 는 2글자로 치기때문입니다. 오 = 2바이트. 1,  라 = 4바이트. 3.

* 오라클에서는 substr 과 substrb 라는 두가지 함수가 있는데요, 한글을 몇바이트로 구분해서 글자수를 셀건지 그 기준에 따라서 사용할 함수가 달라집니다.  이러한 차이점을 알고 있다면 나중에 substr 함수를 사용하는데 도움이 되겠죠?


다음 질문입니다.  토드 포 오라클 질문드려요

첨부 이미지 

엑셀에서 표를 만들어서 해당 표에서 가 컬럼 값이 1일때 남자, 2일때 여자를 if문으로 할 수 있는지에 대한 질문이군요.

답변 : select decode(가, 1, '남자', '여자') as 가  from table1;

 오라클 자체에서 if문은 사용할 수 없음. pl/sql 이면 가능합니다.  decode 문은 오라클에서만 지원이 되기에 확장성을 고려한다면 case when 문을 추천.

select case when 가 = 1 then '남자' else '여자' end as 가  from table1;

* 기본 sql 구문에서는 if문을 사용할 수 없습니다. 대신 decode나 case when 을 통해서 if문과 같은 효과를 줄 수 있어요. 물론 지원하는 함수가 모든 데이터베이스시스템이 조금씩 상이합니다. 일례로 오피스 소프트웨어에 포함된 "엑세스" 에서는 iif문을 통해서 if문과 같은 효과를 줄 수 있습니다.

여기서 한가지 더 짚고 넘어갈것이 decode 는 함수식이지만 case when은 표현식이기에 case when을 사용하는것이 성능상 더 유리하다는 점 참고하시기 바랍니다.


다음 질문은 오라클 독학을 어떻게 해야할지에 대한 질문이었군요. 

질문 : 프로그래밍을 전공으로 하려는 목적이아닌 취미개념으로 데이터베이스를 공부하고자 합니다

 지금하는 업무가 DB를 수정하거나 하는건 아니고 실제 개발업무는 타 업체의 개발자가 진행을 하고있으니..

오라클과 같은 데이터베이스를 기초만이라도 하나의 개념이라도 잡기위해서 추천해주실만한 책이있는지 해서 질문올립니다.

답변 : 데이터베이스를 공부하고자 한다면 먼저 데이터베이스의 이론적인 부분을 공부해야합니다. 기본 지식을 위해 먼저  데이터베이스 시스템 이라는 책을 추천합니다. 책 검색 후에 간략한 설명을 토대로 본인이 원하는 책으로 선택하시면 됩니다.  이어서 오라클을 공부하실때 실무적인 부분을 공부하고자 하면 많은 시간과 노력, 실습경험이 필요합니다.  오라클 도서로는 10G로 시작하는 오라클 SQL PLSQL 을 추천합니다.  기초적인 부분에서 중급 개발자도 헤매는 부분 까지 수록되어 있습니다. 기초를 알고자 하시면 간단한 sql 문부터 조인에 대한 부분까지 공부하시면 되겠고. 더 심화있는 공부를 하고자 하면 뒷부분도 열심히 익혀보시길 권합니다

* 독학을 어떻게 할지에 대한 질문이었네요  14년도 답변이라서 오라클 10g 버전을 언급하고 있으나 현재는 12C 버전이 최신인거 같습니다.


14.06.04 까지의 답변이었고, 꾸준히 이어나가겠습니다.  데이터베이스와 관련해서 간단한 질문정도는 언제든지 환영하며, 제가 모르더라도 여러 루트로 알아보고, 배운뒤에 답변을 도와드리도록 하겠습니다. 혹 부족한 답변이 보인다면 언제든 조언 및 지적 환영합니다.

Posted by 타이니스타