SQL을 사용하여 데이터의 부분 집합 가져오기

ODBC를 사용하여 데이터베이스에서 데이터를 가져올 때 SQL(Structured Query Language) 식을 사용하여 원하는 레코드(행)만 가져올 수 있습니다. SQL은 많은 데이터베이스 응용 프로그램에서 사용됩니다. Minitab은 SQL 식에 대해 작업을 수행하지 않고 데이터베이스에 SQL 식을 전달하기만 합니다.

가져올 필드 선택

  1. 파일 > 데이터베이스(ODBC) 질의을 선택합니다.
  2. 데이터 원본을 선택합니다. 메시지가 표시되면 데이터베이스를 선택합니다.
  3. 데이터베이스(ODBC) 질의 대화 상자의 사용 가능한 표 드롭다운 리스트에서 질의할 테이블을 선택합니다.
  4. 선택한 필드으로 가져올 필드를 이동하려면 화살표 단추를 사용합니다.
  5. 행 사용을 클릭합니다.
  6. 행 사용에 가져올 레코드를 정의하는 식을 입력합니다. 이러한 레코드는 Minitab에서 행이 됩니다. 식은 "where" 키워드로 시작하며 필드 이름, 논리 연산자(예: "And"와 "="), ODBC 함수 및 값을 포함합니다. 지원되는 SQL 함수에 대한 자세한 내용은 데이터베이스 응용 프로그램 설명서를 참조하십시오.
  7. 각 대화 상자에서 확인를 클릭합니다.

SQL 식 구문 가이드라인

구문 규칙은 다양한 데이터베이스 응용 프로그램의 ODBC 드라이버에 따라 다릅니다. 구문에 대한 자세한 내용은 데이터베이스 관리자에게 문의하십시오.

텍스트 값
텍스트 값 구문은 다음과 같이 ODBC 드라이버 구문 규칙을 따라야 합니다.
  • Microsoft® Access 및 여러 데이터베이스의 경우 텍스트 값을 작은따옴표로 묶습니다(예: 'Morristown').
  • Oracle 또는 SQL Server 데이터베이스의 경우 텍스트 값을 두 개의 큰따옴표로 묶습니다(예: ""Morristown"").
숫자 값
숫자는 특수 문자로 묶지 않습니다(예: 300).
날짜/시간 값
Access와 dBASE 데이터베이스의 경우 날짜를 파운드 기호로 묶습니다(예: #12/31/2016#). 다른 데이터베이스에 대해서는 해당 응용 프로그램의 설명서를 참조하십시오. 특정 날짜를 입력하는 대신 날짜/시간 함수를 사용할 수도 있습니다.
필드 이름
필드 구분 기호는 ODBC 드라이버에 따라 다릅니다. 행 사용 대화 상자의 필드 리스트에서 필드를 선택하여 필드 이름을 입력하면 Minitab은 ODBC 드라이버용 구분 기호로 필드를 묶습니다.
함수
함수가 데이터를 가져오는 데이터베이스 응용 프로그램의 함수가 아니라 ODBC 함수라는 것을 나타내려면 중괄호와 문자 "fn"을 사용합니다(예: {fn SQRT(128)}). 행 사용 대화 상자의 리스트에서 함수를 선택하면 Minitab에서 자동으로 필요한 구문을 추가합니다.
와일드카드 문자
모든 SQL 질의의 와일드카드에 대해 별표(*) 대신 퍼센트 기호(%), 물음표(?) 대신 밑줄(_)을 사용하십시오.

Microsoft® Access의 SQL 식 예

Access가 아닌 다른 데이터베이스 응용 프로그램에 대한 구문은 다를 수도 있습니다.

참고

최상의 결과를 얻으려면 테이블에서 식을 복사하여 붙여넣지 마십시오. 대화 상자에 직접 입력하십시오.

가져올 데이터 SQL 식
2017년 1사분기 기록
설명 DATE >= #1/1/17# And DATE < #4/1/17#
2010년 1월 1일 이후에 채용되었고 현재 재무부에 소속된 직원에 대한 기록
where DATE_HIRED > #1/1/10# And DEPT = 'Finance'
지난 30일 동안의 데이터
where `DateFieldName` > Now() - 30
어제 데이터
where (Format(Now-1,'mm-dd-yy')=Format(DateFieldName,'mm-dd-yy'))

일부 SQL 함수가 제대로 적용되지 않는 이유

SQL에는 식을 작성하기 위해 사용할 수 있는 ODBC 함수가 있습니다. 그러나 특정 ODBC 드라이버에서는 모든 ODBC 함수를 지원하지 않을 수 있습니다. 예를 들어, Microsoft® Access ODBC 드라이버는 TIMESTAMPDIFF 함수를 지원하지 않습니다. 오류 메시지는 Mintab이 아니라 ODBC 드라이버에서 표시되는 것입니다.

다음은 ODBC를 TIMESTAMPDIFF 함수와 함께 사용하여 Microsoft® Access를 질의할 때 수신되는 오류 메시지의 예입니다.
"SQL Error State: 37000, Native Error Code: FFFFF3E2, ODBC Error: [Microsoft] [ODBC Microsoft® Access Driver] Undefined function 'TIMESTAMPDIFF' in expression."

Access는 TIMESTAMPDIFF에 대한 대체 함수를 제공합니다. 대체 함수는 DATEDIFF( )입니다. 다음 질의는 직원 레코드에서 세 개의 열을 검색합니다. 첫 번째 열은 직원의 근무 시작일부터 오늘까지 경과한 일수입니다. 두 번째 열과 세 번째 열은 직원의 이름과 근무 시작일입니다.

ODBC; Connect "DSN=Test;DBQ=Q:\Trumparc.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=msl;SystemDB=Q:\secured.mdw;UID=msl;"; SQLString "SELECT DateDiff('y', `StartDate`, Now()),`Name`,`StartDate` FROM `Employee`".