일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- 네트워크
- 명령어
- mysql
- DBMS
- 웹
- IntelliJ
- 후기
- oracle
- 자바
- pandas
- Linux
- MariaDB
- mssql
- spring
- 리눅스
- 오블완
- JAVA8
- PostgreSQL
- 티스토리챌린지
- docker
- react
- Javascript
- 독서
- SQL
- git
- 책추천
- Python
- 개발
- 책
- Today
- Total
목록SQL (15)
hanker
SQL에서 데이터를 집계할 때 흔히 GROUP BY를 사용한다.하지만 GROUP BY만으로는 부분합(Subtotal) 과 총합(Total) 을 따로따로 쿼리해야 하는 불편함이 있는데, 이럴 대 ROLLUP을 사용한다. ROLLUP은 그룹별 집계 + 부분합 + 총합을 한 번에 계산해주는 확장된 GROUP BY 구문이다. 기본 문법 SELECT 컬럼1, 컬럼2, 집계함수(컬럼3)FROM 테이블GROUP BY ROLLUP (컬럼1, 컬럼2);ROLLUP(컬럼1, 컬럼2) 는 사실상 아래와 같은 GROUP BY 여러 구문을 합쳐놓은 것과 동일하다. -- 1) 컬럼1 + 컬럼2 별 집계GROUP BY (컬럼1, 컬럼2)-- 2) 컬럼1 별 집계 (부분합)GROUP BY (컬럼1)-- 3) 전체 집계 (총합)GRO..
PIVOT은 행(Row) 데이터를 열(Column)로 변환하는 SQL 기능이다.즉, 특정 컬럼 값을 기준으로 데이터를 펼쳐서 요약된 형태로 보여준다. 기본 문법 SELECT *FROM ( SELECT 컬럼1, 컬럼2, 집계대상컬럼 FROM 테이블명)PIVOT ( 집계함수(집계대상컬럼) FOR 피벗할컬럼 IN (값1, 값2, 값3 ...)); 집계함수 : SUM, AVG, COUNT 같은 집계 함수 필수피벗할컬럼 : 가로로 펼치고 싶은 기준 컬럼IN (값1, 값2 …) : 열로 바꿀 항목 지정 예제 -- EMPLOYEE 테이블부서명 | 직급 | 급여--------|--------|------인사부 | 대리 | 3000인사부 | 과장 | 4000영업부 | 대리 | 35..
SQL 문장은 우리가 작성하는 문법 순서와 데이터베이스가 실제로 처리하는 논리적 실행 순서가 다르다.즉, SQL을 작성할 때는 SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY처럼 쓰지만,DB 엔진이 내부적으로 실행하는 순서는 FROM부터 시작한다. 논리적 실행 순서 실행 순서 키워드 설명 1FROM참조할 테이블과 조인(join) 처리2ONJOIN 시 조건 처리3JOIN다른 테이블과 결합4WHERE행(row) 단위 조건 필터링5GROUP BY행들을 그룹으로 묶음6HAVING그룹 단위 조건 필터링7SELECT필요한 컬럼 선택, 계산8DISTINCT중복 제거9ORDER BY정렬10LIMIT / OFFSET결과 행 개수 제한 SELECT department,..
Oracle의 WITH 절은 공통 테이블 표현식(Common Table Expression, CTE)을 정의하는 구문으로,복잡한 쿼리를 더 읽기 쉽고 구조화된 형태로 작성할 수 있게 해준다. 기본 구문WITH cte_name AS ( SELECT ... FROM ... WHERE ...)SELECT ...FROM cte_nameWHERE ...; 임시 결과 집합 생성: WITH 절로 정의된 CTE는 쿼리 실행 중에만 존재하는 임시 테이블처럼 작동한다. 실제로는 뷰나 인라인 뷰와 유사하지만, 메인 쿼리에서 여러 번 참조할 수 있어 더 효율적이다.재귀 쿼리 지원: WITH RECURSIVE를 사용하여 계층적 데이터나 트리 구조를 처리하는 재귀 쿼리를 작성할 수 있다. 기본 사용법 WITH h..

COALESCE는 SQL에서 가장 널리 사용되는 NULL 값 처리 함수이다.여러 개의 값 중에서 첫 번째로 NULL이 아닌 값을 반환해준다. SQL 표준 함수: 대부분의 RDBMS에서 지원다중 값 처리: 무제한 개수의 매개변수 지원NULL 안전성: NULL 값으로 인한 오류 방지타입 호환성: 동일한 데이터 타입 내에서 작동 COALESCE 함수 사용 방법 COALESCE(값1, 값2, 값3, ..., 기본값) COALESCE 함수는 왼쪽부터 순서대로 값을 검사한다.첫 번째 NULL이 아닌 값을 발견하면 해당 값을 반환모든 값이 NULL이면 NULL을 반환매개변수가 없으면 구문 오류 발생 사용 예 SELECT COALESCE(NULL, NULL, 'Hello', 'World') AS result..

해당 오류는 일반적으로 문자열을 숫자로 변환하려 할 때(TO_CHAR) 실패할 경우 발생한다. 1. 해당 컬럼의 데이터 타입 확인 먼저 컬럼이 DATE 타입인지 확인해야 한다. 만약 해당 컬럼이 VARCHAR2, CHAR, 또는 숫자(NUMBMER) 형이라면 TO_CHAR는 문자열을 숫자로 바꾸려 하다가 오류를 발생시킬 수 있다.조치: 아래처럼 TO_DATE로 먼저 형변환을 하고 TO_CHAR를 적용해야 한다.NVL(TO_CHAR(TO_DATE(DATE_COL, "YYYYMMDD"), "YY-MM-DD"), "--") AS DT위 쿼리는 예시이며, 실제 문자열 날짜 포맷(YYYY-MM-DD 등)에 맞춰 TO_DATE 포맷을 맞춰야 한다. 2. NULL이 아닌 "잘못된 값"이 들어 있을 경우 예를 들어..
데이터베이스에서 데이터 백업과 복구는 데이터 손실을 방지하고 시스템 장애 시 신속하게 복구하기 위해 필수적인 작업이다. 이번 글에서는 각 데이터베이스 별 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) : ..