Java 프레임워크 만들기 - JSP

디비버 데이터베이스 테이블 로우 등록 / 업데이트 / 복제 / 삭제 - DBeaver Database Table Insert / Update / Copy / Delete Row

carrotweb 2021. 5. 31. 12:41
728x90
반응형

디비버(DBeaver) 툴을 이용하여 테이블(Table)에 로우(Row)를 등록, 업데이트, 복제, 삭제를 하겠습니다.

1. 테이블 로우(Row) 등록(Insert)

오른쪽에서 "MBR_ACCOUNT_TB"에서 "Data"탭을 클릭하고 하단 툴바에서 "Insert(새로운 로우 추가)"버튼을 클릭합니다.

그러면 "NULL"로 채워진 로우(ROW)가 생성됩니다.

컬럼을 더블 클릭하거나 컬럼 선택 후 오른쪽에 있는 "Value"에서 값을 입력할 수 있습니다.

이전 로그인 서비스 사용했던 아이디와 패스워드를 사용하겠습니다.

"MBR_ID"는 "testid", "MBR_PWD"는 "testpwd", "MBR_NM"은 "홍길동", "REG_ID"는 "SYSTEM"으로 입력합니다.

하단 툴바에서 "Save"저장 버튼을 클릭합니다.

새로운 로우(ROW)가 생성되면서 "MBR_SEQ"가 자동으로 증가하고 "REG_DTM"은 생성된 시간으로 저장됩니다. 하단 툴바 오른쪽에 "Inserted : 1"로 표시됩니다.

만약, 테이블의 "Charset"이나 컬럼의 "Charset"을 "utf8" 또는 "utf8mb4"으로 설정하지 않으면 새로운 로우(ROW)를 저장할 때 다음과 같은 오류가 발생합니다.

"Incorrect string value: '\xEF\xBB\xBFtes...' for column `test`.`mbr_account_tb`.`MBR_ID` at row 1"는 "잘못된 문자열 값 : 첫 번째 로우에 'test'.'mbr_account_tb'.'MBR_ID' 컬럼의 '\xEF\xBB\xBFtes...'"

 

그 이유는 마리아디비(MariaDB) 설치 시 기본 서버 언어 셋(default server's character set)으로 "UTF8"로 설정하였기 때문입니다.

테이블 또는 문자가 입력되는 컬럼에는 "Charset"를 "utf8" 또는 "utf8mb4"으로 설정해야 합니다.

테이블의 "Charset"이 "latin1"으로 되어 있어 서버의 "Charset"과 다르기 때문에 문제가 발생합니다.

테이블의 "Charset"이 "latin1"인 상태에서 컬럼의 "Charset"이 설정되어 있지 않으면 문제가 발생합니다.

테이블의 "Charset"를 "utf8" 또는 "utf8mb4"으로 설정합니다.

"Collation"은 자동으로 "Charset"에 맞게 설정됩니다.

"Collation"은 "utf8_general_ci" 또는 "utf8mb4_general_ci"으로 설정됩니다.

 

테이블의 "Charset"를 "utf8" 또는 "utf8mb4"으로 설정되어 있으면 컬럼의 "Charset"은 설정하지 않아도 됩니다.

컬럼의 "Charset"를 "utf8" 또는 "utf8mb4"으로 설정합니다.

"Collation"은 자동으로 "Charset"에 맞게 설정됩니다.

"Collation"은 "utf8_general_ci" 또는 "utf8mb4_general_ci"으로 설정됩니다.

 

 

참고로,

"UTF-8"은 Universal Coded Character Set + Transformation Format – 8-bit의 약자로 한 문자를 표현하기 위해 1Byte에서 4Byte까지 사용합니다. 이는 모든 언어권의 문자를 저장할 수 있습니다.

한글코드 범위 {AC00-D7AF}으로 3Byte를 사용합니다.

MySQL은 설계 시 "UTF-8"를 1Byte에서 3Byte까지 사용하여 저장할 수 있게 하였습니다. 3Byte만으로도 모든 언어권의 문자를 저장할 수 있었습니다. 그러나 4Byte을 사용하는 Emoji(이모지)는 저장할 수 없습니다. 그래서 "utf8mb4"라는 문자셋(Charset)을 추가로 만들어 4Byte도 저장할 수 있게 하였습니다.

 

 

2. 테이블 로우(Row) 업데이트(Update)

업데이트할 로우(Row)의 컬럼을 선택하고 하단 툴바에서 "Edit(Edit cell value in separate dialog/editor)"버튼을 클릭합니다.

선택한 컬럼에 대한 편집 창이 나타납니다. "Text"탭에서 "testid"를 "testid1"로 수정하고 "Save"버튼을 클릭합니다.

또는 컬럼을 선택하고 오른쪽에 있는 "Value"에서 값을 입력할 수 있습니다. "testid"를 "test12"로 수정합니다.

하단 툴바에서 "Save"저장 버튼을 클릭합니다.

선택한 컬럼이 업데이트되고 하단 툴바 오른쪽에 "Updated : 1"로 표시됩니다.

 

3. 테이블 로우(Row) 복제(Copy)

복제할 로우(Row)를 선택하고 하단 툴바에서 "Copy(현재 로우를 복제)"버튼을 클릭합니다.

선택한 컬럼과 동일하게 복제됩니다. 단 "MBR_SEQ"은 "Auto Increment"으로 복제되지 않습니다.

"MBR_ID"를 더블 클릭하거나 오른쪽에 있는 "Value"에서 "testid21"로 수정하고 하단 툴바에서 "Save"버튼을 클릭합니다.

새로운 로우(ROW)가 생성되면서 "MBR_SEQ"가 자동으로 증가하여 저장됩니다. 하단 툴바 오른쪽에 "Inserted : 1"로 표시됩니다.

 

 

4. 테이블 로우(Row) 삭제(Delete)

삭제할 로우(Row)를 선택하고 하단 툴바에서 "Delete(현재 로우 삭제)"버튼을 클릭합니다.

선택된 로우(Row)가 붉은색으로 지정됩니다. 하단 툴바에서 "Save"버튼을 클릭합니다.

선택된 로우(Row)가 삭제됩니다. 하단 툴바 오른쪽에 "Deleted : 1"로 표시됩니다.

 

5. 테이블 Auto Increment 수정

"MBR_ACCOUNT_TB"에서 "Properties"탭을 클릭합니다. "Auto Increment "이 "3"으로 다음에 생성될 로우(Row)의 "MBR_SEQ"값이 표시됩니다.

"Auto Increment "를 "2"으로 수정하고 "하단 툴바에 "저장"버튼을 클릭합니다.

"Persist"버튼을 클릭합니다. 쿼리문이 실행됩니다.

ALTER TABLE test.MBR_ACCOUNT_TB
AUTO_INCREMENT=2;

"AUTO_INCREMENT"문을 통해 수정합니다.

"Auto Increment "가 "2"로 변경됩니다.

728x90
반응형