MSSQL(23)
-
DB/MSSQL
2018.03.29
5
[MSSQL] 커서 사용법 & 예제
커서란? 행 단위 작업을 효율적으로 하기 위한 방식으로 테이블에서 여러 개의 행을 조회한 후 쿼리의 결과를 한 행씩 처리하는 방식입니다. SELECT 한 결과(행 집합)를 반복 작업해줘야 할 경우 유용하게 사용 가능 한 방식입니다. 커서의 특징 1. 커서는 내장 SQL 문의 수행 결과로 반환될 수 있는 복수의 튜플들을 액세스 할 수 있도록 해주는 개념입니다. 2. 커서는 질의 수행 결과로 반환되는 첫 번째 튜플에 대한 포인터로 생각할 수 있습니다. 3. 커서를 사용하여 질의 결과로 반환될 수 있는 튜플들을 한 번에 하나씩 차례대로 처리할 수 있습니다. 커서 관련 명령어 DECLARE : 커서를 정의하는 등 커서에 관련된 선언을 하는 명령입니다. OPEN : 커서가 질의 결과의 첫 번째 튜플을 포인트 하도..
-
DB/MSSQL
2018.03.28
[MSSQL] SET NOCOUNT 정의와 사용법 (프로시저 성능 향상)
SET NOCOUNT란? 쿼리문 또는 프로시저의 영향을 받은 행 수를 나타내는 메시지가 결과 집합의 일부로 반환되지 않도록 하는 것 구문 : SET NOCOUNT {ON/OFF} 사용하는 이유 MSSQL에서 프로시저를 만 들 경 우 프로시저의 속도(성능)에 대해서 생각을 안 할 수 없습니다. 프로시저의 속도가 프로그램의 속도에 밀접한 관련이 있는 만큼 프로시저의 성능에 대해 초점을 맞추고 쿼리문을 짜야합니다. 이번 포스팅에서는 SET NOCOUNT라는 함수를 사용하여 쿼리 문의 속도를 향상하는 방법에 대해 알아보겠습니다. MSSQL에서 프로시저를 만들고 실행을 해보면 위와 같은 메시지를 보신 적이 있으실 텐데요. 위 메시지는 INSERT나 UPDATE DELETE처럼 테이블에 영향을 주게 되면 출력이 됩..
-
DB/MSSQL
2018.03.26
[MSSQL] 반복문(WHILE)사용법 & 예제
WHILE문 MS SQL에서도 반복문을 지원합니다. 반복문을 사용해서 변수에 문자열을 계속 붙이거나 숫자를 더하는 등 다양한 방식으로 응용하여 사용할 수 있습니다. 반복문을 사용하는 다양한 예제를 포스팅합니다. 1. 숫자더하기 DECLARE @NUM INT, @SUM INT,@TIME INT --변수선언 SET @NUM = 1 SET @SUM = 0 SET @TIME = 10 WHILE @NUM
-
DB/MSSQL
2018.03.22
[MSSQL] 피벗 테이블을 활용하여 세로로 된 데이터 가로로 출력하기
피벗테이블이란? 테이블을 조회한 데이터를 특정 데이터 칼럼으로 사용, 요약된 결과를 만들어 표시하는 것입니다. 사용자 입장에서 데이터를 좀 더 쉽게 볼 수 있도록 출력 형태를 가공할 때 사용합니다. 예제 피벗테이블을 활용하여 세로로 되어있는 칼럼을 가로로 바꿔보는 예제 (행을 열로 변환) MM_TEST 테이블안에는 위와 같이 DT(날짜), QT(수량)의 데이터가 10만 개가 있습니다. 위 테이블의 월별 합계 수량을 가로로 나타내시오 해결방법 1. 테이블의 월별 합계 수량을 Select 합니다. DECLARE @DT_FROM NVARCHAR(6) = '200802' DECLARE @DT_TO NVARCHAR(6) = '200904' SELECT MAX(DT) AS DT, SUM(QT) AS QT FROM ..
-
DB/MSSQL
2018.02.19
5
[MSSQL] 프로시저 생성,조회,수정,삭제
프로시저란? 데이터베이스에서의 프로시저란 프로그래머가 생성해놓은 쿼리문을 마치 하나의 메서드 형식으로 관리하는 것입니다. 실무에서는 굉장히 복잡한 쿼리문을 많이 사용해요. 많은 컬럼을 조회하고 여러 테이블을 조인하고 거기다가 WHERE조건까지... 심한 것은 하나의 쿼리를 만드는데 1000라인이 넘어가는 경우도 종종 있어요. 이렇게 장문의 쿼리를 사용할 때마다 써줘야 한다면 굉장히 불편할 거예요. 그러므로 이 장문의 쿼리를 프로시저에 저장해주고, 쿼리문이 저장된 프로시저를 호출하여 프로그래밍을 하는 것이 훨씬 효율적입니다. 프로시저 사용법 프로시저 생성 문법 CREATE PROC [프로시저명] AS [쿼리문] 프로시저 생성 예제 CREATE PROCEDURE UP_EXPRO ( @P_COMPANY NVA..
-
DB/MSSQL
2018.02.19
2
[MSSQL] 서브쿼리(SubQuery) 사용법 & 예제
서브 쿼리란? 하나의 쿼리문 안에 포함되어 있는 또 하나의 쿼리문을 말합니다. 서브 쿼리는 메인 쿼리가 서브 쿼리를 포함하는 종속적인 관계입니다. 여러 번의 쿼리를 수행해야만 얻을 수 있는 결과를 하나의 중첩된 SQL 문장으로 간편하게 결과를 얻을 수 있게 해 줍니다. 쉽게 말해서 쿼리 문안에 쿼리문을 또 쓴다고 생각하면 됩니다. ※ Sub Query를 Inner Query라고도 합니다. 주의사항 ☞ 서브 쿼리를 괄호로 묶어서 사용해야 한다. ☞ 서브 쿼리 안에서 Order By 절은 사용할 수 없다. ☞ 연산자 오른쪽에 사용하여야 한다. 서브 쿼리의 반환값에 따른 서브쿼리 ☞ 단일 행 서브쿼리 : 서브쿼리의 결과가 1행 ☞ 다중 행 서브쿼리 : 서브쿼리의 결과가 여러 행 ☞ 다중 칼럼 서브 쿼리 : 서..
-
DB/MSSQL
2018.02.08
[MSSQL] GROUP BY, HAVING, DISTINCT절 사용하기
GROUP BY절이란? 테이블 SELECT시 조회 결과를 그룹으로 묶어서 그 결과를 가져오는 역할을 한다. DISTINCT절이란? DISTINCT는 GROUP BY절과 마찬가지로 조회결과를 그룹으로 묶어서 그 결과를 가져온다. 주로 UNIQUE한 컬럼을 조회할 경우 사용되는 구절이다. GROUP BY절과 DISTINCT의 차이점 두 구절은 똑같이 그룹을 지어준다는것에 대해 공통점이 있다. 하지만 두 구절의 차이는 GROUP BY는 결과물을 정렬해서 표현하고 DISTINCT는 결과물을 정렬하지 않는다. 즉 정렬이 필요하다면 GROUP BY절을 사용하면 되고 그것이 아니라면 DISTINCT절을 사용하면 된다. 정렬이 필요하지않다면 DISTINCT절을 사용하는것이 속도면에서 GROUP BY절보다 빠르다. 문법..
-
DB/MSSQL
2018.02.07
[MSSQL] 집계함수(COUNT,AVG,MAX,MIN,SUM) 사용법 & 예제
집계 함수 집계 함수는 계산을 수행하고 단일 값을 반환합니다. Count() 함수를 제외한 집계 함수는 Null 값을 무시하며 SELECT문 혹은 HAVING 절에만 사용할 수 있습니다. 집계 함수 종류 COUNT() : 수량 계산 --테이블(MY_TABLE)에 남아있는 칼럼수 조회-- SELECT COUNT(*) AS 칼럼수 FROM MY_TABLE --테이블(MY_TABLE) 이름(MY_NAME)값이 있는 ROW 수 조회-- SELECT COUNT(MY_NAME) AS ROW수 FROM MY_TABLE AVG(): 평균 --테이블 (MY_TABLE)의 평균나이(AGE) 조회-- SELECT AVG(AGE) AS 평균나이 FROM MY_TABLE --테이블(MY_TABLE)의 수량(QT)의 전체 평균(..
-
DB/MSSQL
2018.02.06
[MSSQL] 별칭(ALIAS) 사용법 & 예제
ALIAS란? ALIAS 는 값에 별칭을 주어 접근을 별칭 형태로 할 수 있도록 하는 역할을합니다. 데이터,칼럼,테이블,서브쿼리,WHERE절 등에 사용할 수 있습니다. 대표적으로 알아보기 힘든 칼럼에 AS(별칭)을 많이 사용합니다. 예약어는 AS입니다. ALIAS(문법) ColumnName AS 컬럼명칭 --컬럼에 별칭 부여하기 TableName AS 테이블명칭 --테이블에 별칭 부여하기 ALIAS(예제) 1. 칼럼명에 별칭(AS)짓기 SELECT NO_NUM AS 사원번호,NO_NAME AS 사원명,AGE AS 나이 FROM EX_TABLE 2. 칼럼 NUM1+NUM2의 값을 TOTAL이라는 별칭(AS)짓기 SELECT NUM1 + NUM2 AS TOTAL FROM EX_TABLE 3.EX_TABLE이..
-
DB/MSSQL
2018.01.29
[MSSQL] Select문 사용법 & 예제
SELECT는 테이블에 있는 데이터를 조회하는 명령어입니다. Select(검색) --My_Table로 부터 모든 칼럼 조회 SELECT * FROM My_Table --My_Table의 No_Emp,Nm_Kor,Age 칼럼 조회 SELECT No_Emp,Nm_Kor,Age FROM My_Table Where(조건문) --이름이 '홍길동'인사람 검색 SELECT * FROM My_Table WHERE Nm_Kor ='홍길동' --나이가 25살인 사원의 한국이름과 나이 조회 SELECT Nm_Kor,Age FROM My_Table WHERE Age=25 --나이가 25살이 아닌 사원 조회 SELECT * FROM My_Table WHERE Age25 --사원번호가 '0315' 이고 나이가 25살보다 작거나 ..
-
DB/MSSQL 2018.03.29 5[MSSQL] 커서 사용법 & 예제 커서란? 행 단위 작업을 효율적으로 하기 위한 방식으로 테이블에서 여러 개의 행을 조회한 후 쿼리의 결과를 한 행씩 처리하는 방식입니다. SELECT 한 결과(행 집합)를 반복 작업해줘야 할 경우 유용하게 사용 가능 한 방식입니다. 커서의 특징 1. 커서는 내장 SQL 문의 수행 결과로 반환될 수 있는 복수의 튜플들을 액세스 할 수 있도록 해주는 개념입니다. 2. 커서는 질의 수행 결과로 반환되는 첫 번째 튜플에 대한 포인터로 생각할 수 있습니다. 3. 커서를 사용하여 질의 결과로 반환될 수 있는 튜플들을 한 번에 하나씩 차례대로 처리할 수 있습니다. 커서 관련 명령어 DECLARE : 커서를 정의하는 등 커서에 관련된 선언을 하는 명령입니다. OPEN : 커서가 질의 결과의 첫 번째 튜플을 포인트 하도..
-
DB/MSSQL 2018.03.28[MSSQL] SET NOCOUNT 정의와 사용법 (프로시저 성능 향상) SET NOCOUNT란? 쿼리문 또는 프로시저의 영향을 받은 행 수를 나타내는 메시지가 결과 집합의 일부로 반환되지 않도록 하는 것 구문 : SET NOCOUNT {ON/OFF} 사용하는 이유 MSSQL에서 프로시저를 만 들 경 우 프로시저의 속도(성능)에 대해서 생각을 안 할 수 없습니다. 프로시저의 속도가 프로그램의 속도에 밀접한 관련이 있는 만큼 프로시저의 성능에 대해 초점을 맞추고 쿼리문을 짜야합니다. 이번 포스팅에서는 SET NOCOUNT라는 함수를 사용하여 쿼리 문의 속도를 향상하는 방법에 대해 알아보겠습니다. MSSQL에서 프로시저를 만들고 실행을 해보면 위와 같은 메시지를 보신 적이 있으실 텐데요. 위 메시지는 INSERT나 UPDATE DELETE처럼 테이블에 영향을 주게 되면 출력이 됩..
-
DB/MSSQL 2018.03.26[MSSQL] 반복문(WHILE)사용법 & 예제 WHILE문 MS SQL에서도 반복문을 지원합니다. 반복문을 사용해서 변수에 문자열을 계속 붙이거나 숫자를 더하는 등 다양한 방식으로 응용하여 사용할 수 있습니다. 반복문을 사용하는 다양한 예제를 포스팅합니다. 1. 숫자더하기 DECLARE @NUM INT, @SUM INT,@TIME INT --변수선언 SET @NUM = 1 SET @SUM = 0 SET @TIME = 10 WHILE @NUM
-
DB/MSSQL 2018.03.22[MSSQL] 피벗 테이블을 활용하여 세로로 된 데이터 가로로 출력하기 피벗테이블이란? 테이블을 조회한 데이터를 특정 데이터 칼럼으로 사용, 요약된 결과를 만들어 표시하는 것입니다. 사용자 입장에서 데이터를 좀 더 쉽게 볼 수 있도록 출력 형태를 가공할 때 사용합니다. 예제 피벗테이블을 활용하여 세로로 되어있는 칼럼을 가로로 바꿔보는 예제 (행을 열로 변환) MM_TEST 테이블안에는 위와 같이 DT(날짜), QT(수량)의 데이터가 10만 개가 있습니다. 위 테이블의 월별 합계 수량을 가로로 나타내시오 해결방법 1. 테이블의 월별 합계 수량을 Select 합니다. DECLARE @DT_FROM NVARCHAR(6) = '200802' DECLARE @DT_TO NVARCHAR(6) = '200904' SELECT MAX(DT) AS DT, SUM(QT) AS QT FROM ..
-
DB/MSSQL 2018.02.19 5[MSSQL] 프로시저 생성,조회,수정,삭제 프로시저란? 데이터베이스에서의 프로시저란 프로그래머가 생성해놓은 쿼리문을 마치 하나의 메서드 형식으로 관리하는 것입니다. 실무에서는 굉장히 복잡한 쿼리문을 많이 사용해요. 많은 컬럼을 조회하고 여러 테이블을 조인하고 거기다가 WHERE조건까지... 심한 것은 하나의 쿼리를 만드는데 1000라인이 넘어가는 경우도 종종 있어요. 이렇게 장문의 쿼리를 사용할 때마다 써줘야 한다면 굉장히 불편할 거예요. 그러므로 이 장문의 쿼리를 프로시저에 저장해주고, 쿼리문이 저장된 프로시저를 호출하여 프로그래밍을 하는 것이 훨씬 효율적입니다. 프로시저 사용법 프로시저 생성 문법 CREATE PROC [프로시저명] AS [쿼리문] 프로시저 생성 예제 CREATE PROCEDURE UP_EXPRO ( @P_COMPANY NVA..
-
DB/MSSQL 2018.02.19 2[MSSQL] 서브쿼리(SubQuery) 사용법 & 예제 서브 쿼리란? 하나의 쿼리문 안에 포함되어 있는 또 하나의 쿼리문을 말합니다. 서브 쿼리는 메인 쿼리가 서브 쿼리를 포함하는 종속적인 관계입니다. 여러 번의 쿼리를 수행해야만 얻을 수 있는 결과를 하나의 중첩된 SQL 문장으로 간편하게 결과를 얻을 수 있게 해 줍니다. 쉽게 말해서 쿼리 문안에 쿼리문을 또 쓴다고 생각하면 됩니다. ※ Sub Query를 Inner Query라고도 합니다. 주의사항 ☞ 서브 쿼리를 괄호로 묶어서 사용해야 한다. ☞ 서브 쿼리 안에서 Order By 절은 사용할 수 없다. ☞ 연산자 오른쪽에 사용하여야 한다. 서브 쿼리의 반환값에 따른 서브쿼리 ☞ 단일 행 서브쿼리 : 서브쿼리의 결과가 1행 ☞ 다중 행 서브쿼리 : 서브쿼리의 결과가 여러 행 ☞ 다중 칼럼 서브 쿼리 : 서..
-
DB/MSSQL 2018.02.08[MSSQL] GROUP BY, HAVING, DISTINCT절 사용하기 GROUP BY절이란? 테이블 SELECT시 조회 결과를 그룹으로 묶어서 그 결과를 가져오는 역할을 한다. DISTINCT절이란? DISTINCT는 GROUP BY절과 마찬가지로 조회결과를 그룹으로 묶어서 그 결과를 가져온다. 주로 UNIQUE한 컬럼을 조회할 경우 사용되는 구절이다. GROUP BY절과 DISTINCT의 차이점 두 구절은 똑같이 그룹을 지어준다는것에 대해 공통점이 있다. 하지만 두 구절의 차이는 GROUP BY는 결과물을 정렬해서 표현하고 DISTINCT는 결과물을 정렬하지 않는다. 즉 정렬이 필요하다면 GROUP BY절을 사용하면 되고 그것이 아니라면 DISTINCT절을 사용하면 된다. 정렬이 필요하지않다면 DISTINCT절을 사용하는것이 속도면에서 GROUP BY절보다 빠르다. 문법..
-
DB/MSSQL 2018.02.07[MSSQL] 집계함수(COUNT,AVG,MAX,MIN,SUM) 사용법 & 예제 집계 함수 집계 함수는 계산을 수행하고 단일 값을 반환합니다. Count() 함수를 제외한 집계 함수는 Null 값을 무시하며 SELECT문 혹은 HAVING 절에만 사용할 수 있습니다. 집계 함수 종류 COUNT() : 수량 계산 --테이블(MY_TABLE)에 남아있는 칼럼수 조회-- SELECT COUNT(*) AS 칼럼수 FROM MY_TABLE --테이블(MY_TABLE) 이름(MY_NAME)값이 있는 ROW 수 조회-- SELECT COUNT(MY_NAME) AS ROW수 FROM MY_TABLE AVG(): 평균 --테이블 (MY_TABLE)의 평균나이(AGE) 조회-- SELECT AVG(AGE) AS 평균나이 FROM MY_TABLE --테이블(MY_TABLE)의 수량(QT)의 전체 평균(..
-
DB/MSSQL 2018.02.06[MSSQL] 별칭(ALIAS) 사용법 & 예제 ALIAS란? ALIAS 는 값에 별칭을 주어 접근을 별칭 형태로 할 수 있도록 하는 역할을합니다. 데이터,칼럼,테이블,서브쿼리,WHERE절 등에 사용할 수 있습니다. 대표적으로 알아보기 힘든 칼럼에 AS(별칭)을 많이 사용합니다. 예약어는 AS입니다. ALIAS(문법) ColumnName AS 컬럼명칭 --컬럼에 별칭 부여하기 TableName AS 테이블명칭 --테이블에 별칭 부여하기 ALIAS(예제) 1. 칼럼명에 별칭(AS)짓기 SELECT NO_NUM AS 사원번호,NO_NAME AS 사원명,AGE AS 나이 FROM EX_TABLE 2. 칼럼 NUM1+NUM2의 값을 TOTAL이라는 별칭(AS)짓기 SELECT NUM1 + NUM2 AS TOTAL FROM EX_TABLE 3.EX_TABLE이..
-
DB/MSSQL 2018.01.29[MSSQL] Select문 사용법 & 예제 SELECT는 테이블에 있는 데이터를 조회하는 명령어입니다. Select(검색) --My_Table로 부터 모든 칼럼 조회 SELECT * FROM My_Table --My_Table의 No_Emp,Nm_Kor,Age 칼럼 조회 SELECT No_Emp,Nm_Kor,Age FROM My_Table Where(조건문) --이름이 '홍길동'인사람 검색 SELECT * FROM My_Table WHERE Nm_Kor ='홍길동' --나이가 25살인 사원의 한국이름과 나이 조회 SELECT Nm_Kor,Age FROM My_Table WHERE Age=25 --나이가 25살이 아닌 사원 조회 SELECT * FROM My_Table WHERE Age25 --사원번호가 '0315' 이고 나이가 25살보다 작거나 ..