Fly to the sky & Return

[c# mdb] Access 를 이용한 다중 select문 작성 쉽게 하기 본문

프로그래밍/c# 윈폼 데이터베이스 기초부터

[c# mdb] Access 를 이용한 다중 select문 작성 쉽게 하기

낼은어떻게 2016. 5. 26. 15:24
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

다중  select문은 한번 작성하고 난후에 나중에 수정을 위해 살펴볼려면 머리가 핑 돌아버릴정도록 복잡해저 있는 것이 사실입니다.


이런 서브 퀴리를 어떻게 하면 쉽게 작성하고 나중에 수정도 손쉽게 할수 있을까 고민하다가  mdb 기반 데이터베이스를 이용한 프로그램 작성시에는 ms office에서 제공하는 MS Access(이하 엑서스)를 이용하여 간편하게 작성하고  손쉽게 수정가능 한 상태로 코딩할 수있다는 것을 알았습니다


그 방법을 공개합니당.    두둥~~~~




엑서스에서는  쿼리 마법사나 쿼리 만들기 UI를 제공합니다.



이상테에서  sql 보기 메뉴를 선택하면  다음 같은  select 문이 나타납니다.



이  select 문을    문자열로 저장합니다.


1
2
3
string sql = @"SELECT Customers.CustomerID, Customers.CompanyName, Customers.ContactName, Customers.ContactTitle
               FROM Customers";
 
cs

최종 목적이라 할수 있는  select문을 작성합니다.


엑서스의 쿼리 만들기를 이용해서 이미 만들어 놓은 쿼리1을 대상으로 해서 필요한 select문을 작성합니다.  


이제 쿼리2가  c# 에서 작동하도록 코딩을 해봅니다.


1
2
3
4
5
6
string sql = @"SELECT Customers.CustomerID, Customers.CompanyName, Customers.ContactName, Customers.ContactTitle
               FROM Customers";
 
string sql2 = @"SELECT 쿼리1.CustomersID, 쿼리1.CompanyName
                  FROM (" + sql + @") 쿼리1
                WHERE 쿼리1.ContactTitle = 'Owner'";
cs


엑서스에서 만들 쿼리2 select문 의   FROM절에  쿼리1의 select 문의 문자열일   sql를 집어 넣는 것만으로  sub query 문이 완성이 되었습니다.


요렇게 보면 어느 컬럼이 어디서 기원했는지도 한눈에 찾아보기기 쉽더라구여.


요  코드를 풀어쓴다면 다음과 같이 될 것입니다.


1
2
3
4
string sql2 = @"SELECT 쿼리1.CustomersID, 쿼리1.CompanyName
                  FROM (SELECT Customers.CustomerID, Customers.CompanyName, Customers.ContactName, Customers.ContactTitle
               FROM Customers) 쿼리1
                WHERE 쿼리1.ContactTitle = 'Owner'";


cs



짧은 sub query이지만 위의 코드가 훨신 가독성이 좋다는 것이 보일 것입니다.

이런식으로 select문을 문자열로 저장하고 다른 select 문에 사용하는 방법 ... 그 문자열을 엑서스를 통해 작성하다면 좀더 편하게 코딩하고 관리할 수 있을 듯합니다.