SQL Server CREATE, ALTER, DROP 테이블 [T-SQL 예]

⚡ 스마트 요약

SQL Server 테이블은 데이터를 행과 열에 저장합니다. Transact-SQL은 CREATE TABLE 문을 사용하여 테이블을 생성하고, ALTER TABLE 문을 사용하여 열을 추가하거나 변경하며, DROP TABLE 문을 사용하여 테이블, 데이터 및 구조를 제거합니다.

  • 🧱 테이블이란 무엇인가: 테이블은 데이터를 행과 열로 저장하며 데이터베이스에서 데이터를 저장하는 기본 객체입니다.
  • 🛠️ 테이블 만들기: CREATE TABLE 문은 각 열을 이름, 데이터 형식, 그리고 NULL 또는 NOT NULL 설정으로 정의합니다.
  • 📋 기존 항목에서 생성: SELECT … INTO 구문은 기존 테이블에서 선택한 열과 행을 새 테이블로 복사합니다.
  • 테이블 변경: ALTER TABLE … ADD 명령은 테이블을 새로 생성하지 않고 새 열을 추가합니다.
  • 🗑️ 테이블 삭제: DROP TABLE 명령은 테이블의 데이터와 구조를 포함하여 테이블 전체를 삭제합니다.
  • 🖱️ 테이블 디자이너: SQL Server Management Studio는 테이블 디자이너를 통해 테이블을 시각적으로 생성하고 수정할 수도 있습니다.

SQL Server에서 T-SQL을 사용하여 테이블을 생성, 변경 및 삭제하는 예제

테이블이란 무엇입니까?

테이블은 객체입니다. SQL 서버 데이터를 행과 열 형식으로 저장하는 시스템입니다. 아래 다이어그램은 각각 행과 열을 보여줍니다.

데이터를 행과 열로 저장하는 표의 다이어그램

T-SQL을 사용하여 SQL Server에서 테이블을 만드는 방법

데이터를 저장하는 첫 번째 단계는 테이블을 만드는 것입니다. 데이터베이스 데이터가 저장될 위치입니다. 테이블을 생성한 후에는 계속해서 행을 삽입할 수 있습니다.

다음과 같은 방법으로 테이블을 만들 수 있습니다.

  • T-SQL: 모든 열과 해당 데이터 형식을 정의하여 새 테이블을 생성합니다.
  • T-SQL: 기존 테이블을 사용하여 새 테이블을 생성합니다.
  • 테이블 디자이너를 사용합니다.

이 문제를 자세히 살펴보겠습니다.

T-SQL: 모든 열과 데이터 형식을 정의하여 새 테이블을 생성합니다.

다음은 SQL Server에서 테이블을 생성하는 구문입니다.

구문 :

CREATE TABLE tableName
( 
  column_1 datatype [ NULL | NOT NULL ],
  column_2 datatype [ NULL | NOT NULL ],
  ...
);

여기

  • tableName 매개변수는 생성하려는 테이블의 이름을 나타냅니다.
  • 컬럼_1, 컬럼_2… 매개변수는 테이블에 추가할 열을 나타냅니다.
  • 열은 NULL 또는 NOT NULL로 지정해야 합니다. 지정하지 않으면 SQL Server는 기본값으로 NULL을 사용합니다.

두 개의 열로 구성된 기본적인 표를 만들어 보겠습니다.

검색어 :

CREATE TABLE COURSE
(
Course_ID Int,
Course_Name Varchar(10)
)

전제 조건: 테이블을 생성할 데이터베이스를 선택하세요.

단계 1) 실행 버튼을 클릭하여 쿼리를 실행하세요. 쿼리를 실행하기 전에는 아래 그림과 같이 테이블이 존재하지 않습니다.

CREATE 문이 실행되기 전에 개체 탐색기에 Course 테이블이 표시되지 않습니다.

쿼리를 실행한 후 새로 고침 버튼을 클릭하면 아래 그림과 같이 Course라는 새 테이블이 생성됩니다.

실행 및 새로 고침 후 개체 탐색기에 표시되는 코스 테이블

단계 2) 데이터를 입력하세요. 아래 스크린샷은 행을 입력받을 준비가 된 새로운 Course 테이블을 보여줍니다.

데이터 삽입 전 개체 탐색기에서 새로 생성된 코스 테이블이 선택됩니다.

데이터 삽입 전 두 개의 열로 구성된 코스 테이블 구조가 표시됩니다.

현재까지 테이블은 존재하지만, 아직 데이터가 채워져 있지 않습니다.

Transact-SQL은 테이블에 데이터를 삽입하는 INSERT 문을 제공합니다. 이 문을 사용하면 테이블에 하나 이상의 행을 삽입할 수 있습니다.

구문 :

INSERT INTO tableName
(column_1, column_2, ... )
VALUES
(expression_1, expression_2, ... ),
(expression_1, expression_2, ... ),
...;

위 구문은 VALUES 키워드를 사용하여 테이블에 데이터를 삽입할 때의 기본 명령 형식을 보여줍니다.

INSERT 명령어를 사용하여 네 개의 행을 삽입해 보겠습니다.

Insert into COURSE values (1,'SQL');
Insert into COURSE values (2,'Python');
Insert into COURSE values (3,'SQL');
Insert into COURSE values (4,'C');

아래 스냅샷은 네 행의 삽입이 성공적으로 완료되었음을 보여줍니다.

메시지 창에 Course 테이블에 4개의 행이 삽입되었음을 확인하는 메시지가 표시됩니다.

단계 3) SELECT 문을 사용하여 데이터를 볼 수 있습니다. SQL Server에서 데이터를 보려면 다음 구문을 사용하십시오.

SELECT expression
FROM tableName
[WHERE condition];

예시 쿼리:

SELECT * FROM COURSE;

테이블이 생성되었고 현재 4개의 레코드가 저장되어 있습니다. 참고로, 모든 열에 중복된 값이 있는 레코드를 생성할 수 있습니다. 제약.

SELECT 문에서 반환된 네 개의 코스 행을 보여주는 결과 표

T-SQL: 기존 테이블을 사용하여 새 테이블 생성

위에서 생성한 COURSE 테이블과 같은 테이블을 하나 더 만들고 싶지만, Course_ID 열은 필요 없고 Course_Name 열만 필요하다고 가정해 보겠습니다.

구문 :

SELECT (Column 1, …) INTO <New Table name> FROM <Old Table name>;

예시 쿼리:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

단계 1) 실행 버튼을 클릭하여 쿼리를 실행합니다. 아래 그림과 같이 이전 테이블에서 하나의 열과 네 개의 레코드가 복사된 COURSE_NAMES라는 새 테이블이 생성됩니다.

SELECT INTO를 사용하여 기존 테이블에서 새 COURSE_NAMES 테이블을 생성합니다.

예시 쿼리:

SELECT * FROM COURSE_NAMES;

아래 결과는 새 COURSE_NAMES 테이블에 있는 4개의 Course_Name 레코드를 나열합니다.

COURSE_NAMES 테이블의 Course_Name 값을 보여주는 결과 표

테이블 디자이너 사용

또한 다음에서 테이블을 만들 수도 있습니다. SQL Server Management Studio 테이블 디자이너를 사용하는 IDE.

단계 1) 아래 그림과 같이 마우스 오른쪽 버튼을 클릭하고 > 새로 만들기 > 테이블을 선택하세요.

테이블을 마우스 오른쪽 버튼으로 클릭한 다음 새로 만들기를 선택하고 개체 탐색기에서 테이블을 선택합니다.

단계 2) 열 이름을 입력하세요 데이터 유형각 열에 null 값을 허용할지 여부를 선택합니다.

새 테이블을 정의하기 위한 테이블 디자이너 도구 모음

테이블 디자이너의 그리드로 열 이름, 데이터 형식 및 Null 허용 옵션이 표시됩니다.

단계 3) CTRL+S를 눌러 표를 저장하고, 이름을 Course_Title로 입력하세요.

새 테이블을 Course_Title로 저장하려면 이름 선택 대화 상자를 선택하세요.

새로 고침을 클릭하면 아래 그림과 같이 Course_Title이라는 이름과 Course_Name이라는 열 하나가 있는 새 테이블이 나타납니다.

개체 탐색기에서 Course_Title 테이블에 Course_Name 열이 하나만 있습니다.

SQL Server에서 테이블 변경

SQL Server에서 테이블을 수정하는 방법은 두 가지가 있습니다.

  • T-SQL: 새 열을 추가하여 테이블을 변경합니다.
  • 테이블 디자이너를 사용합니다.

T-SQL: 열을 삽입하여 테이블 변경

다음은 SQL에서 ALTER 명령의 구문입니다.

구문 :

 Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;

검색어 :

ALTER TABLE dbo.Course_Title ADD Course_Duration VARCHAR(20);

단계 1) 실행 버튼을 클릭하여 쿼리를 실행하세요. 아래 그림과 같이 Course_Title 테이블에 Course_Duration이라는 새 열이 추가되었습니다.

Course_Duration 열을 추가하는 ALTER TABLE ADD 문

Course_Title 열과 새로 추가된 Course_Duration 열을 포함합니다.

테이블 디자이너 사용

UI의 테이블 디자이너를 사용하여 테이블을 수정할 수도 있습니다.

단계 1) 아래 그림과 같이 기존 테이블을 마우스 오른쪽 버튼으로 클릭하고 > 디자인을 선택하세요.

Course_Title 테이블을 마우스 오른쪽 버튼으로 클릭하고 디자인을 선택하세요.

단계 2) 열 이름을 Course_Start_Date로 추가하고 데이터 형식을 선택하세요.

테이블 디자이너에서 Course_Start_Date 열과 해당 데이터 형식을 추가합니다.

단계 3) CTRL+S를 눌러 새로 추가된 열을 저장하세요. 아래 그림과 같이 Course_Title 테이블에 Course_Start_Date라는 새 열이 생성됩니다.

Course_Title 테이블에 저장된 Course_Start_Date 열을 보여줍니다.

SQL Server에서 테이블 삭제

테이블은 더 이상 필요하지 않을 때 삭제합니다.

SQL Server에서 테이블을 삭제하는 방법은 두 가지가 있습니다.

  • SQL Server Management Studio를 사용합니다.
  • T-SQL: DROP TABLE 명령어를 사용하여 테이블을 삭제합니다.

SQL Server Management Studio 사용

단계 1) 아래 그림과 같이 Course_Title이라는 이름의 기존 테이블을 마우스 오른쪽 버튼으로 클릭하고 > 삭제를 선택합니다.

Course_Title 테이블을 마우스 오른쪽 버튼으로 클릭하고 삭제를 선택하세요.

단계 2) 개체 삭제 창에서 확인을 클릭합니다.

객체 삭제 확인 창과 확인 버튼

아래와 같이 Course_Title 테이블이 테이블 목록에서 삭제되었습니다.

Course_Title 테이블이 삭제된 후의 개체 탐색기 테이블 목록

T-SQL: 테이블 삭제

다음은 테이블을 삭제하는 구문입니다.

구문 :

DROP TABLE <tableName>;

tableName 매개변수는 삭제할 테이블의 이름입니다.

검색어 :

DROP TABLE COURSE_NAMES;

단계 1) 실행 버튼을 클릭하여 쿼리를 실행합니다. 아래 그림과 같이 테이블 목록에서 COURSE_NAMES 테이블이 삭제됩니다.

COURSE_NAMES 테이블을 삭제하는 DROP TABLE 문

COURSE_NAMES 테이블이 삭제된 후 개체 탐색기 테이블 목록

또는 소스 코드에는 테이블 구조는 그대로 유지하고 행(데이터)만 삭제하는 DELETE TABLE 명령이 나와 있으므로 나중에 테이블을 재사용할 수 있습니다.

구문 :

DELETE TABLE <Table name>;

참고 : 표준 T-SQL에서는 행을 다음과 같이 제거합니다. DELETE FROM <table>그리고 테이블은 순식간에 비워집니다. TRUNCATE TABLE <table>위에서 보여준 것처럼 DROP TABLE 명령어를 사용하면 테이블 전체가 삭제됩니다.

흥미로운 사실!

  • XML이나 이미지와 같은 대용량 파일은 VARBINARY(MAX), VARCHAR(MAX) 또는 XML 형식(SQL Server에서는 사용하지 않음)과 같은 대용량 객체 데이터 형식을 사용하여 열에 저장할 수 있습니다. Oracle-스타일 BLOB 및 CLOB 이름).
  • DELETE 명령은 행만 삭제하며 트랜잭션 내에서 롤백할 수 있는 반면, DROP 명령은 테이블 구조 전체를 삭제합니다. SQL Server에서는 명시적인 트랜잭션 내에서 실행되는 경우 DROP 명령조차도 롤백할 수 있습니다.

자주 묻는 질문

DELETE 명령은 선택한 행을 삭제하고 전체 과정을 로그에 기록합니다. TRUNCATE 명령은 모든 행을 빠르게 삭제하고 ID 값을 재설정합니다. DROP 명령은 테이블 전체와 데이터, 그리고 테이블 구조를 모두 삭제합니다. SQL Server에서는 이 세 가지 명령 모두 명시적인 트랜잭션 내에서 롤백할 수 있습니다.

SQL Server 2016부터 사용 가능한 `DROP TABLE IF EXISTS table_name` 구문을 사용하세요. 이 구문은 테이블이 존재하면 삭제하고, 존재하지 않으면 아무 작업도 수행하지 않아 오류를 방지합니다. 이전 버전에서는 삭제하기 전에 `OBJECT_ID`를 확인해야 합니다.ping.

SQL Server에는 테이블 이름 변경(RENAME TABLE) 문이 없습니다. 대신 시스템 저장 프로시저 sp_rename을 실행하십시오. 예를 들어, EXEC sp_rename 'old_name', 'new_name'과 같이 사용합니다. sp_rename은 종속 뷰, 프로시저 및 코드에 대한 참조를 자동으로 변경하지 않으므로, 나중에 해당 참조를 업데이트해야 합니다.

네. `ALTER TABLE table ALTER COLUMN column new_type` 명령어는 열의 데이터 형식을 변경하고, `ALTER TABLE table DROP COLUMN column` 명령어는 해당 열을 삭제합니다. 변경 사항은 기존 데이터가 호환되는 경우에만 성공하므로, 변환 테스트를 먼저 수행하고 백업을 생성해야 합니다.

CREATE TABLE 문 안에 Course_ID INT PRIMARY KEY와 같은 제약 조건을 정의하거나, ALTER TABLE ADD CONSTRAINT 문을 사용하여 나중에 추가할 수 있습니다. 기본 키 고유성을 강제하는 반면, 외래 키 테이블 간 행을 연결합니다.

# 접두사가 붙은 임시 테이블은 tempdb에 생성되며 세션이 종료될 때 자동으로 삭제됩니다. 일반 테이블은 사용자가 직접 삭제하기 전까지 영구적으로 유지됩니다. 임시 테이블은 배치 또는 프로시저 내에서 단기간에 생성되는 중간 결과를 저장하는 데 적합합니다.

예. GitHub 부조종사 자연어 입력을 통해 CREATE, ALTER, DROP TABLE 스크립트를 생성하고 열, 데이터 유형 및 제약 조건을 제안할 수 있습니다. 생성된 스키마, 키 및 null 허용 여부를 프로덕션 환경에서 실행하기 전에 항상 검토하십시오.

AI 및 머신러닝 도구는 샘플 데이터와 쿼리 패턴을 기반으로 테이블 구조, 데이터 유형 및 인덱스를 추천하고, 중복되거나 크기가 과도한 열을 표시하며, 위험한 DROP 또는 ALTER 작업에 대해 경고합니다. 개발자는 각 제안을 적용하기 전에 확인합니다.

이 게시물을 요약하면 다음과 같습니다.