DataBase/SQL
[Postgresql] 주석처리 했을 때 나는 오류 Could not set parameters for mapping: / Error setting non null for parameter #3 with JdbcType null .
postgresql로 인서트 문을 작성했다. INSERT INTO LOG_TABLE(USR_ID, LOG) -- VALUES(DGUARD.ENCRYPT('CRYPTO', 'ID', #{usrId}), #{log}) VALUES(#{usrId}), #{log}) DGUARD 암호화 테스트는 나중에 하려고 주석처리 하고서 인서트 문을 작성했는데 에러가 터져서 멘붕이 왔다. 대체 왜... 왜지? 자꾸 3번째 파라미터값을 걸고 넘어지는데 해당 파라미터값은 date값으로 default가 설정되어 있는 컬럼이었다. 혼란의 도가니... org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: C..
[MSSQL/ORACLE] 날짜를 문자로 변환하기
CONVERT() 함수, TO_CHAR() 함수에 사용할 수 있는 포맷 정리 형식 //MSSQL CONVERT([to-be 타입], [as-is 데이터], [변환하려는 포맷]) CONVERT(VARCHAR, GETDATE(), 120) //ORACLE TO_CHAR([as-is 데이터], [변환하려는 포맷]) TO_CHAR(SYSDATE, 'YYYY-MM-DD') 자주 쓰는 날짜 포맷 번호 MSSQL 포맷 ORACLE 23 yyyy-mm-dd YYYY-MM-DD 120 yyyy-mm-dd hh:mi:ss (24h) YYYY-MM-DD HH:mm:ss YYYY-MM-DD HH24:MI:SS 112 yyyymmdd YYYYMMDD 21 yyyy-mm-dd hh:mi:ss.mmm (24h) YYYY-MM-DD..
[SQLD] 개념 정리 #04 이것저것 1탄
NULL값의 위치 ORACLE에서는 NULL을 가장 큰 값으로 인식한다. SQL Server에서는 NULL을 가장 작은 값으로 인식한다. 정렬할 때 조심해야 함. SELECT 문장 실행 순서 (F-W-G-H-S-O) FROM (발췌 대상 테이블을 참조한다) WHERE (발췌 대상 데이터가 아닌 것은 제거한다) GROUP BY (행들을 소그룹화 한다) HAVING (그룹핑된 값의 조건에 맞는 것만 출력한다) SELECT (데이터 값을 출력/계산한다) ORDER BY (데이터를 정렬한다) 순수 관계 연산자의 종류 SELECT, PROJECT, JOIN, DIVIDE 집합 연산자의 종류 UNION: 여러 개의 SQL문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 만든다. UNION ALL..
[SQLD] 개념 정리 #03 정규화 과정
정규화 과정 1NF (제 1 정규형) 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있는 정규형 릴레이션의 모든 속성값이 원자값으로만 되어 있는 정규형 릴레이션의 모든 속성이 단순 영역에서 정의됨 2NF (제 2 정규형) 릴레이션 R이 1NF이고, 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형 3NF (제 3 정규형) 릴레이션 R이 2NF이고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않는 정규형 무손실 조인 또는 종속성 보존을 저해하지 않고도 항상 3NF설계를 얻을 수 있다 BCNF(Boyce-Codd 정규형) 릴레이션 R에서 결정자가 모두 후보키인 정규형 3NF에서 후보키가 여러 개 존재하고 서로 중첩되는 경우 적용하는, 강한 제3정규형이라고도..
[SQLD] 개념 정리 #02 데이터베이스의 정규화
정규화란? 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정이다. 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정 정규형은 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어남 데이터베이스의 논리적 설계 단계에서 수행 논리적 처리 및 품질에 큰 영향을 미침 정규화된 데이터 모델은 일관성, 정확성, 단순성, 비중복성, 안정성 등을 보장 정규화 수준이 높을수록 유연한 데이터 구축이 가능하고 데이터의 정확성이 높아지는 반면 물리적 접근이 복잡하고 너무 많은 조인으로 인해 조회 성능이 저하됨 정규화의 목적 데이터 구조의 안정성 및 무결성 유지 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만듦 효과적..
[SQLD] 개념 정리 #01 시스템 카탈로그, 식별 관계/비식별 관계
지인과 함께 3/20일 sqld 자격증을 준비중이다. 노랭이 SQL 자격검정 실전문제를 풀고 모르는 개념들을 정리해나가는 식으로 공부하려고 한다. 일단 처음 보긴 하지만 그렇게 많이 어렵진 않다. 문제와 정리한 내용을 2회독 하는 것이 목표인데, 부디 합격할 수 있기를 바란다. (우선 시험비용이 5만원... 이거면 어지간한 오마카세 런치가격이자나! 절대 떨어질 수 없다.) 시스템 카탈로그 (System Catalog) 시스템 카탈로그의 의미 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블임 카탈로그들이 생성되면 데이..
[ORACLE] CLOB형식 데이터를 String으로 받을 때
Could not write content: Direct self-reference leading to cycle, ArrayList와 Hashmap관련된 에러가 떴다. 이건 전에도 겪어본 적 있는데, json을 호출하는 @responsebody 어노테이션이 꼬리에 꼬리를 물게 되면 발생했던 에러다. 근데 이번엔 CLOB to String 변환 과정에서 발생하는 것 같았다. WARN 텍스트에 CLOB 데이터가 있었거든.. CLOB이 그리 녹록치 않은 놈이라는 건 이미 오래오래전에 겪어보았다. 방법을 몇가지 찾아보았는데 java api를 쓰는 방법은 내가 프로젝트에서 쓰는 방식이 아니라 적용하기 너무 어려울 것 같았다(는 사실을 30분은 지나고서야 알게 됨) 오라클 sql구문에서 DBMS_LOB.SUBST..
[ORACLE] 파이널 프로젝트 매치업 조회부분 sql 쿼리 짠 것
파이널 프로젝트, 에러와 좌절로 점철되어 있지만... 그래도 뿌듯한 걸 하나 기록. 매치업 이력서 조회 시 더보기 버튼으로 페이징을 대신하고 검색기능을 추가했는데 그러다 보니까 sql부터 vo, 로직까지 전부 직접 짜게 되었다. 수업시간에 한 건 일반적인 페이징이었는데 왠지 재미없어보여서... 처음엔 이걸 내가 할 수 있을까, 했는데 하고 보니까 되게 뿌듯하고 마음에 든다. 실무에 뛰는 분들이야 이건 당연한거지, 하겠지만 난 처음이니깐 (._. view 만드는 sql문 ▼ view를 활용한 sql문. 매치업멤넘을 모아서 셀렉트하는거라 이렇게 되었다. ▼ select * from ( select C.* from ( select rownum as RN, (select count(*) from matchupl..