[DB] MSSQL이란? – Microsoft SQL Server 개념 정리

최승혁·2026년 1월 9일
post-thumbnail

1️⃣ MSSQL이란?

MSSQL(Microsoft SQL Server)
마이크로소프트(Microsoft)에서 개발한 관계형 데이터베이스 관리 시스템(RDBMS)이다.

주로 기업용 시스템, 사내 인트라넷, Windows 서버 환경에서 많이 사용되며
대규모 트랜잭션 처리와 안정성을 강점으로 가진 DB이다.

✔ 줄여서 MS SQL, SQL Server라고도 부른다.


2️⃣ MSSQL의 기본 구성

MSSQL을 사용하면 보통 아래 구성으로 개발하게 된다.

🔹 SQL Server (DB 엔진)

  • 실제 데이터를 저장하고 처리하는 핵심 서버

  • 백엔드(Spring Boot 등)와 직접 연결되는 대상

🔹 SSMS (SQL Server Management Studio)

  • MSSQL 전용 관리 도구

  • 테이블 생성, 쿼리 실행, 데이터 확인, 인덱스 관리 등을 수행

Spring Boot ── JDBC/JPA ── SQL Server ── 실제 데이터
                    ↑
                  SSMS

👉 실무에서는

  • 개발자는 SSMS로 테이블 구조 확인
  • 애플리케이션에서는 Spring Boot에서 쿼리 실행

3️⃣ MSSQL의 주요 특징

✅ 1. 기업용 DB에 특화

  • 금융, 공공기관, 사내 시스템에서 많이 사용

  • 대용량 데이터 처리와 안정성이 강점

✅ 2. Transact-SQL (T-SQL) 사용

  • MSSQL 전용 SQL 문법 제공

  • 변수 선언, 조건문, 반복문 가능

DECLARE @count INT;
SET @count = 10;

SELECT @count;

👉 MySQL에서는 거의 쓰지 않는 문법

✅ 3. Windows 친화적인 환경

  • Windows Server + Active Directory와 궁합이 좋음

  • 사내 계정 기반 보안 관리가 쉬움

✅ 4. 강력한 트랜잭션 관리

  • BEGIN TRANSACTION

  • COMMIT

  • ROLLBACK

BEGIN TRANSACTION;

INSERT INTO TB_USER VALUES ('test', '1234');

ROLLBACK;

8️⃣ MSSQL 기본 문법 (T-SQL 핵심 정리)

MSSQL은 표준 SQL + T-SQL(Transact-SQL) 문법을 사용한다.
MySQL과 비슷하지만 변수, 조건문, 트랜잭션, TOP, IDENTITY 같은 MSSQL 전용 문법이 많다.

🔹 1. 데이터 조회 (SELECT)

SELECT * FROM TB_USER;
  • 특정 컬럼 조회
SELECT user_id, user_name
FROM TB_USER;
  • 조건 조회
SELECT *
FROM TB_USER
WHERE user_id = 'admin';

🔹 2. TOP (MSSQL 전용)

👉 LIMIT 대신 TOP 사용

SELECT TOP 10 *
FROM TB_BOARD
ORDER BY created_at DESC;
  • MySQL 비교
-- MySQL
SELECT * FROM TB_BOARD LIMIT 10;

🔹 3. INSERT / UPDATE / DELETE

  • INSERT
INSERT INTO TB_USER (user_id, password, name)
VALUES ('test', '1234', '홍길동');
  • UPDATE
UPDATE TB_USER
SET name = '김철수'
WHERE user_id = 'test';
  • DELETE
DELETE FROM TB_USER
WHERE user_id = 'test';

🔹 4. 변수 선언 (T-SQL 핵심)

👉 MSSQL에서 매우 자주 사용

DECLARE @userCount INT;

SET @userCount = (
    SELECT COUNT(*)
    FROM TB_USER
);

SELECT @userCount AS userCount;

✔ MySQL에는 거의 없는 문법
✔ 프로시저, 동적 SQL, 배치 작업에서 필수

🔹 5. IF / ELSE 조건문

DECLARE @count INT;
SET @count = 5;

IF @count > 0
    PRINT '데이터 있음';
ELSE
    PRINT '데이터 없음';

🔹 6. 트랜잭션 (실무 핵심 ⭐)

BEGIN TRANSACTION;

INSERT INTO TB_ORDER VALUES ('order1', 1000);
INSERT INTO TB_PAYMENT VALUES ('pay1', 1000);

-- 문제가 없으면
COMMIT;

-- 오류 발생 시
ROLLBACK;

👉 Spring Boot의 @Transactional과 개념 동일

🔹 7. 자동 증가 컬럼 (IDENTITY)

CREATE TABLE TB_BOARD (
    board_id INT IDENTITY(1,1) PRIMARY KEY,
    title NVARCHAR(100),
    content NVARCHAR(MAX)
);
구분MSSQLMySQL
자동 증가IDENTITYAUTO_INCREMENT

🔹 8. 날짜 함수

SELECT GETDATE();        -- 현재 날짜 + 시간
SELECT CONVERT(DATE, GETDATE()); -- 날짜만

🔹 9. NULL 처리 (IS NULL)

SELECT *
FROM TB_USER
WHERE phone IS NULL;

🔹 10. LIKE 검색

SELECT *
FROM TB_USER
WHERE name LIKE '%홍%';

🔹 11. JOIN

SELECT u.user_id, o.order_id
FROM TB_USER u
INNER JOIN TB_ORDER o
ON u.user_id = o.user_id;

🔹 12. 스키마(dbo)란?

SELECT *
FROM dbo.TB_USER;
  • dbo = 기본 스키마
  • 테이블 소유자 개념
  • 명시하지 않으면 자동으로 dbo 사용됨

🔹 13. 대괄호 [] 문법

SELECT *
FROM [User];

✔ 예약어 사용
✔ 공백 포함 컬럼명
✔ 기존 테이블 스크립트에 자주 등장


4️⃣ MSSQL vs MySQL 차이

구분MSSQLMySQL
개발사MicrosoftOracle
주 사용처기업/사내 시스템웹 서비스
OS 친화성Windows 중심Linux 중심
SQL 문법T-SQL표준 SQL
관리 도구SSMSWorkbench
라이선스유료 중심무료 중심

6️⃣ Spring Boot에서 MSSQL 사용 흐름

  1. MSSQL + SSMS 설치
  2. 데이터베이스 & 테이블 생성
  3. Spring Boot에 JDBC 드라이버 추가
  4. application.yml 또는 properties 설정
  5. JPA / MyBatis / JDBC로 연동
spring:
  datasource:
    url: jdbc:sqlserver://localhost:1433;databaseName=testdb
    username: sa
    password: ****

7️⃣ 정리

✔ MSSQL은 기업 환경에서 매우 많이 사용되는 DB
✔ T-SQL이라는 강력한 전용 문법 제공
✔ Spring Boot와도 문제없이 연동 가능
✔ 실무 백엔드 개발자라면 알아두면 반드시 도움 되는 DB

profile
Full-Stack Developer

0개의 댓글