본문 바로가기

SQL56

[SQL] HeidiSQL로 MySQL 관리, Spring Boot 연동 환경 설정 가이드 ※ 사용 환경· IDE : IntelliJ IDEA · DBMS : MySQL · GUI 클라이언트 : HeidiSQL · 빌드 도구 : Gradle · 프레임워크 : Spring Boot 1) Gradle에 MySQL 커넥터 추가 build.gradle 파일 내 dependencies 부분에 다음과 같이 현재 MySQL 서버 버전과 호환되는 JDBC 드라이버를 추가dependencies { // 8.0.33은 JDBC 드라이버 버전을 의미하며, MySQL 서버 버전과 일치할 필요는 없지만, 호환되는 범위 내에서 선택하여 입력 implementation 'com.mysql:mysql-connector-j:8.0.33'} 2) application.yml 설정spring: datasource: .. 2025. 8. 3.
[SQL] DB 서버-클라이언트 호환성 정리 ※ 대표적인 DB 서버구분DB 서버 (Server) 설명 관계형 MySQL, MariaDB, PostgreSQL, Oracle DB, MS SQL Server, SQLite일반적으로 설치형 서버 비관계형 MongoDB, Redis, Cassandra, etcKey-Value / Document 기반 등 ※ 대표적인 DB 클라이언트구분 DB 클라이언트 (Client) 설명 GUI HeidiSQL, DBeaver, DataGrip, MySQL Workbench, pgAdmin, TablePlus시각적 인터페이스 제공 CLI mysql, psql, sqlcmd터미널 기반 접속 도구GUI : 그래픽 사용자 인터페이스 (Graphical User Interface)CLI : 명령줄 사용자 인터페이스 (Com.. 2025. 8. 2.
[SQL] 기본 구조 정리(SELECT, INSERT, UPDATE, DELETE 예제 포함) 구분의미목적데이터 영향COMMIT 필요 여부DDL(Data Definition Language)데이터 정의어DB 구조를 정의하거나 수정함테이블/스키마 등구조 변경자동 COMMIT 됨DML(Data Manipulation Language)데이터 조작어데이터를 조회·추가·수정·삭제함실제 데이터 변경수동 COMMIT 필요(AUTOCOMMIT OFF 시) ★ 수동 COMMIT 필요 여부 확인 방법MySQL : SELECT @@AUTOCOMMIT; (1이면 ON, 0이면 OFF)Oracle : 사용 도구에 따라 달라짐 명령어설명CREATE데이터베이스, 테이블, 뷰 등 생성ALTER테이블 구조 변경 (컬럼 추가/삭제 등)DROP테이블이나 데이터베이스 삭제TRUNCATE테이블 내용 전체 삭제 (초기화, 빠름)RENA.. 2025. 7. 31.
[SQL] 자식 테이블 조회 SELECT RC.REFERENCED_TABLE_NAME AS PARENT_TABLE , RC.TABLE_NAME AS CHILD_TABLE , RC.CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC WHERE RC.REFERENCED_TABLE_NAME = 'T_USER' -- 자식 테이블을 확인하고 싶은 부모 테이블명 ORDER BY RC.TABLE_NAME SELECT PK.TABLE_NAME PARENT_TABLE , FK.TABLE_NAME CHILD_TABLE , FK.CONSTRAINT_NAME FROM ALL_CONSTRAINTS PK , ALL_CONSTRAINTS FK WHERE.. 2025. 6. 20.
[SQL] Lock 관련 문제 확인 및 해결 접속자가 몰려 서버가 느려지는 상황에서 주로 발생할 수 있는 문제 중 하나가 데이터베이스에 Lock이 걸리거나,쿼리가 비효율적으로 실행되는 경우이다. 아래에  Lock 관련 문제를 확인하고 해결할 수 있는 쿼리를 정리하였다.-- 현재 활성화된 프로세스와 상태 확인SHOW PROCESSLIST;실행 중인 쿼리와 그 상태를 확인할 수 있다. 여기에서 State 값이 Locked 상태로 표시된 세션이Lock을 유발하고 있을 가능성이 크다.-- 특정 세션 종료KILL [SESSION_ID];Lock을 유발한 세션을 종료하기 위해 KILL 명령어를 사용한다.[SESSION_ID] 자리에 SHOW PROCESSLIST; 쿼리에서 조회된 Id 값을 적는다.-- Lock이 걸린 테이블 조회SELECT DO.OBJECT.. 2025. 1. 21.
[SQL] 커넥션 -- 총 허용 가능한 커넥션 수SHOW VARIABLES LIKE 'max_connections';-- 현재 커넥션 수SHOW STATUS LIKE 'Threads_connected'; -- 총 허용 가능한 커넥션 수SELECT VALUE AS max_connectionsFROM v$parameterWHERE NAME = 'processes';-- 현재 커넥션 수SELECT COUNT(*) AS current_connectionsFROM v$sessionWHERE status = 'ACTIVE';v$ 뷰는 관리자 권한 필요 2025. 1. 21.