BETWEEN - AND

 BETWEEN ~ AND 문법은 연속적인 값의 범위를 설정할때 사용된다.

 

 예를들어 아래 조회된 테이블 데이터에서 키가 175~185인 사람을 조회해보자

 

 

SELECT *
FROM dbo.userTbl
WHERE height BETWEEN 175 AND 185

키 175~185 결과

 

반응형

'DB > MSSQL' 카테고리의 다른 글

UNPIVOT  (0) 2020.10.20
OFFSET ROWS FETCH 페이징 처리  (0) 2020.10.19
ALTER 문  (0) 2020.07.22
무결성 제약조건 CHECK  (0) 2020.07.12
문자열 char / varchar / nchar / nvarchar  (0) 2020.07.12

UNPIVOT

UNPIVOT이란 테이블의 컬럼을 데이터 ROW 형태로 변경하여 표시하는 방법이다.

 

UNPIVOT 사용 방법

SELECT [사용할 컬럼명] FROM [테이블명] UNPIVOT(
[집계할 데이터명] FOR [데이터 형태가 될 컬럼명] IN ([UNPIVOT할 컬럼들 입력])
) AS [UNPIVOT 테이블 별칭]

아래 학생 데이터에서 키와 몸무게를 [Information] 컬럼명으로 UNPIVOT 처리 해보자

 

[학생 정보]

UNPIVOT 처리

SELECT name, information, value
FROM dbo.Student UNPIVOT(
	value FOR information in (height, weight)
) AS unpvtAlias

 

[학생 정보를 UNPIVOT 한 결과]

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

 

반응형

'DB > MSSQL' 카테고리의 다른 글

BETWEEN - AND  (0) 2020.11.03
OFFSET ROWS FETCH 페이징 처리  (0) 2020.10.19
ALTER 문  (0) 2020.07.22
무결성 제약조건 CHECK  (0) 2020.07.12
문자열 char / varchar / nchar / nvarchar  (0) 2020.07.12

OFFSET ROWS FETCH

SQL Server 2012부터 지원되는 OFFSET ROWS FETCH 문법을 활용하여 Paging을 처리해보자.

 

OFFSET ROWS FETCH 사용 방법

ORDER BY 컬럼
OFFSET {건너뛸 행의 숫자} ROW
FETCH NEXT {해당 숫자만큼 행 출력} ONLY

 

아래 학생 데이터를 나이로 정렬하여 3개씩 출력해보자

declare @page_no int = 1
declare @page_size int = 3

SELECT studentName, studentAge
FROM dbo.Student WITH (NOLOCK)
ORDER BY studentAge
OFFSET (@page_no-1) * @page_size ROW
FETCH NEXT @page_size ROW ONLY

[1Page 3개 출력]

set @page_no = 2
set @page_size = 3

SELECT studentName, studentAge
FROM dbo.Student WITH (NOLOCK)
ORDER BY studentAge
OFFSET (@page_no-1) * @page_size ROW
FETCH NEXT @page_size ROW ONLY

[2Page 3개 출력]

 

반응형

'DB > MSSQL' 카테고리의 다른 글

BETWEEN - AND  (0) 2020.11.03
UNPIVOT  (0) 2020.10.20
ALTER 문  (0) 2020.07.22
무결성 제약조건 CHECK  (0) 2020.07.12
문자열 char / varchar / nchar / nvarchar  (0) 2020.07.12

-- 1. ALTER TABLE > 컬럼 삭제
-- ALTER TABLE [테이블명] DROP COLUMN [컬럼명]
ALTER TABLE PRODUCT DROP COLUMN product_info


-- 2. ALTER TABLE > 컬럼 추가
-- ALTER TABLE [테이블명] ADD [추가할 컬럼명] [데이터 타입] [NOT NULL / NULL 설정]
ALTER TABLE PRODUCT ADD product_info varchar(max) not null


-- 3. ALTER TABLE > 컬럼 형식 변경
-- ALTER TABLE [테이블명] ALTER COLUMN [컬럼명] [변결할 데이터 타입] [NOT NULL / NULL 설정]
ALTER TABLE PRODUCT ALTER COLUMN price varchar(100)

반응형

'DB > MSSQL' 카테고리의 다른 글

UNPIVOT  (0) 2020.10.20
OFFSET ROWS FETCH 페이징 처리  (0) 2020.10.19
무결성 제약조건 CHECK  (0) 2020.07.12
문자열 char / varchar / nchar / nvarchar  (0) 2020.07.12
날짜 형식 변환  (0) 2020.04.17

무결성 제약조건: 데이터 베이스에 저장된 데이터의 정확성 (일관성)

 

[ CHECK ]

형식: constarints 제약명 CHECK(조건)

- check 소괄호 안의 조건에 맞는 데이터만 삽입 가능한 제약조건,

- 조건에는 기본 연산자, 비교 연산자, in, not in 등등을 사용

 

Ex) PRODUCT TABLE 중, 가격이 50보다 큰 price 값만 가능

create table product(
	product_no int not null,
	product_name varchar(10),
	make_day datetime,
	price float,
	product_info varchar(max),
	primary key(product_no),
	constraint chk_price check (price > 50) -- 50보다 큰 price 값만 가능
)

 

해당 테이블에, price 값이 50 이하의 데이터를 INSERT 시 아래와 같은 오류가 발생한다.

Ex) PRODUCT TABLE 중, 가격이 5,6,7,8,9,10 에 속한 price 값만 가능

create table product(
	product_no int not null,
	product_name varchar(10),
	make_day datetime,
	price float,
	product_info varchar(max),
	primary key(product_no),
	constraint chk_price check (price in (5,6,7,8,9,10)) -- price 값이 5,6,7,8,9,10 인 경우에만 가능
)

 

반응형

'DB > MSSQL' 카테고리의 다른 글

OFFSET ROWS FETCH 페이징 처리  (0) 2020.10.19
ALTER 문  (0) 2020.07.22
문자열 char / varchar / nchar / nvarchar  (0) 2020.07.12
날짜 형식 변환  (0) 2020.04.17
트랜잭션 격리수준  (0) 2018.03.21

+ Recent posts