본문 바로가기

DataBase/MSSQL

MSSQL 에서 UDT 란 무엇인가 | ChatGPT

728x90
반응형
ChatGPT 질문한 이유
"UDT 사용해서 해봐." 라는 팀원의 말을 들었지만, 그것이 무엇인지 몰랐다. MSSQL 에서 UDT 란 무엇인지, 어떻게 생성하는지 알아보자.

MSSQL 에서 UDT

MSSQL에서 UDT는 User-Defined Type(사용자 정의 타입)를 나타냅니다.

이것은 사용자가 자신만의 데이터 유형을 정의할 수 있는 기능입니다.

사용자 정의 데이터 유형은 일련의 속성과 메서드로 구성된 사용자 지정 데이터 유형을 나타냅니다.


🟣 사용

UDT는 일반적으로 다양한 데이터를 하나의 논리적 개체로 묶는 데 사용됩니다.

🟣 예시

예를 들어, 주소 정보를 저장하는 사용자 정의 데이터 유형을 만들 수 있습니다.

이는 주소에 대한 여러 필드(도시, 우편 번호, 국가 등)를 하나의 유형으로 결합하여

데이터베이스에 저장하고 관리하는 데 편리합니다.

🟣 장점

UDT를 사용하면 응용 프로그램에서 사용자 지정 데이터 유형에 대한 개념적 일관성을 유지할 수 있으며,

코드를 간결하게 만들고 데이터베이스의 구조를 더 쉽게 이해할 수 있습니다.


MSSQL에서 사용자 정의 타입(User-Defined Type, UDT)을 만드는 방법

MSSQL에서 사용자 정의 타입(User-Defined Type, UDT)을 만드는 방법은 SQL Server Management Studio(SSMS)나 T-SQL 스크립트를 사용하여 쉽게 수행할 수 있습니다.

사용자 정의 타입은 크게 두 가지로 나눌 수 있습니다.

  1. Scalar UDT: 기본 데이터 타입을 기반으로 한 단일 값 타입
  2. Table UDT: 사용자 정의 테이블 타입

여기에서는 두 가지 방법을 모두 설명합니다.


Scalar UDT 만들기

Scalar UDT는 기본 데이터 타입을 기반으로 하며, 주로 데이터의 유효성을 검사하고 일관성을 유지하는 데 사용됩니다.

-- 기본 데이터 타입을 기반으로 하는 사용자 정의 스칼라 타입을 만듭니다.
CREATE TYPE PhoneNumber FROM VARCHAR(15) NOT NULL;

위의 예제에서는 VARCHAR(15) 타입을 기반으로 하는 PhoneNumber라는 사용자 정의 타입을 만들었습니다.


Table UDT 만들기

Table UDT는 테이블 변수나 파라미터를 정의할 때 사용됩니다.

-- 사용자 정의 테이블 타입을 만듭니다.
CREATE TYPE AddressType AS TABLE
(
    StreetName VARCHAR(50),
    City VARCHAR(50),
    PostalCode VARCHAR(10),
    Country VARCHAR(50)
);

위의 예제에서는 AddressType이라는 사용자 정의 테이블 타입을 만들었습니다. 이 타입은 StreetName, City, PostalCode, Country라는 컬럼을 가지고 있습니다.


사용 예제

Scalar UDT 사용 예제

-- Scalar UDT를 사용하여 테이블 생성
CREATE TABLE Contacts
(
    ContactID INT PRIMARY KEY,
    Name NVARCHAR(100),
    Phone PhoneNumber
);

-- 데이터 삽입
INSERT INTO Contacts (ContactID, Name, Phone)
VALUES (1, 'John Doe', '123-456-7890');

Table UDT 사용 예제

-- 테이블 변수 선언 시 Table UDT 사용
DECLARE @MyAddress AddressType;

-- 테이블 변수에 데이터 삽입
INSERT INTO @MyAddress (StreetName, City, PostalCode, Country)
VALUES ('123 Main St', 'Anytown', '12345', 'USA');

-- 데이터 선택
SELECT * FROM @MyAddress;

이와 같이 사용자 정의 타입을 정의하고 사용하는 것은 데이터베이스 스키마의 일관성을 유지하고 재사용성을 높이는 데 큰 도움이 됩니다.

출처 | ChatGPT

728x90
반응형