본문 바로가기
반응형

DBMS96

[PostgreSQL] 시퀀스(Sequence) 사용법 (nextval, currval, setval) PostgreSQL에서 시퀀스(Sequence)를 사용하는 방법에 대해 알아보자. ▷ 구문 create : CREATE SEQUENCE seq_name nextval : nextval('seq_name') currval : currval('seq_name') setval : setval('seq_name', seq_val, [true/false]) drop : DROP SEQUENCE seq_name 이제 예제를 통해 직접 알아보도록 하자. ▷ 예제1) 시퀀스 생성과 삭제 CREATE SEQUENCE mine_seq; DROP SEQUENCE mine_seq; ▷ 예제2) 시퀀스 현재값과 다음값 SELECT currval('mine_seq'); SELECT nextval('mine_seq'); 여기서 c.. 2020. 10. 4.
[ORACLE] ORA-12704: 문자 집합이 일치하지 않습니다.(feat. UNISTR) ORA-12704: 문자 집합이 일치하지 않습니다. PL/SQL: ORA-12704: 문자 집합이 일치하지 않습니다 프로시저를 사용하면서 접하게된 에러이다. 주로 컬럼의 타입을 우선적으로 살펴보는 것을 추천한다. 나같은 경우에는 개발서버와 운영서버의 데이터 타입이 달라 발생했던 에러였다. (이게 말이 되는것인가...!!!) 그래서 VARCHAR2 컬럼의 데이터를 가지고 NVARCHAR2에 사용하고자 UNISTR(VARCHAR2 컬럼)으로 해결하였다. 2020. 7. 28.
[SQLite] SQLite DB Browser 에러 : https://download.sqlitebrowser.org/currentrelease 에 연결할 때 에러가 발생했습니다. - SQLite DB Browser 에러 -컴퓨터를 포맷해야하는 경우가 생겨 포맷을 하고나서 다시 환경을 잡는 도중에 SQLite DB Browser를 새롭게 설치하여 실행하는데 처음보는 에러가 발생했다(같은 버전 3.11.2임에도 불구하고 예전에 설치한거에선 이러한 에러가 발생하지 않았다.) 사실 큰 이슈사항 없는 에러이다.(그냥 일시적인 에러라 생각된다.) 기능 자체는 사용할 수 있는것으로 보아 그리 심각한 에러는 아닌듯 하지만 실행 시킬때마다 자꾸 떠서 거슬린다. 딱히 무슨 해결방안이 있는건 아니지만 신기하게도 32bit의 DB Browser을 사용하면 해당 에러가 발생하지 않고 깔끔하게 실행된다.(물론 모든 기능도 정상으로 돌아간다 PC는 64bit 임에도) ( SQLite DB Browser 설.. 2020. 4. 22.
[MySQL] 마이에스큐엘_중복된 데이터 무시하고 INSERT 하기 (feat. IGNORE) - INSERT IGNORE INTO - 데이터가 이미 있으면 따로 후속처리없이 그냥 아무행위도 안하고 나머지 데이터들만 INSERT를 진행하고자할 때 INSERT INTO 구문에 IGNORE을 추가해주면 된다.해당 구문은 다음과 같다 INSERT IGNORE INTO [TABLE] (COLUMN1, COLUMN2, ...) VALUES (VALUE1, VALUE2, ...) 기존 INSERT INTO 사이에 IGNORE을 추가해주기만 한거라 구문 자체는 매우 간단하다. 예) CREATE TABLE MINE(id VARCHAR(10) PRIMARY KEY,name VARCHAR(10), salary NUMBER) 가볍게 테이블 하나 있다 치고 INSERT IGNORE INTO MINE VALUES ("C.. 2020. 1. 17.
[MySQL] 마이에스큐엘_데이터 있으면 UPDATE 없으면 INSERT 처리 (feat. DUPLICATE ON KEY UPDATE) - DUPLICATE ON KEY UPDATE - 데이터가 있으면 UPDATE 없으면 INSERT 처리를 제어할 수 있는 DUPLICATE ON KEY UPDATE 구문이 어찌 보면 오라클의 MERGE INTO 구문과 비슷하다고 느껴진다.해당 구문에 대해 알아보자 INSERT INTO [TABLE] (COLUMN1, COLUMN2, ...)VALEUS (VALUE1, VALUE2, ...)ON DUPLICATE KEYUPDATE (COLUMN1 = VALUE1 , COLUMN2 = VALUE2, ...) 기존 INSERT INTO 구문에 뒷부분에 추가해서 써주기만하면 된다. 성능면에서도 괜찮은 구문이라는 말이 많다. 예) CREATE TABLE MINE(id VARCHAR(10) PRIMARY KEY,n.. 2020. 1. 15.
[SQLite] 시퀄라이트_데이터 있으면 UPDATE 없으면 INSERT 처리 (feat. INSERT OR REPLACE INTO) - INSERT OR REPLACE INTO 구문 -테이블에 데이터가 이미 있으면 업데이트 하고, 없으면 값을 넣어줘야 하는 경우가 있는데 오라클에서는 MERGE INTO 구문을 지원해 주기 때문에 편하지만 SQLite는 지원을 안해줘서 없는줄 알았는데 찾아보니 비스무리한게 하나 있어 정리해둔다. 바로 INSERT OR REPLACE INTO 구문이다.해당 구문에 대해 알아보자 INSERT OR REPLACE INTO [TABLE]( COLUMN1, COLUMN2, COLUMN3, ...)VALUES( VALUE1, VALUE2, VALUE3, ...)... -- WHERE 기타 등등 구문 자체는 기존 INSERT INTO 문과 동일하되 중간에 OR REPLACE가 추가된것이다. 예) CREATE TAB.. 2020. 1. 14.
[ORACLE] 오라클_MERGE INTO (데이터 여부에 따라 UPDATE / INSERT 처리) MERGE INTO ORACLE에서 제공하는 MERGE INTO 구문에 대해 알아보자. 테이블에 데이터가 이미 있으면 업데이트를 실행하고, 없을 경우 값을 넣어줘야 하는 경우에 MERGE INTO 구문을 사용하지 않는다면, 1. 값이 있는지 확인 2. 있으면 UPDATE 3. 없으면 INSERT 이렇게 3개를 선언을 해줘야 한다. 오라클에서는 이런 작업을 한번에 처리를 할 수 있도록 도와주는 구문을 제공하는데 이게 바로 MERGE INTO 구문이다. 하나하나 자세히 알아가보도록 하자. ▷ [구문] MERGE INTO [TABLE / VIEW] - update 또는 insert할 테이블 혹은 뷰 USING [TABLE / VIEW / DUAL] - 비교할 대상 테이블 혹은 뷰 (위 테이블과 동일할 경우 D.. 2020. 1. 8.
[SQLite] 시퀄라이트_NULL 값일때 값 처리 (ISNULL , IFNULL) - SQLite IFNULL - SQLite 에서는 NULL값일때 처리하고 싶으면 IFNULL을 사용하는게 좋다. 이게 오라클같은곳에서는 ISNULL, NVL 등을 사용하지만 SQLite 는 mySql 과 마찬가지로 IFNULL을 사용해주어야 한다. 사용법은 동일하기에 어떤걸 쓰느냐만 알면 쉽게 사용할 수 있다. SELECT IFNULL(MAX(SEQ),0) FROM testSql SELECT IFNULL(A,B) FROM TABLE A값이 NULL이면 B 값을 SELECT 해옵니다. 2019. 11. 24.
[SQLite] 시퀄라이트_자료형(Data Types) - SQLite 자료형 - SQLite 를 다루던 도중 데이터타입이 생각보다 많이 다르다는것을 접하여 해당 데이터타입을 기록해 두자.SQLite라는건 일반적으로 안드로이드를 개발할때 사용되는 로컬 DB 이다. 오라클을 쓰다 SQLite를 접하게 되면 명칭부터 좀 다른 데이터타입을 접하게 되는데 까먹지 않기위해 기록해두자.. 1 NULL 말 그대로 null 값이다. 2 INTEGER 1,2,3,4,6,8 bytes 의 정수 값이다. 3 REAL 8bytes의 부동소수점 값이다. 4 TEXT UTF-8, UTF-16BE, UTF-16LE인코딩의 문자열이다. 5 BLOB 입력된 그대로 저장된다. (바이너리 파일 등, 일반적으로 이미지, 비디오, MP3와 같은 대형 멀티미디어 파일을 데이터베이스에 직접 저장하는.. 2019. 11. 24.
반응형
TOP