BETWEEN구문 데이터베이스를 사용하다 보면 ~어디서부터 ~어디까지의 데이터를 출력하고 싶은 경우가 있습니다. 대표적인 경우가 날짜죠 ~일부터 ~일까지의 데이터를 출력해라!! 물론 X보다 크고 Y보다 작은 데이터를 찾아라 이런 식으로도 할 수 있지만 더 간결하고 유용하게 사용할 수 있는 문법인 BETWEEN 절을 소개합니다. 사용법 SELECT * FROM [테이블명] WHERE [칼럼명] BETWEEN [조건1] AND [조건2] 예제 --나이(AGE)가 20살~25살까지의 사원조회 SELECT * FROM MY_TABLE WHERE AGE BETWEEN 20 AND 24 --사원번호(NO_EMP)가 '0000'~'0010'까지이거나 나이(AGE)가 30살~40살인 사원조회 SELECT * FROM ..
IN절 데이터베이스를 사용하다 보면 이런 경험들 있으실 겁니다. XX이거나 XX이거나 XX이거나 XX이거나 이런 경우요 물론 OR을 활용해서 처리를 할 수도 있지만 IN이라는 좀 더 간편한 방식이 있습니다. 사용법 SELECT * FROM [테이블명] WHERE [칼럼명] IN ( [조건1],[조건2],[조건3] ) 예제 --나이가 20살,24살,26살인 사원 조회 SELECT * FROM MY_TABLE WHERE AGE IN(20,24,26) --사원번호가 '0000','0004','0008'이고 나이가 20살 24살 28살인 사원 조회 SELECT * FROM MY_TABLE WHERE NO_EMP IN('0000','0004','0008') AND AGE IN(20,24,28) [MS_SQL] L..
LIKE구문 쿼리문 WHERE절에 주로 사용되며 부분적으로 일치하는 칼럼을 찾을때 사용됩니다. SELECT * FROM [테이블명] WHERE LIKE [조건] _ : 글자숫자를 정해줌(EX 컬럼명 LIKE '홍_동') % : 글자숫자를 정해주지않음(EX 컬럼명 LIKE '홍%') 사용법 --A로 시작하는 문자를 찾기-- SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A%' --A로 끝나는 문자 찾기-- SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A' --A를 포함하는 문자 찾기-- SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A%' --A로 시작하는 두글자 문자 찾기-- SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A_'..
데이터베이스를 하다 보면 가끔 엉뚱한 부분에 공백이 들어가서 애먹는 경우가 많습니다. 대표적으로는 decleare 한 변수에 varchar값을 계속해서 + 시킬 때 공백이 들어가는데요. 이렇게 예상치 못한 공백 값이 들어갔을 때 공백을 효율적으로 제거해주는 함수가 있습니다. 이번 포스팅에서는 MSSQL 공백 제거 함수 LTRIM, RTRIM에 대해 알아봅니다. LTRIM 해당 문자열의 왼쪽에 있는 공백을 제거해주는 함수 사용법 --문법-- LTRIM(문자열) --예제-- DECLARE @SQL NVARCHAR(200) SET @SQL = ' SPACE' LTRIM(@SQL) 문자열을 합 칠경 우 왼쪽에 공백이 생기는데 이를 제거할 때 요긴하게 사용됨 DECLARE @NUM INT, @STR NVARCHA..
ISNULL함수 ISNULL함수는 Microsoft SQL Server의 내장함수이며 칼럼이 NULL값일 경우 다른값으로 대체할 수 있는 기능이 있습니다. 데이터베이스를 사용하다보면 파라미터로 NULL값이 오거나 칼럼안에 NULL값이 들어있는 등 경우에 따라 NULL값을 적절히 처리해줘야하는 경우가 많은데 이럴때 유용하게 쓰일 수 있는 함수입니다. 사용법 --문법-- ISNULL(칼럼,칼럼이 NULL일경우 대체할 값) --예시-- ISNULL(Colum,0) (ISNULL(@PARAMETER,'')='') 예제 1. 부서(DEPT)를 검색하되 부서가 NULL값이면 '부서없음'으로 검색하기 SELECT ISNULL(DEPT,'부서없음') AS DPET FROM table 2. 파라미터와 동일한 이름(NAM..
커서란? 행 단위 작업을 효율적으로 하기 위한 방식으로 테이블에서 여러 개의 행을 조회한 후 쿼리의 결과를 한 행씩 처리하는 방식입니다. SELECT 한 결과(행 집합)를 반복 작업해줘야 할 경우 유용하게 사용 가능 한 방식입니다. 커서의 특징 1. 커서는 내장 SQL 문의 수행 결과로 반환될 수 있는 복수의 튜플들을 액세스 할 수 있도록 해주는 개념입니다. 2. 커서는 질의 수행 결과로 반환되는 첫 번째 튜플에 대한 포인터로 생각할 수 있습니다. 3. 커서를 사용하여 질의 결과로 반환될 수 있는 튜플들을 한 번에 하나씩 차례대로 처리할 수 있습니다. 커서 관련 명령어 DECLARE : 커서를 정의하는 등 커서에 관련된 선언을 하는 명령입니다. OPEN : 커서가 질의 결과의 첫 번째 튜플을 포인트 하도..
서브 쿼리란? 하나의 쿼리문 안에 포함되어 있는 또 하나의 쿼리문을 말합니다. 서브 쿼리는 메인 쿼리가 서브 쿼리를 포함하는 종속적인 관계입니다. 여러 번의 쿼리를 수행해야만 얻을 수 있는 결과를 하나의 중첩된 SQL 문장으로 간편하게 결과를 얻을 수 있게 해 줍니다. 쉽게 말해서 쿼리 문안에 쿼리문을 또 쓴다고 생각하면 됩니다. ※ Sub Query를 Inner Query라고도 합니다. 주의사항 ☞ 서브 쿼리를 괄호로 묶어서 사용해야 한다. ☞ 서브 쿼리 안에서 Order By 절은 사용할 수 없다. ☞ 연산자 오른쪽에 사용하여야 한다. 서브 쿼리의 반환값에 따른 서브쿼리 ☞ 단일 행 서브쿼리 : 서브쿼리의 결과가 1행 ☞ 다중 행 서브쿼리 : 서브쿼리의 결과가 여러 행 ☞ 다중 칼럼 서브 쿼리 : 서..
Union이란? Union은 여러 개의 SQL문을 합쳐 하나의 SQL문으로 만들어주는 방법입니다. 두 개의 쿼리의 합집합을 만들어준다고 생각하면 될듯합니다. Union과 UnionAll의 차이점 Union과 UnionAll은 두 쿼리문을 하나로 합쳐준다는 것에 공통점이 있습니다. 하지만 Union은 두 쿼리의 결과의 중복값을 제거해서 보여주고, UnionAll은중복된 값도 전부 다 보여준다는 차이점이 있습니다. 속도는 당연히 중복 값 제거를 위해 연산을 한번 더 해야 하기 때문에 UnionAll이 Union보다 더 빠르겠죠? Union 사용 시 주의점 ☞ 칼럼명이 같아야 한다. (같지 않을 경우 AS를 사용하여 같게 만들어주면 됩니다.) ☞ 칼럼 별 데이터 타입이 같아야 합니다. UNION / UNION..
집계 함수 집계 함수는 계산을 수행하고 단일 값을 반환합니다. 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)의 전체 평균(..
데이터베이스 MS_SQL 데이터 삽입(Insert) 사용법 및 예제입니다. Insert 문법 INSERT INTO 테이블명(칼럼1,칼럼2,칼럼3,....) values(데이터1,데이터2,데이터3,......) INSERT INTO My_Table(no_emp,nm_kor,age) values('dz000','홍길동',20) Insert문의 사용법은 다음과 같습니다. 하지만 위 방법은 일일이 수작업으로 데이터를 한줄한줄 넣는 방식이므로 테이블에 다량의 데이터를 삽입하려고 하면 굉장히 번거롭고 비효율적입니다. 여기서 만약 삽입해야 할 데이터가 다른 테이블에 이미 삽입되어 있다면..?? 새로 데이터를 일일이 넣는 것보다 이미 삽입되어있는 테이블의 데이터를 가지고 오는 방법이 더 효율적이지 않을까요? 이럴 때 ..