일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- db
- JavaScript
- Security
- 프로그래머스
- JPA
- 코틀린
- Vue
- Git
- GitHub
- IntelliJ
- Eclipse
- oracle
- 생성
- 스프링
- Spring
- mybatis
- 오라클
- 넥사크로
- 함수
- jquery
- 에러
- 방법
- kotlin
- 시큐리티
- 자바
- aws
- 알고리즘
- Java
- error
- 쿼리
- Today
- Total
목록DB (25)
송민준의 개발노트
DB에 대한 포스팅은 기본적으로 oracle을 기준으로 대부분 하니 참고... 기본적으로 내장형 함수는 각 DBMS별로 차이가 있지만 거의 비슷한 방법으로 사용이 가능하다. 종류로는 형변환 함수, 문자열 및 숫자형 함수, 날짜형 함수가 있다. 형변환 함수는 명시적과 암시적 형변환이 있는데 암시적인 것은 DBMS가 알아서 처리해주는 것이고 명시적은 사용자가 직접 선언해주는 것이다. // 형변환 TO_NUMBER(문자열) : 문자열을 숫자로 변환 TO_CHAR(숫자 or 날짜, [FORMAT]) : 숫자 혹은 날짜를 지정된 FORMAT의 문자로 변환한다. TO_DATE(문자열, FORMAT) : 문자열을 지정된 FORMAT의 날짜형으로 변환한다. 형변환에 대한 보다 자세한 포스팅은 아래 글에 해놨다. htt..
뷰나 서비스단에서 수정 후 저장도 가능하겠지만 쿼리로 하는게 중복코드를 제거하기에 좋은 것 같다. 기본적으로 * 기본적으로 대소문자 상관없음 -- 연 월 일 (문자 사이에 원하는 기호 넣으면 됨) SYSDATE -- 2020-07-07 16:59:51 TO_CHAR(SYSDATE) -- 20/07/07 (기본 세션 설정) TO_CHAR(SYSDATE, 'YYYYMMDD') -- 20200707 TO_CHAR(SYSDATE, 'YYYY-MM-DD') -- 2020-07-07 TO_CHAR(SYSDATE, 'YYYY/MM/DD') -- 2020/07/07 TO_CHAR(SYSDATE, 'YYYY*MM*DD') -- 2020*07*07 -- 연 월 일 개별 TO_CHAR(SYSDATE, 'YYYY') -- 2..
Oracle을 기준으로 DB는 저장공간을 Extent 단위로 할당한다. 만약 MAX 값 넘어서게 되면 용량 초과 오류가 발생한다. 또한 DELETE문으로 데이터를 삭제하면 용량이 감소하는 것이 아닌 삭제 여부만 표시한다.(용량은 그대로) 테이블의 용량을 초기화하기 위해선 // 테이블 데이터 삭제, 용량은 감소 X DELETE FROM 테이블 // 테이블 데이터 삭제, 용량 초기화 TRUNCATE TABLE 테이블
DB에서는 데이터를 입력하면 로그파일에 기록한다. 즉 DML이 발생하면서 많은 양의 로그들이 발생하는 것이다. 이런 부분에서 성능이 저하될 수도 있다. Check point 라는 이벤트가 발생하면 로그파일의 데이터를 데이터 파일에 저장한다. Nologging 옵션은 로그파일의 기록을 최소화시켜서 입력 시 성능을 향상시키는 방법이다. Nologging 옵션은 Buffer Cache 라는 메모리 영역을 생략하고 기록한다. INSERT INTO DEPT_TEST SELECT * FROM DEPT; 위와 같은 INSERT 구문을 Direct Insert를 사용함면 적은 양의 Redo를 생성한다. (성능 개선을 위해선 Redo를 줄여야함) ALTER TABLE DEPT_TEST NOLOGGING; INSERT /..
가변컬럼 #{값} 과 ${값}의 차이 #{값} : ''을 포함한 값을 반환 ex) 값이 field -> 'field' ${값} : 값만 반환 ex) 값이 field -> field 컬럼을 변경하고 싶다면 ${값}을 쓰면된다. (아래 Like사용법에 예제 있음) LIKE 사용법 기본적으로 ibatis인가 mybatis인가에 따라 문법이 다르고 DB마다 또 문법이 다르다. 가장 대표적인 oracle과 mysql의 mybatis 버전 사용법에 대해서 기록하겠다. Oracle where ${field} like '%'||#{text}||'%' MySql where ${field} like CONCAT('%',#{text},'%') 마이 바티스에서 if, choose 사용법 select * from (select..
삭제하고싶은 테이블을 board라고 하면 drop table board cascade constraints; 이렇게 삭제하며 된다.
create or replace procedure testProcedure(v_empno in number) is v_dname varchar2(300); begin update emp set sal = sal*1.2 where empno = v_empno; dbms_output.put_line('테스트입니다.'); end testProcedure; 자바에서 sql문은 다음과 같이... exec testProcedure(?);
계층형 쿼리(Hierarchical Query)는 오라클에서만 지원하는 기능이다. 관계형(relational)이라는 의미가 서로 평등하고 수평적인 관계를 의미하는 반면 계층형(hirearchical) 구조는 이와는 다르게 평등한 관계가 아닌 수직적인 관계를 가진다. 한마디로 말해서 관계형이 평면적이라 한다면 계층형은 수직적 구조라 할수있다. 계층형 정보에는 사회적인 의미의 계급구조, 등이 있고 소프트웨어 관점에서 살펴보면, 웹사이트에서 사용하는 답변형 게시판이나 BOM(Bill Of Material)등이 계층형 정보의 전형적인 예이다. 예를 들어 직원 테이블에 기본키가 사원번호이고 상관번호를 가지고 있다면 계층 구조를 사용할 수 있다. EMP 테이블에서 select level, empno, ename f..