DataBase

    728x90
DataBase/PostgreSQL

[PostgreSQL] 콘솔 console 에서 변수 사용법

각각 DB에는 장단점이 있는 것처럼 ... postgreSql 에서는 변수 사용이 복잡하다.MariaDB 는 SET 변수명 으로 간단하게 선언이 가능한데 .. (보러가기 클릭)PostgreSQL 은 그렇지 않다.  콘솔 변수 사용방법여러가지 방법이 있지만, 그나마 간단해 보이는 with 임시 테이블을 사용하는 방법을 설명하겠다. with 변수 as ( select '값' as 변수명 select 'skylar' as vName)select *from 테이블명 where member_name = (select vName from 변수);  WITH 사용 예시실제 사용 사례는 다음과 같다.with 변수 as ( select '2411020001' as vGroup_id), this_week AS..

DataBase/MariaDB

[MariaDB] 콘솔 console 에서 변수 사용법

쿼리문을 작성하다보면 변수로 받아오는 부분에 실제 데이터를 넣어 테스트해야 한다.해당 변수를 실제 값으로 변경해주면, 테스트 할때마다 해당 값을 바꿔줘야 한다. 변경해야하는 부분이 많을때, ctrl+ R 로 replace 해줘도 되지만 다른 부분이 바뀔 염려도 있고 생각보다 번거롭다.아래와 같이 변수를 설정해주면 변수 값을 바꿀때 한번만 바꿔도 된다. 훨씬 찾기도 쉽고. 해당 console 세션에 잠시 변수를 선언하는 방식이라, 시간이 지나면 풀려서 다시 선언해줘야 한다.해당 콘솔 외에는 사용할 수 없기도 하다. SET @vTEST = 'skylar';SELECT * FROM MEMBERWHERE USER_ID = @vTEST ;

DataBase/MariaDB

[MariaDB] 문자열 데이터 길이 재는 법

타입이 VARCHAR(20) 인 데이터의 문자열 길이 재는법 count 사용 시 아래와 같은 에러 메세지가 발생한다.count 대신 length 를 사용해주면 된다.SELECT LENGTH(컬럼명) FROM 테이블명

DataBase/MariaDB

[MariaDB] 프로시저 수정 이력, 기록 확인하기

프로시저의 수정 이력을 확인해야 하는 일이 생겼다.INFORMATION_SCHEMA.ROUTINES 에서 프로시저의 생성일, 최근 수정일이 확인 가능하다. SELECT ROUTINE_NAME, LAST_ALTEREDFROM INFORMATION_SCHEMA.ROUTINESWHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME = '프로시저명';

DataBase/MariaDB

[MariaDB] SQL 쿼리문 검색결과 중 설정된 개수만 보여주고 싶을 때

SQL 쿼리문에서 나온 검색결과 100+ 개중 가장 최신의 1개만 보여주고 싶을때 어떻게 해야할까?LIMIT 숫자 를 사용하면 검색 결과를 숫자대로 자를 수 있다.SELECT * FROM TEST_TABLE A LIMIT 1; 여기에 ORDER BY 도 같이 사용하여 최신의 파일 순서대로 정렬하여 원하는 데이터를 선택한다.SELECT * FROM TEST_TABLE A ORDER BY INS_DATE DESCLIMIT 1; LIMIT 옆의 숫자에 따라 나오는 개수가 달라진다. 10개만 나오게 하고싶으면 10, 5개만 나오게 하고싶으면 5 입력.SELECT * FROM TEST_TABLE A ORDER BY INS_DATE DESCLIMIT 10;

DataBase

[IntelliJ] SQL 프로젝트 파일 인코딩 변경하기

reload in encoding명 ... 버튼을 선택해야 하는 것을 실수로 set project encoding .. 을 선택했다. 기존에 파일 인코딩이 엉망이어서 ... 이런 실수가 발생했다. sql 파일 생성 시 기본 인코딩이 x-windows-949 로 지정되는 문제가 발생했다. 처음에는 괜찮았는데, 일이 바빠 의식하지 못하니 x-windows-949 로 커밋을 해버리는 일이 자주 발생하게 되었다. 사실 실수하면 커밋 두번 하면 되고 처음부터 신경써주면 돼서 큰 문제는 아니긴 한데, 커밋할때마다 화면명/화면코드/내용 작성하는게 너무 귀찮아졌다! 시간이 지날수록 신경써주는게 어려워져서 결국 해당 문제를 해결하려고 한다.  프로젝트 인코딩 변경방법왼쪽 File > Settings > File Enco..

DataBase/MariaDB

[MariaDB] 검색조건 넣기, 파라미터가 null 일때 조건 안 걸기 (IFNULL, NVL)

SQL 문에서 파라미터가 null 로 넘어올 경우 해당 조건을 쿼리문에서 제외하려면 어떻게 해야할까?아래의 쿼리문에서 iDEPARTMENT 가 NULL 로 넘어올 경우 해당 조건이 NULL 인 TEST_TABLE 의 결과만 나오게 된다. 그러면 DEPARTMENT 를 같이 넘길때만 검색조건으로 추가하고 싶을 경우가 있을 것이다. -- iNAME, iDEPARTMENTSELECT *FROM TEST_TABLEWHERE NAME = iNAME AND DEPARTMENT = iDEPARTMENT 검색조건으로 iDEPARTMENT 를 넘길 경우, 검색조건에 문자를 입력하지 않으면 NULL 로 넘어간다.이때 쿼리문에 NULL 로 넘어올 경우에 대한 처리문을 추가해주면 된다. -- iNAME, iDEPARTMENT..

DataBase/MariaDB

[MariaDB] SQL 에서 SUBSTRING,LEFT,RIGHT 사용법

SUBSTRING이란substring은 문자열을 자르기 위해 사용하는 함수이다. DataBase 시스템마다 문법이 조금 다를 수 있다. SUBSTRING(문자열, 시작위치, 길이)LEFT(문자열, 길이)RIGHT(문자열, 길이)   SUBSTRINGSUBSTRING 은 지정한 시작위치에서 길이만큼 자를때 사용한다.예를 들어, SUBSTRING('TEST TEST SUBSTRING',6,4) 의 경우 6번째 자리인 T부터 길이 4까지인 TEST까지 자른다.TEST TEST (생략)12345678910(...)     시작 1234     LEFT왼쪽에서부터 지정한 길이만큼 자른다.   RIGHT오른쪽에서부터 지정한 길이만큼 자른다.

DataBase/MariaDB

[MariaDB] 오늘 날짜, 현재 날짜, 현재 시간 출력하기

오늘날짜CURDATE()CURRENT_DATENOW()SYSDATE()    * CURDATE() 와 CURRENT_DATE 의 차이두 함수는 기능적으로 동일하지만, 사용 방식에 차이가 있다. CURDATE() 는 함수 형태로 사용되며 괄호를 사용하여 호출해야한다. CURRENT_DATE는 키워드 형태로 사용되며 괄호 없이 사용할 수 있다. 따라서 기능적으로는 동일하므로 개인의 선호에 따라 선택하여 사용하면 된다. * CURDATE() 의 인자값CURDATE() 는 인자값을 받지 않기 때문에 괄호 안에 어떠한 값도 넣으면 안된다. * SYSDATE() 와 NOW() 의 차이SYSDATE() 는 날짜 조회를 기준으로 날짜 및 시간을 반환한다. 호출할 때마다 현재 시각을 반영하기 때문에, 같은 트랜잭션 내에..

DataBase/MariaDB

[MariaDB] lock wait timeout exceeded try restarting transaction 원인 및 해결방법

나의 경우에 auto-commit 을 해제해놓고 여러 script 및 테이블에서 데이터 작업중이었다.DBeaver 을 사용중이었는데, DBeaver 을 껐다가 키면 해당 에러 없이 다시 작동하였다. 일주일 내내 해당 오류와 씨름하고 서칭했다.wait 시간을 늘리는 등의 작업은 나에게 DB 설정 수정권한이 없었고, 확인해보니 이미 기간이 8천인가 8만? 환산해보니 24시간으로 되어있어 해당 시간을 늘리는 작업은 DB 관리자분께 요청하지 않았다.  원인내 케이스에는 Manual Commit 으로 설정해놓고 여러 스크립트에서 동시에 작업해서 그런 것 같다. 해결방법커밋을 전부 Auto Commit 으로 변경하고 작업하니 해당 에러가 발생하지 않았다. 한 테스트 문서에서 힌트를 얻었었는데, 급한 업무여서 빠르게..

    반응형
Lar
'DataBase' 카테고리의 글 목록 (2 Page)