본문 바로가기

데이터베이스

Data, Data Model, Data Modeling 데이터(Data) 데이터베이스에서 말하는 데이터는 데이터베이스에 저장되는 각각의 낱개 혹은 그 각각을 모아놓은 Set을 말한다. 데이터는 데이터베이스의 테이블에 저장된다. 이 테이블은 컬럼으로 구성되어 있고 이 컬럼은 데이터 타입이 명시되어 있다. 데이터 모델(Data Model) 데이터 모델이란 추상화된 모형이다. 이때 추상화된 모형이란 뭘까? 어떻게 나오는 것인가? 현실 세계에 있는 책, 서점과 같은 어떤 객체 혹은 사물들을 대상으로 그것들이 가지고 있는 속성과 이 객체들간의 관계를 표준화하시키고 조직화해 놓은 것을 추상화된 모형이라고 한다. 이때 표준화란 객체들이 가지는 속성이나 객체들간에 관계에 존재하는 수많은 속성과 특징 중 대표되는 몇가지만을 가져오기 위해 기준을 마련하고 정의하는 것을 일컫는.. 더보기
SHOWPLAN_TEXT 쿼리 실행계획을 텍스트 형식으로 보여 준다. 더보기
SQL Server DATEDIFF, DATEADD , DatePart DateDiff는 두 날짜 사이의 차이를 알려준다. # Syntax DateDiff(interval, date1, date2) DateAdd는 어떤 날짜에 일자나, 시간을 더해서 돌려준다. # Syntax DateAdd(interval, number, date) Datepart는 날짜의 특정한 부분을 반환한다. # Syntax DatePart(interval, date) # dayof, day, weekday는 DateDiff, DateAdd에서는 그 결과에 차이를 확인하기 어렵다. 아래 예를 통해 이 세 interval에 대한 차이를 알 수 있을 것이다. SELECT DATEPART(dayofyear,'2020-12-31') -- 365 SELECT DATEPART(day,'2020-12-31') --.. 더보기
SQL Server CURSOR # cursor select문을 실행하고 나면 result set을 반환받는다. cursor는 이렇게 반환받은 result set의 각각에 행을 다룰 수 있게 도와 준다. # cursor life cycle # Declare cursor Declare cursor이름 Cursor -- Declare 키워드를 쓴다. -> cursor에 이름 쓴다. -> 데이터타입이 Cursor라 쓴다. for select statement; -- select 문을 사용하여 cursor로 다룰 result set을 정의한다. # select statement를 실행시키고 cursor로 result set을 집어넣는다. Open cursor_name # cursor로 부터 행을 하나 꺼내어 하나 이상의 변수에 집어넣는다. F.. 더보기
Cross Apply와 Outer Apply 차이 Sql Server는 table valued functions을 지원한다. table valued functions는 테이블 형태의 데이터를 반환하는 함수이다. join 은 2개 이상의 테이블에 대해 합집합, 교집합의 연산을 한다. 이 join은 table valued function에 대해서는 지원하지 않는다. 이에 대한 대안으로 Apply operator를 제공한다. Apply operator에는 cross apply와 outer apply가 존재한다. cross apply operator는 inner join 과 유사하다. table valued function과 일반 테이블 사이에 매칭 되는 행들만을 조회한다. 반대로 outer apply는 매칭을 무시하고 모든 데이터를 조회한다. 사전 준비로 아.. 더보기
테이블 변수(SQL Server Table Variables) 테이블 변수(Table Variables)는 튜플(행)을 저장하는 변수로 임시테이블(temporary tables)과 유사하다. # 테이블 변수 선언하기 Declare를 사용하여 테이블 변수를 선언한다. Declare @테이블명 Table ( -- Declare와 Table 사이에 테이블명을 입력하다. 반드시 @를 앞에 붙여야한다. 컬럼1 -- Table 키워드 다음에는 테이블 변수의 구조를 정의한다. 컬럼이름, 데이터타입, 사이즈, 제약사항 등 컬럼2 .......... 컬럼N ); # 테이블 변수의 범위(The scope of table variables) 다른 로컬 변수처럼 Stored Procedure, batch, User-defined function 내에서만 존재한다. 그리고 다른 Store.. 더보기
임시 테이블 Temporary Tables 임시 테이블은 말그대로 임시적으로 존재하는 테이블이다. 금방 만들어져서 여러번 사용되는 결과집합의 저장에 유용하다. # 임시 테이블을 만들기 아래 두 가지 방식으로 임시테이블을 만들 수 있다. 1. selet into 문 select 컬럼1 , 컬럼2 ............ , 컬럼N into #임시테이블명 -- 임시 테이블명은 해쉬태그(#)와 함께 시작한다. from 테이블 A -- A테이블에 있는 데이터를 조회하여 임시테이블을 만든다. where 테이블.Col = 컬럼값(선택사항) -- A테이블에 특정 데이터를 조회하여 만들때 만들어진 임시 테이블은 SQL Server Management Studio를 이용해서 아래 경로에서 찾아 볼 수 있다. 위 임시 테이블을 보면 00000~으로 시작하는 숫자가 .. 더보기
SQL Server TRY CATCH Try Catch는 예외처리(Exception Handling)에 사용한다. 예외를 일을킬 수 있는 Transact-SQL의 문들 Begin Try ... End Try 블록으로 감싼다. Begin Try 예외가 발생할 수 있는 문들(Statements) End Try Try 블록 뒤에는 Begin Catch와 End Catch 블록을 사용한다. Begin Catch 예외를 처리하는 문들 End Catch 완성된 Try Catch 구문 Begin Try 예외가 발생할 수 있는 문들(Statements) End Try Begin Catch 예외를 처리하는 문들 End Catch Try 블록에 에러가 발생하지 않으면 Catch 블록은 실해되지 않는다. 하지만 Try 블록에서 예외가 발생한다면 Catch블록이.. 더보기