일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Linux
- mysql
- SQL
- 티스토리챌린지
- rsync
- Javascript
- Python
- DBMS
- PostgreSQL
- 트랜잭션
- docker
- network
- java
- API
- 명령어
- git
- top
- mssql
- 자바
- spring
- 차이점
- MongoDB
- oracle
- analytics4
- MariaDB
- IntelliJ
- 리눅스
- JPA
- 오블완
- group by
- Today
- Total
목록SQL (9)
hanker
데이터베이스에서 데이터 백업과 복구는 데이터 손실을 방지하고 시스템 장애 시 신속하게 복구하기 위해 필수적인 작업이다. 이번 글에서는 각 데이터베이스 별 SQL 데이터 백업과 복구의 개념, 방법에 대해서 알아봅시다! 1. 데이터 백업을 왜 해야할까? 데이터 백업을 하는 이유는 데이터베이스의 데이터를 안전한 위치에 저장하여 데이터 손실에 대비하기 위함이다.즉, 시스템 장애나 하드웨어 오류, 사용자 실수, 사이버 공격에 대비한다. 2. 백업의 유형 2-1. 전체 백업- 데이터베이스 전체를 백업한다.- 장점 : 복구가 간단하며, 모든 데이터를 포함- 단점 : 시간이 오래 걸리고, 저장 공간을 많이 사용 2-2. 증분 백업- 마지막 전체 백업 이후 변경된 데이터만 백업한다.- 장점 : 속도가 빨고 저장 공간..
SQL에서 트리거(Trigger)는 특정 이벤트(INSERT, UPDATE, DELETE)가 발생할 때 자동으로 실행되는 특별한 유형의 저장 프로시저이다.트리거는 데이터 무결성을 유지하고, 데이터베이스 작업을 자동화하는 데 유용하다. 이번 글에서는 트리거의 정의, 종류, 생성 방법, 그리고 실전 활용 방법을 알아보자! 1. 트리거(Trigger)란? 트리거는 테이블에 정의된 이벤트 처리 메커니즘이다. 특징으로는- 지정된 이벤트 발생 시 자동으로 실행된다.- 테이블 수준에서 동작하며, 특정 작업을 자동화한다.- 데이터 무결성 유지, 로깅, 또는 복잡한 비즈니스 로직 구현에 사용된다. 2. 트리거의 종류 트리거는 이벤트와 실행 시점에 따라 구분된다.종류설명BEFORE지정된 작업(INSERT, UPDATE, ..
SQL에서 뷰(View)는 복잡한 쿼리를 단순화하고 데이터의 보안을 강화하는 데 유용하다.뷰는 테이블처럼 동작하지만, 실제 데이터를 저장하지 않는 가상 테이블이다. 이번 글에서 뷰의 개념과 생성 법 등 다양한 뷰 기능들에 대해서 알아보자! 1. 뷰(View) 란? 영어로 View는 "보다", Page에서 View는 사용자가 보는 페이지를 뜻하는데,SQL에서의 뷰는 하나 이상의 테이블에서 가져온 데이터를 기반으로 정의된 가상 테이블이다.특징으로는- 뷰는 SQL 쿼리를 저장해서, 테이블처럼 사용할 수 있다.- 뷰 자체는 데이터를 저장하지 않고, 정의된 쿼리를 실행하여 데이터를 반환해 준다. 2. 뷰의 장점 2-1. 복잡한 쿼리 단순화- 복잡한 쿼리를 뷰로 저장하면 사용자는 간단한 SELECT 문으로 데이터..
SQL에서 트랜잭션(Transaction)은 데이터베이스의 상태를 관리하고 데이터 무결성을 보장하는 중요한 개념이다.특히, 데이터 처리 중 오류가 발생했을 경우 롤백(ROLLBACK)으로 상태를 복원하거나, 커밋(COMMIT)으로 변경 사항을 확정ㅇ하는 기능은 트랜잭션의 핵심이다. 이번 글에서는 트랜잭션의 개념, 동작 원리, 그리고 활용 방법에 대해서 알아보자! 1. 트랜잭션(Transaction) 이란? 트랜잭션은 데이터베이스에서 수행되는 하나 이상의 작업 단위를 말한다.데이터 무결성을 유지하기 위해 모두 성공하거나 모두 실패해야 한다. * 무결성 : 데이터의 정확성, 일관성, 신뢰성을 전체 라이프사이클 동안 유지하는 것을 의미 트랜잭션의 4가지 특성 (ACID)- 원자성 (Atomicity) : ..
SQL에서 인덱스(Index)는 데이터베이스의 검색 속도를 높이는 데 중요한 역할을 한다.그러나 잘못된 인덱스 설정은 성능을 저하시킬 수 있다.이번 글에서는 인덱스의 정의, 종류, 그리고 효과적으로 사용하는 방법을 알아보자.1. 인덱스란? 인덱스는 책의 색인처럼 데이터베이스에서 특정 데이터를 빠르게 찾을 수 있도록 돕는 구조이다. - 인덱스가 없다면 데이터베이스는 모든 행을 하나씩 탐색하는 풀 스캔(Full Scan)을 수행한다.- 인덱스는 테이블의 특정 열에 대해 정렬된 데이터를 저장하여 검색 속도를 높인다.2. 인덱스의 작동 원리 인덱스는 B-tree 구조 또는 해시(Hash)를 기반으로 작동한다. - B-tree 인덱스: 대부분의 데이터베이스에서 기본적으로 사용하는 인덱스 유형으로, 범위 검색에 유..
SQL에서 서브쿼리는 쿼리 안에 중첩된 또 다른 쿼리를 의미한다.이를 통해 복잡한 데이터 처리를 간결하고 유연하게 구현할 수 있다.서브쿼리는 SELECT, INSERT, UPDATE, DELETE와 함께 사용되며, 다양한 방식으로 활용 가능하다.이번 글에서는 서브쿼리의 정의와 활용 방법을 알아보자! 1. 서브쿼리란? 서브쿼리는 주 쿼리(main query) 내에서 중첩된 쿼리로, 주로 임시 데이터 처리를 위해 사용된다. 서브쿼리의 주요 특징은- 소괄호 ( )로 감싸져야 한다.- 주 쿼리에 데이터를 제공하거나 조건을 정의한다. 예제를 통해 더 자세히 알아보자. 2. 서브쿼리의 유형 2.1 스칼라 서브쿼리 (Scalar Subquery)한 행과 한 열을 반환하여 주 쿼리의 값으로 사용된다.SELECT na..
데이터베이스에서 JOIN은 여러 테이블의 데이터를 결합하여 유의미한 정보를 추출할 때 사용된다.JOIN에는 다양한 종류가 있으며, 각 데이터베이스에서 동일한 방식으로 동작한다.이번 글에서는 JOIN의 종류와 SQL에서의 활용 방법을 알아보자! 1. INNER JOIN INNER JOIN은 두 테이블 간의 공통된 값(조건)에 해당하는 데이터만 반환한다.SELECT A.name, B.order_dateFROM customers AINNER JOIN orders B ON A.customer_id = B.customer_id;# 결과: customers와 orders 테이블에서 customer_id가 일치하는 데이터만 반환2. LEFT JOIN (LEFT OUTER JOIN) LEFT JOIN은 왼쪽 테이블의 ..
SQL에서 데이터를 필터링하고 정렬하는 작업은 모든 데이터베이스에서 공통적으로 사용하는 기능이다.이번 글에서는 각 DB별로 필터링하고 정렬하는 방법과 특징에 대해서 알아보자. 필터링 (WHERE) SQL에서 데이터를 필터링하려면 WHERE 절을 사용한다.조건설명=값이 동일한 경우!= 또는 값이 동일하지 않은 경우, >크거나 작은 경우LIKE패턴 매칭BETWEEN범위 내 값IN특정 값 목록 내에 있는 경우IS NULL값이 NULL 인 경우IS NOT NULL값이 NULL이 아닌 경우-- 이름이 'Hanker'이고, 나이가 30 이상인 직원 검색SELECT *FROM userWHERE name = 'Hanker' AND age >= 30; 정렬 (ORDER BY) ORDER BY 절은 데이터를 특정 열을..
SQL에서 데이터(쿼리결과)의 순위를 부여하는 방법에 대해서 알아보자. 공통 (MySQL8.0 이상 지원 / MSSQL / Oracle / PostgreSQL) 윈도우 함수를 이용 1. RANK : 동일한 값일 경우 동일 순위를 부여하고 다음 순위는 건너뛴다.SELECT employee_name, department_id, salary, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank_in_departmentFROM employees;* 각 부서별로 직원들의 급여 순위를 반환 2. DENSE_RANK : 동일 순위를 부여하지만, 다음 순위를 건너뛰지 않음SELECT employee_nam..