쿼리가 충분히 작동하지 않는 경우 몇 가지 기본 SQL 문을 추가하면 결과에 집중하는 데 도움이 될 수 있습니다. 원하는 결과를 얻기 위해 편집할 수 있는 몇 가지 유형의 SQL 문과 절 또는 부분을 살펴보겠습니다.
참고: 이 문서는 Access에서 디자인하여 온라인에 게시하는 데이터베이스 종류인 Access 웹앱에는 적용되지 않습니다.
이 문서의 내용
Select 문 만들기
SQL select 문에는 2~3개의 절이 있습니다. SELECT 절은 데이터를 찾을 위치를 데이터베이스에 알리고 특정 결과를 반환하도록 요청합니다.
참고: SELECT 문은 항상 마지막 절의 끝이나 SQL 문의 끝에 있는 줄 자체에 ;) 세미콜론으로 끝납니다.
다음 select 문은 Access에 전자 메일 주소 및 회사 열, 연락처 테이블, 특히 City 열에서 "Seattle"을 찾은 위치에서 정보를 가져올 것을 요청합니다.
위의 쿼리에는 SELECT, FROM 및 WHERE 절이 세 개 있습니다.
1. SELECT 절에는 사용하려는 데이터가 들어 있고 연산자(SELECT)와 두 개의 식별자(전자 메일 주소 및 회사)가 있는 열이 나열됩니다. 식별자에 공백 또는 특수 문자(예: "전자 메일 주소")가 있는 경우 식별자를 대괄호 안에 묶습니다.
2. FROM 절은 원본 테이블을 식별합니다. 이 예제에서는 연산자(FROM) 뒤에 식별자(연락처)가 있습니다.
3. WHERE 절은 선택적 절입니다. 예제에는 연산자(WHERE) 뒤에 식(City="Seattle")이 있습니다.
선택 쿼리에 대한 자세한 내용은 간단한 선택 쿼리 만들기를 참조하세요.
일반적인 SQL 절 목록은 다음과 같습니다.
SQL 절 |
기능 |
필수인가요 ? |
SELECT |
관심 있는 데이터가 포함된 필드를 나열합니다. |
예 |
FROM |
SELECT 절에 나열된 필드가 포함된 테이블을 나열합니다. |
예 |
WHERE |
결과에 포함할 각 레코드에서 충족해야 하는 필드 조건을 지정합니다. |
아니요 |
ORDER BY |
결과를 정렬하는 방법을 지정합니다. |
아니요 |
GROUP BY |
집계 함수를 포함하는 SQL 문에서 SELECT 절에 요약되지 않은 필드를 나열합니다. |
이러한 필드가 있는 경우에만 |
HAVING |
집계 함수를 포함하는 SQL 문에서 는 SELECT 문에 요약된 필드에 적용되는 조건을 지정합니다. |
아니요 |
각 SQL 절은 용어로 구성됩니다. 다음은 몇 가지 일반적인 SQL 용어 목록입니다.
SQL 용어 |
정의 |
예제 |
식별자 |
열 이름과 같이 데이터베이스 개체를 식별하는 데 사용하는 이름입니다. |
[전자 메일 주소] 및 회사 |
연산자 |
작업을 나타내거나 작업을 수정하는 키워드입니다. |
AS |
상수 |
숫자 또는 NULL과 같이 변경되지 않는 값입니다. |
42 |
식 |
단일 값으로 평가되는 식별자, 연산자, 상수 및 함수의 조합입니다. |
>= 제품입니다. [단가] |
SELECT 절 사용자 지정
사용자 지정 |
예제 |
고유 값만 보려면 입니다. SELECT 절에서 DISTINCT 키워드를 사용합니다. |
예를 들어 고객이 여러 지점 출신이고 일부 지점의 전화 번호가 같고 전화 번호만 한 번만 표시하려는 경우 SELECT 절은 다음과 같습니다.
|
데이터시트 보기에 식별자가 표시되는 방식을 변경하여 가독성을 향상시킵니다. SELECT 절의 필드 별칭과 함께 AS 연산자(작업을 나타내거나 작업을 수정하는 키워드)를 사용합니다. 필드 별칭은 결과를 더 쉽게 읽을 수 있도록 필드에 할당하는 이름입니다. |
|
FROM 절 사용자 지정
사용자 지정 |
예제 |
select 문의 테이블에 할당하는 테이블 별칭 또는 다른 이름을 사용할 수 있습니다. 테이블 별칭은 테이블 이름의 이름이 긴 경우 특히 서로 다른 테이블의 이름이 같은 필드가 여러 대 있는 경우에 유용합니다. |
테이블 tblCustomer와 테이블 tblOrder에서 제공되는 두 필드(둘 다 이름 ID)에서 데이터를 선택하려면 다음을 수행합니다.
AS 연산자를 사용하여 FROM 절에서 테이블 별칭을 정의합니다.
그런 다음 다음과 같이 SELECT 절에서 이러한 테이블 별칭을 사용할 수 있습니다.
|
조인을 사용하여 두 데이터 원본의 레코드 쌍을 단일 결과로 결합하거나 관련 테이블에 해당 레코드가 없는 경우 두 테이블의 레코드를 포함할지 여부를 지정합니다. 쿼리가 테이블의 항목을 결합하고 다른 테이블에 해당 레코드가 없을 때 항목을 제외할 수 있도록 테이블을 조인합니다. |
FROM 절의 모양은 다음과 같습니다.
|
조인 사용 정보
내부 조인과 외부 조인의 두 가지 유형이 있습니다. 내부 조인은 쿼리에서 더 일반적입니다. 내부 조인을 사용하여 쿼리를 실행하는 경우 결과는 조인된 두 테이블 모두에 공통 값이 있는 항목만 표시합니다.
외부 조인은 공통 값이 없는 데이터를 포함할지 여부를 지정합니다. 외부 조인은 방향성이므로 조인에 지정된 첫 번째 테이블의 모든 레코드를 포함할지(왼쪽 조인이라고 함) 조인에 두 번째 테이블의 모든 레코드를 포함할지(오른쪽 조인이라고 함)를 지정할 수 있습니다. 외부 조인에는 다음과 같은 SQL 구문이 있습니다.
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2
조인 테이블 및 쿼리에서 쿼리에서 조인을 사용하는 방법에 대한 자세한 내용을 참조하세요.
WHERE 절 사용자 지정
WHERE 절에는 쿼리에서 반환되는 항목 수를 제한하는 데 도움이 되는 조건이 포함되어 있습니다. 쿼리 조건의 예제 및 작동 방식을 참조하세요.
기본 WHERE 절을 사용자 지정하는 방법의 예는 쿼리 결과를 제한하는 것입니다. 고객의 전화 번호를 찾으려고 하며 그의 성을 Bagel로만 기억할 수 있다고 가정해 보겠습니다. 이 예제에서 성은 LastName 필드에 저장되므로 SQL 구문은 다음과 같습니다.
WHERE [LastName]='Bagel'
WHERE 절을 사용하여 일치하는 데이터가 있지만 데이터 형식이 다른 열에 대한 데이터 원본을 결합합니다. 이는 데이터 형식이 다른 필드 간에 조인을 만들 수 없으므로 편리합니다. 한 필드를 LIKE 키워드와 함께 다른 필드에 대한 기준으로 사용합니다. 예를 들어 Assets 테이블 및 Employees 테이블의 데이터를 사용하려는 경우 Assets 테이블의 자산 유형 필드에 있는 자산 유형에 Employees 테이블의 Quantity 필드에 3번이 있는 경우에만 WHERE 절의 모양은 다음과 같습니다.
WHERE field1 LIKE field2
중요: WHERE 절에서 집계 함수와 함께 사용되는 필드에 대한 조건을 지정할 수 없습니다. 대신 HAVING 절을 사용하여 집계 필드에 대한 조건을 지정합니다.
UNION 연산자를 사용하여 사용자 지정
몇 가지 유사한 선택 쿼리의 결과를 결합한 보기를 보려면 UNION 연산자를 사용합니다. 예를 들어 데이터베이스에 Products 테이블과 서비스 테이블이 있고 둘 다 독점 제품 또는 제품 또는 서비스, 가격, 보증 또는 보증의 세 가지 필드가 있는 경우입니다. Products 테이블에는 보증 정보가 저장되고 서비스 테이블에는 보장 정보가 저장되지만 기본 정보는 동일합니다. 공용 구조체 쿼리를 사용하여 다음과 같은 두 테이블의 세 필드를 결합할 수 있습니다.
SELECT name, price, warranty, exclusive_offer
FROM Products UNION ALL SELECT name, price, guarantee, exclusive_offer FROM Services;
쿼리를 실행하면 각 해당 필드 집합의 데이터가 하나의 출력 필드로 결합됩니다. 결과에 중복 행을 포함하려면 ALL 연산자를 사용합니다.
참고: Select 문은 동일한 수의 출력 필드와 동일한 순서로 동일하거나 호환되는 데이터 형식을 가져야 합니다. 공용 구조체 쿼리를 위해 숫자 및 텍스트 데이터 형식이 호환됩니다.
공용 구조체 쿼리에 대한 자세한 내용은 공용 구조체 쿼리를 사용하여 여러 쿼리의 통합 결과 보기를 참조하세요.