SQLShack (한국어)

이 기사에서는 기존 테이블에서 SQL 삭제 열의 프로세스를 탐색합니다. 또한 정의 된 제약 조건 및 개체가있는 열을 제거 할 때의 영향을 이해합니다.

소개

관계형 데이터베이스에서 스키마 디자인 기술 정규화를 사용하고 큰 테이블을 분할합니다. 작은 테이블로. 데이터의 중복성과 종속성을 줄이는 데 도움이됩니다. 다음 이미지에는 여러 정규화 형식이 지정되어 있습니다.

이 기사에서는 정규화 기술을 다루지 않습니다. 기사 – SQL Server의 데이터베이스 정규화 란 무엇입니까?

여러 열이있는 기존 테이블이 있다고 가정 해보십시오. 이 테이블에는 현재 관련이없는 특정 열이 있습니다. 이러한 열은 필요하지 않습니다. 예를 들어 제품 테이블을 고려하면이 테이블에는 열이 있습니다. 제품 피드백을 캡처하기 위해 별도의 메커니즘을 구현했으며이 열은 현재 관련이 없습니다.

SQL 테이블에서 원하지 않는 열을 제거해야하는 이유를 이해하겠습니다. 아래는 내 테이블 구조이며 데이터 유형이 varchar (2000) 인 열을 제거해야합니다.

이 테이블에는 4 백만 개가 포함되어 있습니다. 행 및 사용자가 명령을 실행하여이 테이블에서 모든 레코드를 선택했습니다.

1

제품에서 * 선택;

실제 실행 계획 캡처 (CTRL + M 누르기) 클라이언트 통계 (Shift + Alt + S 누르기)와 함께이 쿼리의 내용을 표시합니다.

다른 쿼리 창에서 열없이 쿼리를 실행하고 유사한 통계를 캡처합니다.

1
2
3
4

SELECT
,
,
FROM ..

SSMS에서 두 쿼리의 실제 실행 계획을 비교해 보겠습니다. 열이없는 쿼리는 성능이 향상되었음을 알 수 있습니다. 컴파일 된 메모리, CPU 시간, 대기 횟수 감소의 낮은 값을 볼 수 있습니다.

쿼리 최적화 프로그램과 SQL 데이터베이스 엔진은이 열에서 데이터를 검색하는 데 유용하지 않은 동안 추가 작업을 수행해야합니다.

마찬가지로 두 쿼리의 클라이언트 통계를 비교하십시오. 서버에서 수신 한 TDS 패킷의 상당한 감소를 확인할 수 있습니다. 클라이언트로 보낸 바이트, 서버에서받은 바이트, 클라이언트 처리 시간 및 열을 포함하지 않는 쿼리에 대한 총 처리 시간입니다. 네트워크 대역폭도 절약 할 수 있습니다.

여기서는 쿼리 성능을 향상시키기 위해 데이터베이스 정리를 수행하고 원하지 않는 열을 제거해야합니다.

기존 SQL 테이블에서 열을 제거하는 방법을 살펴 보겠습니다.

SSMS 개체 탐색기를 사용한 SQL DELETE 열

그래픽 사용자를 사용하여 열을 제거 할 수 있습니다. SQL Server의 인터페이스 (GUI) 방법. SSMS의 인스턴스에 연결하고 데이터베이스를 확장합니다. 특정 데이터베이스에서 특정 테이블을 찾아 열을 확장합니다.

특정 테이블의 모든 열을 표시합니다. 제거 할 열을 마우스 오른쪽 버튼으로 클릭하고 다음 이미지와 같이 삭제를 클릭합니다.

그러면 창 및 제거 할 열 이름을 나열합니다. 확인을 클릭하면 테이블에서 열이 제거됩니다.

SSMS 테이블 디자이너를 사용한 SQL DELETE 열

SSMS의 테이블 디자이너를 사용하여 필수 열, 데이터 유형 및 기본 키, ID 열과 같은 열 속성을 정의합니다. 이를 사용하여 기존 테이블에서 열을 삭제할 수도 있습니다.

테이블을 마우스 오른쪽 버튼으로 클릭하고 디자인으로 이동합니다.

특정 테이블의 모든 열을 보여줍니다.

열의 왼쪽을 마우스 오른쪽 버튼으로 클릭하면 열 삭제 옵션이 표시됩니다. 열을 삭제하려면 클릭하세요.

CTRL + S를 눌러 저장하거나 테이블 디자이너를 닫고 다음 창에서 예를 클릭합니다.

SQL T-SQL 테이블 디자이너를 사용하여 열 삭제

Alter table 명령을 사용하여 열을 제거 할 수도 있습니다. 구문은 사용이 간단합니다. 다음 명령은 테이블에서 열을 제거합니다.

1
2
3
4

사용
GO
ALTER TABLE. 드롭 열
이동

  • 먼저 제거 할 열이 포함 된 테이블 이름을 지정합니다.
  • 둘째, 삭제할 열의 이름을 지정하십시오.

여러 항목을 제거 할 수도 있습니다. 단일 Alter table 명령의 열이지만 모든 열은 단일 테이블에 속해야합니다. 이 명령은 단일 명령에서 및 열을 제거합니다.

1
2
3
4

사용
이동
ALTER 표. DROP COLUMN,
GO

SQL DELETE 열에는 CHECK 제약 조건이 포함되어 있습니다

CHECK 제약 조건을 사용하여 열의 값 범위를 제한합니다. CHECK 제약 조건이있는 열이 있다고 가정합니다.

열을 제거하고 싶지만이 열에 CHECK 제약 조건이 있습니다. 제거해 보겠습니다.

1
2

ALTER TABLE. DROP COLUMN ProductPrice
GO

CK_Price_Check 개체가 열에 종속된다는 오류 메시지가 표시됩니다.

이 열은 종속 항목이있을 때까지 제거 할 수 없습니다. 그것에 개체. 이 열을 제거하려면 먼저 종속성을 제거한 다음 열을 삭제하십시오.

테이블 디자이너를 사용하여 CHECK 제약 조건이있는 열을 제거해 보겠습니다. 테이블에 대한 테이블 디자이너를 엽니 다.

열을 마우스 오른쪽 버튼으로 클릭하고이 테이블에 CHECK 제약 조건이 있는지 확인합니다.

It 다음 이미지에 따라 CHECK 제약 조건을 보여줍니다.

이제 열을 마우스 오른쪽 버튼으로 클릭하고 열을 삭제합니다. 오류 메시지가 표시되지 않습니다.

디자이너 창을 닫고 변경 사항을 저장하려면 예를 클릭하도록 요청합니다.

유효성 검사 경고 메시지와 검사 제약에 대한 메시지를 제공합니다.

예를 클릭하면 테이블 수정에 실패합니다. CHECK 제약 조건이 종속되어 있으므로 제거 할 수 없습니다.

열이있는 경우 테이블 디자이너를 사용하여 열을 제거 할 수 없습니다. 다른 개체에 대한 종속성이 있습니다.

SQL보기가 정의 된 SQL DELETE 열

테이블에서 모든 레코드를 선택하는 SQL보기를 만들어 보겠습니다.

1
2
3

View vw_ProductSales
as
SELECT * from ProductSales

이보기는 테이블의 모든 열에 따라 다릅니다. Alter table 명령어를 사용하여 열을 삭제합니다.

1
2

ALTER TABLE. DROP COLUMN ProductPrice
GO

쿼리 실행시 오류 메시지가 표시되지 않습니다. 보기에서 레코드에 액세스 해 보겠습니다.

1
2

SELECT *
FROM vw_ProductSales;

테이블에 다음이 포함되어 있지 않기 때문에 오류 메시지가 표시됩니다. 열. 이 열은 SQL 뷰를 생성 한 후에 사용할 수 있습니다.

  • 참고 : 열을 삭제하기 전에 개체 종속성을 확인해야합니다. 나중에 직면하게 될 문제를 제거 할 것입니다.

결론

이 기사에서는 SQL에 대해 배웠습니다. 기존 테이블에서 열 삭제 다른 방법. 우리는이 모든 방법을 알고 있어야합니다. 열을 제거하기 전에 프로덕션 환경에서주의해야합니다. 모든 종속성을 제거하고 적절하게 계획해야합니다.

  • 작성자
  • 최근 게시물
MCSA 인증 인도 구르 가온의 Microsoft Certified Trainer와 13 년의 경험을 보유한 Rajendra는 성능 최적화, 모니터링, 고 가용성, 재해 복구 전략 및 구현에 중점을 둔 다양한 대기업에서 근무하고 있습니다. 그는 SQL Server, Azure, MySQL, Linux, Power BI, 성능 조정, AWS / Amazon RDS, Git 및 현재까지 1,000 만 명이 넘는 독자가 시청 한 관련 기술에 대한 수백 개의 권위있는 기사의 저자입니다.
그는 SQL Server Always On 가용성 그룹에 대한 50 부작 시리즈를 통해 단일 주제에 대한 가장 큰 무료 온라인 기사 모음을 만든 사람입니다. SQL Server 커뮤니티에 대한 공헌을 바탕으로 2020 년과 2021 년 SQLShack에서 지속적으로 권위있는 “올해의 최우수 저자”를 비롯한 다양한 상을 수상했습니다.
Raj는 항상 새로운 도전에 관심이 있으므로 컨설팅이 필요한 경우 그의 글에서 다루는 주제에 대한 도움은 [email protected]으로 연락 할 수 있습니다.
Rajendra Gupta의 모든 게시물보기

Rajendra Gupta의 최신 게시물 (전체보기)
  • AWS에 대한 마이너 및 메이저 버전 업그레이드 수행 RDS SQL Server-2021 년 1 월 29 일
  • AWS RDS PostgreSQL 인스턴스 배포-2021 년 1 월 27 일
  • AWS DMS를 사용하여 온 프레미스 SQL 데이터베이스를 AWS RDS SQL Server로 마이그레이션-1 월 25 일 , 2021

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다