반응형

Database/MySQL 18

[MySQL] FIRST_VALUE(), LAST_VALUE(), NTH_VALUE()

윈도우 함수 중 FIRST_VALUE(), LAST_VALUE(), NTH_VALUE() 함수에 대해 알아보겠습니다. 이용할 데이터 예시swimmerevent_daterace_timewoo2024-10-0152.3woo2024-10-0350.5woo2024-10-0551.1gyoung2024-10-0156.7gyoung2024-10-0255.9 FIRST_VALUE()윈도우 내에서 첫 번째 값을 반환합니다.SELECT swimmer, event_date, race_time, FIRST_VALUE(race_time) OVER (PARTITION BY swimmer ORDER BY event_date) AS first_race_timeFROM swimming_races;swimmerevent_..

Database/MySQL 2024.12.16

[MySQL] CUME_DIST(), PERCENT_RANK(), NTILE()

윈도우 함수 중 CUME_DIST(), NTILE(), PERCENT_RANK() 이 세가지에 대해 알아보겠습니다. CUME_DIST() 누적상대도수동일한 값이 있을 경우, 그 값에 해당하는 행 전체를 누적 비율에 포함합니다.ORDER BY로 정렬된 파티션에 대해 수행됩니다.SELECT title, rating, CUME_DIST() OVER (ORDER BY rating DESC) AS cume_distFROM webtoons; titleratingcume_distNo Home100.25Kubera90.75Dam in the Woods90.75Tower of God51.00  PERCENT_RANK() 각 값의 순위 비율, PERCENT_RANK = (순위 - 1) / (전체 행의 수 -..

Database/MySQL 2024.10.23

[MySQL] WITH ROLLUP으로 집계 나타내기

1. WITH ROLLUPGROUP BY 절과 함께 사용하여 그룹별 소계와 전체 합계를 자동으로 계산해주는 기능 2. 기본 사용법테이블 생성 및 샘플 데이터 삽입CREATE TABLE sales ( id INT PRIMARY KEY, year INT, month VARCHAR(10), category VARCHAR(50), revenue INT);INSERT INTO sales (id, year, month, category, revenue) VALUES(1, 2023, 'Jan', 'Electronics', 1000),(2, 2023, 'Feb', 'Electronics', 1500),(3, 2023, 'Jan', 'Furniture', 800),(4, 2023, 'Feb',..

Database/MySQL 2024.10.18

[MySQL] CTE 활용하기 - WITH / RECURSIVE WITH

WITH와 RECURSIVE WITH에 대해 공부한 내용 ~사실 수업에는 WITH 만 나왔지만 검색하다보니 재귀쿼리에 대한 얘기도 같이 나와서 정리해봅니다. 1. WITH WITH는 일시적인 CTE(Common Table Expression)를 생성해 쿼리의 가독성과 효율성을 높여주는 도구입니다.쿼리에서 반복되는 서브쿼리를 임시 테이블처럼 정의하고 사용할 수 있는데요? 사용 방법을 보니 간단했습니다.WITH 절을 먼저 정의하고, 메인 쿼리에서 해당 CTE를 사용하는 방식입니다. Syntax WITH cte_name AS ( SELECT column1, column2 FROM table_name WHERE condition)SELECT * FROM cte_name;  2. WITH 사용 예시Table..

Database/MySQL 2024.10.17

[MySQL] 뷰(VIEW) 개념과 사용 방법

1. 뷰(View)란?뷰(View)는 실제 데이터를 저장하지 않고, 테이블로부터 데이터를 조회하는 가상의 테이블미리 정의된 SELECT 쿼리의 결과를 하나의 테이블처럼 사용할 수 있음실제로 존재하는 테이블은 아니고, 저장된 SELECT 문이라고 할 수 있다.  2. View를 언제 사용하나요 ?복잡한 쿼리를 자주 실행해야 한다면 그 쿼리를 뷰로 만들어두고 호출 가능민감한 정보를 숨기거나, 사용자가 특정 데이터만 볼 수 있도록 할 수 있음테이블 구조가 변경될 경우, 이를 뷰를 통해 감싸서 기존 쿼리 등이 변경되지 않도록 할 수 있음. (값 대신 변수 사용하는 것처럼.,?) 3. View 특징물리적으로 저장되어 있지 않음삽입/삭제/갱신에는 제약이 있음특정 뷰에 접근할 수 있는 사용자를 분리하여 외부 스키마 ..

Database/MySQL 2024.10.17

[MySQL] 집합 연산자 - UNION / UNION ALL / INTERSECT / EXCEPT

집합연산자는 여러 쿼리의 결과를 하나로 결합할 때 사용됩니다.대표적인 집합 연산자는 UNION, UNION ALL, INTERSECT, EXCEPT 네가지가 있습니다. 1. UNION두 개 이상의 SELECT 문의 결과를 합치면서, 중복된 결과는 제거흔히 배운 합집합과 같습니다.JOIN 배울 때 잠깐 나왔는데, LEFT JOIN과 RIGHT JOIN 결과를 합쳐서 OUTER JOIN 처럼 이용했습니다.  [MySQL] 테이블 연결하기 (JOIN) - INNER / OUTER / LEFT / RIGHT / CROSS / SELFJOIN 은 SQL에서 테이블 간의 관계를 정의하고 데이터를 결합할 때 사용됩니다.INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JO..

Database/MySQL 2024.10.16

[MySQL] 인덱스(Index): 종류, 설정 방법

데이터베이스 성능을 최적화하려면 '인덱스'를 이해하는 것이 중요하다고 한다.수업시간에 짧게 다뤘는데, 잘 이해가 안가서 다시 정리하는 글~   1. 인덱스란 ?인덱스는 말 그대로 데이터베이스의 '목차'라고 할 수 있다.데이터가 저장된 물리적 위치를 알려주고, 데이터를 검색할 때 효율적으로 접근할 수 있게 도와주는 것. 2. 예시 테이블: employees직원 정보를 관리하는 employees라는 테이블을 설정하고, 이를 바탕으로 인덱스 종류를 살펴볼 예정.CREATE TABLE employees ( employee_id INT NOT NULL AUTO_INCREMENT, first_name VARCHAR(50), last_name VARCHAR(50), email VARCHAR(10..

Database/MySQL 2024.10.15

[MySQL] 서브쿼리(Subquery) 이용하기

오늘은 SQL 쿼리에서 자주 사용되는 서브쿼리(Subquery)에 대해 배웠습니다.이번 글에서는 서브쿼리의 정의, 위치, 주요 연산자 등에 대해 적어보겠습니다.  [MySQL] 테이블 연결하기 (JOIN) - INNER / OUTER / LEFT / RIGHT / CROSS / SELFJOIN 은 SQL에서 테이블 간의 관계를 정의하고 데이터를 결합할 때 사용됩니다.INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN, SELF JOIN 여섯가지를 알아보도록 하겠습니다!   실습할 테이블 만들기newj23.tistory.com이 글에서 사용했던 테이블들을 다시 이용했습니다.그럼시작! 1. 서브쿼리란?: 메인 쿼리 안에서 실행되는 중첩 쿼리 예시 - 가장 ..

Database/MySQL 2024.10.14

[MySQL] SQL 명령어 - DDL / DML / DCL / TCL

DDL, DML, DCL, TCL은 SQL에서 데이터베이스를 관리하는 주요 명령어들을 구분하는 카테고리입니다.각 카테고리는 데이터베이스 내에서 서로 다른 작업을 수행하도록 도와줍니다. 1. DDL (Data Definition Language): 데이터 정의 언어, 데이터베이스의 구조(스키마)를 정의하고 수정하는 명령어. 대부분 자동으로 커밋(commit).주요 DDL 명령어CREATE: 테이블, 인덱스, 데이터베이스 등을 생성ALTER: 기존의 테이블 구조를 수정DROP: 테이블, 데이터베이스 등 삭제TRUNCATE: 테이블은 남기고 테이블의 모든 데이터를 삭제, [MySQL] MySQL 시작하기 - 데이터베이스, 테이블 생성 / 삭제 / 변경자료형숫자형 : TINYINT, SMALLINT, MEDIU..

Database/MySQL 2024.10.11

[MySQL] 제약조건(Constraints): 데이터 무결성 유지하기

제약조건(Constraints)은 테이블에 저장되는 데이터가 유효하고 일관성을 유지할 수 있도록 도와주는 규칙입니다.제약조건을 적절히 설정하면, 잘못된 데이터가 데이터베이스에 삽입되는 것을 방지하고 데이터의 무결성을 보장할 수 있습니다. 1. NOT NULL 테이블의 특정 열(column)에 NULL 값을 허용하지 않도록 합니다.즉, 데이터를 삽입할 때 반드시 값을 입력해야 하는 필드에 사용합니다. CREATE TABLE myhero ( id INT NOT NULL, name VARCHAR(50) NOT NULL); 여기서 id와 name 열은 NOT NULL로 설정되어 있기 때문에 비워두고 데이터를 삽입하려고 하면 오류가 발생합니다. 2. UNIQUE특정 열의 값이 테이블 내에서 고유해야 한..

Database/MySQL 2024.10.11
반응형