소스를 뚫어져라 보고 또 봐도 분명히 그 컬럼에 값이 들어가는 곳이 없는데

계속 값이 들어가네-_-;;; 안들어가야 정상인데!

한참을 고민하다가 과장님께 물어보니

값이 insert 될 때 default 값으로 들어가더만-_-;; 아놔!

왜 그걸 생각 못했을까;


오늘의 교훈 > DB Table에 값이 입력 될 때에는 소스상에서 Insert나 Update 뿐만이 아니라 DB Table 자체에서 Default 값이 주어지는 경우도 있으니 그것도 생각하자!
Posted by Lucky™

출처 : 데브피아 (http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=38&MAEULNo=16&no=62792&ref=62791)
-> 최문산 (zenstyle11) 님의 질문에 대한 이영민 (andy5) 님의 답변입니다.



[ 1=1 은 항상 참인 조건입니다. ]

저는 이 조건을 Delphi, Java Swing, C# WinForm 등의 App를 개발할때 Query 문장을 특정 조건에 맞게 조합하고자 할때 사용했습니다.

예를 들어서, 고객등급 조건을 사용자가 선택한 경우에는 고객 등급 조건을 where절에 추가하고,
가입일자 조건을 선택하면 가입일자 조건을 추가하려고 할때,
이미 조건이 추가 되어 있는지를 검사해서 'and' 를 앞에 붙일지 말지를 결정해야 합니다.

이런 조건들이 상당수 있을 경우 if 문이 상당히 지저분하고 가독성이 떨어집니다.
그래서 아예 where 1=1 처럼 항상 참인 조건으로 초기화합니다.
그러면, 그 다음에 오는 조건들은 그냥 and를 앞에 붙여주기만 하면 되니까요~

T-SQL에서 동적쿼리를 사용하는 경우도 마찬가지입니다.
where 절 구성하기에 좀 더 편리한 방법이라고 생각합니다.

별로 필요 없어 보이지만, 나름대로 이유가 있습니다

 ps.
where 1=1 은 where 2=2 와 동일합니다. ^^
일종의 관습처럼 굳어진 버릇인것 같아요~


-----------------------------------------------

즉, 여러 조건에 대한 AND문을 WHERE절에 사용할 때 이미 AND문이 사용되었는지 아닌지를 판별하여 AND를 먼저 쓰고 조건을 쓸지 아닐지 결정해야 하는 경우에,

where 1=1 을 먼저 쓰고 시작한다면 그런걸 결정하지 않고 그냥 'and 조건' 을 사용하면 되겠죠. 1=1 은 무조건 참이니까요.

만일 그게 없다면
if (조건이 이미 존재 할 경우) 'and 붙임'
else 'and 안붙임'

뭐 위와같은 조건문이 붙어 내용이 길어지고 위에 설명하셨듯이 가독성이 떨어지겠죠.

전 오늘 where 1=1 의 기능 하나 알았습니다~ 오예~

Posted by Lucky™

#####################테스트를 위한 테이블 생성################################
SQL> create table test (
  2  name varchar(10)
  3  );

테이블이 생성되었습니다.

SQL> desc test;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------

 NAME                                               VARCHAR2(10)
###########################################################################


############### test table에 osy란 number(10)타입의 컬럼 추가 ######################
SQL> alter table test add(osy number(10));

테이블이 변경되었습니다.

SQL> desc test;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------

 NAME                                               VARCHAR2(10)
 OSY                                                NUMBER(10)


###########################################################################


##############test table에 osy컬럼명을 osy79로 컬럼명 변경 #########################
SQL> alter table test rename column osy to osy79;

테이블이 변경되었습니다.

SQL> desc test;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------

 NAME                                               VARCHAR2(10)
 OSY79                                              NUMBER(10)

#############################################################################


#################test table에 osy79로 컬럼 데이터 타입 변경 ##########################
SQL> alter table test modify(osy79 varchar(10));

테이블이 변경되었습니다.

SQL> desc test
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------

 NAME                                               VARCHAR2(10)
 OSY79                                              VARCHAR2(10)
#############################################################################


######################test table에 osy79로 컬럼 삭제 ###############################

SQL> alter table test drop(osy79);

테이블이 변경되었습니다.

SQL> desc test;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------

 NAME                                               VARCHAR2(10)

##############################################################################

작성자   :     오 수 영 (http://blog.naver.com/neptuneosy)

Posted by Lucky™
사용자 삽입 이미지

Expert one-on-one Oracle



OKJSP 사이트에서 알게 된 오라클 관련 책 Expert one-on-one Oracle을 구입해서

오늘 배송왔다앙^^

이 책이 오라클과 관련된 책 중 이화식씨가 쓴 대용량 데이터베이스 솔루션과 함께 좋은 책으로 손꼽힌다고 한다.

게다가 이 책이 더 이상 출간되지 않는데 강컴이란 도서 쇼핑몰에서 이번에 재고를 마련했다고 해서 낼름 구입하게 됐다.

책 두께가 심히 부담스럽긴 하지만 틈틈히 공부해서 DB실력을 키워야겠다!!

41000원짜리를 19000원으로 할인해서 팔길래 배송비 이천원까지 21000원인데

신규회원 2000원 할인쿠폰을 받아서 19000원에 구입할 수 있었다.


열심히 공부하자!
Posted by Lucky™

BLOG main image
Always Lucky... by Lucky™

공지사항

카테고리

전체 (115)
Lucky's... (1)
Lucky Story... (76)
Entertainment (5)
Shopping (5)
Programming (12)
Etc. (16)
Total : 206,312
Today : 4 Yesterday : 17