728x90

MSSQL 21

전체 텍스트 인덱스, 전체 텍스트 카달로그

전체 텍스트 검색 : 긴 문장으로 구성된 열의 내용을 검색 할때 인덱스를 사용할 수 없지만 인덱스를 사용할 수 있는 것처럼 만들어서 검색을 빠르게 하는 것 SELECT문의 WHERE or FROM 전에 관련된 키워드를 사용 SELECT * FROM FulltextTbl WHERE description LIKE '%남자%'; : 이렇게 하면 index 검색이 아닌 table scan CREATE FULLTEXT CATALOG movieCatalog AS DEFAULT; : 전체 텍스트 인덱스가 저장될 가상의 공간 CREATE FULLTEXT INDEX ON FullTextTbl(description) KEY INDEX pk_id ON movieCatalog WITH CHANGE_TRACKING AUTO; ..

MS-SQL 2022.12.11

중첩트리거(nested trigger), 재귀트리거(recursive trigger)

1. 중첩 트리거 : 트리거가 동작해서 다른 테이블의 값을 변경한다면 이런 동작을 CASCASE INSERT(또는 UPDATE, DELETE) 라고 한다. 이렇게 CASCADE 동작을 할 때 대상이 되는 테이블에 또 트리거가 걸려 있다면 이 트리거도 동작 하게 된다. 이런식으로 중첩 트리거는 SQL7.0에서 32단계 까지 동작 할 수 있다. sp_configure ‘nested trigger’, 0; -- 0-> 1로 변경해주면 실행 됨 GO reconfigure; GO 2. 재귀 트리거(Recursive Trigger) : 트리거가 자기 자신을 다시 부르는 것을 재귀 트리거라고 한다. 이때 무한 루프에 빠지지 않도록 빠져 나오는 루틴을 처리해야만 한다. 재귀트리거는 default 가 off 되어 있다...

MS-SQL 2022.12.10

AFTER 트리거, INSTEAD OF 트리거

AFTER 트리거와 INSTEAD OF 트리거 - Version : SQL Server 2005, 2008, 2008R2, 2012 트리거는 SQL Server에서 이벤트가 발생하면 자동으로 실행되는 특수한 종류의 저장 프로시저이다. DML, DDL, LOGON 트리거를 생성 할 수 있다. 트리거는 FOR|AFTER 와 INSTEAD OF 인수가 있다. FOR|AFTER : AFTER는 DML 트리거를 지정한 모든 작업이 성공적으로 실행되었을 때만 트거가 실행도록 지정한다. 모든 참조 연계 동작 및 제약 조건 검사도 이 트리거가 실행되기 전에 성공해야 한다. INSTEAD OF : 트리거를 시작하는 SQL문 대신 DML 트리거가 실행되도록 지정한다. DDL 또는 LOGON 트리거에 대해서는 INSTEAD..

MS-SQL 2022.12.08

트리거란? (+예제)

트리거란? 트리거(Trigger) 는 방아쇠라는 뜻인데, DBA라면 기본으로 자주 접할 것이고, 소규모 회사의 개발자라면 직접 DB까지 관리해야 하는 경우도 있는데, 어느정도는 알아두면 좋을 것 같습니다. 개념이나 자세한 이론은 검색하면 많이 나오니, 간단하게 설명하고, 어떻게 사용하면 되는지 간단한 예제로 설명하겠습니다. 트리거는 Oracle 등 다른 RDMBS도 지원하는 기능인데, MS-SQL에서만 사용해 보았습니다. (그래서 제목을 MS-SQL로 달아놓았고, MS-SQL을 기준으로 설명합니다. Oracle 도 사용법 등은 조금 다르지만, 그 사용 목적은 다르지 않습니다.) 위의 뜻처럼 DB에서 어떤 특정 이벤트가 발생하면 자동으로(방아쇠 당기면 총알이 나가듯이) 무언가 실행이 된다는 것으로 보면 되..

MS-SQL 2022.12.08

커서란? (+예제)

커서 행 단위 작업을 효율적으로 하기 위한 방식으로 테이블에서 여러 개의 행을 조회한 후 쿼리의 결과를 한 행씩 처리하는 방식입니다. SELECT 한 결과(행 집합)를 반복 작업해줘야 할 경우 유용하게 사용 가능 한 방식입니다. 커서의 특징 1. 커서는 내장 SQL 문의 수행 결과로 반환될 수 있는 복수의 튜플들을 액세스 할 수 있도록 해주는 개념입니다. 2. 커서는 질의 수행 결과로 반환되는 첫 번째 튜플에 대한 포인터로 생각할 수 있습니다. 3. 커서를 사용하여 질의 결과로 반환될 수 있는 튜플들을 한 번에 하나씩 차례대로 처리할 수 있습니다. 커서 관련 명령어 DECLARE : 커서를 정의하는 등 커서에 관련된 선언을 하는 명령입니다. OPEN : 커서가 질의 결과의 첫 번째 튜플을 포인트 하도록 ..

MS-SQL 2022.12.08

MSSQL 날짜 변환표(GETDATE, CONVERT)

MSSQL 날짜 변환표 (기준날짜를 대상으로 CONVERT 실행하여 날짜 형변환) 번호 쿼리 결과 코드 0 CONVERT(CHAR(19), DATETIME, 0) 01 02 2000 1:14PM MM DD YYYY H:MM 1 CONVERT(CHAR(10), DATETIME, 1) 01/02/2000 MM/DD/YYYY 2 CONVERT(CHAR(8), DATETIME, 2) 00.01.02 YY.MM.DD 3 CONVERT(CHAR(8), DATETIME, 3) 02/01/00 DD/MM/YY 4 CONVERT(CHAR(8), DATETIME, 4) 02.01.00 DD.MM.YY 5 CONVERT(CHAR(8), DATETIME, 5) 02-01-00 DD-MM-YY 6 CONVERT(CHAR(8),..

MS-SQL 2022.12.07

datepart 함수 - 원하는 날짜 형태로 변환하는 함수

DATEPART 함수는 지정한 날짜에서 원하는 날짜 형태를 출력하는 함수 DATEPART 함수 사용하는 방법 DATEPART ( datepart , date ) DATEPART 함수 사용 예제 * 현재 년도 출력하기 SELECT DATEPART(yyyy,GETDATE()) * 현재 월 출력하기 SELECT DATEPART(mm,GETDATE()) * 현재 일 출력하기 SELECT DATEPART(dd,GETDATE()) * 그 외, datepart 인수 DATEPART 함수를 사용하여 출력할 수 있는 datepart 인수는 다음과 같다. datepart 인수 약어 year yy, yyyy quarter qq, q month mm, m dayofyear dy, y day dd, d week wk, ww w..

MS-SQL 2022.12.06

dateadd() 함수

SQL 에서 datetime 형식의 시간에 원하는 만큼을 추가하려면..? dateadd(Type, Add, Date) 을 사용하면 됩니다. 시간 추가 - Date 시간에 원하는 시간을 더해서 구해 줍니다. Type 에 입력될 항목 year , yy, y month, m, mm day, d, dd week, w, wk hour, hh minute, m second, s, ss millisecond, ms Add 에 입력될 항목 Type 에 따른 값. dateadd(year, 1 입력시 1년 추가. Date 추가할 기준 시간 2008-10-10 or 2008-10-10 20:00:00 의 datetime or smalldatetime 형식 샘플 select dateadd(hour, 1, sdate) as v..

MS-SQL 2022.12.02

(MS-SQL) convert 함수로 날짜관련 데이터 변환 방법

MSSQL CONVERT 함수 사용하여 다양한 날짜 형식 표현하기 MSSQL에서 CONVERT 함수는 데이터 형태를 변환 할 수 있는 함수이다. 즉 CONVERT 함수는 데이터를 다른 유형으로 변환할 때 사용하는 함수이다. 특히 다양한 형식의 날짜를 표현할 때 자주 사용된다. CONVERT 함수 사용하는 방법 CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) CONVERT함수 사용 예제 SELECT CONVERT(CHAR(19), GETDATE(), 20) 2019-07-29 17:27:41 - 오늘 날짜를 YYYY-MM-DD HH:MM:SS 형태로 표현할 수 있다. GETDATE 함수 GETDATE 함수는 오늘 날짜를 연, 월, 일, 시, 분..

Database 2022.11.14

(MSSQL) SELECT INTO, INSERT SELECT를 이용한 특정 필드 복사

MSSQL 특정 테이블 복사 DB작업시 전체백업을 항상 꼼꼼하게 한 뒤에 작업해야 겠지만, 한 두개의 테이블에 UPDATE, DELETE 작업을 할 때 예상치 못한 만일의 사태에 대비하기 위해서 또는 긴급하게 데이터를 원복하기 위해 개별 테이블 단위의 백업도 자주하게 됩니다. 이번 글에서는 SELECT INTO, INSERT SELECT 구문을 활용한 데이터복사와 테이블복사, JOIN을 활용한 데이터복사 및 조건절을 통한 필터링에 대해 알아보겠습니다. 아래의 테이블 카피 구문을 사용하면 간단한 쿼리로 신속하게 데이터를 백업하고 유사시 쉽게 원복할 수 있습니다. 예제로 사용할 테이블 Fruit Seq Name Flavor Rank 1 딸기 새콤하다 1 2 바나나 달콤하다 2 3 사과 향긋하다 3 Fruit..

Database 2022.11.02
728x90