728x90
반응형

DataBase 10

H2 Database 설치 및 IntelliJ 세팅 (Window)

H2 DB는 교육용으로 사용하거나 실무에서 TEST목적으로 사용하는 가벼운 데이터베이스이다. 인프런 김영한 님의 강의를 들으면서 설치하고 세팅을해본다. 우선은 H2 DB로 JDBC, JDBCTepmlate, JPA를 구현해본 뒤 추후 MySQL로 변경할 예정이다. https://www.h2database.com/html/main.html 에 접속한다 H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Co..

테이블 생성시 외래키와 제약조건 설정 방법 (FOREIGN KEY, REFERENCES, CONSTRAINT)

기사시험을 보면서 햇갈리는 부분이 생겨 다시금 정리해본다. CREATE TABLE table_1 ( column1 char(1) ); CREATE TABLE table_2( column1 char(1) FOREIGN KEY (column1) REFERENCES table_1(column1) ); 컬럼명을 선언해 준 뒤 FOREIGN KEY 키워드를 통해 새로운 구문을 선언해주는 방식이 있다. CREATE TABLE table_2( column1 char(1) REFERENCES table_1(column1) ); 위와 같이 컬럼을 선언함과 동시에 한번에 설정이 가능하다. 만약 참조하는 테이블의 컬럼명과 일치한다면 다음과 같이도 선언할 수 있다. CREATE TABLE table_2( column1 cha..

DataBase 2022.04.24

selectKey 짧은 설명과 사용 예시

exMapper.insert(addParam); public Integer insert(final T param) throws Exception; SELECT NOW(6) AS INSERT INTO ex_table (ex_dtkey) values(#{ex_dtkey}) selectKey의 keyProperty값에 해당하는 데이터를 받아옴과 동시에 Service단 메서드 호출부에 값을 반환한다 사용 예 : 자동증가값 java단에서 값을 처리(생성)하여 받아오는게 아니라 위 코드처럼 쿼리로부터 현재 시간을 기준으로 값을 "생성" 해 내어 그 값을 테이블의 컬럼에 저장함과 동시에 해당 쿼리를 호출한 자바의 메서드의 매개변수에 반환할때 사용. 1. 쿼리를 통해 생성과 동시에 insert한 값을 기준 -> : 자..

DataBase/My SQL 2022.04.14

SQL 복수개의 테이블로부터 count한 값들을 더하는 쿼리문 (UNIONALL / sum() )

특정 페이지내에서 특정 값이 존재할 때 이를 삭제하는 경우 만약 해당하는 특정 값이 A테이블의 PK이고, 외래키로 1:1 관계가 맺어져 있는 다른 복수개의 테이블에서 사용되고 있을 때, 삭제를 하게되면 참조 무결성으로 인해 오류가 발생한다. 따라서 이를 방지하기 위해 예를들어 만약 내가 특정 웹 페이지에서 특정한 값을 (행, 게시글, 댓글, 회원) 삭제할 때 삭제를 완료하기 전 즉, 삭제를 요청하는 순간 DB로부터 조회를 한 뒤 조건이 성립되면 삭제대신 메시지 등을 통해 사용자에게 알린 후 삭제를 방지한다. 우선 쿼리를 차근차근 설계한다. 특정값이 특정 테이블로부터 존재하는 쿼리는 count(*) 함수를 통해 조회할 수 있다. WHERE 조건절에 값이 소속되어있는 컬럼을 기준으로 해당 값이 일치하는 조건..

DataBase/My SQL 2022.03.25

[MySql]DB 데이터 공백존재 컬럼 공백제거 REPACE()

DB의 데이터에 예를들어 member 테이블에 이름을 입력하는 name 컬럼이 있다고 가정한다. name 컬럼에 '홍길동 1' '홍길동 2' '홍길동 3' 과 같이 공백이 들어가있고 이 데이터들을 '홍길동1' '홍길동2' '홍길동3' 과 같이 공백을 제거하여 수정하고싶을때 REPLACE함수를 사용하여 제거한다. UPDATE member SET name = REPLACE(name, ' ', ''); REPLACE함수의 1 번째 인자에는 수정하고자 하는 컬럼명을입력하고 2 번째 인자에는 컬럼에 들어가있는 수정될 문자 즉, 공백인 ' ' 그리고 3 번재 인자에는 수정할 문자인 ''를 입력한다 name컬럼의 모든 데이터중에서 공백 ' '문자가 포함되어있는 문자열을찾고 해당 문자열의 ' '문자를 ''를 통해 공백..

DataBase/My SQL 2021.12.30

Oracle 부적합한 열 유형:1111 오류 - jdbcType (마이바티스)

1. 데이터 타입이 다른 경우 2. Map을 파라미터로 넘길때 Map 객체의 Parameter가 Null인 경우 3. JSP view request Parameter 값이 없는 경우 4. form id 또는 name 값이 없는 경우 5. ajax 사용시 value 값이 null인 경우 보통은 Parameter로 받은 값이 null일경우 이 값을 쿼리문으로 넘길때 해당 컬럼이 null을 허용하는 컬럼임에도 불구하고 부적합한 열유형 이라는 쿼리문 에러를 띄운다. 예를들어 쿼리문을 통해 Insert (삽입) 작업을 할때 제약조건에 의해 null 값을 허용하고 있는 컬럼에 null 이 넘어올때 해당 오류가 발생한다. 이 경우에는 마이바티스 쿼리문에서 #{Parameter} 형태를 #{Parameter, jdbc..

DataBase/Oracle SQL 2021.11.02

[MyBatis] 동적쿼리문 <if, choose, when, otherwise, sql, include> (if~then/elseif~then 사용불가)

MyBatis에서의 동적 쿼리문 처리방법 JDBC방식의 Servlet이나 jdbcTemplate에서 사용되는 기본적인 동적(if,else) sql문 입니다 SELECT * FROM (SELECT rownum rnum, board_no, title, content, writer, reg_date, view_cnt FROM (SELECT * FROM mvc_board WHERE IF #{condition} == '' THEN ELSEIF #{condition} == title THEN title like '%'||#{keyword}||'%' ELSEIF #{condition} == content THEN content like '%'||#{keyword}||'%' ORDER BY board_no DESC))..

DataBase/My SQL 2020.09.07

[JDBC] SQL 쿼리문/ 테이블 생성, 설계 /방식별 기본문법 (JDBC,Mybatis)

게시판 테이블 설계 예제 create table board( bno int primary key --게시판 번호 ,writer varchar2(20) not null --작성자 ,title varchar2(200) not null --제목 ,content varchar2(4000) --내용 ,viewcnt int default 0 --조회수, default0 제약조건:굳이 해당컬럼에 레코드를 저장하지 않아도 기본값 0 저장됨. ,regdate date ); 테이블 생성 select * from board; board 테이블의 모든(*)행을 조회 select * from board order by bno desc; 번호값을 기준으로 내림차순 정렬 조회 create sequence bno_seq start ..

DataBase/Oracle SQL 2020.09.02

My SQL 설치 및 환경설정 - (정리예정)

MySQL 큰회사가 아니라면 오라클을 쓸 일이 업습니다 개인개발이나 스타트업 소규모회사에서는 마리아DB라는것을 사용합니다. MySQL은 마리아DB의 부모같은 존재입니다. 둘은 똑같다고 보시면 됩니다. 주소창에 mysql.com 을 입력하고 Downloads - 클릭 Community Edition 개인 무료버전을 다운받습니다 - 클릭 중간쯤에 MySql on Windows - 클릭 MySQL Installer 클릭 후 다운로드 installer실행 - I accept the license terms 체크박스 체크 - Next Custom - Next 1. MySQL Servers - MySQL Server - MySQL Server8.0 - MySQL Server8.0.11 x64 8버전 확인 후 추가 ..

DataBase/My SQL 2020.09.01