삭제 쿼리 만들기 및 실행
Applies ToMicrosoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

Access 데스크톱 데이터베이스에서 많은 데이터를 빠르게 삭제하거나 정기적으로 데이터 집합을 삭제하려는 경우 쿼리를 통해 데이터를 빠르게 찾고 삭제할 조건을 지정할 수 있으므로 삭제 또는 업데이트 쿼리가 유용할 수 있습니다. 저장된 쿼리를 다시 사용할 수 있으므로 쿼리를 사용하는 것이 시간 절약이 될 수도 있습니다.

참고: 데이터를 삭제하거나 삭제 쿼리를 실행하기 전에 Access 데스크톱 데이터베이스의 백업이 있는지 확인합니다.

몇 가지 레코드만 삭제하려면 쿼리가 필요하지 않습니다. 데이터시트 보기에서 테이블을 열고 삭제할 필드(열) 또는 레코드(행)를 선택한 다음 DELETE 키를 누릅니다.

중요: 이 문서의 정보는 데스크톱 데이터베이스에서만 사용하기 위한 것입니다. Access 웹앱에서는 삭제 또는 업데이트 쿼리를 사용할 수 없습니다.

이 문서의 내용

쿼리 유형 선택

업데이트 쿼리 또는 삭제 쿼리를 사용하여 데이터베이스에서 데이터를 삭제할 수 있습니다. 다음 표의 세부 정보에 따라 쿼리를 선택합니다.

쿼리 유형

사용하는 경우

결과

삭제 쿼리 사용

테이블 또는 두 개의 관련 테이블에서 전체 레코드(행)를 동시에 제거합니다.

참고: 레코드가 일대다 관계의 "일" 쪽에 있는 경우 삭제 쿼리를 실행하기 전에 관계를 변경해야 할 수 있습니다. 관련 테이블에서 데이터를 삭제하는 섹션을 참조하세요.

쿼리 삭제는 레코드를 고유하게 만드는 키 값을 포함하여 각 필드의 모든 데이터를 제거합니다.

업데이트 쿼리 사용

테이블에서 개별 필드 값을 삭제하려면

기존 값을 null 값(즉, 데이터 없음) 또는 길이가 0인 문자열(둘 사이에 공백이 없는 큰따옴표 쌍)으로 업데이트하여 값을 더 쉽게 삭제할 수 있습니다.

맨 위로 이동

쿼리를 사용하여 데이터를 삭제하기 전에 확인해야 할 사항

  • 파일이 읽기 전용 파일이 아닌지 확인합니다.

    1. 시작을 마우스 오른쪽 단추로 클릭하고 Windows 탐색기 열기를 클릭합니다.

    2. 데이터베이스 파일을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

    3. 읽기 전용 특성이 선택되어 있는지 확인합니다.

  • 데이터베이스에서 레코드를 삭제하는 데 필요한 권한이 있는지 확인합니다. 확실하지 않은 경우 시스템 관리자 또는 데이터베이스 디자이너에게 문의하세요.

  • 데이터베이스에서 콘텐츠를 사용하도록 설정했는지 확인합니다. 기본적으로 Access는 데이터베이스를 처음 신뢰하지 않는 한 모든 작업 쿼리(삭제, 업데이트 및 테이블 만들기 쿼리)를 차단합니다. 데이터베이스를 신뢰하는 방법에 대한 자세한 내용은 사용 안 함 모드에서 쿼리 차단 중지 섹션을 참조하세요.

  • 데이터베이스의 다른 사용자에게 삭제하려는 데이터를 사용하는 모든 테이블, 양식, 쿼리 및 보고서를 닫도록 요청합니다. 이렇게 하면 잠금 위반을 방지할 수 있습니다.

  • 레코드를 편집하거나 삭제하기 전에 변경 내용을 되돌리려는 경우 데이터베이스의 백업 복사본을 만드는 것이 좋습니다.

팁: 많은 수의 사용자가 데이터베이스에 연결하는 경우 데이터베이스를 닫은 다음 배타적 모드로 다시 열어야 할 수 있습니다.

배타적 모드에서 데이터베이스를 열려면

  1. 파일 탭 > 열기를 클릭합니다.

  2. 을 찾아 데이터베이스를 선택하고 열기 단추 옆의 화살표를 클릭한 다음 독점 열기를 클릭합니다.

    단독 모드로 파일 열기

데이터베이스 백업

  1. 파일 탭을 클릭하고 다른 이름으로 저장을 가리킵니다.

  2. 다른 이름으로 데이터베이스 저장을 클릭하고 데이터베이스 백업을 클릭합니다. 원래 파일이 닫혔다가 백업이 만들어진 후 다시 열립니다.

  3. 다른 이름으로 저장을 클릭하고 백업 복사본의 이름과 위치를 지정하고 저장을 클릭합니다.

참고: 이전 버전의 Access에서 만든 읽기 전용 또는 데이터베이스를 사용하는 경우 데이터베이스 백업을 만들 수 없다는 메시지가 표시될 수 있습니다.

백업으로 되돌리려면 백업 복사본에 원래 버전의 이름을 사용할 수 있도록 원래 파일을 닫고 이름을 바꿉니다. 그런 다음 백업 복사본에 원래 버전의 이름을 지정하고 이름을 바꾼 백업 복사본을 Access에서 엽니다.

삭제 쿼리 사용

삭제 쿼리를 만들려면 만들기 탭을 클릭하고 쿼리 그룹에서 쿼리 디자인을 클릭합니다. 레코드를 삭제할 각 테이블을 두 번 클릭한 다음 닫기를 클릭합니다.

테이블은 쿼리 디자인 표의 위쪽 섹션에 창으로 나타납니다. 필드 목록에서 별표(*)를 두 번 클릭하여 테이블의 모든 필드를 디자인 그리드에 추가합니다.

삭제 쿼리에서 특정 조건 사용

중요: 조건을 사용하여 삭제하려는 레코드만 반환합니다. 그렇지 않으면 삭제 쿼리는 테이블의 모든 레코드를 제거합니다.

삭제 조건으로 지정할 필드를 두 번 클릭하고 쿼리 디자이너의 조건 행에 조건을 입력한 다음 각 조건 필드에 대한 표시 확인란의 선택을 취소합니다.

이 옵션을 사용할 수 있는 경우의 예: 고객에 대한 보류 중인 주문을 모두 제거한다고 가정합니다. 이러한 레코드만 찾으려면 고객 ID 및 주문 날짜 필드를 쿼리 디자인 표에 추가한 다음 고객의 ID 번호와 해당 고객의 주문이 유효하지 않은 날짜를 입력합니다.

  1. 디자인 탭에서 보기 > 데이터시트 보기를 클릭합니다.

  2. 쿼리가 삭제하려는 레코드를 반환했는지 확인한 다음 Ctrl+S를 눌러 쿼리를 저장합니다.

  3. 쿼리를 실행하려면 탐색 창에서 쿼리를 두 번 클릭합니다.

맨 위로 이동

업데이트 쿼리 사용

참고: Access 웹앱에서는 업데이트 쿼리 옵션을 사용할 수 없습니다.

이 섹션에서는 업데이트 쿼리를 사용하여 테이블에서 개별 필드를 삭제하는 방법을 설명합니다. 데이터를 삭제하기 위해 업데이트 쿼리를 실행하면 지정한 조건에 따라 기존 값이 NULL 또는 길이가 0인 문자열(공백이 없는 큰따옴표 쌍)으로 변경됩니다.

  1. 만들기 탭을 클릭하고 쿼리 그룹에서 쿼리 디자인을 클릭합니다.

  2. 삭제할 데이터가 있는 테이블을 선택하고(테이블이 관련된 경우 관계의 "일" 쪽에서 테이블을 선택하고, 추가를 클릭한 다음, 닫기를 클릭합니다.

    테이블은 쿼리 디자인 표의 위쪽 섹션에 창으로 나타납니다. 창에는 선택한 테이블의 모든 필드가 나열됩니다.

  3. 별표(*)를 두 번 클릭하여 테이블의 모든 필드를 디자인 그리드에 추가합니다. 모든 테이블 필드를 추가하면 삭제 쿼리가 테이블에서 전체 레코드(행)를 제거할 수 있습니다.

    필요에 따라 디자이너의 조건 행에 하나 이상의 필드에 대한 조건을 입력한 다음 각 조건 필드에 대한 표시 확인란의 선택을 취소할 수 있습니다. 조건 사용에 대한 자세한 내용은 쿼리 선택 테이블의 샘플 조건을 참조하세요 .

    참고: 조건을 사용하여 변경하려는 레코드만 반환합니다. 그렇지 않으면 업데이트 쿼리는 쿼리의 각 필드에 있는 모든 레코드를 NULL로 설정합니다.

  4. 디자인 탭의 결과 그룹에서 보기를 클릭한 다음 데이터시트 보기를 클릭합니다.

  5. 쿼리가 NULL로 설정하려는 레코드 또는 길이가 0인 문자열(둘 사이에 공백이 없는 큰따옴표 쌍)을 반환했는지 확인합니다.

  6. 필요에 따라 3~5단계를 반복하고 쿼리가 삭제하려는 데이터만 반환할 때까지 필드 또는 조건을 변경한 다음 Ctrl+S를 눌러 쿼리를 저장합니다.

  7. 쿼리를 실행하려면 탐색 창에서 쿼리를 두 번 클릭합니다.

맨 위로 이동

추가 정보

관련 테이블에서 데이터 삭제

여러 관련 테이블에서 데이터를 삭제하려면 각 관계에 대해 참조 무결성연계 삭제 관련 레코드 옵션을 사용하도록 설정해야 합니다. 이렇게 하면 쿼리가 관계의 "일" 및 "다" 측면의 테이블에서 데이터를 삭제할 수 있습니다. 삭제된 관련 데이터를 준비하려면 다음을 확인해야 합니다.

  • 관계의 "일" 쪽에 상주하는 레코드와 "다" 쪽에 있는 레코드를 결정합니다.

  • 관계의 "일" 쪽에 있는 레코드와 "다" 쪽의 관련 레코드를 삭제해야 하는 경우 참조 무결성이라는 규칙 집합을 사용하도록 설정하고 연속 삭제를 사용하도록 설정합니다. 이 섹션의 단계에서는 참조 무결성 및 두 작업을 모두 수행하는 방법을 설명합니다.

  • 관계의 "일" 쪽에서만 레코드를 삭제해야 하는 경우 먼저 해당 관계를 삭제한 다음 데이터를 삭제합니다.

관계의 "다" 쪽에서만 데이터를 제거해야 하는 경우 관계를 변경하지 않고도 삭제 쿼리를 만들고 실행할 수 있습니다.

관계의 "one" 및 "many" 쪽에 있는 레코드를 확인하려면 데이터베이스 도구 탭의 관계 그룹에서 관계를 클릭합니다. 관계 탭에는 데이터베이스의 테이블과 관계가 표시됩니다. 각 관계는 필드 간에 테이블을 연결하는 선으로 표시됩니다.

다음 그림에서는 일반적인 관계를 보여 줍니다. 전부는 아니지만 대부분 데이터베이스의 관계에는 "일" 측면과 "다" 측면이 있습니다. 관계 다이어그램은 숫자 1(1)이 있는 "일" 면과 무한대() 기호가 있는 "다" 쪽을 나타냅니다.

두 테이블 간의 관계

관계의 "일" 쪽에서 레코드를 삭제하는 경우 관계의 "다" 쪽에 있는 모든 관련 레코드도 삭제합니다. 그러나 관계의 "다" 쪽에서 레코드를 삭제하는 경우 일반적으로 "일" 쪽에서 레코드를 삭제하지 않습니다.

또한 Access는 참조 무결성이라는 규칙 집합을 자동으로 적용합니다. 이러한 규칙은 데이터베이스의 외장 키에 올바른 값을 포함하도록 합니다. 외래 키는 값이 다른 테이블의 기본 키 열에 있는 값과 일치하는 열입니다.

관계 편집

관계의 "일" 및 "다" 쪽에서 데이터를 삭제해야 하는 경우에만 다음 단계를 수행합니다.

  1. 데이터베이스 도구 탭의 관계 그룹에서 관계를 클릭합니다.

  2. 삭제 작업과 관련된 테이블을 연결하는 관계(줄)를 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 관계 편집 을 클릭합니다.

  3. 관계 편집 대화 상자에서 참조 무결성 적용 확인란이 선택되어 있는지 확인합니다.

  4. 관련 레코드 삭제 연계 확인란을 선택합니다.

    참고: 이 속성을 다시 사용하지 않도록 설정할 때까지 관계의 "일" 쪽에서 레코드를 삭제하면 관계의 "다" 쪽에 있는 모든 관련 레코드가 삭제됩니다.

  5. 확인을 클릭하고 관계 창을 닫은 다음 다음 단계 집합으로 이동합니다.

관계 삭제

  1. 아직 수행하지 않은 경우 관계 창을 엽니다.

  2. 데이터베이스 도구 탭의 관계 그룹에서 관계를 클릭합니다.

    데이터를 삭제한 후 관계를 복원할 수 있도록 관계에 관련된 필드를 기록해 둡다.

  3. 삭제 작업과 관련된 테이블을 연결하는 관계(줄)를 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 삭제 를 클릭합니다.

참고: 관계를 복원하려면 이전 단계에 따라 관계 창을 연 다음 기본 키 필드를 "one" 테이블에서 끌어 "다" 테이블의 외래 키 필드에 놓습니다. 관계 편집 대화 상자가 나타납니다. 이전 관계가 참조 무결성을 적용한 경우 참조 무결성 적용을 선택한 다음 만들기를 클릭합니다. 그렇지 않으면 만들기를 클릭합니다.

맨 위로 이동

선택 쿼리에 대한 샘플 조건

다음 표에서는 삭제하려는 데이터만 삭제하려는 경우 선택 쿼리에서 사용할 수 있는 몇 가지 샘플 조건을 나열합니다. 이러한 예제 중 일부는 와일드카드 문자를 사용합니다.

조건

효과

> 234

234보다 큰 숫자를 모두 반환합니다. 234보다 작은 숫자를 모두 찾으려면 < 234를 사용합니다.

>= "Cajhen"

사전순으로 김재경부터 맨 끝까지의 모든 레코드를 반환합니다.

#2/2/2010# 및 #12/1/2010 사이#

2010년 2월 2일부터 2010년 12월 1일까지의 날짜를 반환합니다(ANSI-89). 데이터베이스에서 ANSI-92 와일드카드 문자를 사용하는 경우 우물정자(#) 대신 작은따옴표()를 사용합니다. 예: '2010년 2월 2일'과 '2010년 12월 1일' 사이.

Not "독일"

필드 내용이 "독일"과 정확하게 일치하지 않는 모든 레코드를 찾습니다. "독일(유로)" 또는 "유럽(독일)"과 같이 "독일"에 다른 문자가 덧붙여진 레코드를 반환합니다.

Not "대*"

'대'로 시작하는 레코드를 제외한 모든 레코드를 찾습니다. 데이터베이스에서 ANSI-92 와일드카드 문자 집합을 사용하는 경우 별표(*) 대신 백분율 기호(%)를 사용합니다.

Not "*다"

'다'로 끝나지 않는 모든 레코드를 찾습니다. 데이터베이스에서 ANSI-92 와일드카드 문자 집합을 사용하는 경우 별표(*) 대신 백분율 기호(%)를 사용합니다.

In("캐나다","영국")

목록에서 캐나다 또는 영국이 포함된 모든 레코드를 찾습니다.

Like "[ㄱ-ㄹ]*"

텍스트 필드에서 문자 A~D로 시작하는 모든 레코드를 찾습니다. 데이터베이스에서 ANSI-92 와일드카드 문자 집합을 사용하는 경우 별표(*) 대신 백분율 기호(%)를 사용합니다.

Like "*포장*"

'포장'이 포함된 모든 레코드를 찾습니다. 데이터베이스에서 ANSI-92 와일드카드 문자 집합을 사용하는 경우 별표(*) 대신 백분율 기호(%)를 사용합니다.

Like "대양 마말레이?"

"대양"으로 시작하며 그 다음 네 자가 "마말레이"이고 마지막 자는 알 수 없는 모든 레코드를 찾습니다. 데이터베이스에서 ANSI-92 와일드카드 문자 집합을 사용하는 경우 물음표(?) 대신 밑줄(_)을 사용합니다.

#2/2/2010#

2010년 2월 2일의 모든 레코드를 찾습니다. 데이터베이스에서 ANSI-92 와일드카드 문자 집합을 사용하는 경우 파운드 기호('2010년 2월 2일') 대신 작은따옴표로 날짜를 묶습니다.

< Date() - 30

Date 함수를 사용하여 30일을 초과한 모든 날짜를 반환합니다.

Date()

Date 함수를 사용하여 오늘 날짜가 들어 있는 모든 레코드를 반환합니다.

Between Date() And DateAdd("M", 3, Date())

DateDateAdd 함수를 사용하여 오늘 날짜와 오늘 날짜로부터 3개월 사이의 모든 레코드를 반환합니다.

Is Null

비어 있거나 정의되지 않은, 즉 null 값이 포함된 모든 레코드를 반환합니다.

Is Not Null

null이 아닌 값이 포함된 모든 레코드를 반환합니다.

""

빈 문자열이 포함된 모든 레코드를 반환합니다. 필요한 필드에 값을 추가해야 하는 경우 길이가 0인 문자열을 사용하지만 실제 값이 무엇인지는 아직 알 수 없습니다. 예를 들어 필드에 팩스 번호를 입력해야 하지만 팩스가 없는 고객이 있을 수 있습니다. 이 경우 숫자를 입력하는 대신 둘 사이에 공백이 없는 큰따옴표 쌍을 입력합니다("").

맨 위로 이동

문제 해결 팁

오류 메시지가 표시되는 이유와 오류를 수정하는 방법

여러 테이블을 사용하여 삭제 쿼리를 빌드하고 쿼리의 Unique Records 속성이 아니요로 설정된 경우 Access는 오류 메시지를 표시합니다. 쿼리를 실행할 때 지정된 테이블에서 삭제할 수 없습니다 .

이 문제를 해결하려면 쿼리의 고유 레코드 속성을 로 설정합니다.

  1. 삭제 쿼리를 디자인 보기에서 엽니다.

  2. 쿼리 속성 시트가 열려 있지 않으면 F4 키를 눌러 엽니다.

  3. 쿼리 디자이너를 클릭하여 필드 속성이 아닌 쿼리 속성이 표시되도록 합니다.

  4. 쿼리 속성 시트에서 고유 레코드 속성을 찾아 해당 값을 로 설정합니다.

사용 안 함 모드에서의 쿼리 차단 해제

기본적으로 신뢰하도록 선택하지 않았거나 신뢰할 수 있는 위치에 있지 않은 데스크톱 데이터베이스를 열면 Access에서 모든 작업 쿼리가 실행되지 않도록 차단합니다.

실행 쿼리를 실행했는데 아무런 작업도 수행되지 않은 것처럼 보이면 Access 상태 표시줄에 다음 메시지가 표시되어 있는지 확인하세요.

사용 안 함 모드에서 매크로 함수나 이벤트를 차단했습니다.

해당 메시지가 표시되면 다음 단계를 수행하여 차단된 콘텐츠를 사용하도록 설정합니다.

  • 보안 경고 메시지 표시줄에서 콘텐츠 사용을 클릭하고 쿼리를 다시 실행합니다.

맨 위로 이동

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

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

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