본문 바로가기

728x90
반응형

msSQL

(10)
SQL Server - 테이블 수정 저장시 '테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함' 옵션 "디자인"에서 테이블 수정할 때 저장이 안 될 때 [테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함] 옵션 문제 생길 때. SQL Server Management Studio (SSMS)에서 테이블 수정 시 이와 같이 메시지가 나오면서 수정이 안 될 때? 컬럼의 NULL 허용 설정 변경 테이블의 컬럼 순서 변경 컬럼 데이터 형식 변경 새로운 컬럼 추가 이러한 사항은 메시지와 같이 해당 옵션을 사용할 때 발생한다. 도구 → 옵션 → 디자이너 [테이블을 다시 만들어야 하는 변경 내용 저장 안 함]의 옵션을 체크 해제한다. 수정 후 저장이 가능하다. 사실 간단한 건데 매번 찾아보기 뭐해서 글을 올려둔다.
SQL Server - FOR XML PATH 그리고 STUFF FOR XML PATH, STUFF 그리고 조합해 보기 FOR XML PATH 쿼리 결과를 XML 형태로 표현. FOR XML PATH ('row element 이름') 만약 'row element 이름'이 없으면 로 감싸진다. 행 구분자 추가해서, 합친 문자로도 SELECT lastname FROM HR.Employees FOR XML PATH ex) CameronDavisDoyleFunkKingLewMortensenPeledSuurs SELECT lastname FROM HR.Employees FOR XML PATH ('LName'); 결과 - Cameron Davis Doyle Funk King Lew Mortensen Peled Suurs SELECT '/' + lastname FROM HR.Em..
SQL Server - GO에 대해서 (BATCH) GO를 알기 전에 작업단위 (BATCH)란? 실행을 위해 프로그램으로부터 서버로 동시에 전송되어 실행되는 여러 T-SQL문장의 조합 MSSQL의 데이터베이스 엔진은 작업단위로 전송된 SQL 문장들에 대해 단일 실행계획으로 만들어 수행 만약 작업단위내 한 문장이라도 컴파일 오류를 포함하게 되면 해당 작업단위는 수행되지 않는다 이때, 일괄처리를 정하기위해서 "GO"라는 예약어를 사용한다. GO를 쓰는 이유. 한마디로 BATCH (일괄처리)의 단위라고 볼 수 있다. 한줄 한줄 실행할 때마다 매번 데이터베이스에 접속하면 처리시간이 길어지고 비효율적이다. 이에 큰 덩어리 단위로, 묶어서 보내주는 BATCH 개념이 나오게 된다. 그리고 GO는 그 구분점. GO명령어는 T-SQL의 구문이 아니며, 아래의 3개 툴에서..
데이터 조작 - 데이터 입력하기 (INSERT VALUES, SELECT, BULK) - 아는 것도 있지만, 살짝 아리까리한것도 있어서 한 번에 정리 * INSERT VALUES (& 향상된 VALUES) - 대부분이 많이 아는 (기초적인) 구문일듯. INSERT INTO dbo.Orders(orderid, empid, custid) VALUES(10002, 5, 'B'); INSERT INTO dbo.Orders (orderid, orderdate, empid, custid) VALUES (10003, '20090213', 4, 'B') , (10004, '20090214', 1, 'A') , (10005, '20090213', 1, 'C') , (10006, '20090215', 3, 'C'); -- 여러 행을 쉼표로 구분해서 넣을수도 사실은 이 구문보단 아래의 사항을 복습하려는게 목..
데이터 피벗, 언피벗 (Pivot, Unpivot) 데이터 피벗? 행을 기반으로 하는 데이터를 컬럼을 기반으로 하는 상태로 바꾸는 것. 다음같은 내용의 결과가 있다고 할 때, SELECT empid, custid, SUM(qty) AS SumQty FROM dbo.Orders GROUP BY empid, custid; 직원 ID별 (행), 고객별 (컬럼) 의 총 수량을 출력하고자 하는 리포트를 만들고자 한다면. (피벗팅) 모든 피벗팅은 3가지 논리적 프로세싱 단계로 수행되며, 각 단계마다 필요한 요소가 존재한다. 그룹핑 - 연관된 그룹핑 또는 행 요소를 필요로 하며, 전개 - 연관된 전개 요소 또는 컬럼 요소를 필요로 하며, 집계 - 연관된 집계 요소와 집계 함수를 필요로 한다 여기선 각 직원ID마다 결과를 하나의 행으로 출력 (그룹핑) 고객ID별로 수량..
윈도우 함수 : 순위, 오프셋, 집계 윈도우 함수 (Window function) 쿼리를 기반으로 하는 각 행들의 윈도우 (집합)에 대해 연산을 하거나, 이 행들을 이용해서 계산 후 스칼라 (단일) 결과값을 출력하는 함수. 윈도우 행들의 서브집합. 현재 행과 관련된 윈도우 설정을 기반으로 한다. 서브쿼리처럼 집합에 대해 연산을 수행할 수 있지만, 서브쿼리는 데이터에 대한 뷰를 대상으로 연산한다는 점에서 차이. 필요에 따라 결과집합의 관계형 측면을 훼손시키지 않으면서도 계산 작업의 일부로 순서를 정의할 수 있게 해 준다. SELECT a.SalesOrderID , CONVERT(varchar, a.ModifiedDate, 112) as date , a.LineTotal , SUM(linetotal) OVER ( PARTITION BY sale..
TOP, OFFSET-FETCH 필터 - 리턴되는 행의 수 제한 TOP SQL Server 7.0부터 지원 쿼리가 반환하는 결과 중 특정 행의 수나 퍼센트만으로 제한. 현재 Data 수는 295개 - 5개의 행 리턴 SELECT TOP 5 * FROM SalesLT.Product - 10퍼센트의 행 리턴 : 총 295개 중 10% 29.5 -> 올림 해서 30개를 조회한다. : 16퍼센트 > 47.2 -> 48개를 조회한다. SELECT TOP 10 PERCENT * FROM SalesLT.Product -- 10 퍼센트만 조회 WITH TIES 동일한 값을 가지는 행을 출력하게 할때 사용한다. 10개를 조회해도, 동일한 값이 있으면 조회한다. (테스트를 위해 좀 극단적인 데이터를 조회했음.) SELECT TOP 10 WITH TIES * FROM SalesLT.Pr..
[MS SQL] 문자열 함수 (2008 R2 버전으로) MS SQL 학습 문자열 함수 + 함수라기보단 연산자? 둘이상의 문자(열)을 연결 Ex) select 'A' + 'BCD' -> ABCD ASCII ( character_expression ) 문자에 대한 ASCII (INT) 값. Ex) select ASCII('A') -> 65 CHAR ( integer_expression ) int ASCII 코드를 문자로 변환 Ex) select CHAR(65) -> A CHARINDEX ( expression1 ,expression2 [ , start_location ] ) xpression2에서 expression1을 검색하고 시작 위치(찾은 경우)를 반환합니다. 검색은 start_location에서 시작 Ex) select CHARINDEX('ABC', 'A..
[MS-SQL] 산술 연산 함수 산술 함수와 관련된 내용 함수 매개변수 내용 ABS (numeric_expr) 절대값 (absent) SIGN (numeric_expr) 양수, 음수 또는 0 ACOS, ASIN, ATAN, ATN2, COS, SIN, COT, TAN (float_expr) 수학함수 DEGREES (numeric_expr) 라디안을 각도로 변환 EXP (float_expr) 지정된 값의 지수 값(exponential) LOG / LOG10 (float_expr) 주어진 값의 log RADIANS (numeric_expr) 각도를 라디안으로 변환 POWER (numeric_expr) y 제곱 SQUARE (float_expr) 제곱 SQRT (float_expr) 제곱근 PI 0 원주율 (3.14xxx) CEILING (..
[MSSQL] 자료형 (Data type) MSSQL / SQL Server 자료형 유형 자료형 정수 bigint -2^63(-9,223,372,036,854,775,808) ~ 2^63-1(9,223,372,036,854,775,807) 8바이트 int -2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647) 4바이트 smallint -2^15(-32,768) ~ 2^15-1(32,767) 2바이트 tinyint 0 ~ 255 정확한 숫자 Numeric / Decimal (동의어) decimal[ (p[ ,s] )] 및 numeric[ (p[ ,s] )] 고정 전체 자릿수 및 소수 자릿수 값입니다. 최대 전체 자릿수를 사용하는 경우 유효한 값은 - 10^38 +1부터 10^38 - 1까지입니다. decimal의 ISO ..

반응형