본문 바로가기

프로그래밍/MS-SQL

MSSQL PIVOT 여러컬럼 동적으로 수행하기 이번 피드에서는 이전에 다루었던 피벗테이블의 응용인 여러컬럼을 피벗처리하는 방법에 대해 소개하도록 하겠다. 이전 피벗에 대한 내용을 보지 않고 왔다면 아래 링크를 따라 피벗하는 법을 확인 후 이번 피드를 보시길 추천한다. 2019/08/21 - [프로그래밍/MS-SQL] - MSSQL PIVOT 동적으로 수행하기 MSSQL PIVOT 동적으로 수행하기 프로그램을 개발하다보면 행(세로) 데이터를 열(가로)로 나열시켜 보여야하는 경우가 있다. 이때 PIVOT을 사용하면 행데이터를 열로 나열시켜 보일 수 있다. 우리는 품목/매출월/매출액 형식으로 되어있는 테이.. maelife.tistory.com 이전 피드에서는 '품목/매출월/매출액' 에 대해 피봇을 수행하였다면, 이번에는 '품목/매출월/매출액/매출수량' .. 더보기
MSSQL PIVOT 동적으로 수행하기 프로그램을 개발하다보면 행(세로) 데이터를 열(가로)로 나열시켜 보여야하는 경우가 있다. 이때 PIVOT을 사용하면 행데이터를 열로 나열시켜 보일 수 있다. 우리는 품목/매출월/매출액 형식으로 되어있는 테이블을 품목 / 201901 / 201902 / ... / 201904 의 형태로 PIVOT처리하여 테이블을 보이도록 할 것이다. 아래에 설명할 내용을 천천히 따라가면서 PIVOT을 어떻게 처리하는지 확인해 보도록 한다. PIVOT하는 과정을 간단한 매출(SALE) 테이블을 통해 설명하도록 하겠고, 순서는 아래와 같다. PIVOT 순서 1. 매출 테이블생성 2. 매출 데이터 삽입 3. PIVOT 형태로 변경 3-1) 임시테이블(#TEMP_TABLE)에 변경 전 테이블을 SELECT.. INTO하여 저장... 더보기
MSSQL 함수 작성법 MSSQL에서는 함수를 사용할 수 있는 기능을 제공하고 있다. 함수의 종류는 시스템함수와 사용자 정의함수로 나뉘어 진다. 정확하게 말하자면, 우리는 여기에서 사용자 정의함수를 작성하는 방법에 대해 설명할것인데, 그 전에 시스템 함수는 무엇인지 설명하고 넘어가도록 하겠다. 시스템함수는? 시스템함수는 MSSQL에서 제공하여 바로 사용할 수 있는 함수이다. (개념은 사용자정의함수와 마찬가지인데, 개발자가 직접 정의하여 만들어 사용하는 함수가 사용자 정의 함수라고 보면 이해하기 쉽다.) 시스템함수종류로는 집계함수, 구성함수, 커서함수, 날짜 및 시간함수 등 다양하게 제공되어지고 있고 대표적으로Avg(), Max() 등 다양한부분으로 존재하니, 사용자 정의 함수를 만들기 전 검색을 통해 비슷한 기능을 하는 함수를.. 더보기
MSSQL 저장프로시저(StoredProcedure) 작성법 MSSQL을 사용하다 보면 흔히 접할 수 있는것 중의 하나가 바로 저장프로시저(Stored Procedure)이다. 저장프로시저는 개발자가 자주 쓰는 쿼리문을 하나의 집합단위로 관리하는것을 말한다. 프로그램과 DB를 연결하여 데이터를 관리(데이터조회, 삽입, 수정, 삭제) 하는 수단은 반복되는 작업이므로 DB테이블 1개당 저장프로시저를 보통 (C,R,U,D) 4개의 프로시저를 생성하여 관리한다. 본론으로 돌아와서, 저장프로시저를 작성하는 방법에 대해 설명하도록 하겠다. 저장프로시저(StoredProcedure) 작성 예시 USE [DataBase이름] GO CREATE PROCEDURE [dbo].[프로지서이름] --@P_PARAMETER1VARCHAR(10)-- 파라미터가 필요한경우, 추가해야한다. A.. 더보기
MSSQL 커서(CURSOR) 사용법 MSSQL에서는 커서라는것이 존재하는데, 테이블의 데이터를 커서에 담고, 한개의 행단위로 읽어주는 기능을 한다. 이름 (NAME) 나이 (AGE) 성별 (SEX) 박지성 36 남자 이영표 38 남자 손흥민 28 남자 기성용 32 남자 위와 같은 데이터 테이블이 존재 한다면, 정방향으로 읽었을 때 박지성->이영표->손흥민->기성용 순서로 데이터테이블의 행 정보를 읽어낼 수 있다. 독자의 경우에는, 반복적인 배치작업을 할때 주로 사용한다. 그렇다면 사용방법에 대해 설명하도록 하겠다. 1. 대상 테이블생성 및 데이터삽입 (이 부분은 대상 테이블이 없을때만 해당) 2. 커서에 DB테이블 담기 및 반복작업 수행 1. 대상 테이블 생성 및 데이터삽입 DB테이블 생성 CREATE TABLE SOCCER_PLAYER .. 더보기
[MS-SQL] CRUD 자동 스크립트 작성 내용 공유 해당 SQL스크립트는 MSSQL 저장프로시저를 자동으로 생성하는데 도움을 주는 프로시저이다. 프로그램을 개발하면서 가장 기본이되는 작업은 데이터를 읽고, 입력하고, 수정하고, 삭제하는 작업이다. 프로그램을 개발하다보면, 반복적으로 CRUD SQL문을 작성하는 경우가 많다. 시간을 어느정도 절약 할 수 있도록 공유된 프로시저를 이용하면 기본 SELECT, INSERT, UPDATE, DELETE 문을 만들어주기에 개발속도 및 개발 효율성을 증가 시킬 수 있다. (물론 초보자라면 직접 타이핑하는게 좋겠지만, 프로시저에 대한 완벽한 이해가 되어있으면 사용하는게 좋을듯 함.) 사용방법에 대해 간단히 소개한다. 물론 SqlServerManagementStudio에서 사용을 하는 것이며, 사용을 하기 위한 데이터베.. 더보기
윈도우 서버 MSSQL 외부접속 설정하기 1. 개발환경 해당 포스팅은 다음과 같은 기본 전제를 가진다. OS : WINDOWS SERVER 2016 서버의 인터넷 연결 환경 인터넷회선 - 공유기(IPTIME) - 서버 PC 기업용 회선은 공인IP가 고정IP인 반면, 일반 가정용 인터넷 회선의 경우 공인IP가 유동 IP로 할당되어진다고 한다. (내가 알기론 그렇다고 하는데, 만약 아니거나 잘못된 점이 있다면 지적해주시길 바랍니다.) 이 포스팅은 위와 같이 일반 가정집 인터넷 회선을 통해서 MS-SQL 서버를 구축하는 내용이니 잘 참고 하시길 바란다. 유동 IP를 고정IP 처럼 사용하기 위해서는 iptime 공유기의 DDNS기능을 활용하면 된다. (아이피타임 공유기에서 기능을 제공하여야함) 1. 특수기능 -> DDNS 설정에서 DDNS를 등록하여 .. 더보기
[MSSQL] AdventureWorks Sample Database 사용법 이번 포스팅에서는 SQL Server Management Studio에서 Sample DataBase를 사용하는 방법에 대해 알아볼게요~! Sample Database를 사용하기 전에 SQL Server Management Studio에 대해 알아보도록 할게요.이것은 흔히 사람들이 말하는 MS-SQL을 쉽게 관리할 수 있도록 만들어진 DBMS에요! 사람들이 흔하게 알고 있는 DBMS의 종류는 MS-SQL말고도 오라클, MYSQL등 이 있어요~ 이 것들 중에서도 MS-SQL은 Microsoft사에서 만든 DBMS이구요 보통 C#이라는 언어와 호환성이 강하기 때문에 C#언어와 주로 사용되고 있어요~ 이밖에도 C#에서 오라클, MYSQL등 을 사용 할 수 있어요 ADO.NET Provider를 설치해서 참조를.. 더보기