본문 바로가기

[ DataBase ]/DB&Query29

MySQL 자동증가, auto increment 값 초기화 하기 출처 - http://www.cyberpr.co.kr/community/community.php?act=v&bid=database&seq=1052 MySQL 자동증가, auto increment 값 초기화 하기 테이블 생성시에 아래와 같이 auto_increment 라고 지정해주면 그 컬럼(필드)는 자동 증가 값을 가지게 되는데요.. create table test_table ( idx int NOT NULL auto_increment, name varchar(255), ... 블라 블라, ... 블라 블라, ... 블라 블라, ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=euckr; 가끔은 이놈을 초기화 시켜야 할때가 있습니다. 초기화 시키기 위한 꼬라 지는 .. 2017. 4. 3.
mysql 에서 splite 기능 만들기 오래 여기저기 찾아봤는데 splite 기능을 하는 테이블 반환 함수가 없다. 그렇다고 프로시저로 만들어서 call 해도 그거도 못쓴다고 되있고. 그래서 조합해서 써보기로 했다. 우선 함수를 하나 만든다 CREATE FUNCTION `SPLIT_STR`( oritext longtext, splitchar char(1), pos int ) RETURNS varchar(2000) CHARSET utf8 BEGIN RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(oritext, splitchar, pos),CHAR_LENGTH(SUBSTRING_INDEX(oritext, splitchar, pos -1)) + 1),splitchar, ''); END 그리고 프로시저를 만든다. CREAT.. 2016. 2. 25.
쿼리 로그 보기 select db_name(st.dbid) DBName ,qs.total_elapsed_time ,creation_time ,last_execution_time,text from sys.dm_exec_query_stats qs cross apply sys.dm_exec_sql_text(qs.plan_handle)st join sys.dm_exec_cached_plans cp on qs.plan_handle = cp.plan_handle where creation_time >= '2011-09-01 00:00:00' --and db_name(st.dbid) is not null and cp.objtype = 'proc' --조건: 종류 and text like '%select%' order by last_.. 2015. 6. 29.
MSSQL split 기능 찾아보니 함수로 된거만 보여서 쿼리문에서 바로 가져올수 있게 만들었다. DECLARE @TEMP NVARCHAR(max) SET @TEMP = 'AAAA1|S1222' SELECT LEFT(@TEMP,CHARINDEX('|',@TEMP) -1) AS FIRSTSTR , RIGHT(@TEMP,LEN(@TEMP) - CHARINDEX('|',@TEMP)) AS SECONDSTR 2015. 2. 3.
[MSSQL] 다른 테이블과 조인걸고 DELETE 하기 출처 - http://seoddong.tistory.com/33 일반 DELETE문과 조인거는 SELECT문의 단순한 결합이라고 생각하면 된다. WHERE없는 일반적인 DELETE문을 만들어놓는다. 그리고 삭제하길 원하는 데이터만 나오도록 쿼리문을 만든다. SELECT 부라부라 FROM 부라부라 INNER JOIN 부라부라 의 형태가 나올것인데 이 중에서 FROM부터 마지막까지를 복사한다. DELETE시에 삭제하고자 하는 테이블을 첫번째 FROM에 놓고, 조인걸고자 하는 테이블을 두번째 FROM에 놓고, 그담부터 자유롭게 조인건다. 1.일반 DELETE문 DELETE FROM테이블AA 2.삭제할 내용만 뽑아내는 SELECT문 SELECTAA.* FROM테이블AA AA WITH (NOLOCK) INNER .. 2014. 11. 14.
테이블에 걸려있는 트리거 확인 SELECT 'sp_helptext ' + T.name FROM sys.sysobjects AS T INNER JOIN sys.sysobjects AS O ON T.parent_obj = O.id WHERE T.xtype ='TR' AND O.name like '테이블명' 2014. 7. 23.
MSSQL 프로시저내의 동적쿼리 및 개행문자(줄바꿈) 출처 - http://moyaria.tistory.com/entry/MSSQL-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80%EB%82%B4%EC%9D%98-%EB%8F%99%EC%A0%81%EC%BF%BC%EB%A6%AC-%EB%B0%8F-%EA%B0%9C%ED%96%89%EB%AC%B8%EC%9E%90 MSSQL 의 프로시저 내에서 동적쿼리를 생성해서 실행시키는 구문이다. 참고로 print 시에 개행문자 char(13) 를 붙여 주면 줄바꿈이 된다. SET @SQL = '' SET @SQL = @SQL + ' SELECT * ' + char(13) SET @SQL = @SQL + ' FROM TABLENAME ' + char(13) SET @SQL = @SQL + ' WHERE f.. 2014. 4. 30.
MSSQL 0 붙이기 3자리수로 할경우 SELECT RIGHT('00000000'+ @P_VALUE,3) 6자리수로 할경우 SELECT RIGHT('00000000'+ @P_VALUE,6) 가만히 생각해보니 엄청나게 간단하면서 빠르게 처리가 가능한 방법이다. 앞에 0000 문자는 최소한 원하는 자리수 이상이어야 한다. 왜냐하면 문자가 1 인데 3자리로 하고 싶으면 001 은되야 RIGHT 로 오른쪽 부터 3자리로 자를수있다. 2014. 3. 14.
[MSSQL] 소수점 반올림, 버림 출처 - http://blog.naver.com/PostView.nhn?blogId=darksun71&logNo=130143935434 1. 반올림 SELECT ROUND(1.23523, 2) 결과 : 1.24000 1-1. 반올림 SELECT ROUND(1.23523, 2, 0) 결과 : 1.24000 2. 버림 SELECT ROUND(1.23523, 2, 1) 결과 : 1.23000 ---------------------------------------------- 세번째 Parameter의 비밀. FALSE면 반올림, TRUE면 버림 2014. 3. 10.
MSSQL 락(lock) 해제 검색해보시면 재밌는게 많이 나옵니다. 한국이랑 다르네요 ㅋ ① sp_lock 프로시저를 실행하여 mode가 x 인 녀석을 확인 ② dbcc inputbuffer(spid) 클라이언트에서 MSSQL로 보낸 최종 명령문 표시, 위의 1번에서 X인 녀석의 spid를 입력하면 해당 테이블이 출력된다. ③ kill spid 문제가 되는 spid를 kill 합니다. 2013. 10. 17.
DB 암호화 출처 - http://nakyungpapa.tistory.com/74 [출처 : 보안뉴스] 1. 기업의 존속과 직결되는 DB의 암호화 필요성 - 데이터 자산가치의 증가 - 내부자에 의한 정보 유출 및 보안 사고 급증 - 피해규모, 확산속도 가속 및 막대한 사회적 비용 발생 - 개인정보 유출에 대한 불안감 고조 및 신뢰성 저하 - 어플리케이션 구축 및 운영시의 보안 허점 2. DB 암호화의 법적 기준 구분 소관 내용 정보통신망법 방통위 시행령 제15조 (개인정보의 보호조치) - 주민등록번호 및 계좌번호 등 금융정보의 암호화 저장 개인정보보호법 행안부 개인정보의 안정성 확보 조치 기술 고시 제7조 - 외부망 저장시 개인정보 모두 암호화 - 내부망 저장시 공공기관은 영향평가 결과를 통해, 그 외 기업들은 위험.. 2012. 9. 24.
[DB암호화] 4. 운영 출처 : DBGuide.net(http://www.dbguide.net/db.db?cmd=view&boardUid=152811&boardConfigUid=9&categoryUid=216&boardIdx=147&boardStep=1) 가. 변경 이력 및 백업관리 암호화 키는 암호화 대상 DB 내의 여러 컬럼에 동시에 적용될 수 있고, 암호화를 적용한 조직의 보안 규칙에 따라 암호화 키를 변경하게 된다. 암호화 키의 사용은 평문 데이터를 암호화 하는데 사용하기도 하지만 반대로 복호화 하는데 사용하기 때문에 누가 언제 암호화 키를 사용하여 암복호화를 했는지 기록할 필요가 있다. 이것은 암호화를 통해 DB 보안 성을 강화하기 위한 기본적인 절차이며 의무이다. 암호화 키가 운영되는 키 관리 서버는 DB 암호화의 .. 2012. 9. 24.
[DB암호화] 3. 구축 출처 : DBGuide.net (http://www.dbguide.net/db.db?cmd=view&boardUid=152810&boardConfigUid=9&categoryUid=216&boardIdx=147&boardStep=1) 가. 원본 데이터 삭제 DB의 암호화가 수행되면 원본 데이터는 삭제되어야 한다. 원본 데이터는 서비스가 진행 중인 DB 내에 존재했거나 백업(Backup)에 의해 테이프 등과 같은 2차 스토리지 (Storage)에 저장 된다. 따라서 암호화 후에 진행되어야 할 원본 데이터 삭제는 DB 서비 스가 진행 중인 디스크와 백업된 스토리지 모두에게 해당된다. DB 서버 내 디스크의 원본 데이터는 테이블의 컬럼 값뿐만 아니라 이에 대한 인덱스 정보까지도 포함한다. 원본 데이터의 삭제 .. 2012. 9. 24.
[DB암호화] 2. 설계 출처 : DBGuide.net (http://www.dbguide.net/db.db?cmd=view&boardUid=152809&boardConfigUid=9&categoryUid=216&boardIdx=147&boardStep=1) DB 암호화를 구축하기 위해서는 복호화 권한통제, 암호 키 정의, 그리고 암호화 키 사용 로깅 등 많은 사항을 고려하여야 한다. 암호화 규칙은 DB를 암호화하기 위한 기본적인 전 제 조건과 고려사항을 언급한 것이며, 암호화를 규칙대로 적용하고 암호화 후 정상적인 DB 서비스를 지속시키기 위한 몇 가지 지표를 다음과 같이 정리할 수 있다. ■DB에 접속할 수 있는 사용자에 대한 정의가 되어 있는가? ■DB에 접속하는 사용자 식별에 대한 방법이 정의 되었는가? ■암호화 대상 컬.. 2012. 9. 24.
[DB암호화] 1. 개요 출처 : DBGuide.net (http://www.dbguide.net/db.db?cmd=view&boardUid=152808&boardConfigUid=9&boardIdx=147&boardStep=1) DB는 기업의 IT자산 중 가장 가치 있는 핵심으로서 고객 정보, 재무 데이터, 거래 기록 등을 유지·관리하고 있다. 이러한 DB를 보호해야 하는 중요성은 점점 증가하고 있지만 이를 수행해야 하는 일은 매우 어렵고 특히 암호화를 수행하는 경우는 더욱 그렇다. 분명 한 것은 핵심 비즈니스 가치를 지닌 DB의 존재는 공격대상이 될 수 밖에 없고, 이러한 공격을 통해 DB가 유출이 된다면 관련 조직의 재정 및 기업 이미지에 엄청난 피해를 줄 것 이다. 언론상에 자주 오르는 소비자 거래 기록과 신용카드 및 개.. 2012. 9. 24.
mssql 2008에서 성능하이브 오류 발생시 mssql 2008에서 성능하이브 오류 발생시 성능 카운트 레지스트리 하이브 오류 발생시 다음과 같이 실행하여 설치 할 수 있다. Rule Name : PerfMonCounterNotCorruptedCheck command창에서 설치파일이 있는 폴더로 이동 후 다음명령 실행 setup /skiprules=perfmoncounternotcorruptedcheck /Action=install|upgrade Action - 신규설치인 경우 install, 2000, 2005에서 upgrade를 하는 경우 upgrade를 지정 2012. 9. 13.
데이터베이스 개념/용어 데이터베이스 1. 데이터베이스의 정의 - 통합, 저장, 운영, 공유 2. 데이터베이스의 특징 - 실시간 접근성, 계속적인 변화, 동시 공유, 내용에 의한 참조, 데이터의 독립성(논리적 독립성, 물리적 독립성) 3. 데이터의 무결성 - 데이터의 중복이나 훼손없이 정확성이 보장된 상태, 즉 정확성을 의미 스키마 - 스키마 또는 스킴 : 데이터베이스에 관한 전반적인 구조를 기술하는 것 - 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relation)에 대한 정의와 이들이 유지해야 될 제약 조건 등에 관해 전반적으로 정의한다 1. 개념스키마 - 데이터베이스의 논리적 구조 - 기관이나 조직체의 관점에서 본 스키마 - 데이터베이스 관리자(DBA)에 의해 구성 - 모든 응용 시.. 2012. 9. 13.
외래키설명 http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10205&docId=66431686 http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10205&docId=66431686 기본키란... 기본키란.. 유일한키잖아요.. 그럼 외래키는 어떤경우에 사용하는지.. 간단한 개념과 왜 사용하는지 간단한 예를 알고 싶습니다... re: 기본키란... 기본키 - 유일한값이죠 중복되면 안돼고 null 값이나 값이 안들어가면 안되는거죠 외래키 - 기본키를 참조하는 키입니다 이넘은 중복돼도 됩니다 그런데 왜 쓰냐 관계 설정할때 주는 옵션이 따라 틀린데요 먼저 기본키에 테이블에 있는값이 실수나 기타 사항으로 이유로 지워졌다고 생각해보십시오 하지만 외.. 2012. 9. 13.
[MSSQL] DB 생성 쿼리(Query)문 passion.r.p | 루시아 http://blog.naver.com/salagswk/150016965268 처음 MS SQL 2005를 접했을 때 엄청 당황했다. 그나마 어깨 넘어로 봐왔던 MS SQL 2000이란 화면 부터 틀렸기 때문이다. 어쩌면 버전이 업데이트 됐는데 당연한 말이겠지만 난 정말 당황했다. ㅡㅡ;; MS SQL 2005에 있는 기능을 이용해도 좋지만 직접 쿼리문을 작성해서 실행 시키는 것도 괜찮은 방법 같다. 사실...처음 누군가에게 배울때 이런식으로 배웠기에 이게 더 편해졌다는...ㅋㅋ DB를 처음 생성할 때 정해준 DB의 데이터와 로그 파일의 크기와 경로 파일이름등을 정해주는 쿼리문입니다. 위와 같은 쿼리문을 가지고 있는 다면 다른 DB를 만들때도 유용하답니다. 위의 내용처럼 .. 2012. 9. 13.
오라클 조회옵션 1. 사용자와 롤에 부여된 시스템 권한을 조회. SELECT * FROM USER_SYS_PRIVS; 2. 현재 세션에서 사용자와 롤에 부여된 시스템 권한을 조회. SELECT * FROM SESSION_PRIVS; 3.. 내가 다른 사용자에게 부여한 객체 권한을 조회. SELECT * FROM USER_TAB_PRIVS_MADE; 4. 나에게 부여된 객체 권한, 객체 이름을 조회. SELECT * FROM USER_TAB_PRIVS_RECD; 5. 내가 다른 사용자에게 부여한 칼럼에 대한 객체 권한과 칼럼 이름을 조회. SELECT * FROM USER_COL_PRIVS_MADE; 6. 나에게 부여된 칼럼에 대한 객체 권한과 칼럼 이름을 조회. SELECT * FROM USER_COL_PRIVS_REC.. 2012. 9. 13.
[Oracle] SYSOPER 와 SYSDBA 차이점 .. | 파이 http://blog.naver.com/mheejung/40003554844 No. 11160 SYSOPER AND SYSDBA ================== 1. Introduction 일반적으로 administration 권한을 가진 유저로 접속할 때에는 connect internal을 이용하여 접속한다. 그러나 이러한 권한을 가지며 접속하는 방법은 이외에도 sysdba나 sysoper로 접속하는 방법이 있다. 여기서는 상기 접속 방법의 차이점과 그 사용 방법을 알아본다. 2. Administrative Users Oracle에서는 두개의 중요한 administration을 담당하는 특별한 privilege가 있는데 이를 SYSOPER, SYSDBA라고 한다. 이에 대한 각 권한은 .. 2012. 9. 12.
ms-sql에서 쿼리를 이용하여 숫자를 제외한 모든 문자를 제외하는 방법 카페 > 어리버리 범준이의 까페 | 어리버리 http://cafe.naver.com/keidao/27 ms-sql에서 쿼리를 이용하여 숫자를 제외한 모든 문자를 제외하는 방법?? 답변이 완료된 질문입니다. (2004-01-08 05:15 작성) ms-sql에서 쿼리를 이용하여 숫자를 제외한 모든 문자를 제외하는 방법이 있을까요?? 예를 들면.. 011******* 011******** 011***2356 011*322*5441 011*9021*8301부천시소사구 011*9993*3988 011/8499967 011???????? 011_702_1406강서구등촌동 011`8198489 011`91495705 011~9864~4380 011+145=바보 이런 값에서 숫자 사이와 뒤에 있는 모든 문자열등을 제.. 2012. 9. 12.
MDB 날짜 sql um daeng | 엄성은 http://blog.naver.com/tjddms1117/20021348972 "select sum(주유가격) as 총주유금액,sum(주유량) as 총주유량,sum(주행거리) as 총주행거리 from 주유기록 where [주유일자] between #" & Format(DTPicker1.Value, "yyyy-MM-dd") & "# and #" & Format(DTPicker2.Value, "yyyy-MM-dd") & "# " MDB에선 날짜필드로 되어 있는 것을 조회할때는 #을 이용해야 합니다. MS SQL Server에서는 '(싱글)로 이용하지만요 그리고 Format문을 이용해서 정확한 포멧을 지정하고 한다면 예기치 못한 오류를 미연에 방지 할 수 있습니다. 도움이 되었길... 2012. 9. 12.
[MySQL] Mysql에서의 서브쿼리(subquery) Neograf's Blog | 티티알 http://blog.naver.com/neograf/120012679619 MySQL에서 서브쿼리(subquery) 1 장 번역자 김영진(cogolda@hanmail.net) 알아두기 이 문서는 제가 http://www.mysql.com/articles/subqueries_part_1.html/ 이곳에 있는 문서를 번역, 추가, 생략한 내용입니다. 이 문서는 1장이고 mysql 사이트에 계속 연재되면 여기다 올리겠습니다. 아직 까지는 1장만 연재되어 있습니다. 질문이나 의견 있으신 분은 메일이나 코멘트를 이용해 주시면 감사하겠습니다. 이 문서는 서브쿼리를 모르거나, 들어는 봤는데 써 본적 없는 php 프로그래머를 위해 작성되었습니다. 그러나 MySQL과 SQL의 기.. 2012. 9. 12.
[SQL문] select문 희망 보고서 | 최강땡칠 http://blog.naver.com/west372/80055289595 select 문 select rand(100),rand(),rand() --랜덤값발생함수(시드점) select floor(29.9),floor(29.1)-- 소숫점자리내림 select ceiling(29.9),ceiling(29.1) -- 소숫점자리올림 select round(29.1,0),round(29.9,0),round(29.956,1) -- 소숫점자리반올림(값,반올림자리) select ascii('A'), char(65) -- 아스키값반환, 캐릭터반환 select unicode('A'), nchar(65),unicode('가'), nchar(44032) -- 유니코드값반환, 유니코드캐릭터값반환 se.. 2012. 9. 12.
MS SQL Server 2008 실행하기 SQL Server 2008 을 실행하려면 아래의 순서로 가서 SQL Server Management Studio 를 클릭하면 된다. 시작 => 모든 프로그램 => Microsoft SQL Server 2008 => SQL Server Management Studio [SQL Server 2008 접속] * SQL Server Management Studio 가 실행되기 전 화면으로 공간데이터도 저장할수 있는 기능이 추가되서 인지 로고가 달라졌다. 1. 접속 시작 ㄱ) 서버 유형 : 데이터베이스 엔진 선택 ㄴ) 서버 이름 : 서버이름 이나 IP 입력 ( 아래에서는 TEST1 인스턴스로 설치했으므로 10.10.10.94\TEST1 으로 입력) ㄷ) 인증 : Windows 인증 / SQL Server 인증 .. 2012. 9. 12.
[MSSQL] Select Insert MS SQL에서 Select 결과를 Table에 Insert하는 방식에는 두가지가 있다. 1. select * into [Target Table] from [Source Table] Where [Condition] into를 사용하게 되면 테이블을 생성하고 쿼리 결과를 Insert 한다. 이때 기존에 Create 할 테이블이 존재할 경우 생성할 수 없다는 오류가 나온다. 2. insert into [Target Table] select * from [Source Table] Where [Condition] insert를 사용할 경우 기존 테이블에 Insert한다. 이때 기존 테이블이 생성되어있지 않을 경우 Insert 오류가 난다. [출처] [MSSQL] Select Insert|작성자 노원오디 2012. 9. 12.
sys.objects(Transact-SQL) select * from sys.objects sys.objects(Transact-SQL) 데이터베이스 내에 만들어진 각 사용자 정의 스키마 범위 개체에 대한 행을 포함합니다. 참고 sys.objects는 스키마 범위가 아니기 때문에 DDL 트리거를 표시하지 않습니다. sys.triggers.'>DML 및 DDL 트리거 모두 sys.triggers에 있습니다. sys.triggers는 다양한 종류의 트리거에 대한 이름-범위 혼합 규칙을 지원합니다. 열 이름 데이터 형식 설명 name sysname 개체 이름입니다. object_id int 개체 ID입니다. 데이터베이스 내에서 고유합니다. principal_id int 스키마 소유자와 다른 경우 개별 소유자의 ID입니다. 기본적으로 스키마에 포함된 개체.. 2012. 9. 12.
동적쿼리 sp_executesql & exec() http://ddoung2.tistory.com/141 http://ddoung2.tistory.com/141 오늘 갑자기 SQL Server 에서 동적쿼리를 실행을 시킬때 사용하는 sp_executesql 와 exec()에 대해서 정리를 하고 싶었다. 머 사실 내가 팀원들에게 한달에 한번씩 어떠한 주제는 상관없이 SQL Server에 관련된 것을 하나씩 팀블로그(http://gdbt.tistory.com)에 포스팅해라!! 라고 해서.. 나도 어쩔 수 없이 포스팅을 해야 하기에 고민하던 중 문득 생각이 나서 정리 하는 것이다. 예전 부터 "Dynamic Query는 가급적이면 사용하지 말아라! 되도록이면 Stored Procedure을 사용해라"이런 문구를 많이들 보았을 것이다. 이는 Dynamic Qu.. 2012. 9. 12.