Tiny Bunny
[MSSQL] JOIN - SELECT 시 LEFT, RIGHT, INNER JOIN
·
🛠️Backend/MSSQL
JOINJOIN은 두 개 이상의 테이블을 연결해서 데이터를 조회하는 방법입니다. 현실에서는 데이터를 여러 테이블로 나누어 저장하기 때문에, 완전한 정보를 얻으려면 JOIN이 필수입니다.왜 JOIN이 필요할까?데이터베이스 설계 원칙:중복 제거: 같은 정보를 여러 곳에 저장하지 않기데이터 정규화: 관련있는 정보끼리 묶어서 별도 테이블로 분리효율적인 관리: 변경사항이 있을 때 한 곳만 수정하면 됨실생활 예시로 이해하기온라인 쇼핑몰 데이터:-- 주문 테이블 (Orders)주문번호 | 고객ID | 주문일자 | 총금액1001 | C001 | 2024-01-15 | 500001002 | C002 | 2024-01-16 | 300001003 | C001 | 2024-01-17 | ..
[MSSQL] 다대다(Many-to-Many) 관계
·
🛠️Backend/MSSQL
다대다 관계다대다(Many-to-Many) 관계는 한 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 연결될 수 있는 관계입니다.실생활 예시학생 ↔ 과목: 한 학생이 여러 과목을 수강하고, 한 과목을 여러 학생이 수강사용자 ↔ 역할: 한 사용자가 여러 역할을 가지고, 한 역할을 여러 사용자가 가짐상품 ↔ 카테고리: 한 상품이 여러 카테고리에 속하고, 한 카테고리에 여러 상품이 속함게시글 ↔ 태그: 한 게시글에 여러 태그가 달리고, 한 태그가 여러 게시글에 달림다대다 관계의 테이블 설계다대다 관계는 중간 테이블(Junction Table/Bridge Table)을 통해 구현합니다.기본 구조 예시: 학생-과목 관계-- 1. 학생 테이블 (Students)CREATE TABLE Students ( s..
[MSSQL] INSERT/UPDATE 시 NULL 처리
·
🛠️Backend/MSSQL
🚨 가장 중요한 핵심: IS NULL vs = NULL❌ 절대 하면 안 되는 것-- 🚫 틀렸습니다! 결과가 나오지 않습니다!SELECT * FROM users;-- INSERT 시에도 ISNULL 활용INSERT INTO users (name, email, age, phone)SELECT N'새사용자', ISNULL(@input_email, 'default@company.com'), ISNULL(@input_age, 20), ISNULL(@input_phone, '000-0000-0000');2. COALESCE - 여러 값 중 첫 번째 유효값-- COALESCE(값1, 값2, 값3, ...) - 첫 번째 NULL이 아닌 값 반환SELECT name, COALESC..
[MSSQL] 데이터 형식
·
🛠️Backend/MSSQL
문자열 데이터 형식 (String Data Types)VARCHAR vs NVARCHAR - 차이점구분 VARCHAR NVARCHAR문자 인코딩ANSI/ASCII (1바이트)Unicode UTF-16 (2바이트)저장 공간문자당 1바이트문자당 2바이트최대 길이8,000자4,000자다국어 지원제한적완벽 지원성능빠름상대적으로 느림VARCHAR 예제-- VARCHAR 사용 (영문, 숫자 중심)CREATE TABLE users_varchar ( id INT IDENTITY(1,1) PRIMARY KEY, username VARCHAR(50), -- 최대 50자 email VARCHAR(100), -- 최대 100자 description VARCHAR(MAX) ..
[MSSQL] MSSQL이란? MySQL과의 차이점
·
🛠️Backend/MSSQL
MSSQL이란?MSSQL(Microsoft SQL Server)은 마이크로소프트에서 개발한 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 1989년에 처음 출시되어 현재까지 꾸준히 발전해온 엔터프라이즈급 데이터베이스 솔루션입니다.MSSQL의 주요 특징윈도우 환경에 최적화: Windows Server와의 완벽한 통합강력한 보안: 고급 암호화 및 권한 관리 시스템확장성: 대용량 데이터 처리 및 고성능 지원통합 개발 환경: Visual Studio와의 원활한 연동다양한 에디션: Express(무료)부터 Enterprise까지MSSQL vs MySQL 주요 차이점1. 개발사 및 라이선스구분 MSSQL MySQL 개발사MicrosoftOracle (구 MySQL AB)라이선스상용 라이선스GPL + 상용 라이..