본문 바로가기

DB10

JPA | MyBatis | JDBC JPA (Java Persistence API)자바에서 객체와 관계형 데이터베이스를 매핑하는 표준 API엔티티 클래스를 통해 데이터를 객체로 관리하고, 객체 상태에 따라 자동으로 DB와 연동됨주로 Hibernate와 함께 사용됨JPA는 규격(specification)이고, Hibernate는 그 구현체(implementation)Hibernate는 JPA를 구현하면서, JPA가 정의한 기능을 지원하고, 그 외에도 Hibernate만의 고유 기능을 추가로 제공함@Entitypublic class User { @Id private Long id; private String name; // getter, setter}JPQL (Java Persistence Query Language)JP.. 2025. 3. 1.
[Data Modeling] PK, UK, FK Primary Key (PK) / Unique Key (UK) Primary Key (PK) Unique Key 정의 테이블의 각 레코드 구별값 테이블 내에서 항상 유일해야 하는 값 제약조건 각 테이블의 식별자 역할 각 컬럼에 입력되는 데이터가 유일하다는 것을 보장 특징 * 각 테이블 당 하나만 설정 가능(기본키), 반드시 하나의 컬럼으로만 구성되는 것은 X * 중복 허용 X * 데이터 유일성 보장돼야 함 * Unique Index (고유 인덱스) 자동 생성 * NOT NULL + Unique 제약조건 결합 * 각 테이블 내에서 여러 개 지정 가능 * 중복 허용 X * Unique Index (고유 인덱스) 자동 생성 * NULL 허용 Foreign Key (FK) Foreign Key (FK) 정의 외.. 2022. 3. 26.
[MySQL] 윈도우 부팅 시 자동 실행 설정 서비스 실행 MySQL 시작유형 확인 MySQL 속성 설정 1. 시작유형 * 자동 : 윈도우 실행 시 자동으로 서버가 서비스 형태로 실행됨 * 수동 : 윈도우 실행 시 MySQL 서버 자동 실행을 막으려면 수동으로 변경 (이 경우, "시작" 버튼 클릭 후 MySQL 서버 실행) 2. 서비스 상태 * MySQL 미작동 시 : 해당 서비스가 "실행 중"인지 확인 * 중지 : 서버 정지시키기 출처 : https://zoosso.tistory.com/331 2022. 2. 15.
[MySQL] NOT IN(): 특정 값 제외하고 SELECT NOT IN() 특정 값을 제외하고 데이터 조회(SELECT) -- NOT IN() 문법 NOT IN('제외할 값1','제외할 값2', ... etc.) SELECT * FROM TABLE_NAME WHERE COLUMN_NAME NOT IN ('제외할 값1','제외할 값2'); -- 예제 SELECT * FROM MEMBER WHERE MEMBER_TYPE NOT IN ('A','B'); -- 결과 -- MEMBER_TYPE이 A, B가 아닌 MEMBER 값들이 조회됨 2022. 2. 15.
[MySQL] SUBSTRING_INDEX(): 원하는 구분자 기준 문자열 자르기 SUBSTRING_INDEX() 원하는 구분자 기준으로 문자열 자르는 함수 -- SUBSTRING_INDEX() 문법 SUBSTRING_INDEX(문자열, 구분자, 구분자 인덱스) -- 예제1 SELECT SUBSTRING_INDEX('120.0.0.1', '.', 3) AS SUB_IP FROM TABLE_NAME; -- 결과1 120.0.0 -- 예제2 SELECT SUBSTRING_INDEX('120.0.0.1', '.', -1) AS SUB_IP FROM TABLE_NAME; -- 결과2 1 -- 예제3 SELECT SUBSTRING_INDEX('120.0.0.1', '.', -3) AS SUB_IP FROM TABLE_NAME; -- 결과3 0.0.1 2022. 2. 14.
[MySQL] 날짜 / 시간 / 통계 조회 날짜 / 시간 표현 #현재 시간(기본) : 2022-01-01 12:00:00 SELECT NOW(); #날짜 ONLY : 2022-01-01 SELECT DATE(NOW()); #시간 ONLY : 12:00:00 SELECT TIME(NOW()); #년도 ONLY : 2022 SELECT YEAR(NOW()); #월 ONLY : 1 SELECT MONTH(NOW()); #날짜 포맷 지정 : 2022/01/01 SELECT DATE_FORMAT(NOW(), '%Y/%m/%d'); #시간 포맷 지정 : 12 00 00 SELECT DATE_FORMAT(NOW(), '%H %i %s); 날짜 더하기 / 빼기 DATE_ADD DATE_SUB DATE_ADD(기준 날짜, INTERVAL) DATE_SUB(기준 .. 2022. 1. 11.
[MySQL] DATE_FORMAT(): 날짜, 시간 표기법 DATE_FORMAT()을 활용해 datetime 타입인 데이터의 형식을 바꿔보자 datetime 타입 데이터의 기본 형식 datetime 2022-01-06 22:00:00 SQL SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS DATE FROM DUAL; -- NOW(): 현재 시간 결과 DATE 2022-01-06 참고 자료 Specifier Description %a Abbreviated weekday name (Sun..Sat) %b Abbreviated month name (Jan..Dec) %c Month, numeric (0..12) %D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …) %d Day of .. 2022. 1. 6.
[MySQL] 조건 범위 설정 후 삭제 SQL DELETE FROM TABLE_NAME WHERE 50 < COLUMN_NAME AND COLUMN_NAME < 100; 가독성 위해 작은 수 < 값 < 큰 수 로 조건절 배치함 2022. 1. 3.
[Excel] "문자열+숫자"에서 숫자만 증가시키기 엑셀에서 문자열 + 숫자 값에서 숫자만 증가시키고 싶을 때 공식 예시 ="문자열_"&ROW()+시작숫자 //각 행 숫자와 일치하는 값으로 출력됨 ="문자열_"&ROW(첫행)+시작숫자 //원하는 값으로 특정지을 수 있음 실제 예시 A1 USER_100 A2 USER_101 ="USER_"&ROW()+100 ="USER_"&ROW($A1)+100 A3 USER_102 ="USER_"&ROW($A2)+100 A4 USER_103 ="USER_"&ROW($A3)+100 2022. 1. 3.
[MySQL] MySQL 실행 설정 1. 서비스 실행 2. MySQL ➡ 상태 및 시작 유형 확인 MySQL 동작 안 할 때: 해당 서비스가 [실행 중]인지 확인 3. 해당 항목 우클릭 ➡ 속성 해당 항목 서버를 멈추고 싶을 때: 서비스 상태의 [중지] 클릭 윈도우 부팅 시 MySQL 자동 실행을 중지시키려면: 시작 유형의 [자동]을 [수동]으로 변경 ➡ 서비스 상태의 [시작] 클릭 시 MySQL 서버 실행됨 2021. 12. 22.