Access SQL: 기본 개념, 어휘 및 구문
Applies ToMicrosoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

데이터베이스에서 데이터를 검색하려는 경우 구조적 쿼리 언어 또는 SQL을 사용하여 데이터를 요청합니다. SQL은 영어와 비슷하지만 데이터베이스 프로그램에서 이해하는 컴퓨터 언어입니다. 실행하는 모든 쿼리는 백그라운드에서 SQL을 사용합니다.

SQL 작동 방식을 이해하면 더 나은 쿼리를 만들 수 있으며 원하는 결과를 반환하지 않는 쿼리를 수정하는 방법을 더 쉽게 이해할 수 있습니다.

Access SQL에 대한 일련의 문서 중 하나입니다. 이 문서에서는 SQL을 사용하여 데이터를 선택하는 기본 방법을 설명하고 예제를 사용하여 SQL 구문을 보여 줍니다.

이 문서의 내용

SQL이란?

SQL은 팩트 집합과 팩트 간의 관계를 사용하기 위한 컴퓨터 언어입니다. Microsoft Office Access와 같은 관계형 데이터베이스 프로그램은 SQL을 사용하여 데이터 작업을 수행합니다. 많은 컴퓨터 언어와 달리 SQL은 초보자도 읽고 이해하기 어렵지 않습니다. 많은 컴퓨터 언어와 마찬가지로 SQL은 ISOANSI와 같은 표준 기관에서 인식하는 국제 표준입니다.

SQL을 사용하여 질문에 답변하는 데 도움이 되는 데이터 집합을 설명합니다. SQL을 사용하는 경우 올바른 구문을 사용해야 합니다. 구문은 언어의 요소가 올바르게 결합되는 규칙 집합입니다. SQL 구문은 영어 구문을 기반으로 하며 VBA(Visual Basic for Applications) 구문과 동일한 많은 요소를 사용합니다.

예를 들어 이름이 Mary인 연락처의 성 목록을 검색하는 간단한 SQL 문은 다음과 유사할 수 있습니다.

SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';

참고: SQL은 데이터 조작뿐만 아니라 테이블과 같은 데이터베이스 개체의 디자인을 만들고 변경하는 데에도 사용됩니다. 데이터베이스 개체를 만들고 변경하는 데 사용되는 SQL 부분을 DDL(데이터 정의 언어)이라고 합니다. 이 항목에서는 DDL을 다루지 않습니다. 자세한 내용은 데이터 정의 쿼리를 사용하여 테이블 또는 인덱스 만들기 또는 수정 문서를 참조하세요.

SELECT 문

SQL을 사용하여 데이터 집합을 설명하려면 SELECT 문을 작성합니다. SELECT 문에는 데이터베이스에서 가져오려는 데이터 집합에 대한 전체 설명이 포함되어 있습니다. 포함되는 항목은 다음과 같습니다.

  • 데이터가 포함된 테이블입니다.

  • 여러 원본의 데이터가 관련된 방식입니다.

  • 데이터를 생성할 필드 또는 계산입니다.

  • 데이터가 포함되려면 일치해야 하는 조건입니다.

  • 결과 정렬 여부 및 방법

SQL 절

문장과 마찬가지로 SQL 문에는 절이 있습니다. 각 절은 SQL 문에 대한 함수를 수행합니다. SELECT 문에는 일부 절이 필요합니다. 다음 표에는 가장 일반적인 SQL 절이 나와 있습니다.

SQL 절

기능

필수

SELECT

관심 있는 데이터가 포함된 필드를 Lists.

FROM

SELECT 절에 나열된 필드가 포함된 테이블을 Lists.

WHERE

결과에 포함할 각 레코드에서 충족해야 하는 필드 조건을 지정합니다.

아니요

ORDER BY

결과를 정렬하는 방법을 지정합니다.

아니요

GROUP BY

집계 함수를 포함하는 SQL 문에서 SELECT 절에 요약되지 않은 필드를 나열합니다.

이러한 필드가 있는 경우에만

HAVING

집계 함수를 포함하는 SQL 문에서 는 SELECT 문에 요약된 필드에 적용되는 조건을 지정합니다.

아니요

SQL 용어

각 SQL 절은 음성 부분에 필적하는 용어로 구성됩니다. 다음 표에는 SQL 용어 유형이 나와 있습니다.

SQL 용어

음성의 비슷한 부분

정의

예제

식별자

명사

필드 이름과 같은 데이터베이스 개체를 식별하는 데 사용하는 이름입니다.

고객. [전화 번호]

연산자

동사 또는 부사

작업을 나타내거나 작업을 수정하는 키워드(keyword).

AS

상수

명사

숫자 또는 NULL과 같이 변경되지 않는 값입니다.

42

형용사

단일 값으로 평가되는 식별자, 연산자, 상수 및 함수의 조합입니다.

>= 제품입니다. [단가]

맨 위로 이동

기본 SQL 절: SELECT, FROM 및 WHERE

SQL 문은 다음과 같은 일반적인 형식을 사용합니다.

SELECT field_1FROM table_1WHERE criterion_1;

참고 사항: 

  • ACCESS는 SQL 문에서 줄 바꿈을 무시합니다. 그러나 각 절에 대한 줄을 사용하여 자신과 다른 사용자에 대한 SQL 문의 가독성을 개선하는 것이 좋습니다.

  • 모든 SELECT 문은 세미콜론(;)으로 끝납니다. 세미콜론은 마지막 절의 끝이나 SQL 문의 끝에 있는 줄 자체에 나타날 수 있습니다.

Access의 예

다음은 Access에서 간단한 선택 쿼리에 대한 SQL 문이 어떤 모습일지 보여 줍니다.

SELECT 문을 보여 주는 SQL 개체 탭

1. SELECT 절

2. FROM 절

3. WHERE 절

이 예제 SQL 문은 "Contacts라는 테이블에서 전자 메일 주소 및 회사라는 필드에 저장된 데이터, 특히 City 필드 값이 시애틀인 레코드를 선택합니다."

SQL 구문의 작동 방식을 보려면 한 번에 하나의 절인 예제를 살펴보겠습니다.

SELECT 절

SELECT [E-mail Address], Company

SELECT 절입니다. 연산자(SELECT)와 두 개의 식별자([전자 메일 주소] 및 회사)로 구성됩니다.

식별자에 공백 또는 특수 문자(예: "전자 메일 주소")가 포함된 경우 대괄호로 묶어야 합니다.

SELECT 절은 필드를 포함하는 테이블을 말할 필요가 없으며 포함할 데이터에 의해 충족되어야 하는 조건을 지정할 수 없습니다.

SELECT 절은 SELECT 문의 FROM 절 앞에 항상 나타납니다.

FROM 절

FROM Contacts

FROM 절입니다. FROM(연산자) 뒤에 식별자(연락처)로 구성됩니다.

FROM 절에는 선택할 필드가 나열되지 않습니다.

WHERE 절

WHERE City="Seattle"

WHERE 절입니다. 연산자(WHERE)와 식(City="Seattle")으로 구성됩니다.

참고: SELECT 및 FROM 절과 달리 WHERE 절은 SELECT 문의 필수 요소가 아닙니다.

SELECT, FROM 및 WHERE 절을 사용하여 SQL에서 수행할 수 있는 많은 작업을 수행할 수 있습니다. 이러한 절을 사용하는 방법에 대한 자세한 내용은 다음 추가 문서에 제공됩니다.

맨 위로 이동

결과 정렬: ORDER BY

Microsoft Excel과 마찬가지로 Access를 사용하면 데이터시트에서 쿼리 결과를 정렬할 수 있습니다. ORDER BY 절을 사용하여 쿼리를 실행할 때 결과를 정렬하는 방법을 쿼리에서 지정할 수도 있습니다. ORDER BY 절을 사용하는 경우 SQL 문의 마지막 절입니다.

ORDER BY 절에는 정렬 작업에 사용할 필드 목록이 정렬 작업을 적용하려는 순서와 동일한 순서로 포함됩니다.

예를 들어 결과를 내림차순으로 회사 필드 값으로 먼저 정렬하고, Company 값이 동일한 레코드가 있는 경우 다음으로 오름차순으로 전자 메일 주소 필드의 값을 기준으로 정렬한다고 가정해 보겠습니다. ORDER BY 절은 다음과 유사합니다.

ORDER BY Company DESC, [E-mail Address]

참고: 기본적으로 Access는 값을 오름차순으로 정렬합니다(A-Z, 가장 작은 값에서 가장 큰 값). 대신 DESC 키워드(keyword) 사용하여 값을 내림차순으로 정렬합니다.

ORDER BY 절에 대한 자세한 내용은 ORDER BY 절 항목을 참조하세요.

맨 위로 이동

요약된 데이터 작업: GROUP BY 및 HAVING

경우에 따라 요약된 데이터(예: 한 달의 총 판매액 또는 인벤토리에서 가장 비싼 항목)를 사용하려고 합니다. 이렇게 하려면 SELECT 절의 필드에 집계 함수 적용합니다. 예를 들어 쿼리에서 각 회사에 대해 나열된 전자 메일 주소 수를 표시하려는 경우 SELECT 절은 다음과 유사할 수 있습니다.

SELECT COUNT([E-mail Address]), Company

사용할 수 있는 집계 함수는 사용하려는 필드 또는 식에 있는 데이터 형식에 따라 달라집니다. 사용 가능한 집계 함수에 대한 자세한 내용은 SQL 집계 함수 문서를 참조하세요.

집계 함수에 사용되지 않는 필드 지정: GROUP BY 절

집계 함수를 사용하는 경우 일반적으로 GROUP BY 절도 만들어야 합니다. GROUP BY 절에는 집계 함수를 적용하지 않는 모든 필드가 나열됩니다. 쿼리의 모든 필드에 집계 함수를 적용하는 경우 GROUP BY 절을 만들 필요가 없습니다.

GROUP BY 절은 WHERE 절 바로 뒤에, WHERE 절이 없는 경우 FROM 절을 따릅니다. GROUP BY 절은 SELECT 절에 표시되는 필드를 나열합니다.

예를 들어 이전 예제를 계속 진행하면서 SELECT 절이 집계 함수를 [전자 메일 주소]에 적용하지만 회사에 적용하지 않는 경우 GROUP BY 절은 다음과 유사합니다.

GROUP BY Company

GROUP BY 절에 대한 자세한 내용은 GROUP BY 절 항목을 참조하세요.

그룹 조건을 사용하여 집계 값 제한: HAVING 절

조건을 사용하여 결과를 제한하지만 조건을 적용하려는 필드가 집계 함수에 사용되는 경우 WHERE 절을 사용할 수 없습니다. 대신 HAVING 절을 사용합니다. HAVING 절은 WHERE 절처럼 작동하지만 집계된 데이터에 사용됩니다.

예를 들어 SELECT 절의 첫 번째 필드와 함께 AVG 함수(평균 값을 계산함)를 사용한다고 가정합니다.

SELECT COUNT([E-mail Address]), Company

쿼리가 해당 COUNT 함수의 값에 따라 결과를 제한하도록 하려면 WHERE 절에서 해당 필드에 대한 조건을 사용할 수 없습니다. 대신 HAVING 절에 조건을 넣습니다. 예를 들어 회사와 연결된 전자 메일 주소가 둘 이상 있는 경우에만 쿼리가 행을 반환하도록 하려면 HAVING 절이 다음과 유사할 수 있습니다.

HAVING COUNT([E-mail Address])>1

참고: 쿼리에는 WHERE 절과 HAVING 절이 있을 수 있습니다. 집계 함수에 사용되지 않는 필드에 대한 기준은 WHERE 절로 이동하고 집계 함수와 함께 사용되는 필드의 기준은 HAVING 절로 이동합니다.

HAVING 절에 대한 자세한 내용은 HAVING 절 항목을 참조하세요.

맨 위로 이동

쿼리 결과 결합: UNION

여러 유사한 선택 쿼리에서 함께 반환되는 모든 데이터를 결합된 집합으로 검토하려는 경우 UNION 연산자를 사용합니다.

UNION 연산자를 사용하면 두 개의 SELECT 문을 하나로 결합할 수 있습니다. 결합하는 SELECT 문은 동일한 수의 출력 필드와 동일한 순서 및 동일하거나 호환되는 데이터 형식을 가져야 합니다. 쿼리를 실행하면 각 해당 필드 집합의 데이터가 하나의 출력 필드로 결합되므로 쿼리 출력은 각 select 문과 동일한 수의 필드를 둡니다.

참고: 공용 구조체 쿼리를 위해 숫자 및 텍스트 데이터 형식이 호환됩니다.

UNION 연산자를 사용하는 경우 ALL 키 단어를 사용하여 쿼리 결과에 중복 행(있는 경우)을 포함할지 여부를 지정할 수도 있습니다.

두 SELECT 문을 결합하는 공용 구조체 쿼리의 기본 SQL 구문은 다음과 같습니다.

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

예를 들어 Products라는 테이블과 Services라는 다른 테이블이 있다고 가정합니다. 두 테이블에는 제품 또는 서비스의 이름, 가격, 보증 또는 가용성 보장, 제품 또는 서비스를 독점적으로 제공하는지 여부가 포함된 필드가 있습니다. Products 테이블에는 보증 정보가 저장되고 서비스 테이블에는 보장 정보가 저장되지만 기본 정보는 동일합니다(특정 제품 또는 서비스에 품질 약속 포함 여부). 다음과 같은 공용 구조체 쿼리를 사용하여 두 테이블의 네 필드를 결합할 수 있습니다.

SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;

UNION 연산자를 사용하여 SELECT 문을 결합하는 방법에 대한 자세한 내용은 UNION 쿼리를 사용하여 여러 선택 쿼리의 결과 결합을 참조하세요.

맨 위로 이동

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.