MySQL 7

[MySQL] 트리거(Trigger) 활용하기

MySQL 트리거는 데이터베이스 관리에서 매우 유용한 도구지만 활용법을 잘 알지 못하거나 지나치기 쉽습니다!트리거의 개념과 실제로 어떻게 활용할 수 있는지 확인해 보겠습니다.🧐 트리거(Trigger)란?MySQL 트리거는 데이터베이스 테이블 변경(INSERT, UPDATE, DELETE)이 일어날 때 자동으로 실행되는 SQL 코드입니다.이를 통해 데이터 무결성을 유지하거나 특정 이벤트가 발생했을 때 추가 작업을 자동화할 수 있습니다. 트리거는 다음 두 가지 조건에 따라 실행됩니다.DML 이벤트데이터 조작 이벤트, 즉 INSERT, UPDATE, DELETE 등이 발생할 때타이밍트리거가 발생하는 시점, 즉 BEFORE 또는 AFTER트리거의 유형BEFORE 트리거트리거가 테이블에 대한 조작이 일어나기 전..

DataBase/MySQL 2024.10.09

[MySQL] 쿼리 절 순서

데이터베이스에서 데이터를 조회할 때, SQL 쿼리의 여러 절들이 결합되어 원하는 결과를 얻을 수 있습니다.MySQL 쿼리 절의 실행 순서를 이해하면 더 효율적이고 정확한 쿼리를 작성할 수 있습니다🤗 MySQL 쿼리 절 순서MySQL 쿼리는 다음 순서로 실행됩니다.FROM데이터를 가져올 테이블을 지정합니다.JOIN여러 테이블을 결합합니다.WHERE특정 조건을 만족하는 행만 선택합니다.GROUP BY선택된 행을 그룹화합니다.HAVING그룹화된 데이터에 대한 조건을 지정합니다.SELECT 데이터를 선택합니다.ORDER BY결과를 정렬합니다.LIMIT반환할 행의 수를 제한합니다.예제 쿼리를 통하여 각 절이 어떻게 함께 작동하는지 살펴보겠습니다.SELECT customers.customer_id, ..

DataBase/MySQL 2024.08.04

[MySQL] binlog(바이너리 로그)란?

회사에서 레거시에서 DeadLock 발생으로 오류가 발생하였는데 select for update문을 쓰는 부분도 아니었다...😥정확한 원인 파악을 위해(lock이 있었는지 확인하기 위해) binlog를 확인하려 하였으나 기간이 지나 purge 되어버렸습니다😱아쉬운 대로 MySQL binlog에 대해 공부해 보도록 하겠습니다.  MySQL Binlog?MySQL Binlog(바이너리 로그)는 데이터베이스의 변경 사항을 기록하는 로그 파일입니다.Binlog는 MySQL 서버에서 수행된 모든 DDL 및 DML 명령을 순차적으로 저장합니다.이를 통해 데이터 복구와 복제를 효과적으로 관리할 수 있습니다. Binlog의 중요성데이터 복구데이터 손실 시, Binlog를 사용하여 특정 시점으로 복구할 수 있습니다...

DataBase/MySQL 2024.07.16

[MySQL] 문자열 결합하기: CONCAT, GROUP_CONCAT

CONCAT과 GROUP_CONCAT 언제 어떻게 사용하는 게 적절할까요? 🤔CONCAT과 GROUP_CONCAT는 MySQL에서 문자열을 결합하는 데 사용되는 함수입니다.CONCAT은 여러 문자열을 하나의 문자열로 결합하고, GROUP_CONCAT은 그룹화된 결과에서 여러 값을 단일 문자열로 결합합니다. CONCATCONCAT 함수는 두 개 이상의 문자열을 결합하여 하나의 문자열을 만듭니다.SELECT CONCAT('Hello', ' ', 'World') AS greeting;위와 같은 예시는 아래와 같이 출력됩니다. CONCAT 함수는 인수로 전달된 문자열들을 순서대로 합쳐서 하나의 문자열로 만들어줍니다. 테이블에서도 사용할 수 있습니다.SELECT CONCAT(user_name, ' ', age)..

DataBase/MySQL 2024.07.08

[MySQL] UPSERT(UPDATE + INSERT)

데이터베이스를 사용할 때, 중복 데이터를 방지하면서 효율적으로 데이터를 삽입하고 싶을 때가 분명 올 것입니다 🤨이를 해결하기위해 'UPSERT'라는 기능을 제공합니다. 이번 글에서는 평소에 사용하던 UPSERT의 개념과 MySQL에서 UPSERT를 어떻게 사용하는지에 대해 알아보겠습니다!  UPSERT 란?UPSERT는 "insert"와 "update"의 합성어입니다.데이터베이스 테이블에 데이터를 삽입할 때 해당 데이터가 이미 존재한다면 업데이트를 하는 작업을 의미합니다.이는 데이터베이스에 중복 데이터를 방지하면서 효율적으로 데이터를 갱신할 수 있는 방법입니다. MySQL에서의 UPSERT INSERT INTO table_name (column1, column2, ...) VALUES (value1,..

DataBase/MySQL 2024.06.28

[MySQL] Timestamp vs DateTime

MySQL을 사용하며 날짜와 시간 정보를 저장하는 데에 사용되는 Timestamp와 DateTime의 대하여 알아보겠습니다. Timestamp 특정 이벤트가 발생한 시간을 정확하게 기록하기 위해 사용되는 데이터 유형 일반적으로 날짜와 시간 정보를 포함하여, 이를 통해 특정 이벤트가 언제 발생했는지를 정확하게 추적할 수 있습니다. 주로 데이터베이스에서 이벤트 로깅, 데이터 변경 이력 추적 등의 용도로 사용됩니다. Timestamp는 보통 시간대(time zone) 정보를 포함하며, 시간대 변환을 고려하여 데이터를 처리해야 합니다. DateTime 날짜와 시간 정보를 나타내는 데이터 유형 Timestamp와 마찬가지로 날짜와 시간을 저장할 수 있지만, 시간대 정보를 포함하지 않는 경우가 일반적입니다. 주로 ..

DataBase/MySQL 2024.04.02

[MySQL] MySQL 버전 확인

MySQL 버전을 확인하는 방법에는 몇 가지 방법이 있습니다. MySQL 콘솔에서 확인 먼저 MySQL 서버에 로그인합니다. mysql -u [유저이름] -p 여기서 '[유저이름]'은 권한을 가진 MySQL 사용자 이름입니다. MySQL에 로그인했으면 다음 SQL쿼리를 실행하면 버전을 확인할 수 있습니다. SELECT VERSION(); Workbench에서 MySQL 버전 확인 Workbench에서도 SQL 쿼리를 실행하여 버전을 확인할 수도 있습니다. 다른 방법으로는 도구 상단의 "MySQLWorkbench" 메뉴에서 "About"를 선택하여 확인하는 방법도 있습니다. 이러한 방법으로 MySQL 버전을 확인할 수 있습니다.

DataBase/MySQL 2023.10.28