본문 바로가기

DataBase/mssql

[mssql] Clustered(클러스터), NonClustered(넌 클러스터) Clustered 테이블에 하나만 생성될 수 있다. ( 데이터가 정렬되어야 한다는 조건이있기때문에 ) 테이블을 인덱스로 지정한 열에 맞춰서 자동정렬 된다. ( 물리적으로 재배열 ) 하나의 클러스터 인덱스만 생성할 수 있으므로, 신중하게 생성하여야 한다. PK로 검색하기 때문에 검색 속도가 빠르다. insert, delete 가 빈번한 컬럼은 클러스터를 잘 사용하지 않는다. NonClustered 테이블 당 여러개 생성가능 테이블을 재배열 하지 않는다. 저장 공간이 많이 소요되고 구조가 복잡하다는 단점이있다. 더보기
[mssql] Cursor Cursor 행 단위 작업을 효율적으로 하기 위한 방식 테이블에서 여러개의 행을 조회한 후 쿼리의 결과를 한 행씩 처리하는 방식 ( SELECT한 결과를 반복 작업해줘야 할 경우 유용하게 사용 가능 한 방식 ) 특징 내장 SQL문의 수행 결과로 반환될 수 있는 복수의 튜플들을 엑세스 할 수 있도록 해주는 개념 질의 수행 결과로 반환되는 첫번째 튜플에 대한 포인터 질의 결과로 반환 될 수 있는 튜플들을 한번에 하나씩 차례대로 처리할 수 있다. ( 많은 데이터를 처리할 경우에는 커서 사용을 피하는 것이 좋음 ) 명령어 DECLARE : 커서를 정의하는 등 커서에 관련된 선언을 하는 명령어 OPEN : 커서가 질의 결과의 첫번째 튜플을 포인트하도록 설정하는 명령어 FETCH : 질의 결과의 튜플들 중 현재의 .. 더보기
[mssql] 테이블 생성 테이블 생성하기 생성법 ) create table 테이블명 ( 컬럼명 타입 형태 ) 쿼리문) begin tran create table testTable( idx int identity(1,1) NOT NULL, id varchar(50), name varchar (50) NOT NULL, title varchar (2000) NOT NULL, value varchar NOT NULL ) --rollback --commit begin tran을 걸어주어 잘못생성했을경우를 대비하여준다. begin tran을 실행한 후 에는 항상 rollback또는 commit을 해줘야한다. alter table 을 통하여 테이블을 변경할수 있다. delete table 을 통하여 테이블을 삭제할수 있다. 더보기
[mssql] set, nocount set, nocount 쿼리문 또는 프로시저의 영향을 받은 행 수를 나타내는 메시지가 결과 집합의 일부로 반환되지 않도록 하는것 프로시저의 성능 향상을 위해 사용 ex) SET NOCOUNT OFF SET NOCOUNT ON 두 가지 중에 사용가능하다. OFF 사용시 (0개 행이 영향을 받음) (0개 행이 영향을 받음) (1개 행이 영향을 받음) 위의 2개 (0개 행이 영향을 받음) 이라는 문구가 사라지게 된다. ON 사용시 그대로 다출력 더보기
[mssql] case, when case, when 약어나 코드를 읽기 쉬운 값으로 바꿔 줄때 사용 데이터를 범주화 할때 사용 형식 WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ELSE 값3 END 컬럼의 조건이 조건 1일때는 값 1을, 조건 2일때는 값 2를 두 가지 조건에 맞지 않는경우 값3을 반환 더보기
[mssql] isnull isnull 칼럼이 null값일 경우 다른값으로 대체할 수 있는 함수사용법 isnull(Colum,0) (isnull(@PARAMETER, '')='') ex) SELECT ISNULL(ID,'default') AS ID FROM table ID를 검색하여 null값이면, default로 검색하기 더보기
[mssql] join join : 두개이상의 테이블이나 데이터베이스를 연결하여 검색하는 방법 보통 PK 또는 FK로 두 테이블을 연결한다. 1. INNER JOIN 기준테이블과 Join한 테이블의 중복된 값 SELECT 테이블.칼럼, 테이블.칼럼 FROM 기준테이블 INNER JOIN 조인테이블 ON 기준테이블.키 = 조인테이블.키 SELECT A.EMAIL, B.BIRTH FROM TABLE A INNER JOIN JOIN_TABLE B ON A.IDX = B.IDX 2. LEFT OUTER JOIN 기준테이블의 값 + 테이블과 기준테이블의 중복된 값 (왼쪽 테이블을 기준으로 JOIN) SELECT 테이블.칼럼, 테이블.칼럼 FROM 기준테이블 LEFT OUTER JOIN 조인테이블 ON 기준테이블.키 = 조인테이블.키 S.. 더보기
[mssql] convert convert select convert( 포맷, [날짜], [변환형식] ) : 날짜 변환에 유용함. 부동 소수점 또는 숫자에서 정수로 변환할때, convert()함수는 결과를 자른다. 다른 변환일 경우에는 반올림한다. ex ) select convert(varchar, getdate(19), 120) -- 결과 : 현재시간의 초단위까지 ( 2020-12-16 23:04:33 ) select convert(varchar, getdate(16), 120) -- 결과 : 현재시간의 분단위까지 ( 2020-12-16 23:04 ) select convert(varchar, getdate(10), 120) -- 결과 : 현재날짜까지 ( 2020-12-16 ) 더보기