본문 바로가기

프로그래밍/DB/DB45

[MYSQL] Temporary Table의 특성과 프로시저 결과를 Temp 테이블에 넣기 각 DB마다 임시테이블의 사용방법 등은 조금씩 다르므로 정리 해둘 필요가 있다. 프로시저안에서 다른 프로시저를 호출 하여 임시테이블에 넣을 수 는 없을까? 아래 예제를 참고 하자. 1. 관련예제 - Temporary Table의 특성과 사용법 - 프로시저를 호출 하여 임시테이블에 넣자(SELECT into #T1 execute ('execute ' + @SQLString ) 2015. 11. 13.
[MYSQL] 동적 컬럼 만들기, mysqld_safe 실행으로 패스워드 재지정 등 업무를 개발 하다보면 동적으로 테이블의 항목을 만들어야 할 경우가 있다. 이럴 경우 sql 스토어드 프로시저를 이용하여 작업을 할 수 있다. 테이블의 항목이 될 리스트가 있는 테이블과 메인테이블 2개의 테이블을 이용한다. 물론 이러한 내용들은 선배님들의 업적을 참고하면 쉽게 만들어 낼 수 있다. 1. 동적으로 컬럼 사용하기 - http://stackoverflow.com/questions/12598120/mysql-pivot-table-query-with-dynamic-columns - http://stackoverflow.com/questions/12004603/mysql-pivot-row-into-dynamic-number-of-columns 2. MYSQL ROOT 패스워드 분실시 대처 - http.. 2015. 10. 26.
[MYSQL] 10년치 날짜 데이터 테이블 만들기, 달력 쿼리 등 DB관련 쿼리는 얼마나 많은 함수를 아느냐와 활용도도 중요하지만 얼마나 많이 찾아보고 과거 히스트리를 잘 응용하느냐도 중요한것 같다. 그러므로 나는 후자로서 활용 하길 원한다. 매일 매일 쿼리를 사용하지 않으면 독창적인 쿼리는 쉽게 나오지 않으므로... 남의 것을 가져다 쓰거나 응용 하는 것이 현재로서 최상 아닐까 싶다. 1. MYSQL의 쿼리쿼리쿼리!!! - 10년치의 날짜를 1월 1일부터 12월 31일까지 넣는 방법create table t (n int); insert into t values (1); insert into t select * from t; -- 이걸 13번 반복하면 4096행이 생성됨. 10년치 데이터라면 대략 3650일이므로 이정도면 충분 create table date_t (d .. 2015. 9. 30.
[MYSQL] DB 백업 받고 복원하기 및 CentOS Mysql 설치 이번에 서버호스팅을 다른곳으로 옮기며 알아두면 좋을거 같은 내용을 기록해 놓아 본다. 리눅스 서버는 한번 세팅하면 몇달 몇년이 되도록 다시 설치 하는 경우가 많으니 모든게 새롭다 ㅠㅠ. 백업 및 복원 방법 : http://blog.naver.com/insane_915?Redirect=Log&logNo=220000065192CentOS에 Mysql설치 : http://blog.naver.com/cloudinno?Redirect=Log&logNo=120202869807 2014. 5. 26.
[DB] 힌트절(HINT) 출처 : http://blog.naver.com/thesot?Redirect=Log&logNo=70130641019힌트란? 힌트는 SQL을 실행계획을 제어하는 도구이다. 데이터베이스의 실행계획을 주도하는 옵티마이저에게 원하는 실행 계획으로유도하도록 사용된다. 이와 같은 힌트는 옵티마이저에의해 선택될 수도 있고 버려질 수도 있다. 힌트의 특징 네가지!1. 실행 계획을 제어한다. - SQL이 우리가 원하는 실행 계획이 생성되지 않은 경우 여러가지 방법으로 우리는 실행계획을 제어할수 있다. 새로운 인덱스를 생성하는 경우도 있고, SQL에 힌트를 설정하여 옵티마이저에게 올바른 실행 계획을 생성하도록 유도할 수 있다.따라서 힌트는 실행계획을 원하는 방향으로 유도하기 위해 사용하는 한가지 방법이다. 2. 에러가 발.. 2013. 9. 11.
Windows Server 2003 + Oracle 8i 설치시 무반응 이슈 비단 2003뿐만 아니라 아마 다른 윈도우 계열 OS도 같으리라 생각된다. 오라클 8i를 설치 할 때 원격 데스크탑으로 설치 할 경우 설치가 제대로 되지 않는다. 완료 단계인 NET8 Configuration Assistant에서 반응을 보이지 않으며 중지하고 넘어가면 제대로 설치 되지 않아 윈도우-관리도구-서비스에 보면 OracleService 서비스가 보이지 않고 Tns Listener만 서비스로 등록 되어 있다. 제대로 설치 하려면 윈도우 데스크탑 연결이 아닌 다른 원격 프로그램을 인스톨 해서 사용하거나 로컬로 설치 하기 바란다. 이미 오라클8i는 구하기조차 어려우므로 나 자신을 위해 남겨 놓는다. 휴식 시간 4시간 날린거 생각하면 빡친다. 아래 사이트에 감사를 표한다. http://www.alls.. 2013. 8. 23.
[오라클] START WITH CONNECT BY, CONNECT BY LEVEL START WITH CONNECT BY : http://blog.naver.com/hiam11?Redirect=Log&logNo=70021899008 CONNECT BY LEVEL :http://donatm.blog.me/20133117593 인터넷에 더 많은 정보가 널렷으니 찾아보자. 2013. 1. 4.
[오라클] TIMESTAMP, COMMIT 후 이전 데이터 값을 보자 SELECT * FROM [테이블명] AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '5' HOUR) 위와 같은 방법으로 사용이 가능하다. HOUR은 DAY, MINUTE 등으로 바꾸어 사용 할 수 있다. 위의 의미는 5시간 전의 데이터를 보여달라는 의미이다. WHERE절도 넣을 수 있다. 오라클의 버퍼나 사용 설정에 따라 사용이 불가능 한 경우도 있으니 COMMIT 전엔 항상 제대로 UPDATE, DELETE를 했는지 확인하는 습관을 가지도록 하자. 2012. 12. 5.
[오라클] ANSI SQL 사용, INNER QUERY 사용시 상위 테이블 접근 시 ANSI SQL 사용, INNER QUERY 사용시 조인절에선 상위의 테이블에 접근 할 수 없고 WHERE에서 접근해야한다. 오라클에서만 이런것인지 모르겠지만 일단 오라클에선 안되는것을 확인 했다. SELECT ( SELECT COLUMN_01 FROM TABLE_02 B INNER JOIN TABLE_03 C ON A.AA = B.AA AND B.AA = C.AA ) AS COLUMN_01 FROM TABLE_01 A 위의 굻게 표시된것 처럼 사용 할 수 없다. A.AA = B.AA 라는 문장을 WHERE 밑으로 내려야 한다. SELECT ( SELECT COLUMN_01 FROM TABLE_02 B INNER JOIN TABLE_03 C ON B.AA = C.AA WHERE A.AA = B.AA ) .. 2012. 11. 30.
[DB] Select Into 와 Insert Into Select [펌] 출처 : http://blog.naver.com/lhs860226?Redirect=Log&logNo=156326619 [출처] [MS SQL] Select Into 와 Insert Into Select|작성자 홈런왕둘리 1. Insert Into ... SelectInsert Into ... Select 구문은 Select 절에서 조회한 데이터의 결과를Insert Into 절에서 지정한 테이블에 넣어주는 구문이다.이 구문은 조회된 데이터를 기존 테이블에 추가하는 기능이기 때문에 테이블이 존재해야 가능하다. 구문을 보면Insert Into 데이터를 저장할 대상 테이블명Select 조회하고자 하는 데이터From 데이터를 검색할 테이블명Where 조회 조건 이렇게 구성돼며 Insert Into Select 문.. 2012. 11. 9.
[DB] MSSQL, ORACLE, MYSQL 자료형[펌] 출처 : http://cafe.naver.com/itea11------------------------------- 1. 자료형의 종류 [mssql2000] bigint 8바이트 64비트 부호 있음 int 4바이트 32비트 " smallint 2바이트 16비트 " tinyint 1바이트 8비트 " decimal(p,s) 실수표현 p: 전체자리수 , s는 소수점 부분의 길이 numeric(p,s) " money 8바이트 64비트 통화 단위 1/10000의 정확성을 가짐 smallmoney 4바이트 32비트 " [oracle] number 10바이트 80비트 부호있음 , 기본이 10바이트 number(n) 바이트 지정, n은 바이트 숫자 number(p, s) 실수표현 p: 전체자리수, s는 소수점 부분의 .. 2012. 11. 4.
[오라클] NULL관련 이슈 모음 및 관련 쿼리문 시 사용시 주의 사항 LIKE시 NULL 안나오는 것은 대부분 사람들이 다 알것이다. 관련해서 오늘 검색해본 내용을 정리해 놓는다~ 미래를 위해서 ^^ 뭐라도 찾아 봤으면 포스팅해서 내것으로 만드는게 좋지 아니한가?! 널포함해서 검색하기 : http://blog.daum.net/j02sin/14 오라클에서 NULL이란( 아주 알찬내용들이니 꼭 보자! ) :http://blog.naver.com/jhjl023?Redirect=Log&logNo=110029888512 오라클에서 쿼리 사용시 주의 사항 : http://blog.naver.com/etruelove?Redirect=Log&logNo=140038229759 2012. 7. 17.
[오라클] 날짜계산 SQL 출처 : http://cafe.naver.com/pentaeduclub/2125 select months_between(sysdate,to_date('2006-12-22','yyyy-mm-dd')) from dual; -- '2006-12-22' 과 당일 사이의 달의 수를 NUMBER형 타입으로 반환 -- months_between(A,B) = A-B/30 select add_months(sysdate,4) from dual; -- 특정일의 달수 더한 날 select next_day(sysdate,'friday') from dual; -- 특정일의 다음주 요일 select last_day(sysdate) from dual; -- 특정일의 해당 월의 마지막 날 select round(sysdate,'dd'.. 2012. 6. 15.
[오라클] 오라클 날짜 관련 함수 및 참고자료 원문 : http://www.zetswing.com/bbs/board.php?bo_table=ORACLE_TIP&wr_id=20&page=2 1. Oracle에서의 날짜 특징 *oracle은 세기,년,월,일,시간,분,초의 내부숫자 형식으로 날짜를 저장합니다.*디폴트 날짜형식은 'DD-MON-YY' 입니다.*SYSDATE는 현재의 날짜와 시간을 리턴하는 함수입니다.(date타입)ex : 2007-01-07 오후 10:34:00*DUAL은 SYSDATE를 보기위해 사용된 dummy table입니다. 2.oracle에서의 날짜연산 * 날짜에서 숫자(날수)를 빼거나 더하여 날짜 결과를 리턴합니다. 결과는 날짜형식* 날짜 사이의 일수를 알기 위하여 2개의 날짜를 뺍니다.* 시간을 24로 나누어 날짜에 더합니다.날.. 2012. 5. 2.
[SQL] OUTER JOIN시 T-SQL과 ANSI SQL의 차이의 경우 http://blog.naver.com/eyelee22?Redirect=Log&logNo=70033481407 T-SQL의 경우는 조인후 WHERE이 있더라도 조인 이전에 WHERE절을 수행해서 결과값이 더 많이 나오는 경우가 나올수있다. ANSI SQL을 사용하면 ON 뒤에 쓰면 조인 이전에 filter가 되고 WHERE에 놓으면 JOIN 이후에 Filter 되어진다. 2012. 4. 19.
[오라클] CONNECT BY 절 http://blog.naver.com/jadin1?Redirect=Log&logNo=70018085041 CONNECT BY절을 이용해서 계층 구조 테이블을 SELECT 해보자( 흔히 답변 달리는 게시판들에 필요 할 거라 생각된다. ) 2012. 3. 28.
[MYSQL] 설치시 1045( 3306포트 defined에러관련 ) http://warmz.tistory.com/228 위 블로그를 참고해서 설치해주면 잘 설치된다. 저도 이리해서 설치 완료 했습니다. 2011. 10. 12.
[MSSQL] MDF, LDF를 이용한 DB 복원( DB 복사에도 사용 할 수 있다 ) exec sp_attach_db 'DB명', 'MDF경로','LDF경로' exec sp_attach_db 'ogoods_suryang_fifo', 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ogoods_suryang_fifo.mdf','C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ogoods_suryang_fifo_log.ldf' 기본 사용 방법은 위와 같으며 DB 복사의 경우 기존 DB를 중지시키고 DB를 복사한 후 이름을 변경하고 위와 같이 DB명을 다른이름으로 지정 해 준다. 2011. 10. 8.
MySql 설치 및 DB 만들기, 테이블 만들기 http://killmewild.blog.me/30097725904 요 사이트를 한번 다 훑터 보면 설치부터 DB 테이블 만들수 있을것이다. 2011. 10. 1.
SELECT문 WITH(???LOCK) 절 출처 : http://zephome.tistory.com/141 평소에 잘모르고 무심코 사용을 했었는데 다시 한번 생각해보게 되네요. DBguide.net Q&A 게시판 Question 안녕하세요? 막 DB를 만지기 시작한 초보입니다. 다름이아니고 궁금한게 있어서 그런데요, 쿼리문을 쓰다보면 쿼리문 뒤에 With (***Lock) 옵션을 붙이잖아요~ 예를들어 select * from dbo.Test with (nolock) 혹은 update dbo.Test with (updlock) set a=10 이런식으로 NOLOCK, ROWLOCK, UPDLOCK 등을 쓰는걸 봤는데요, 각각의 간략한 의미와 어떤 문에 붙여야하는지 어드바이스 좀 해주세요 ! 예를들어 " NOLOCK 은 SELECT 문에서 LOCK .. 2011. 6. 28.
[ODBC] 윈도우7 64비트에서 ODBC 원본 드라이버 안보일경우... 내 피시의 경우 window 밑에 system32의 odbcad32가 바로가기 지정 되어 있었다. 이걸 syswow64밑의 odbcad32로 바꾸어 보니 정상적으로 드라이버들이 로드된것이 확인 되었다. 2011. 1. 1.
[MSSQL] 2000 -> 2008 변경후 사용자 삭제가 안될 경우 1. 스키마를 삭제하고 사용자를 삭제 해 본다. ( http://blog.naver.com/darkancia?Redirect=Log&logNo=110055939417 ) 2. http://cherni0911.blog.me/130044580691 3. http://blog.naver.com/findaday?Redirect=Log&logNo=56034507, http://blog.naver.com/lovzip?Redirect=Log&logNo=20056017177 2010. 12. 23.
MSSLQ2005 로그축소(MSSQL2000 로그축소, MSSQL2008 로그축소) MSSQL 2005 의 경우 use [DB명]; sp_helpfile; 2010. 12. 22.
[MSSQL] 백업 시스템 (전체 백업 및 트랜잭션로그 백업) 출처 : http://kuaaan.tistory.com/120 트랜잭션 로그 백업(Transaction Log Backup)에 관하여SQL Server 2009/05/02 23:29 얼마전에 개발서버에서 HDD가 가득찬 적이 있었습니다. 알고 보니 .mdf 파일은 수백메가 수준인데 .ldf 파일이 무려 30기가가 넘게 쌓여 있더군요. shrink 문을 날려도 줄지도 않고... 게다가 일단 트랜잭션 로그파일이 차게 되면 insert, select, delete 등 select를 제외한 아무 작업도 되지 않습니다. HDD 공간을 확보해도 인덱스라도 한번 재구성하고 나면 금방 다시 차버립니다. 데이터베이스의 로그 파일이 꽉 찼습니다. 데이터베이스의 트랜잭션 로그를 백업하여 사용 가능한 일부 공간을 확보하십시오.. 2010. 12. 21.