SQL Server 데이터베이스: 생성, 수정, 삭제 및 복원

⚡ 스마트 요약

SQL Server 데이터베이스는 테이블, 뷰, 저장 프로시저 및 기타 개체를 저장하는 컨테이너입니다. 생성, 변경, 삭제ping데이터베이스 복원은 SQL Server Management Studio 또는 Transact-SQL 문을 통해 수행할 수 있습니다.

  • 🗄️ 데이터 베이스: SQL Server 데이터베이스는 테이블, 뷰, 프로시저 및 함수를 하나의 체계적이고 상호 연결된 컨테이너에 저장합니다.
  • 🧩 시스템 vs 사용자: 시스템 데이터베이스(master, msdb, model, tempdb, resource)는 자동으로 설치되지만, 사용자 데이터베이스는 사용자가 직접 생성해야 합니다.
  • 🖱️ 창조하다: 개체 탐색기의 새 데이터베이스 대화 상자를 통해 또는 CREATE DATABASE 문을 사용하여 데이터베이스를 추가하십시오.
  • ✏️ 연령 : ALTER DATABASE 명령이나 이름 바꾸기 메뉴를 사용하여 데이터베이스의 이름을 바꾸거나 파일 및 옵션을 변경할 수 있습니다.
  • 🗑️ 하락: 사용자 데이터베이스는 DROP DATABASE 명령이나 Delete 옵션을 사용하여 삭제할 수 있습니다. 시스템 데이터베이스는 삭제할 수 없습니다.
  • 💾 복원: RESTORE DATABASE 명령어를 사용하여 .bak 백업 파일에서 데이터베이스를 재구축합니다.

SQL Server 데이터베이스 생성, 수정, 삭제 및 복원

데이터베이스 란?

데이터베이스는 다음과 같은 객체들의 모음입니다. 테이블뷰, 저장 프로시저, 트리거 및 함수. SQL 서버데이터베이스는 이러한 관련 객체들이 저장되고 서로 연결되는 체계적인 저장소입니다.

실생활에서 몇 가지 예를 들어보겠습니다.

  • 책장은 책이 놓이는 곳이다.
  • 집은 우리가 사는 곳입니다.
  • 주차장은 차량이 주차되는 곳이며, 그러한 예는 무수히 많습니다.

마찬가지로 데이터베이스는 모든 테이블, 뷰 및 저장 프로시저를 저장하는 일종의 저장소입니다. 기술적으로 데이터베이스는 데이터에 쉽게 접근하고 검색할 수 있도록 잘 정리된 방식으로 데이터를 저장합니다. SQL Server에는 두 가지 유형의 데이터베이스가 있습니다.

  • 시스템 데이터베이스: SQL Server를 설치할 때 자동으로 생성되는 시스템 데이터베이스입니다. 이러한 데이터베이스는 서버에서 특히 데이터베이스 개체가 올바르게 실행되도록 하는 데 중요한 역할을 합니다. SQL Server 시스템 데이터베이스의 예로는 master, msdb, model, tempdb 및 resource가 있습니다.
  • 사용자 데이터베이스: 이 파일들은 데이터베이스 생성 권한을 부여받은 여러분과 같은 데이터베이스 사용자들이 생성합니다.

데이터베이스 생성 규칙

먼저 새 데이터베이스를 생성하는 기본 규칙을 알아야 합니다.

  • 데이터베이스 이름은 SQL Server 인스턴스 내에서 고유해야 합니다.
  • 데이터베이스 이름은 최대 128자까지 가능합니다.
  • CREATE DATABASE 문은 자동 커밋 모드로 실행되어야 합니다.

아래 이미지는 SQL Server에서 데이터베이스를 생성하는 데 사용할 수 있는 두 가지 접근 방식을 보여줍니다.

SQL Server 데이터베이스를 생성하는 두 가지 방법: Management Studio 및 Transact-SQL

SQL Server에서 데이터베이스를 생성하는 방법은 두 가지가 있습니다.

SQL Server Management Studio에서 데이터베이스를 만드는 방법

SQL Server Management Studio에서 데이터베이스를 생성하는 단계별 과정은 다음과 같습니다.

단계 1) '개체 탐색기' 창에서 '데이터베이스'를 마우스 오른쪽 버튼으로 클릭한 다음 '새 데이터베이스'를 선택합니다.

아래는 '새 데이터베이스' 옵션이 있는 마우스 오른쪽 클릭 메뉴입니다.

개체 탐색기에서 데이터베이스 노드를 마우스 오른쪽 버튼으로 클릭하고 새 데이터베이스를 선택합니다.

단계 2) '새 데이터베이스' 화면이 나타납니다. '데이터베이스 이름'을 입력하세요. '논리 이름' 열에는 다음 내용이 자동으로 채워집니다.

  • Edu – 파일 형식: 행 데이터 및 파일 그룹: 기본
  • Edu_log – 파일 형식: LOG 및 파일 그룹: '해당 없음'

데이터베이스 이름과 논리 파일이 표시되는 새 데이터베이스 대화 상자는 아래와 같습니다.

새 데이터베이스 대화 상자에 Edu 데이터베이스 이름과 Edu 및 Edu_log 논리 파일이 표시됩니다.

이리:

  • A) Edu(파일 형식: 행 데이터, 파일 그룹: PRIMARY)는 .mdf 데이터 파일입니다.
  • B) Edu_log(파일 형식: LOG, 파일 그룹: '해당 없음')는 .ldf 로그 파일입니다.

단계 3) (선택 사항) 더 복잡한 설정을 하려면 '옵션' 및 '파일 그룹' 페이지로 이동하세요. 초보자의 경우 '일반' 탭에서 데이터베이스를 생성하는 것으로 충분합니다.

옵션 및 파일 그룹 페이지는 아래와 같습니다.

고급 설정을 위한 새로운 데이터베이스 옵션 및 파일 그룹 페이지가 추가되었습니다.

단계 4) 데이터베이스를 생성하려면 '추가'(확인 버튼)를 클릭하세요.

생성을 확인하는 버튼이 아래에 강조 표시되어 있습니다.

Edu 데이터베이스를 생성하는 새 데이터베이스 대화 상자의 확인 버튼을 클릭합니다.

결과 : 'Edu' 데이터베이스가 생성되었습니다. 'Edu' 데이터베이스를 확장하면 테이블, 뷰 등이 포함됩니다. 새 테이블, 뷰 등을 생성하기 전까지는 모든 항목이 비어 있습니다.

객체 탐색기에서 새로 생성된 Edu 데이터베이스와 그 안에 있는 빈 폴더들을 볼 수 있습니다.

소스 쿼리 보기: 새로 생성된 'Edu' 데이터베이스의 소스 쿼리를 볼 수 있습니다. 다음 경로를 따라가세요. 데이터베이스 이름을 마우스 오른쪽 버튼으로 클릭 > 데이터베이스 스크립트 생성 > 생성 대상 > 새 쿼리 편집기 창.

스크립트 데이터베이스를 CREATE로 생성하여 새 쿼리 편집기 창 컨텍스트 메뉴에 추가합니다.

쿼리 창: 생성된 CREATE 스크립트는 아래 그림과 같이 새 쿼리 창에서 열립니다.

Edu용으로 자동 생성된 CREATE DATABASE 스크립트를 표시하는 쿼리 편집기 창

스크립트 만들기:

USE [master]
GO

CREATE DATABASE [Edu]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

T-SQL을 사용하여 데이터베이스 만들기

또 다른 방법은 T-SQL 쿼리를 작성하여 데이터베이스를 생성한 다음 실행하는 것입니다. 가장 간단한 데이터베이스 생성 T-SQL 쿼리를 살펴보겠습니다.

구문 :

CREATE DATABASE <Database_name>

검색어 :

CREATE DATABASE [Edu_TSQL_file]

아래 그림과 같이 '실행'을 클릭하여 쿼리를 실행하세요.

SSMS 툴바의 실행 버튼은 CREATE DATABASE 쿼리를 실행하는 데 사용됩니다.

결과 : SQL 개체 탐색기에서 Edu_TSQL_file이 생성된 것을 확인할 수 있습니다.

Transact-SQL로 생성된 Edu_TSQL_file 데이터베이스를 나열하는 개체 탐색기의 화면입니다.

이제 .mdf 및 .ldf 파일을 명시적으로 사용하여 데이터베이스를 생성하는 방법을 살펴보겠습니다. 이 경우 쿼리에서 파일 위치를 명시적으로 지정할 수 있습니다.

구문 :

CREATE DATABASE database_name   
[ CONTAINMENT = { NONE | PARTIAL } ]  
[ ON   
      [ PRIMARY ] <filespec> [ ,...n ]   
      [ , <filegroup> [ ,...n ] ]   
      [ LOG ON <filespec> [ ,...n ] ]   
];

검색어 :

CREATE DATABASE [Edu_TSQL_file]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu_TSQL_file', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_TSQL_file_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

명시적인 데이터와 로그 파일로 생성된 데이터베이스는 아래 그림과 같이 개체 탐색기에 나타납니다.

객체 탐색기에서 명시적으로 .mdf 및 .ldf 파일로 생성된 Edu_TSQL_file 데이터베이스를 보여줍니다.

데이터베이스를 변경하는 방법

CREATE DATABASE 쿼리와 마찬가지로 데이터베이스를 수정할 수도 있습니다. 데이터베이스 이름을 바꾸거나, 파일 위치 또는 설정을 변경하는 등의 작업을 할 수 있습니다.

데이터베이스를 수정하기 위한 기본 규칙:

  • ALTER DATABASE 문은 자동 커밋 모드로 실행되어야 합니다.
  • ALTER DATABASE는 명시적 또는 암시적 트랜잭션에서 허용되지 않습니다.

SQL Server에서 데이터베이스를 변경하는 방법은 두 가지가 있습니다.

  • SQL Server Management Studio
  • 트랜잭션-SQL

SQL Server Management Studio에서 데이터베이스를 변경하는 방법

다음은 SQL Server Management Studio에서 데이터베이스를 변경하는 단계입니다. 미리 생성된 데이터베이스 'Edu'의 이름을 변경해 보겠습니다. 미리 생성된 Edu 데이터베이스는 아래 개체 탐색기에 표시됩니다.

개체 탐색기 데이터베이스 목록에서 미리 생성된 Edu 데이터베이스가 선택되었습니다.

단계 1) 데이터베이스 이름을 변경하세요. 데이터베이스 이름을 마우스 오른쪽 버튼으로 클릭하고 '이름 바꾸기'를 클릭하세요.

Edu 데이터베이스를 마우스 오른쪽 버튼으로 클릭하여 '이름 바꾸기' 옵션을 선택합니다.

단계 2) 데이터베이스 이름을 편집할 수 있습니다. 새 이름을 입력하고 Enter 키를 누르세요.

Edu 데이터베이스의 이름 필드를 편집하여 새 이름을 입력할 수 있습니다.

결과 : 데이터베이스 이름이 'Edu'에서 'Edu_Alter'로 변경되었습니다.

개체 탐색기에서 데이터베이스 이름이 Edu에서 Edu_Alter로 변경된 것을 보여줍니다.

Transact-SQL을 사용하여 데이터베이스 변경

이제 T-SQL을 사용하여 데이터베이스를 수정해 보겠습니다.

구문 :

ALTER DATABASE <Databse_name>              
MODIFY NAME = <New Name>

검색어 :

ALTER DATABASE Edu_TSQL
MODIFY NAME = Edu_TSQL_Alter;

'실행'을 클릭하여 위 쿼리를 실행합니다.

결과 : 아래와 같이 데이터베이스 이름이 'Edu_TSQL'에서 'Edu_TSQL_Alter'로 변경되었습니다.

ALTER DATABASE 명령 실행 후 데이터베이스 이름이 Edu_TSQL_Alter로 변경된 것을 보여주는 개체 탐색기 화면입니다.

일반 구문: ALTER DATABASE의 전체 구문은 이름 변경, 정렬, 파일 옵션 및 호환성 수준을 포함한 다양한 옵션을 지원합니다.

ALTER DATABASE { database_name  | CURRENT }  
{   MODIFY NAME = new_database_name   
  | COLLATE collation_name  
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ] [ WITH <termination> ] 
  | SET COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 }   
} ;

참고 : 위에 표시된 호환성 수준은 이전 릴리스를 반영합니다. 현재 버전은 150(SQL Server 2019), 160(SQL Server 2022) 및 170(SQL Server 2025)을 추가했으며, 이전 수준도 계속 지원합니다.

.mdf/.ldf 파일 이름 변경

검색어 :

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL, NEWNAME = Edu_TSQL_newName );

이름이 변경된 논리 파일은 아래와 같이 데이터베이스 속성에 반영됩니다.

데이터베이스 속성에서 논리 파일 이름이 Edu_TSQL_newName으로 변경되었음을 확인합니다.

.mdf/.ldf 파일 위치 변경

검색어 :

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL_NewName, FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\New_File\Edu_TSQL_log.ldf' );

업데이트된 데이터베이스 파일 경로는 아래와 같습니다.

새로운 .ldf 로그 파일의 위치를 ​​보여주는 데이터베이스 파일 페이지

데이터베이스 삭제

SQL Server에서 데이터베이스를 삭제(드롭)하는 방법은 두 가지가 있습니다.

  • SQL Server Management Studio
  • 트랜잭션-SQL

SQL Server Management Studio에서 데이터베이스를 삭제하는 방법

SQL Server Management Studio에서 데이터베이스를 삭제하는 과정은 다음과 같습니다. 미리 생성해 둔 'Edu_Alter' 데이터베이스를 삭제해 보겠습니다.

단계 1) 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 '삭제'를 클릭한 다음 '확인'을 클릭합니다.

드롭을 위한 개체 삭제 대화 상자ping SSMS의 Edu_Alter 데이터베이스

결과 : 'Edu_Alter'가 '개체 탐색기' 데이터베이스 목록에서 삭제되었습니다.

Edu_Alter 데이터베이스가 삭제된 후 Object Explorer의 데이터베이스 목록

Transact-SQL을 사용하여 데이터베이스 삭제

미리 생성해둔 데이터베이스 'Edu_TSQL_Alter'를 삭제해 보겠습니다.

구문 :

DROP DATABASE <Databse_name>

검색어 :

USE master;  
GO  
DROP DATABASE Edu_TSQL_Alter;  
GO

'실행'을 클릭하여 위 쿼리를 실행합니다.

결과 : 아래와 같이 'Edu_TSQL_Alter'가 '개체 탐색기' 데이터베이스 목록에서 삭제되었습니다.

T-SQL을 사용하여 Edu_TSQL_Alter 데이터베이스를 삭제한 후 Object Explorer의 데이터베이스 목록입니다.

SQL Server에서 데이터베이스 복원

이전에 백업해 둔 데이터베이스를 복원하여 새 데이터베이스를 생성할 수 있습니다. 복원 작업은 다음 구문을 사용하는 RESTORE DATABASE 명령을 실행하여 수행할 수 있습니다.

restore Database <database name> from disk = '<Backup file location + filename>

이전 명령들과 마찬가지로, 쿼리는 쿼리 창 내에서 실행되어야 합니다. 예를 들면 다음과 같습니다.

restore database Edu from disk = 'C:\Backup\Edu_full_backup.bak'

GUI 탐색을 사용할 수도 있습니다. 데이터베이스를 마우스 오른쪽 버튼으로 클릭 > 데이터베이스 복원 > 장치 > 백업 파일 가져오기 > 확인을 클릭합니다.

자주 묻는 질문

데이터베이스를 생성하려면 master 데이터베이스에 대한 CREATE DATABASE, CREATE ANY DATABASE 또는 ALTER ANY DATABASE 권한이 필요합니다. sysadmin 또는 dbcreator 서버 역할의 구성원이거나 적절한 권한을 부여받은 사용자여야 합니다. 로그인해당 명령문을 실행할 수 있습니다.

SQL Server 인스턴스 하나에는 최대 32,767개의 데이터베이스를 저장할 수 있습니다. 이 수치는 아키텍처상의 엄격한 제한이며, 실제로는 메모리, 저장 공간 및 관리 오버헤드를 고려할 때 우수한 성능을 위해서는 훨씬 더 적은 수의 데이터베이스를 저장하는 것이 좋습니다.

아니요. master, model, msdb, tempdb, resource와 같은 시스템 데이터베이스는 엔진에 필수적이므로 삭제할 수 없습니다. 사용자가 직접 생성한 사용자 데이터베이스만 DROP DATABASE 명령이나 삭제 옵션을 사용하여 삭제할 수 있습니다.

SIZE는 초기 파일 크기를 설정하고, MAXSIZE는 파일이 확장될 수 있는 최대 크기를 설정하며, FILEGROWTH는 파일이 확장될 때마다 추가되는 공간의 양을 설정합니다. 이러한 설정은 데이터 파일과 로그 파일 모두에 적용됩니다.

COMPATIBILITY_LEVEL은 데이터베이스에서 사용할 쿼리 처리 동작을 제어합니다. 현재 값은 140(SQL Server 2017), 150(2019), 160(2022) 및 170(2025)입니다. ALTER DATABASE SET COMPATIBILITY_LEVEL 명령을 사용하면 데이터베이스를 새 서버로 이동하지 않고도 이 값을 변경할 수 있습니다.

DROP DATABASE 명령은 데이터베이스와 해당 데이터베이스의 .mdf 및 .ldf 파일을 영구적으로 삭제합니다. 데이터베이스를 비활성화하려면 DROP DATABASE 명령을 사용합니다.LINE 디스크에 파일은 그대로 둔 채 접근만 차단하므로 복원 작업 없이 나중에 다시 온라인 상태로 되돌릴 수 있습니다.

예. GitHub 부조종사 SSMS 또는 편집기에서 자연어 프롬프트를 사용하여 CREATE DATABASE, ALTER DATABASE 및 DROP DATABASE 문을 작성할 수 있습니다. 생성된 파일 경로, 크기 및 옵션을 실제 서버에서 실행하기 전에 항상 검토하십시오.

AI와 머신러닝은 파일 크기 및 증가 설정 권장, 용량 예측, 구성 변경 감지, 위험한 DROP 또는 ALTER 작업 표시 등을 통해 프로비저닝을 지원합니다. 이러한 도구는 데이터베이스 관리자의 신중한 검토를 대체하는 것이 아니라 지원하는 역할을 합니다.

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