반응형 MSSQL12 CAST CONVERT CAST SELECT CAST(CAST(@myval AS varbinary(20)) AS decimal(10,5)) CONVERT SELECT CONVERT(decimal(10,5), CONVERT(varbinary(20), @myval)) CONVERT(nvarchar(30), GETDATE(), 120) 날짜 및 시간 스타일 2022. 6. 15. JOIN UPDATE 복잡한 것도 아닌데.. 간만에 쓰려면 항상 기억이 안난다. 그저 생소할 따름;;; 나이를 먹어가는 증세인가.. -_-;; 적어 놔야지.. UPDATE table1 SET col2 = B.col2, col3 = B.col3 FROM table1 as A JOIN table2 as B ON A.col1 = B.col1 WHERE A.col2 B.col2 OR A.col3 B.col3 2022. 6. 15. MSSQL 특정단어가 들어간 프로시저 찾기 -- 특정단어가 들어간 프로시저명 찾기 -- 우선 이 쿼리로 검색 (아래 쿼리보다 속도가 빠르다..) SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE' AND ROUTINE_DEFINITION LIKE '%찾을단어%' ORDER BY ROUTINE_NAME -- 위 쿼리로 안나올 시 이 쿼리로 검색 SELECT A.NAME FROM dbo.sysobjects AS A JOIN dbo.syscomments AS B ON A.ID = B.ID WHERE A.TYPE = 'P' AND B.TEXT LIKE '%찾을단어%' 2022. 6. 15. MSSQL 색인 색인 왜 색인을 사용하는 것인가? - 색인은 데이터를 찾을(SELECT) 때 빨리 찾기 위해서 사용한다. 색인이 없다면 특정한 값을 찾기 위해 모든 데이터 페이지를 다 뒤져야 한다. 색인이 찾고자 하는 컬럼이나 표현식에 존재하고, 색인을 사용하는 것이 더 효과적이라면, SQL 서버는 모든 페이지를 뒤지지 않고 색인 페이지를 찾아서 쉽게 데이터를 가져온다. 이것을 INDEX SEEK 라고 한다. - 색인이 있으면 특정한 작업을 빨리 할 수 있다. (ORDER BY, GROUP BY) 뿐만 아니라 색인을 사용하면 유일성 검사를 할 수 있다. 왜 모든 컬럼에 색인을 사용하지 않는 것인가? - 이렇게 좋은 색인이라면 모든 컬럼에 사용해야 하지 않을까? 색인으로 인한 손해가 있다. - 만드는데 시간이 걸린다. -.. 2022. 6. 15. MSSQL 흐름제어문 흐름 제어문의 종류 흐름 제어문이란 언어의 처리 순서를 변경하거나 변수를 선언하는 등의 문장을 말한다. ○ GOTO 라벨 - GOTO 를 만나면 라벨 부분으로 무조건 건너뛴다. 라벨은 라벨: 으로 정의한다. 예) DECLARE... SET... table_label1: . . IF .... GOTO table_label1 . --> GOTO table_label1 을 만나면 table_label1: 부분으로 건너 뛴다. ○ RETURN - RETURN 은 무조건 수행을 중지 하고 원래 호출된 곳으로 돌아간다. ○ IF / ELSE - 이름만 들어도 알만한 문법이다. 주의 할 점은 조건문 안의 SQL문장이 둘 이상이라면 BEGIN / END 로 묶어 준다. 예) IF @begin > @end BEGIN S.. 2022. 6. 15. MSSQL 데이터 무결성 데이터 무결성 - 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 데이터의 변경이나 수정을 할 때 제한을 두어 안정성을 저해하는 요소를 막기 위함이다. - 데이터 무결성은 관점에 따라 나누는 방법이 다르다. ○ 무엇(What)을 지켜 주는가 1. 실체 무결성 (Entity Integrity) - PRIMARY KEY 가 대표적이고 UNIQUE 도 있다. - 행의 존재는 고유해야 한다. 2. 영역 무결성 (Domain Integrity) - 특정한 범위의 값만이 와야한다. - CHECK, DEFAULT 등이 있다. 3. 참조 무결성 (Referential Integrity) - 다른 컬럼과의 관계를 위반하지 않아야 한다. - FOREIGN KEY 가 있다. ○ 어떻게(How) 지켜 주는가 1. 절.. 2022. 6. 15. INSERT SELECT INSERT .. SELECT - 한 테이블에 있는 데이터를 새로운 테이블에 입력하고자 할 때는 SELECT INTO 를 사용한다. - 그러나, 테이블이 있고 데이터만 복사를 하고 싶다면 INSERT .. SELECT 를 사용한다. - 복사해서 집어 넣으려는 테이블에 IDENTITY 속성의 컬럼이 있다면 제외하고 복사를 한다. - 당연한 얘기 겠지만 복사할 테이블의 선택 컬럼과 복사 될 테이블의 컬럼은 일치해야한다. 예) INSERT 테이블2 SELECT 컬럼1, 컬럼2, 컬럼3 FROM 테이블1 --> 테이블1 에서 컬럼1, 컬럼2, 컬럼3 을 테이블2 로 복사한다. 2022. 6. 15. SELECT INTO SELECT INTO - 현재 있는 테이블의 내용 전체나 일부를 선택하여 새로운 테이블을 만들면서 데이터를 복사한다. - 기존 테이블이 있다면 INSERT.. SELECT 를 사용해야 한다. - 일반테이블이 아닌 임시테이블에 생성하면서 복사할 수도 있다. 예) SELECT * INTO temp_titles FROM titles #테이블명 (세션 임시 테이블) - 해당 세션에서만 사용하다가 세션이 끊어질 때 삭제된다. ##테이블명 (전역 임시 테이블) - 다른 세션에서도 사용가능 하다가 세션이 끊어지 때 삭제된다. 2022. 6. 15. MSSQL JOIN 조인 (JOIN) 이란? 정규화를 거쳐 여러 테이블에 나누어 놓은 데이터를 연관지어 가져올 때 JOIN을 사용한다. 1. INNER JOIN - 가장 일반적인 조인 (default) - 조인을 하는 테이블에서 서로 일치하는 값이 있는 항목만 가져온다. 예) SELECT * FROM 테이블1 INNER JOIN 테이블2 ON 테이블1.ID = 테이블2.ID 2. CROSS JOIN - 학술적 의미를 지니고 있고 실제로 거의 사용하지 않는 조인 - WHERE 절을 가지고 있지 않다. - 양쪽 테이블의 모든 행에 대해 서로 연결한다. 예) SELECT 컬럼1, 컬럼2, 컬럼3 FROM 테이블1 CROSS JOIN 테이블2 3. OUTER JOIN - INNER JOIN 이 키값이 일치하는 데이터만 가져오는 것.. 2022. 6. 15. 이전 1 2 다음 반응형