프로그래밍/DB 81

[DB] MSSQL 임시테이블사용법

MSSQL의 임시테이블에 대하여 알아보겠습니다. 이전포스팅한부분(sosopro.tistory.com/57)에 테이블복사하는 SELECT INTO, INSERT INTO .. SELECT에대하여 살펴보았습니다. 이경우 테이블을 새로 생성하거나해서 데이터를 옮겨야합니다. 잠깐 사용할 용도인경우에는 테이블을 생성하지 않고 임시테이블로 사용해서 처리하면됩니다. 저장프로시저내에서 임시테이블을 만든다음 특정 작업을 하는 형태로 사용할경우 편리하게 사용할수 있습니다. 만드는방법 사용할수있는범위 삭제시기 세션임시테이블 #tablename 해당세션에만 세션이 끊어질떄 전역임시테이블 ##tablename 다른세션에서도 세션이 끊어질떄 tempdb create table 다른세션에서도 sql서버 시작시 1. 세션임시테이블...

프로그래밍/DB 2020.10.19

[DB] MSSQL SELECT INTO, INSERT INTO .. SELECT 사용방법 및 차이점

SELECT INTO는 테이블의 검색결과를 새로운 테이블로 만들어서 보내기를 할때사용한다. INSERT INTO는 테이블 검색를 이미 생성되어있는 테이블로 전송할때 사용합니다. 먼저 SELECT INTO를 사용하여 새로운 테이블로 데이터를 전송해보도록 하겠습니다. 1. SELECT INTO 사용방법 새로만들어질 테이블(SalesLT.Address_NEW1)을 FROM절 앞에두고 뒷쪽에 원본테이블을 입력후 쿼리를 실행합니다. 1 2 3 4 5 -- 1.전체테이블복사 SELECT * INTO SalesLT.Address_NEW1 FROM SalesLT.Address -- 2.검색결과복사 SELECT * INTO SalesLT.Address_NEW2 FROM SalesLT.Address WHERE City =..

프로그래밍/DB 2020.10.18

[DB] MSSQL 데드락(교착상태) 해결방법

데이터베이스를 운영하여보면 "트랜잭션(프로세스 ID 57)이 잠금 리소스에서 다른 프로세스와의 교착 상태가 발생하여 실행이 중지되었습니다". 트랜잭션을 다시 실행하십시오." 와 같은 에러가 발생하는 경우가 있습니다. 1. 데드락 발생원인 (교착상태에 빠지는이유) 아래 그림과 같이 트랜잭션1이 Table1을 업데이트후 Table2를 업데이트 하려고 할때, 트랜잭션2가 이미 Table2에 업데이트 작업을 진행중인 경우 해당작업을 완료할 때까지 대기후 처리합니다. 트랜잭션2가 Table2업데이트 완료후 Table1을 업데이트 하려고 할때 트랜잭션1이 Table1의 작업을 하고 있어서 완료 될때까지 대기한다. 이렇게 두개의 트랜잭션작업이 서로 완료 될때까지 기다리게되며 결과적으로 아무것도 완료가 되지 않는 상태..

프로그래밍/DB 2020.10.18

[DB] MSSQL 년별,분기별,월별,주별,일별 통계쿼리(DATEPART사용)

데이터베이스에서 자료를 뽑아야될경우 년단위,월단위,일단위등으로 자료를 뽑아야될경우가 있습니다. 관련부분에 대해서 알아보겠습니다. 먼저 테스트데이트베이스는 마이크로소프트에서 다운받아서 테스트 해보겠습니다. AdventureWorksL2019데이터베이스를 다운받아서 테스트 해보겠습니다. 다운로드 경로 : docs.microsoft.com/ko-kr/sql/samples/adventureworks-install-configure?view=sql-server-ver15&tabs=ssms 날짜별형식변환은 이전글쓰기내용중에서 cast,conver 부분을 참고하시면됩니다. 다음링크에서 참고하시기 바랍니다. 링크정보 : sosopro.tistory.com/48 SalesLT.Address테이블의 대한 데이터로 통계쿼리..

프로그래밍/DB 2020.10.16

[DB] MSSQL 날짜변환함수 CAST,CONVERT

MSSQL 날짜변환함수에 대하여 알아보겠습니다. 먼저 CAST, CONVERT 구문입니다. 12345-- CAST Syntax: CAST ( expression AS data_type [ ( length ) ] ) -- CONVERT Syntax: CONVERT ( data_type [ ( length ) ] , expression [ , style ] )CAST문 CONVERT문 모두 형변환시에 사용하며 보통 CAST문의 경우는 산술연산이 필요할경우에 문자열을 숫자,날짜형으로 바꾸거나 숫자형식중 float,int의 연산등에 많이 사용하며, CONVERT문의 경우는 날짜값을 국가별로 포멧이나 사용하는 방식이 다르므로 사용자가 원하는 형태로 변환할떄 많이 사용됩니다. 1. CAST문 CAST문의 경우는 아..

프로그래밍/DB 2020.10.16

[DB] MSSQL 데이터가져오기,내보내기(엑셀가져오기,엑셀내보내기)

SQL Management 툴을이용하여 외부자료를 가져오는 방법과 내보내기 하는 방법에 대해서 알아보도록 하겠습니다. 아래순서대로 하는 방법에 대하여 알아보도록 하겠습니다. 데이터 가져오기,내보내기 요약 1. 데이터베이스선택 2. 데이터원본선택 : MssqlServer,Excel등 3.대상선택 : MssqlServer,Excel등 4.테이블복사 또는 쿼리지정 : 하나이상의 테이블 및 뷰를 복사할지 아니면 쿼리결과로 복사할지선택 5.원본테이블 및 뷰선택 : 복사할데이터선택작업 6.작업시작 먼저 테스트DB를 다운로드 받아서 테스트 해보도록 하겠습니다. 테스트DB다운로드 경로 docs.microsoft.com/ko-kr/sql/samples/adventureworks-install-configure?view=..

프로그래밍/DB 2020.10.12

[DB] MSSQL 데이터베이스 다이어그램을 통하여 ERD작성

데이터베이스 설계시 ERD작성이 필요한데 ER-Win 이나 ER-Studio와 같은 프로그램을 사용합니다. MSSQL의 경우 SQL Management에서 데이터베이스 다이어그램을 제공하고 있습니다. ERD작성 전문툴보다는 많은 기능을 제공하지는 않지만 엔티티간의 관계나 테이블구조등을 살펴보는데에는 개인적으로 편리하게 사용하고 있습니다. MSSQL에서 제공하는 다이어 그램에 대해서 알아보도록 하겠습니다. 먼저 데이터베이스-> Database Diagrames -> New Database Diagram을 선택합니다. 아래와 같이 보안 주체 "보안 주체 "dbo"이(가) 없거나 이 유형의 보안 주체를 가장할 수 없거나 사용 권한이 없기 때문에 데이터베이스 보안 주체로 실행할 수 없습니다. (microsoft..

프로그래밍/DB 2020.10.11

[DB] MSSQL PIVOT,UNPIVOT(피벗) 사용방법

피벗에 사용법에 대해서 알아보겠습니다. 엑셀의 피벗테이블을 사용해보신분들은 개념을 쉽게 알수 있을겁니다. 위키백과에 검색해보니 아래와 같이 알려주네요. 행,열로된 데이터를 통계표로 나타내주는 부분으로 합계,평균,기타통계등을 출력할수 있게 해줍니다. 1. PIVOT에 대해서 알려보겠습니다. 특정행의 값을 열로 나타내고 싶은경우가 있습니다. 그때 PIVOT함수를 사용하면됩니다. 먼저 MSDN의 자료를 검색해보면 구문이 아래와 같습니다. docs.microsoft.com/ko-kr/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-ver15 PIVOT Syntax 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 SELEC..

프로그래밍/DB 2020.10.11

[DB] MSSQL 서비스 기본포트(1433) 변경방법

MSSQL 기본서비스포트 변경방법에 대해서 알아보겠습니다. 기본포트를 사용할경우 외부공격에 취약합니다. 포트스캔을 통하여 해당IP가 포트가 오픈된것을 확인할수 있습니다. 관련해서 기본포트변경방법에 대해서 알아보겠습니다. SQL 로그에 "Login failed for user 'sa'. 원인: 암호가 제공된 로그인의 암호와 일치하지 않습니다. [클라이언트: 119.xxx.xxx.xxx]" 와 같은 외부에서 대량으로 접속시도가 되는것이 확인되는 경우가 있습니다. 이때는 sa계정을 변경하는부분과 함께 서비스 포트번호도 변경해서 사용하면 대량접속시도에 대한 취약점이 강화된다고 볼수있습니다. 1. SQL Server 2017 구성관리자를 실행 SQL Server 2017 구성관리자를 실행합니다. 메뉴에 해당항목이..

프로그래밍/DB 2020.10.09

[DB] MSSQL 중복데이터 확인, 중복값제거 쿼리문

데이터베이스에 저장된 항목중 중복값에 대하여 검색해야할 경우이 있습니다. 관련부분 사용시 확인하는 쿼리문입니다. 1. 중복데이터 확인방법 group by문을 사용하여 중복데이터가 확인이 가능합니다. 중복값으로 검색하고싶은 필드를 group by문을 사용하여 그룹을 표기합니다. having문을 사용하여 group by 결과값에 대한 조건을 삽입합니다. 2건이상에 데이터가 있을경우는 중복임을 알수 있습니다. 1 2 3 SELECT [name],count(*) cnt FROM MyUser Group by [name] having count(*) > 1 2. 중복데이터 제거방법 distinct 함수를 사용하면 중복데이터를 제거한후 결과값을 얻을수 있습니다. 중복을 제거하고 싶은 필드값에 distinct함수를 넣..

프로그래밍/DB 2020.10.09
1 ··· 4 5 6 7 8 9