DataBase
-
MySQL(MariaDB)과 Oracle 쿼리 문법 비교DataBase/Oracle 2018. 8. 8. 17:40
기능 MySQL(MariaDB) Oracle Null일 경우 값 처리 IFNULL('컬럼 값', '대체 값') NVL('컬럼 값', '대체 값') 문자열 합치기 CONCAT('합칠 값1', '합칠 값2', '합칠 값3' ) CONCAT('합칠 값1', '합칠 값2') - 오라클의 경우 값 2개까지만 병합가능 또는 '합칠 값1'||'합칠 값2'||'합칠 값3' 데이터 1개만 보기 LIMIT 1 WHERE ROWNUM = 1 (where 조건 절 안에서) 시스템 현재 시간 NOW() SYSDATE alias 사용법 as 'alias 명' 또는 alias 명 또는 as alias 명 as alias명 또는 alias 명(자동 대문자 전환) 대소문자 구분한 값을 보고 싶을 경우, as "alias 명" 또는 "..
-
[MariaDB/MySQL]데이터 insert하면서 중복되면 update하는 기능DataBase/MariaDB & MySQL 2018. 5. 5. 14:34
다른 개발자분의 소스를 보다가 DB에 insert를 시행하는데 만약 데이터가 있다면 기존의 데이터를 덮어쓰기가 가능한 방법을 찾았다. MariaDB에만 있는 기능인지 오라클이나 다른 DB에도 있는 기능인지는 모르겠다. 일단, MariaDB/MySQL에 존재하는 기능이다. 그 기능은 INSERT ON DUPLICATE KEY UPDATE 기능이다. Primary key/Unique key가 기존에 존재하는 데이터를 찾을 경우, 그 데이터에 UPDATE를 하는 것이다. *쓰는 방법 예시 12345678910111213 INSERT INTO book_table SET book_seq = 1000 -- primary/unique key , book_title = 'greek zorba' , book_price ..
-
[iBatis+Spring+mariaDB] AUTO_INCREMENT의 초기화와 transaction에 관하여DataBase/MariaDB & MySQL 2018. 5. 3. 09:42
회사에서 iBatis를 사용하는 부분이 아직 남아있다.(대부분 MyBatis로 전환했지만.) iBatis부분에서 기능을 활용해 sequence를 만들어내고 있었다. 이 부분은 auto_increment로서 숫자가 자동으로 올라가고 있었다. 난 지금 JUnit test를 하는 중이기 때문에 클래스 부분에서 @Transactional을 적용하고 있었다. 몰랐던 사실이지만, auto_increment는 transaction이 적용되지 않는다는 것이었다. 그 뜻은 auto_increment는 rollback이 적용되지 않는다는 것. JUnit test를 할 때 이런 경우가 있다면, 테스트를 한 번 해보고 @Ignore처리를 하면 좋을 것 같다. auto_increment를 돌릴 수 있는 방법이 있다면, 직접 s..
-
기본 DML SQL문 작성.(SELECT문, INSERT문, DELETE문, UPDATE문)DataBase 2018. 3. 17. 15:41
가끔씩 헷갈릴 때가 있어서 내가 필요해서 내가 기록해두기! 1. SELECT문(해당 테이블에서 데이터를 조회하는 SQL문) SELECT 조회하고자 하는 컬럼 FROM 테이블명WHERE 검색조건; ex) 사원 테이블에서 사원 번호가 1000번인 사람의 주소지를 알고싶다면?employee(테이블명), employee_number(사원 번호 컬럼), address(주소 컬럼) SELECT address FROM employee WHERE employee_number = 1000; 2. INSERT문(해당 테이블에 데이터를 삽입하는 SQL문) INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3) VALUES (컬럼1에 해당하는 데이터1, 컬럼2에 해당하는 데이터2, 컬럼3에 해당하는 데이터3); ex) 카..
-
[mySQL] 프로시저 만들기(DECLARE, SET, IN, IF, ELSEIF 등)DataBase/MariaDB & MySQL 2018. 3. 5. 19:55
MariaDB에서 프로시저를 처음 만들어봤는데, 그 방법을 정리. 다른 방법도 많이 있지만 지금 내가 만든 프로시저로 내가 원하는 결과 값은 얻을 수 있었다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647DROP PROCEDURE IF EXISTS check_insert; /* 기존에 프로시저가 존재하면 DROP */CREATE PROCEDURE `check_insert`(IN in_pk_seq int(11) /* 받아야할 파라미터 */ , IN in_detail_seq int(11) , IN in_group_num varchar(32) , IN in_company_num varchar(32) , ..