CategoryTips/DB, SQL Tips (10)

[SQL] UPDATE문에서의 FROM, 별칭 사용

Update에 From을 써서 별칭 사용하기기본적인 것이지만 갑자기 가물가물 함에 한번 정리해 봅니다.최근에 관련 쿼리를 짜는데 업데이트에 별칭을 어떻게 쓰더라..? 하고 멍해있었습니다.또 까먹기 전에 바로 정리를 해봅니다.UPDATE TEMP_USET IsDelete = 'True'FROM tblUser AS TEMP_UWHERE CreateDate >=..

[MS-SQL] DB 백업과 복원 (DB BackUp, DB Restore - DB Copy)

데이터베이스 복원(카피) 유지보수중인 서비스의 요청사항이 들어왔습니다.서비스의 장기 미 접속 유저에 대한 잠금설정 기능추가가 필요하다는 겁니다.일사천리로 진행되나 싶더니.. 작업 중.. 손가락이 미끄러져서 잠금값을 바꾼다는게 그만 삭제값을 True로 바꿔버렸습니다!! 히힛!뭐 일반 유저 데이터면 큰 문제일테지만 장기 미 접속 유저 아니겠습니까?매일 데이터를 백업하고 있었기 때문에 백업한 DB를 다른 이름으로 복구해서 해당 값들을 원상복구하면..

[MS-SQL] 변수 및 테이블 변수 생성 및 사용

변수변수란 값을 담아두는 것이라고 모두 알고 있으실 겁니다.우선 간단하게 변수를 생성하고 설정하는 방법을 알아보겠습니다.--변수 생성 --declare 변수명 타입 DECLARE @name varchar(20) --변수에 값 할당 SET @name = 'Kendrick' --혹은 --userid가 sonim1일 때 이름이 Kendrick일 경우 SELECT @name = P.name FROM tblPerson P WHERE userid = '..

[MS-SQL] 커서(Cursor) 사용하기

커서(Cursor)란?행 단위 작업을 추가로 제어해야 할 경우 사용되는 기능입니다.행 단위 작업이란 예를들면 특정 테이블에서 SELECT한 Email 별로 작업을 해야 하는 경우를 말합니다.즉 Email 별로 특정 값을 변경 시킬 때, 반복으로 노가다 할 필요 없이 한번에 처리하는 쿼리를 만들 수 있습니다. 커서를 이용해서 말이죠커서 선언--커서 생성 DECLARE CursorEmail CURSOR FOR SELECT Email from ..

[MSSQL] 테이블 복사

테이블 복사테이블 생성, 데이터 복사SELECT * INTO NEW_TABLE FROM OLD_TABLE 테이블 구조 복사SELECT * INTO NEW_TABLE FROM OLD_TABLE WHERE 1 = 2 데이터만 복사INSERT INTO TEMP_TABLE SELECT * FROM OLD_TABLE WHERE 검색조건 위 예제의 경우 원본 테이블과 대상 테이블의 구조가 같아야 합니다.만약 구조가 다를 경우 직접 컬럼 값을 지정해주시면 됩니다..

[MSSQL] 저장 프로시저(Stored Procedure) 내용 검색하기

저장 프로시저 내용 검색하기가끔 저장 프로시저 이름이 안떠오르거나 다수의 SP의 내용을 일괄적으로 바꾸거나 할 필요가 있을 경우가 있습니다. 저장 프로시저를 일일이 열어봐서 찾으려고 하니 숨이 턱막힙니다.그럴 때 유용한 저장프로시저 내용 검색쿼리를 소개합니다.잘못된 방식SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%찾을 내용%' AND ROUTINE_TYPE='..

[MSSQL] JOIN의 방식 - Nested loop Join / Merge Join / Hash Join

Join의 방식에 관하여Join의 종류는 5가지가 있습니다.INNER JoinOUTER JoinCROSS JoinFULL OUTER JoinSELF JoinJoin의 방식은 3가지가 있습니다.Nested Loop Join - 중첩반복Merge Join - 정렬병합Hash Join - 해시매치Join의 종류는 논리적 Join이라고 합니다.Join의 방식은 물리적 Join이라고 합니다.이 포스트에서는 JOIN의 방식에 대해서 알아보겠습니다.중첩..

[MSSQL] 여러 ROW를 하나의 ROW로 합치기

MSSQL Tips여러가지 ROW를 하나의 ROW로 만들기IDTitle1가1나1다1라2마2바2사2아3자위와같은 테이블이 있습니다.ID를 기준으로 Title의 텍스트를 comma(,)로 구분지어서 하나의 ROW로 합치고 싶을때 아래 쿼리를 사용합니다.SELECT DISTINCT ID, STUFF(( SELECT ',' + Title FROM TB_Data b ..

[MySQL] RowNum 만들기

MySql에는 rownum이 없습니다.그렇기 때문에 따로 만들어 주어야 하는데요. 아래 소스가 만드는 예제입니다.ex1) SELECT @RNUM := @RNUM + 1 AS ROWNUM FROM ( SELECT @RNUM := 0 ) R ex2) SELECT @RNUM := @RNUM + 1 AS ROWNUM, t.* FROM ( SELECT * FROM table ORDER BY column1 ) t, ( SELEC..

[Oracle] RowNum 만들기

오라클에서 rowNum을 사용할 경우 select * from table where rownum = 3; 위 쿼리를 실행해도 rownum 3번째 값이 나오지 않고 아무것도 없다고 뜰것이다 하지만 rownum = 1은 된다. rownum 이라는 것은 Select된 Row가 나오고..그 row의 번호를 의미하기 때문이다. rownum=3이라는 것이 안나오는 이유는 where조건에 걸러진 조건중에서 ..