DB관련 67

PL/SQL Developer 로그인시 패스워드 저장하기 설정 + Objects 브라우저 폰트 조절하기

PL/SQL Developer 로그인 시 패스워드 저장하기 설정 PL/SQL Developer의 로그인 창에서 패스워드를 저장해서 사용하는 설정이 있습니다. 1) 설정 값(Preferences) 버튼을 클릭 2) Logon History에서 Store with password를 체크해 줍니다. 3) 설정 값(Preferences)의 [Apply]나 [OK] 버튼으로 적용 4) 로그인 창에서 […] 버튼으로 저장된 리스트중에 선택 Object 브라우저 폰트 / 크기 바꾸기 PL/SQL Developer의 가장 많이 사용하는 Objects브라우저의 폰트를 설정하고, 폰트를 바꿀 수가 있습니다. 폰트 사이즈가 작아지면, 많은 내용의 정보를 한번에 볼 수 있어서 편리합니다. 1) 설정 값(Preferences)..

DB관련/Oracle 2023.08.18

[Oracle] 오라클 문자열 합치기 - CONCAT 과 || 이용한 문자열 합치기

Database의 Select 구문에서 컬럼을 합치는 경우는 대단히 많이 사용됩니다. 오라클에서는 문자열을 합치는 대표적인 방법 2자지를 남겨둡니다. 오라클에서 문자열 합치기 방법에는 2가지 방법이 있습니다. 1) CONCAT() 함수 2) || (더블 bar) 문자 사용 [ 사용방법 ] Operator Purpose CONCAT() CONCAT(컬럼1,컬럼2) CONCAT(CONCAT(컬럼1, ' '), 컬럼2) || 컬럼1 || 컬럼2 컬럼1 || ' ' || 컬럼2 예제 1) 오라클 CONCAT 함수를 통한 문자열 합치기 SELECT CONCAT(COL1,COL2) FROM TABLE; SELECT CONCAT(CONCAT(COL1,' '),COL2) FROM TABLE; 예제 2) 오라클 || 오..

DB관련/Oracle 2023.05.05

[Date] 기준 일자에 특정 기간 후의 날짜(시간 더하기, 빼기=100일 구하기), 두 기간의 날짜 차이 가져오기(오늘은 몇일차?), 1년 365일중 오늘은 몇일째?

MySQL를 사용하다 보면, Date관련 검색 결과를 필요로 하는 경우가 많습니다. 예를 들면, 100일 날짜를 구하기? 우리가 만난 지 오늘은 몇 일차? 입사 개월 수 구하기? 입사 몇 년 차 인지 구하기? 오늘은 1년 365일중에 몇일째? 날짜에 관련된 정보는 다양하게 변형할 수 있는 조건들이 많고, 사용 빈도도 많은 편이죠. MySQL의 DATE_ADD/DATE_SUB과 DATEDIFF/TIMESTAMPDIFF함수를 이용해서, 쉽게 날짜 정보를 만들 수 있습니다. DATE_ADD와 DATE_SUB 함수의 Syntax DATE_ADD(date, INTERVAL value addunit) ##[ addunit ]### MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH Q..

DB관련/MySQL 2021.10.15

SQL Database FTP백업 프로그램 - SQL Server, MySQL 지원

Database에서 백업은 어떤 작업 보다도 중요한 작업 중에 하나입니다. DB 서버의 Data 백업은 현업에서 가장 중요한 습관이 되어야 합니다. 개발자의 실수, 또는 물리적인 Data의 문제에 대한 피해를 최소화할 수 있는 보안 방안이기 때문이죠. SQL Servrer의 경우, 리모트에 DB에 백업 파일(bak)을 자신의 PC에 바로 만들기가 불가능합니다. 백업도 같은 Disk에 백업을 해두는 습관은 썩 좋은 방법은 아닙니다. 물리적으로 다른 저장소에 백업해 두는 것이 가장 바람직합니다. 백업 파일 이동 방법으로는 가장 손쉬운 FTP방식을 많이들 추천합니다. 이런 여러가지 작업을 손쉽게 해주는 프로그램이 있는데요. Database FTP 백업 프로그램인 "SQL Backup and FTP"를 소개하려..

DB관련 2021.04.07

SQL Server 2014 Express 설치하기 (SSMS포함 Window 10 환경)

왜? SQL Server 2014를 설치하나요? 최신 버전의 SQL Server 2019까지 있습니다. 그러나, 무조건 최신 버전을 설치하게 된다고 좋은 것만은 아닙니다. 예를 들어 2019의 경우, 윈도우 32bit버전를 지원하고 있지 않습니다. 다양한 특성에 맞게 최신버전이 필요한 곳에는 최신 버전을, 특정 기능 이상은 Over spec으로 생각되면, 하위 버전을 사용하는 것도 나쁘지 않습니다. 그렇다고, 무조건 하위 버전을 사용하는 것, 또한 바람직하지 않습니다. 저사양 컴퓨터에서 운영을 해야 하는 경우에 하위 버전을 사용하고, 새로운 기술을 적용할때는, 최신 버전을 사용하는 것이 바람직한 결정이 될 수 있습니다. 시스템 규모와 상황에 맞게 SQL Server 버전을 선택하는 것도 개발자의 능력중에..

DB관련/SQL Server 2020.12.11

[MySQL] 주별(주간) / 요일별 판매량 리포트 MySQL 쿼리 예제 (Weekly Report / Day of week Report)

판매 리포트(Sales Report) 프로그램을 작업에서 시간/기간별 기준은 리포트의 요소중에 중요한 요소로 차지합니다.가계 주인은 주별로 판매 리포트를 통해서, 월의 초반 중반 후반의 판매량을 알고 싶어하고,그리고, 요일별로 판매량을 알아서 제품을 요일별 준비량을 미리 알 수 있는 토대로 이용하게 됩니다. MySQL에서 함수들인 DAYOFWEEK()와 WEEK(), YEARWEEK() 함수를 통해서,요일별, 주간별 리포트 쿼리를 만들 수 있습니다.아래는 요일별, 주간별 리포트를 위한 MySQL쿼리 예제들입니다.해당 예제를 통해서, 형식에 맞게 수정해서 사용하면 쉽게 리포트 작성을 할 수 있습니다. (Case 1) Day of week (월요일~일요일) 요일별 판매량요일별 판매량 보고서는 특정 기간동안 ..

DB관련/MySQL 2020.11.17

MySQL mysqldump로 full backup, DB table 백업, 복원 (중요:대용량 복원은 MyISAM엔진으로 변경하세요)

Mysql의 전체 DB를 백업 복원이 간단하게 할 수 있습니다.백업은 mysqldump명령으로 하고, 복원은 mysql을 이용합니다.여기서, sql Dump를 받는 속도는 Engine의 종류에 거의 차이가 없습니다. 그러나, dump받은 sql를 복원할때, 대용량 Data처리시 DB Engine Type에 따라 상당한 속도 차이가 크게 납니다.대용량 DB backup ->Restore작업시 DB table Engine 타입을 MyISAM으로 주시길 바랍니다.InnoDB 장점(?)들 때문에, 대용량 Data Insert 속도가 MyISAM 보다 엄청나게 느립니다. 실제 예로 600,000 rows(Disk size:190M정도)의 데이터를 sql 복원할 때, InnoDB의 경우 5시간 넘게 작업을 해도 끝..

DB관련/MySQL 2020.10.23

MSSQL에서 DB, LOG 축소 쿼리 / 공간 줄이기

출처: http://sqlmvp.tistory.com/1179 (SQL Server DBA 체크 리스트) DB의 공간 줄이기 1) DB 공간 줄이기 2) 쿼리 이용하기.구문DBCC SHRINKDATABASE( database_name | database_id | 0 [ , target_percent ] [ , { NOTRUNCATE | TRUNCATEONLY } ])[ WITH NO_INFOMSGS ] NOTRUNCATE 옵션 : 데이터를 정리만 할 뿐 파일의 크기를 줄이지 않는다. TRUNCATEONLY 옵션 : 데이터는 정리하지 않고 뒤의 남는 부분만 줄인다. 옵션 설정없이 디폴트로 사용하게 되면 위의 NOTRUNCATE 와 TRUNCATEONLY옵션이 차례대로 적용되어 실행 된다 이렇게 하여 DB의..

DB관련/SQL Server 2020.10.15

[SQL Server] SQL SERVER 에러로그(ERRORLOG) 삭제하기 - 디스크 정리

Windows SQL Server 서버를 운영하다 보면, C:드라이브가 계속적으로 부족함을 느낍니다. 이 경우, 디렉토리 별로 용량을 체크하는 TreeSize 프로그램을 통해서 체크해보면, TreeSize 프로그램 2009/10/14 - [무료Tools도구들] - 윈도우 폴더별 용량 체크하는 유틸리티 TreeSize - Free Version 대부분, Windows Update Data나, IIS의 Logs 또는 "SQL Server LOG"가 쓸데없이 공간을 차지하고 있을 때가 있습니다. (윈도우 Update Data를 함부로 삭제하게 되면, 업데이트가 안될 수 있으니 주의해야 합니다.) 저 같은 경우 확인해 보니. SQL SERVER의 LOG 중에 ERROLOG이 용량을 차지하고 있더군요. 그래서 이..

DB관련/SQL Server 2020.08.01

mysql 문자열 합치기 / 문자열 자르기 / 문자열 바꾸기 CONCAT() SUBSTRING()

MySQL 문자열을 합치기 - concant() concat() 함수를 통해, 문자열 합치기 CONCAT(str1,str2,...) -- 예제 select concat("abc","111") -- 예제2 mysql> SELECT CONCAT('My', 'S', 'QL'); -> 'MySQL' mysql> SELECT CONCAT('My', NULL, 'QL'); -> NULL mysql> SELECT CONCAT(14.3); -> '14.3' - String타입 + String타입 케이스 => concant("1","-","2") -> '1-2' - Field타입 + Field타입 케이스 => concat(fist_name, last_name) -> 'GildongHong' - Field타입 + Stri..

DB관련/MySQL 2020.07.08

[MSSQL] 문자열 바꾸기 (치환) - REPLACE, STUFF, TRANSLATE (group by 에서 사용한 예제 포함)

MSSQL의 문자열 치환 함수는 REPLACE가 매우 유용합니다. 치환 속도와 결과가 괜찮습니다. 특히, 조건문이나 그룹 정렬 문에서 사용하면 참 유용하게 사용이 가능합니다. 아래의 "실전 예제 >>"에서 사용 예를 남겨봅니다. REPLACE 문자열 치환 - 특정 문자열 값을 바꿔주는 함수 (REPLACE, STUFF) --문법-- REPLACE('문자열','치환예정문자','치환할문자') --예시-- REPLACE('ABCDEFG','DEF','XXX') --MY_TABLE에서 이름(NM_KOR)을 '이'씨를 '김'씨로 바꿔서 출력-- SELECT REPLACE(NM_KOR,'이','김')AS 사원명 FROM MY_TABLE 실전 예제 >> "Event 10% OFF $1.49-$0.15"에서 "10% ..

DB관련/SQL Server 2020.02.28

(중요) MSSQL mdf log파일로 Detach->Atach 하기 (백업,복원)

Database를 사용하다 보면, Backup의 중요성을 너무 크게 느끼게 됩니다. MSSQL도 마찬가지이며, MSSQL의 Backup과 Restore 하는 방법이 여러 가지 있습니다만, 파일을 통한 방법을 남겨보도록 하겠습니다. MSSQL mdf log 파일로 복원하기 SQL Server에서 물리적인 DB파일인 *. mdf / *. log파일을 이용한 DB 이전 하기 (1) DB 선택 > 마우스 오른쪽 클릭 > Tasks > Detach... 처리 (2) mdf 파일과 log파일을 원하는 위치에 복사 (3) mdf 파일과 log파일의 Window 기본 User 권한에 모든 권한으로 변경 Attach이전에, user name에 MSSQL유저가 없습니다. Attach이후, user name이 MSSQLSE..

DB관련/SQL Server 2020.02.28

Cannot insert explicit value for identity column in table 'table' when IDENTITY_INSERT is set to OFF.

MSSQL에서 Identity_insert 오류가 나면서, 쿼리 입력이 안될때가 있습니다. 해당 오류는 컬럼을 ID증가 increment 가 되는 필드가 있을때, 생기는 오류입니다. 해당 오류를 해결하기 위해서는 다음과 같은 쿼리로 감싸줘야 합니다. SET IDENTITY_INSERT {테이블} ON 쿼리 SET IDENTITY_INSERT {테이블} OFF 예제 SET IDENTITY_INSERT Table1 ON INSERT INTO Table1 /*Note the column list is REQUIRED here, not optional*/ (OperationID, OpDescription, FilterID) VALUES (20, 'Hierachy Update', 1) SET IDENTITY_IN..

DB관련/SQL Server 2019.10.10

decimal 와 numeric의 차이 + Money Data Type (C#)

돈의 계산을 이용할때는, decimal을 사용하는 것이 바랍직합니다. 특히 C#에서는 decimal를 꼭 써줘야 합니다. (numeric이 없긴하죠) DB에서는 크게 차이를 못느낄 정도로 많은 차이가 없습니다. decimal[ (p[ ,s] )] and numeric[ (p[ ,s] )] Fixed precision and scale numbers. When maximum precision is used, valid values are from - 10^38 +1 through 10^38 - 1. The ISO synonyms for decimal are dec and dec(p, s). numericis functionally identical to decimal. p (precision) 정밀도 Th..

DB관련/SQL Server 2019.09.26

[MSSQL] SQL Server Management Studio 로 DB copy하기

MSSQL에 DB의 개발 작업을 하다보면, 같은 서버에 운영 DB과 똑같은 TEST DB과 필요한 경우가 있습니다. 이 경우 DB를 쉽게 복사하는 방법을 생각하다. 개인적으로 생각하기에 가장 쉬운 방법을 적어봅니다. DB 복사하기 (1) 신규 DB생성 (2) 오리지널 DB선택 (3) Tasks > Restore > Database..선택 (4) Restore에서 Source를 원본 DB선택 (5) Destination에 Target DB(신규 생성한 DB)를 선택 (6) Options에서 "Overwrite the existing database(WITH REPLACE)"를 선택하면 됩니다. 많은 분들이 DB복사를 하는 방법으로 보통 Backup를 해서 Restore를 하는 방법을 이용합니다. 그래도 파..

DB관련/SQL Server 2019.09.24

mssql 에서 sa 로그인 실패 오류 해결방법

SQL Server 2017 Express를 설치하다 보면, sa로 로그인하려고 할 때, sa로 로그인이 실패되는 경우가 있습니다. 우선, Authentication을 Windows Authentication 으로 변경해서 로그인을 했습니다. 보안 > 로그인 > sa 계정의 속성을 확인하지 > 상태 > 로그인이 사용 안 함(Disable)로 되어 있어서 사용(Enable) 수정했습니다. 그리고, 암호도 수정하고, "[v] 암호 정책 강제 적용"만 적용하고 나머지는 Unchecking 했습니다. 그렇게 접속을 해도 안되더군요. OMG;; 알고 보니. 기본으로 SQL Server가 Authentication이 Mixed로 되어 있지 않았습니다. 그래서 다시 Windows Authentication 으로 로그..

DB관련/SQL Server 2019.09.19

[SQL Server] sqlcmd로 간단한 쿼리 사용하기

MS의 SQL Server에서 Database의 쿼리(Query)를 사용할 때, 보통 SSMS(SQL Server Management Studio) 툴을 이용해서 작업을 하는데, 해당 SSMS가 설치되어 있지 않은 상황에서도, SQL Server에서 설치한 sqlcmd 콘솔 창으로, 쿼리(Query)를 이용할 수 있는 있습니다. sqlcmd 실행방법 윈도우 커맨드에서 sqlcmd라고 입력합니다. sqlcmd에서 쿼리를 통해 SQL Server의 버전 확인도 가능합니다. 그 외 원격(Remote)에 있는 SQL Server에도 접근도 가능합니다. sqlcmd -S [SERVERNAME\INSTANCE] -E sqlcmd -S [SERVERNAME\INSTANCE] –U [username] –P [passw..

DB관련/SQL Server 2019.08.02

MS SQL retore 에러 - Specified cast is not valid. (SqlMangerUI)

Microsoft SQL Server Management Studio 2008 R2 (SSMS.exe)에서 복원을 하려고 할때, 다음과 같은 "Specified cast is not valid" 에러가 발생한다면, 해당 DB백업 파일(.bak)이 버전이 다를 경우가 큽니다. DB백업 파일의 버전을 확인하려면, 다음과 같은 명령을 입력해 보시면 DatabaseVesrion이라는 항목에서 버전을 확인 할 수 있습니다. (참고 SQL 2014의 SSMS에서 확인) restore headeronly from DISK='D:\TEMP\DB_20190510T0824.bak' Microsoft SQL Server Internal Database Versions and Compatibility Levels http:/..

DB관련/SQL Server 2019.05.18

MS SQL DB 복원시 Access is denied.오류 발생시

SQL Server 2008 R2를 복원시 Access id denide가 나타난다면, System.Data.SqlClient.SqlError: The operating system returned the error '5(Access is denied.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DataLabTables.mdf'. Relocate all files folder를 선택해서 복원된 폴더를 바꿔주면 성공적으로 복원이 된다. 출처: https://stackoverflow.com/questions/7031792/sql-serv..

DB관련/SQL Server 2019.03.05

SQL의 IFNULL()함수 MySQL의 COALESCE()함수로 사용

MS SQL에서 IFNULL(컬럼, 0) 컬럼값이 null이면, 0을 넣는 함수가 있습니다. MySQL에서는 COALESCE(컬럼, 0)을 이용해서 null이면, 0을 넣는 함수를 사용합니다. 출처: ISNULL(value, 0) in WHERE clause MYSQL I believe you are trying to use the IFNULL() function. IF you replaced with IFNULL that should fix your query. I suggest you go one step further and use COALESCE() instead of IFNULL(), since COALESCE() is part of the SQL standard (and IFNULL() is ..

DB관련/MySQL 2019.03.02

SymmetricDS 이기종 DB 연동, Mobile의 SQLite도 연동 가능

2기종간의 DB을 연동하려면 보통Sync 프고르램들을 이용해서 작업을 합니다. SymmetricDS는 2개의 DB서버를 연동 할 수 있는 java기반의 시스템 프로그램입니다. 싱크을 담당하는 서버가 있어야 하고, 해당 서버 역할은 Java SE Version 7 or 8에서 구동이 가능합니다. (개인적으로 JDK 8로 서버를 셋팅 했습니다.) 실질적으로 해당 프로그램은 오픈 프로젝트이지만, 해당 프로그램을 Product으로 만든 회사 있습니다. 해당 프로그램은 90-day 프리버전을 지원합니다. http://www.symmetricds.org/download 다운로드는 Community Edition(무료)과 Professional Edition(유료)로 구성 Free Try은 90-day 가능합니다. ..

DB관련 2018.08.23

SQL Local DB 2017 (Express버전에서 LocalDB선택해서 설치) + SQL Operation Studio

프로그램에서 MSSQL Express의 용량이 커서, 설치에 항상 힘들었는데. 해당 부분의 MSSQLLocalDB로 설치하는 걸로 수정해 보았습니다. 해당 자료는 남겨봅니다. SQLLocalDB 2017 설치법 - 사용법 https://www.mssqltips.com/sqlservertip/5612/getting-started-with-sql-server-2017-express-localdb/ SQL Server 2017로 넘어오면서, 문제는 용량과 64비트 전용이 되었다는 점입니다. (32Bit은 미지원) 그러나, SQLocal은 용량이 적습니다. (약 40MB) SQL Local DB를 사용하면서 발생한 문제가 생겼는데, SQL Server Management Studio 17(2017용)의 용량의 ..

DB관련/SQL Server 2018.08.17

SQL Server2014 Standard 설치 및 삭제 DB Instance 수동 삭제하기

MS Window Server 2016 (x64)에 SQL Server 2014 Standard를 설치 방법 (우선적으로 Window update를 다 해주어야 합니다.) [우선적으로 설치준비 사항 (.Net) ] - Windows Feature (윈도우 설치 프로그램)중에 .Net Framework 3.5 (include .Net2.0 and .Net3.0)를 설치를 필요! SQL Server Standard의 경우, 다양한 기능들이 있는데. Database Engine Services만 설치해 보도록 한다. 윈도우 계정과, sa계정을 이용한 Mixed Mode를 사용하면 편리합니다. 여기서, DB가 저장소로 사용할 Directories를 선택할 수 있는데, "D:"드라이브 같이 특정 드라이브를 선택하..

DB관련/SQL Server 2018.08.15

SQL서버에서 paginate 만들기 쿼리

SQL 서버에서 페이지 나눔 처리에 대해 쿼리를 분석해 본다.SQL서버는 일반적으로 auto increment idx번호를 부여하지 않고 사용하여 설계되는 경우가 많습니다. Getting the total number of results and paginating are two different operations. For the sake of this example, let's assume that the query you're dealing with isSELECT * FROM Orders WHERE OrderDate >= '1980-01-01' ORDER BY OrderDateIn this case, you would determine the total number of results using:S..

DB관련/SQL Server 2018.05.08

Oracle 쿼리중에 (+) 의 의미 - where절에 더하기 표시의 의미

Oracle 쿼리중에 (+)가 있는걸 보고 참 생소해서 확인해 보니. 해당 쿼리가 OUTER JOIN을 위한 표현입니다. SELECT * FROM a, b WHERE b.id(+) = a.id -- Oracle OUTER JOIN SELECT * FROM a LEFT OUTER JOIN b ON b.id = a.id -- 동일한 표현 a.id = b.id (+) -- LEFT OUTER A.id(+) = b.id -- RIGHT OUTER Outer Join은 정상적으로 조인 조건을 만족하지 못하는 행들까지도 보기위한 방법입니다. (그림 예제 출처 :m.blog.naver.com/yysvip/220132590942 ) (+)기호는 Oracle 8i까지는 한쪽에만 가능, Oracle 9i이후부터 Full ..

DB관련/Oracle 2018.03.15

mssql - sqlcmd명령으로 update query를 파일로 만들어 실행하기.

sqlcmd를 통해서 update를 bat파일로 만들기 (주의: sqlcmd.bat과 같이 명령어(sqlcmd)를 파일이름으로 사용하면 무한 loop가 발생합니다.) 1) query.sql 만들기업데이트등 실행할 명령의 파일을 만듭니다. 일반 sql management studio의 쿼리를 주듯이 하면 됩니다.USE {디비명} update TEST set SYNC_DATE=null, UPDATE_DATE=getdate() where ORDER_ID='1234';update TEST set SYNC_DATE=null, UPDATE_DATE=getdate() where ORDER_ID='2345'; 2) runQuery.bat 만들기@ECHO OFFsqlcmd -E -S localhost -i "c:\uni..

DB관련/SQL Server 2018.02.21

SQLServer ldf 로그 파일 줄이기 - SQL Server Management Studio 사용

초기 복원을 했는데도, ldf로그 파일이 생각외로 큰 경우가 있습니다. 디비명_log.ldf (LOG)파일 Shrink 하는 방법log파일이 크면, DB Backup을 하여도, Log 파일이 까지 백업이 되어서, 최종 백업 파일이 커집니다. [DB 설정 - Recovery model: Simple로 변경](1) DB선택후, Propeties선택(2) 설정에 Options에 Recovery model:에 Simple로 설정값 변경. [로그 파일 - Shrink(줄이기)](1) DB 선택후, Tasks > Shrink > Files선택(2) Log를 선택하고, OK를 선택하면, 로그가 삭제 됩니다. [Youtube: LOG 파일 Shrink]

DB관련/SQL Server 2018.02.07
1 2 3