본문 바로가기

DB

[MSSQL] T-SQL 쿼리문 종류

종류 

설명 

 구문

 Between

 - 범위조건절
 - 컬럼명 Between 최소값 and 최대값

 - 컬럼값이 최소값-최대값 이내인 레코드를 검색

 select * from 주소록 where 나이 between '25' and '30';
 25~30세 사이 검색

 조건검색

조건을 만족하는 데이터만 검색하는 SELECT문의 기본 형식

SELECT [ALL|DISTINCT] [컬럼명FROM [테이블명WHERE 조건

 LIKE

 - 검색 조건을 정확히 몰라 부분적으로 일치하는 데이터를 검색하고 싶을 사용

 - 검색 조건을 정확히 알면 = 연산자로 조건을 표현하면 되지만 그게 아닐 경우 LIKE 사용

 - % : 0 이상의 문자(문자의 내요과 개수는 상관 없음)

_(언더바): 개의 문자(문자의 내용은 상관 없음)

 - LIKE '데이터%' : 데이터로 시작하는 문자열(데이터로 시작하기만 하면 길이는 상관 없음

 - LIKE ;%데이터' : 데이터로 끝나는 문자열(데이터로 끝나기만 하면 길이는 상관 없음)

 - LIKE '%데이터%' : 데이터가 포함된 문자열

 - LIKE '데이터_ _ _' : 데이터로 시작하는 6 길이의 문자열

 - LIKE '_ _%' : 세번째 글자가 '' 문자열

 NULL

 - 검색 조건에서 특정 속성의 값이 값인지를 비교하려면 IS NULL 키워드를 사용

 - 마찬가지로 특정 속성의 값이 값이 아닌지를 비교하려면 IS NOT NULL 키워드를 사용

 - 검색 조건에서 [컬럼명] = NULL 형태로 표현하면 되고 반드시 IS NULL 키워드를 이용해야 된다

 - SELECT * FROM [테이블명] WHERE [컬럼명] IS NULL;

 - SELECT * FROM [테이블명] WHERE [컬럼명] IS NOT NULL;

 IN

 포함된 조건만 검색함

 - Select * From [테이블명] Where [컬럼명] IN(제외할 데이터)
 - Select * From ViewPolicy where pcytype IN(6, 11) :  6 11 포함한 데이터만 검색

 - SELECT * FROM tbManagerAuthority WHERE AuthorityID = (SELECT AuthorityID From tbManager where ID = N'admin')

 NOT IN

 포함되지 않은 조건만 검색함

 - Select * From [테이블명] Where [컬럼명] NOT IN(제외할 데이터)

 - select * from ViewPolicy where pcytype NOT IN(5, 11) : 5 11 제외한 데이터만 검색

 UPDATE

 테이블의 자료를 수정을 시킬 업데이트 사용되는 쿼리이다.

 - UPDATE [테이블명] SET [컬럼명] = '입력값'
 - UPDATE tbmanager SET description = 'd' WHERE id = 'mskim'
 - Tbmanager 테이블에 mskim이라는 아이디를 가진 값은 description 정보를 d 업데이트함

 DELETE

 테이블의 Row 삭제

 DELETE [테이블명]

 DROP

 테이블을 완전 삭제

 DROP TABLE [테이블명]

 CASE
(제어구문)

 - 다수 개의 조건 수식을 평가형 특정 결과 수식을 반환하는 구문
 - 프로그래밍 언어처럼 대상 문장을 수행하는 것이 아니라 단지 특정 상수값만을 반환하는 구문
 - 두가지 형식의 CASE문이 있다.
 - 단순 CASE 구문: 입력 수식을 다수 개의 조건 수식들과 비교하여 같으면 결과 수식을 반환

 - 검색 CASE 구문: 모든 조건 수식들을 평가하여 참이면 결과 수식을 반환

SELECT CASE [테이블컬럼명] WHEN '[해당테이블컬럼값] THEN '[변경할 컬럼값]' ELSE '[else 처리시 변경할 값]' END FROM [테이블명]

 IF … ELSE

 - T-SQL문장의 실행 조건을 지정할 있는 구문
IF 조건문(부울 ) 결과가 참이면 조건 다음의 문장을 수행하고 그렇지 않으면 ELSE 다음의 문장을 수행한다
 

 COUNT

(집계 함수)

 해당 데이터의 개수를 출력한다 - SELECT COUNT (컬럼명) FROM [테이블명]
 - SELECT COUNT (*) FROM tbManagerAuthority

 WITH

 - WITH 구문내의 쿼리의 결과(Sub쿼리) 여러 사용될때(호출될때) 유용하다.

 - 서브쿼리 블럭에 이름을 지정할 있도록 해줌

 WITH Alias AS (Sub쿼리) SELECT [컬럼명] FROM Alias;

 REPLACE

 문자열을 다른 문자열로 바꾸는 함수 - REPLACE(대상컬럼, 찾을문장, 바꿀문장)
 - SELECT REPLACE([해당컬럼], 'aa', 'bb) FROM tbmanager

 ORDER BY

(정렬 검색)

 SELECT 문의 검색 결과 테이블은 일반적으로 DBMS 정한 순서로 출력된다. 결과 테이블의 내용을 사용자가 원하는 순서로 출력하려면 ORDER BY 키워드를 사용한다.

 - SELECT [컬럼명] FROM [테이블명] ORDER BY [컬럼명] [ASC|DESC]

 - [ASC|DESC] 명시 하지 않을 경우 기본 Default 값은 ASC(오름차순)이다

 - SELECT * FROM tbenvconsole envid ORDER BY envid ASC

 DISTINCT

 중복되는 컬럼값 제거

 SELECT DISTINCT 속성_리스트 FROM 테이블_리스트

 ALL

 전체 해당 컬럼값 보여줌

 SELECT ALL 속성_리스트 FROM 테이블_리스트

 AS 키워드

 AS 키워드의 앞에는 바꾸고 싶은 열이름, 뒤에는 새로운 이름을 적어면 된다

 - SELECT [열이름] AS [새로운 열이름] FROM [테이블명]

 - SELECT version as tt FROM tbengcmpversion

 - SELECT vsersion "tt" FROM tbengcmpversion 동일함

 산술식
(+, -, *, /)

 - 산술 연산자와 상수로 산술식을 제시할 있다
 - 속성의 값이 실제로 변경되는 것은 아니고 결과 테이블에서만 계산한 결과 값을 출력한 것이다

 SELECT [열이름] [+, -, *, /] FROM 테이블명

 SUM
(집계 함수)

 - 속성 값의 합계
 - 사용 가능한 속성의 타입: 숫자 데이터

 SELECT SUM(열이름) FROM 테이블명

 AVG 

(집계 함수)

 - 속성 값의 평균

 - 사용 가능한 속성의 타입: 숫자 데이터

 SELECT AVG(열이름) FROM 테이블명

 LIMIT

 -  개의 행을 반환할지 정하는 키워드
 - 오프셋은 0 부터 시작하는 반면에 반환하는 행의 수는 1부터 시작
 - MySQL에만 해당(MS-SQL안됨)
 - LIMIT 3, 5 -> 첫번째3 offset 시작지점, 두번째 5 rows 행의 갯수
 SELECT * FROM [테이블명] LIMIT [행의 시작점, 행의 갯수]

 집계 함수

 - 집계 함수는 널인 속성 값은 제외하고 계산한다
 - 집계 함수는 Where 절에서는 사용할 없고  Select 절이나 Having 절에서만 사용할 있다
 

 CAST

 CAST 연산자를 SELECT 문에서 어떤 값의 데이터 타입을 다른 데이터 타입으로 명시적으로 변환하는 데 사용할 수 있다. 조회 리스트 또는 WHERE 절의 값 수식을 다른 데이터 타입으로 변환할 수 있다.

 SELECT CAST(컬럼명 AS 데이터타입)

 ISNULL()

 ISNULL 함수에 첫번째 인자는 컬럼값이 들어가며 2번째 인자에는 교체할 값을 넣는다.

 - 첫번째 인자에 값이 NULL 경우 교체값으로 대처 한다

 SELECT ISNULL(컬럼명, 교체값) FROM [테이블명]

 < , > , = , <>

 

 - SELECT * FROM [테이블명] WHERE [컬럼명] < 0

컬럼값이 0보다 작은 행만 검색

 - SELECT * FROM [테이블명] WHERE [컬럼명] > 0

컬럼값이 0보다 행만 검색

 - SELECT * FROM [테이블명] WHERE [컬럼명] = 0

컬럼값이 0인것만 검색

 - SELECT * FROM [테이블명] WHERE [컬럼명] <> 0

컬럼값이 0 제외한 값만 검색