MSSQL(Microsoft SQL Server)은
마이크로소프트(Microsoft)에서 개발한 관계형 데이터베이스 관리 시스템(RDBMS)이다.
주로 기업용 시스템, 사내 인트라넷, Windows 서버 환경에서 많이 사용되며
대규모 트랜잭션 처리와 안정성을 강점으로 가진 DB이다.
✔ 줄여서 MS SQL, SQL Server라고도 부른다.
MSSQL을 사용하면 보통 아래 구성으로 개발하게 된다.
실제 데이터를 저장하고 처리하는 핵심 서버
백엔드(Spring Boot 등)와 직접 연결되는 대상
MSSQL 전용 관리 도구
테이블 생성, 쿼리 실행, 데이터 확인, 인덱스 관리 등을 수행
Spring Boot ── JDBC/JPA ── SQL Server ── 실제 데이터
↑
SSMS
👉 실무에서는
- 개발자는 SSMS로 테이블 구조 확인
- 애플리케이션에서는 Spring Boot에서 쿼리 실행
금융, 공공기관, 사내 시스템에서 많이 사용
대용량 데이터 처리와 안정성이 강점
MSSQL 전용 SQL 문법 제공
변수 선언, 조건문, 반복문 가능
DECLARE @count INT;
SET @count = 10;
SELECT @count;
👉 MySQL에서는 거의 쓰지 않는 문법
Windows Server + Active Directory와 궁합이 좋음
사내 계정 기반 보안 관리가 쉬움
BEGIN TRANSACTION
COMMIT
ROLLBACK
BEGIN TRANSACTION;
INSERT INTO TB_USER VALUES ('test', '1234');
ROLLBACK;
MSSQL은 표준 SQL + T-SQL(Transact-SQL) 문법을 사용한다.
MySQL과 비슷하지만 변수, 조건문, 트랜잭션, TOP, IDENTITY 같은 MSSQL 전용 문법이 많다.
SELECT * FROM TB_USER;
SELECT user_id, user_name
FROM TB_USER;
SELECT *
FROM TB_USER
WHERE user_id = 'admin';
👉 LIMIT 대신 TOP 사용
SELECT TOP 10 *
FROM TB_BOARD
ORDER BY created_at DESC;
-- MySQL
SELECT * FROM TB_BOARD LIMIT 10;
INSERT INTO TB_USER (user_id, password, name)
VALUES ('test', '1234', '홍길동');
UPDATE TB_USER
SET name = '김철수'
WHERE user_id = 'test';
DELETE FROM TB_USER
WHERE user_id = 'test';
👉 MSSQL에서 매우 자주 사용
DECLARE @userCount INT;
SET @userCount = (
SELECT COUNT(*)
FROM TB_USER
);
SELECT @userCount AS userCount;
✔ MySQL에는 거의 없는 문법
✔ 프로시저, 동적 SQL, 배치 작업에서 필수
DECLARE @count INT;
SET @count = 5;
IF @count > 0
PRINT '데이터 있음';
ELSE
PRINT '데이터 없음';
BEGIN TRANSACTION;
INSERT INTO TB_ORDER VALUES ('order1', 1000);
INSERT INTO TB_PAYMENT VALUES ('pay1', 1000);
-- 문제가 없으면
COMMIT;
-- 오류 발생 시
ROLLBACK;
👉 Spring Boot의 @Transactional과 개념 동일
CREATE TABLE TB_BOARD (
board_id INT IDENTITY(1,1) PRIMARY KEY,
title NVARCHAR(100),
content NVARCHAR(MAX)
);
| 구분 | MSSQL | MySQL |
|---|---|---|
| 자동 증가 | IDENTITY | AUTO_INCREMENT |
SELECT GETDATE(); -- 현재 날짜 + 시간
SELECT CONVERT(DATE, GETDATE()); -- 날짜만
SELECT *
FROM TB_USER
WHERE phone IS NULL;
SELECT *
FROM TB_USER
WHERE name LIKE '%홍%';
SELECT u.user_id, o.order_id
FROM TB_USER u
INNER JOIN TB_ORDER o
ON u.user_id = o.user_id;
SELECT *
FROM dbo.TB_USER;
SELECT *
FROM [User];
✔ 예약어 사용
✔ 공백 포함 컬럼명
✔ 기존 테이블 스크립트에 자주 등장
| 구분 | MSSQL | MySQL |
|---|---|---|
| 개발사 | Microsoft | Oracle |
| 주 사용처 | 기업/사내 시스템 | 웹 서비스 |
| OS 친화성 | Windows 중심 | Linux 중심 |
| SQL 문법 | T-SQL | 표준 SQL |
| 관리 도구 | SSMS | Workbench |
| 라이선스 | 유료 중심 | 무료 중심 |
spring:
datasource:
url: jdbc:sqlserver://localhost:1433;databaseName=testdb
username: sa
password: ****
✔ MSSQL은 기업 환경에서 매우 많이 사용되는 DB
✔ T-SQL이라는 강력한 전용 문법 제공
✔ Spring Boot와도 문제없이 연동 가능
✔ 실무 백엔드 개발자라면 알아두면 반드시 도움 되는 DB