분류 전체보기
[MySQL] LOCK TABLES, UNLOCK TABLES 사용 방법 및 예시
MySQL LOCK TABLES와 UNLOCK TABLES 사용법 LOCK TABLES란? LOCK TABLES는 MySQL에서 테이블에 대한 접근을 제어하는 명령어입니다. 특정 테이블을 잠그면 다른 세션에서 해당 테이블에 접근하는 것을 제한할 수 있습니다. 기본 문법LOCK TABLES 테이블명 [READ | WRITE]- READ: 읽기 전용 잠금 - WRITE: 읽기/쓰기 모두 잠금 UNLOCK TABLES란? UNLOCK TABLES는 LOCK TABLES로 설정한 잠금을 해제하는 명령어입니다. 기본 문법UNLOCK TABLES사용 예시 1. 단일 테이블 잠금-- 테이블 잠금LOCK TABLES employees WRITE;-- 데이터 수정 작업 수행UPDATE employees SET salar..
[MySQL] LOCK INSTANCE FOR BACKUP, UNLOCK INSTANCE 사용 방법 및 예시
MySQL LOCK INSTANCE FOR BACKUP과 UNLOCK INSTANCE 설명 LOCK INSTANCE FOR BACKUP과 UNLOCK INSTANCE는 MySQL 8.0부터 도입된 백업 관련 명령어입니다. 이 명령어들은 데이터베이스의 일관성 있는 백업을 위해 사용됩니다. 1. LOCK INSTANCE FOR BACKUP - 인스턴스 수준의 백업 잠금을 수행합니다. - DDL 작업을 차단하여 백업 중 스키마 변경을 방지합니다. - DML 작업(SELECT, INSERT, UPDATE, DELETE)은 계속 허용됩니다. 2. UNLOCK INSTANCE - 설정된 백업 잠금을 해제합니다. - 차단되었던 DDL 작업이 다시 가능해집니다. 사용 예시:-- 백업을 위한 인스턴스 잠금LOCK INS..
[MySQL] SAVEPOINT, ROLLBACK TO SAVEPOINT, RELEASE SAVEPOINT 사용 방법 및 예시
안녕하세요. 오늘은 MySQL의 트랜잭션 관리에 있어 중요한 역할을 하는 SAVEPOINT, ROLLBACK TO SAVEPOINT, 그리고 RELEASE SAVEPOINT 문에 대해 알아보겠습니다.1. SAVEPOINTSAVEPOINT는 트랜잭션 내에서 특정 지점을 표시하는 기능입니다. 이를 통해 트랜잭션의 일부분만 롤백할 수 있게 됩니다.사용 방법:SAVEPOINT savepoint_name;예시:START TRANSACTION;INSERT INTO users (name, email) VALUES ('John', 'john@example.com');SAVEPOINT sp1;INSERT INTO users (name, email) VALUES ('Jane', 'jane@example.com');2. R..
[MySQL] 트랜잭션 COMMIT, ROLLBACK 사용 방법 및 예시
안녕하세요. 오늘은 MySQL에서 중요한 개념인 트랜잭션 제어에 대해 알아보겠습니다. 특히 START TRANSACTION, COMMIT, ROLLBACK 명령어에 대해 자세히 살펴보겠습니다.1. START TRANSACTIONSTART TRANSACTION은 새로운 트랜잭션의 시작을 나타냅니다. 이 명령어 이후에 실행되는 모든 SQL 문은 하나의 작업 단위로 간주됩니다. 예시:START TRANSACTION;INSERT INTO accounts (account_number, balance) VALUES (12345, 1000);UPDATE accounts SET balance = balance - 500 WHERE account_number = 12345; 2. COMMITCOMMIT은 트랜잭션의 모든..
[MySQL] TABLE 문 사용 방법 및 예시
TABLE 문은 MySQL 8.0.19 버전부터 도입된 간단한 SELECT 문의 대체 구문입니다. 테이블의 모든 행을 조회할 때 사용되며, SELECT * FROM 구문을 더욱 간단하게 작성할 수 있습니다. 기본 문법: TABLE table_name;이는 다음 구문과 동일한 결과를 보여줍니다: SELECT * FROM table_name;실제 사용 예시를 살펴보겠습니다: 기본 사용법 -- employees 테이블의 모든 데이터 조회TABLE employees;ORDER BY와 함께 사용-- employees 테이블의 모든 데이터를 이름순으로 정렬TABLE employees ORDER BY name;LIMIT와 함께 사용 -- employees 테이블에서 상위 5개 행만 조회TABLE employees L..
[MySQL] EXISTS, NOT EXISTS 사용 방법 및 예시
MySQL에서 EXISTS와 NOT EXISTS는 서브쿼리의 결과 존재 여부를 확인하는 데 사용되는 중요한 연산자입니다. 이 연산자들은 주로 WHERE 절에서 활용되며, 복잡한 조건을 간결하게 표현할 수 있게 해줍니다. EXISTS 연산자 EXISTS는 서브쿼리가 하나 이상의 행을 반환하는 경우 TRUE를 반환합니다. 즉, 서브쿼리의 결과가 존재하면 조건이 참이 됩니다. 예시:SELECT customer_nameFROM customersWHERE EXISTS ( SELECT 1 FROM orders WHERE orders.customer_id = customers.id); 이 쿼리는 주문을 한 적이 있는 고객의 이름을 조회합니다. EXISTS 연산자는 각 고객에 대해 주문 기록이 있는지 ..
[MySQL] ALL 사용 방법 및 예시
안녕하세요. MySQL의 서브쿼리 with ALL에 대해 자세히 설명드리겠습니다. 서브쿼리는 쿼리 내부에 포함된 또 다른 쿼리를 의미합니다. 서브쿼리는 메인 쿼리의 결과에 영향을 미치는 데 사용됩니다. ALL 연산자는 서브쿼리와 함께 사용되어 메인 쿼리의 결과를 제한하는 데 사용됩니다. ALL 연산자는 서브쿼리의 모든 결과가 만족되어야 메인 쿼리의 결과가 반환되도록 합니다. 다시 말해, 서브쿼리의 모든 값이 메인 쿼리의 조건을 충족해야 합니다. 예를 들어, 다음과 같은 쿼리를 살펴보겠습니다:SELECT *FROM productsWHERE price > ALL ( SELECT price FROM products WHERE category = 'Electronics');이 쿼리에서 Subqu..
[MySQL] ANY, IN, SOME 서브쿼리 사용 방법 및 예시
안녕하세요. 오늘은 MySQL에서 ANY, IN, SOME을 사용한 서브쿼리에 대해 알아보겠습니다. 이 연산자들은 메인 쿼리와 서브쿼리 간의 비교를 수행할 때 유용하게 사용됩니다. 1. ANY 연산자 ANY는 서브쿼리의 결과 중 하나라도 조건을 만족하면 true를 반환합니다. 예시:SELECT nameFROM productsWHERE price > ANY (SELECT price FROM discounted_products);이 쿼리는 할인 상품 중 어느 하나보다 가격이 높은 모든 상품의 이름을 반환합니다. 2. IN 연산자 IN은 서브쿼리의 결과 집합에 값이 존재하는지 확인합니다. 예시:SELECT nameFROM employeesWHERE department_id IN (SELECT id FROM d..
[MySQL] Comparisons Using Subqueries(서브쿼리) 사용 방법 및 예시
MySQL에서 Comparisons Using Subqueries에 대해 자세히 알아보겠습니다. Comparisons Using Subqueries는 Subquery를 활용하여 복잡한 비교 연산을 수행하는 기능입니다. 이를 통해 다양한 조건을 바탕으로 데이터를 필터링하고 선별할 수 있습니다. Comparisons Using Subqueries의 대표적인 예로는 다음과 같은 것들이 있습니다: 1. 단일 값 비교 Subquery가 단일 값을 반환하는 경우, 이를 이용하여 다양한 비교 연산을 수행할 수 있습니다. 예를 들어, 각 직원의 급여가 부서 평균 급여보다 높은지 확인하는 쿼리는 다음과 같이 작성할 수 있습니다: SELECT name, salaryFROM employeesWHERE ..
[MySQL] Subquery as Scalar Operand(서브쿼리) 사용 방법 및 예시
MySQL에서 Subquery as Scalar Operand에 대해 자세히 알아보겠습니다. Subquery as Scalar Operand는 쿼리 내부에 또 다른 쿼리를 포함하는 기능입니다. 이를 통해 복잡한 데이터 처리 작업을 보다 효율적으로 수행할 수 있습니다. Subquery as Scalar Operand의 가장 일반적인 사용 사례는 집계 함수와 함께 사용하는 것입니다. 예를 들어, 각 부서별 평균 급여를 구하고자 할 때 다음과 같이 작성할 수 있습니다: SELECT department, (SELECT AVG(salary) FROM employees e WHERE e.department = d.department) AS avg_salaryFROM departments d;이..