DB/MySQL 9

jOOQ

jOOQ 란 무엇인가jOOQ는 Java Object Oriented Querying 의 약자임.간단히 말하면 SQL 쿼리를 Java 코드로 타입 안정성 있게 작성할 수 있도록 도와주는 라이브러리임.SQL 의 모든 기능을 Java 코드로 그대로 사용할 수 있게 해 주며, 복잡한 쿼리도 Java 코드에서 안전하게 작성할 수 있게 해줌.Hibernate, JPA 같은 ORM 도구와 달리 jOOQ는 SQL 중심적 접근 방식을 사용함.SQL 문법과 거의 1:1 매핑되는 API를 제공하여 SQL 작성에 익숙한 개발자에게 강력한 도구가 됨.1. jOOQ의 주요 특징SQL 중심적SQL 문법을 그대로 Java 코드로 작성할 수 있음.타입 안정성컴파일 시점에 SQL 문법 오류를 검출할 수 있음.자동 코드 생성데이터베이스 ..

DB/MySQL 2025.04.16

프로시저

📌 프로시저(Stored Procedure)란? 프로시저(Stored Procedure) 는 SQL 문을 저장해 두고 필요할 때 호출하여 실행할 수 있는 데이터베이스 객체임. ✅ 프로시저의 주요 특징 • 재사용 가능 → 동일한 SQL 작업을 반복 실행할 때 유용 • 성능 최적화 → 서버에서 실행되므로 네트워크 트래픽 감소 • 비즈니스 로직 캡슐화 → SQL 로직을 하나의 프로시저로 묶어 관리 가능 • 입력(매개변수) & 출력(결과값) 가능 → IN, OUT, INOUT 파라미터 지원 📌 기본적인 프로시저 호출 흐름클라이언트 → CALL 프로시저명() → MySQL에서 SQL 실행 → 결과 반환  1️⃣ 프로시저의 기본 문법DELIMITER $$ -- 구분자 변경 (MySQL에서 여러 문장을 실행하기..

DB/MySQL 2025.04.06

MySQL 리플리케이션

📌 MySQL 리플리케이션(Replication)란? MySQL 리플리케이션(MySQL Replication) 은 하나의 MySQL 서버(Primary, Master)의 데이터를 다른 MySQL 서버(Replica, Slave)로 복제하는 기능임. ✅ 주요 특징 • 데이터베이스 백업 및 장애 대비 → 하나의 서버 장애 발생 시 다른 서버에서 복구 가능 • 읽기 부하 분산(Read Scalability) → 여러 개의 읽기 전용 서버를 두어 성능 최적화 가능 • 데이터 분석 및 실시간 백업 → 운영 서버(Master)에 영향을 주지 않고 분석용 DB 운영 가능 ✅ MySQL Replication의 기본 개념클라이언트 → [Primary] → 데이터 변경 → [Replica1] [Replica2] … 데이..

DB/MySQL 2025.04.05

[SQL] SQL Dialects (SQL 방언)

**SQL Dialects(방언)**이란 각 데이터베이스 시스템(DBMS)이 지원하는 SQL 문법, 기능, 최적화 방식이 다르게 구현된 것을 의미함.즉, 표준 SQL(ANSI SQL)을 기반으로 하지만, DBMS마다 특화된 기능이 추가된 SQL 변형 버전이라고 할 수 있음. 📌 1. SQL Dialects란?✅ SQL 방언(Dialect)의 개념 • SQL은 데이터베이스를 조작하는 표준 언어이지만, 모든 DBMS가 100% 동일한 SQL을 지원하지 않음. • 각 DBMS는 ANSI SQL을 기반으로 자체적인 기능과 문법을 추가하여 최적화함. • 따라서 DBMS마다 SQL 문법과 동작 방식이 다를 수 있음. • 예) MySQL과 PostgreSQL은 LIMIT을 사용하여 페이징 처리하지만, SQL Ser..

DB/MySQL 2025.02.21

[SQL] CHAR, VARCHAR

텍스트 데이터를 저장하는 데 사용되는 문자열 데이터 타입둘 다 문자 데이터를 저장하지만, 저장 방식과 성능 특성이 다르다1. CHAR1.1. 정의고정 길이(Fixed-length) 문자열 데이터 타입저장하려는 데이터의 길이가 지정한 길이보다 짧더라도 빈 공간을 공백 문자로 채움1.2. 특징고정된 크기 :데이터가 길이보다 짧으면 남은 공간을 공백으로 채워 저장예를 들어, CHAR(10)에 "cat"을 저장하면, 실제로는 "cat "로 저장됨빠른 속도 :고정된 길이 때문에 읽기와 쓰기 성능이 빠름데이터를 처리할 때, 문자열 길이를 계산하지 않아도 됨메모리 낭비 :데이터 길이가 자주 달라지는 경우, 빈 공간을 채우기 때문에 저장 공간이 낭비됨1.3. 예제 CREATE TABLE example_char ( ..

DB/MySQL 2024.12.18

[SQL] 트랜잭션

트랜잭션은 데이터베이스 관리에서 작업의 단위를 의미한다하나의 트랜잭션은 일련의 SQL 작업들을 논리적으로 묶어 처리하며,이 작업들이 모두 성공하거나 실패하는 원자성(Atomicity)을 보장한다1. 트랜잭션의 기본 개념1.1. 트랜잭션이란?데이터베이스의 상태를 변경하는 작업 단위데이터베이스는 트랜잭션 단위로 작업을 처리하며, 각 트랜잭션은 일관성과 안정성을 유지해야 한다1.2. 트랜잭션의 주요 특징 (ACID 속성)트랜잭션의 신뢰성을 보장하기 위해 ACID 속성을 따른다1.2.1. Atomicity (원자성)트랜잭션의 작업은 모두 성공하거나 모두 실패해야 한다부분적으로 작업이 수행된 상태는 허용되지 않음1.2.2. Consistency (일관성)트랜잭션이 완료된 후에도 데이터베이스는 항상 일관된 상태를 ..

DB/MySQL 2024.12.17

[SQL] 연산자

산술 연산자+더하기-빼기*곱하기/나누기%나머지비교 연산자=같음!= 또는 같지 않음 작음>큼작거나 같음>=크거나 같음논리 연산자AND모든 조건이 참이어야 함OR하나 이상의 조건이 참이면 참NOT조건의 논리값을 반전비트 연산자&비트 AND|비트 OR^비트 XOR~비트 NOT기타 연산자BETWEEN ... AND ...BETWEEN a AND ba와 b 사이NOT BETWEEN a AND ba와 b 사이가 아닌것ININ ()()에 포함된 것NOT IN ()()에 포함되지 않은 것LIKELIKE "A%"A로 시작하는 것LIKE "%A"A로 끝나는 것LIKE "%A%"A를 포함하는 것NOT LIKE "%A%"A를 포함하지 않는 것NULLIS NULLNULL인 것IS NOT NULLNULL이 아닌 것ALL하위 쿼리..

DB/MySQL 2024.12.10

[SQL] sql 명령어

가장 많이 사용되는 명령어를 알아보자 1. SELECT데이터를 조회할때 사용SELECT * FROM 테이블; as 로 별칭을 붙여서 사용할 수 도있다SELECT name AS student_name FROM students;  2. INSERT데이터를 추가할때 사용INSERT INTO 테이블 (id, name, age)VALUES (1, 'asd', 20);INSERT INTO 테이블 SET id = 1,name = 'asd'age = 20; 모든 칼럼에 값을 넣을때는 이름 생략 가능INSERT INTO students VALUES (1, 'Alice', 20);여러 행을 한번에 추가 가능INSERT INTO students (id, name, age) VALUES (2, 'Bob', 22), (3, '..

DB/MySQL 2024.12.03

[SQL] SQL이란?

DB(Database)관련있는 데이터들의 조직화된 집합 테이블들을 묶어주는 폴더 같은 개념. 테이블 - 표. 엑셀파일 같은 개념표 - 칼럼(열) + 로우(행)칼럼 - 번호, 이름, 나이, 연락처 등등 표에서 칼럼은 한줄만 존재하고, 로우는 N줄 존재할 수 있다 SQL데이터베이스를 관리하고 조작하기위해 사용하는 언어간단히 명령어 살펴보기종류DBTABLEROW생성CREATE DATABASE ~~;CREATE TABLE ~~ ();INSERT INTO articleSET ~~;조회SHOW DATABASES;SHOW TABLES;SELECT * FROM article;수정XALTER TABLE ~~UPDATE articleSET ~~;삭제DROP DATABASE ~~;DROP TABLE ~~;DELETE FRO..

DB/MySQL 2024.12.03