본문 바로가기

반응형

DB(SQL)

(85)
[DB] CTE(Common Table Expression)와 파생테이블(derived table) (feat. with) Recursive Common Table Expressions 서브 쿼리 (Subquery) 정의 서브 쿼리는 하나의 큰 쿼리 내에 포함된 또 다른 쿼리입니다. 이는 주로 SELECT, INSERT, UPDATE, DELETE 문 내에서 데이터를 필터링하거나 조건을 제공하는 데 사용됩니다. 예시 SELECT * FROM Employees WHERE DepartmentID IN (SELECT DepartmentID FROM Departments WHERE Name = 'IT') 파생 테이블 (Derived Table) 정의 쿼리의 FROM 절 안에서 정의되는 임시 테이블 쿼리 실행 시 생성되고, 쿼리 실행이 끝나면 사라집니다. 예시 SELECT a.* FROM (SELECT * FROM Employees)..
[DB] 달력 DB 구조는 어떻게 구성 할까? (sqlshack Calendar) https://www.sqlshack.com/designing-a-calendar-table/ Designing a Calendar Table In this article we will explore a need in reporting to aggregate or return data that is crunched based on date attributes. www.sqlshack.com
[DB] PMM 구성하기 (DB Monitoring Tool) 2023년 4월에 하려고 했던걸 이제 해본다... 이번에는 할 수 있을까..? Mariadb 모니터링 시스템으로 PMM(Percona Monitoring and Management)을 사용해보고자 한다. Maria DB를 지원하는건 아니지만 mysql 로 호환이 가능하다고 해서 고고싱 percona에서 docs 도 제공해주고 메뉴얼도 다운로드 받을 수 있다.. percona docs : https://docs.percona.com/percona-monitoring-and-management/index.html 다운로드 페이지 : https://www.percona.com/downloads 다운로드 페이지에서 메뉴얼 다운로드 및 docs 링크 바로 접근 가능하다 메뉴얼 및 Docs 살짝 봤는데 엄청 설명이..
[DB] SQL SECURITY of PROCEDURE (DEFINER | INVOKER) (feat. mariadb | mysql) SQL SECURITY란? 프로시저나 함수를 실행할 때 사용되는 보안 컨텍스트를 정의하는 것입니다. 이 컨텍스트는 기본적으로 두 가지 옵션, DEFINER와 INVOKER 중 하나를 선택하여 설정할 수 있습니다. 1. DEFINER DEFINER 옵션은 프로시저나 함수가 그것을 생성한 사용자의 권한으로 실행됨을 의미합니다. 예를 들어, admin이라는 사용자가 어떤 테이블에 대한 SELECT 권한만을 가진 userA를 위해 프로시저를 생성했다고 가정해 봅시다. 이 프로시저는 테이블에서 데이터를 수정하는 작업을 수행합니다. 프로시저가 SQL SECURITY DEFINER로 설정되면 userA가 프로시저를 호출할 때도 admin의 권한으로 실행되므로 데이터 수정이 가능합니다. ★ 특정 사용자에게 직접적인 권..
[DB] PMM(Percona Monitoring and Management) Server 설정 (feat. 미완성된 글입니다.) 이 글은 미완성된 글입니다. 아까워서.. 놔두는 글.. 아래 링크로 접속해서 확인해주세요 pmm2 기준 https://24hours-beginner.tistory.com/499 PMM 1 기준 Server 설치 하는 방법 Mariadb 모니터링 시스템으로 PMM(Percona Monitoring and Management)을 사용해보고자 한다. Maria DB를 지원하는건 아니지만 mysql 로 호환이 가능하다고 해서 고고싱 percona에서 docs 도 제공해주고 메뉴얼도 다운로드 받을 수 있다.. 다운로드 페이지 : https://www.percona.com/downloads 다운로드 페이지에서 메뉴얼 다운로드 및 docs 링크 바로 접근 가능하다 메뉴얼 살짝 봤는데 엄청 설명이 잘되어 있다. 그러나..
[MariaDB] Create Procedure(프로시저) 루틴에는 FUNCTION 과 PROCEDURE 가 있다. 이 글은 PROCEDURE의 기본에 대해 알아보고자 한다. 프로시저(Procedure) 란? 특정 작업을 실행하기 위한 루틴이다. CALL 문을 이용해서 실행할 수 있다. SHOW PROCEDURE 프로시저 조회 https://mariadb.com/kb/en/show-procedure-status/ SHOW PROCEDURE STATUS [LIKE 'pattern' | WHERE expr] 프로시저 내용 조회 SELECT ROUTINE_SCHEMA , ROUTINE_NAME , ROUTINE_DEFINITION , ROUTINE_TYPE FROM INFORMATION_SCHEMA.ROUTINES WHERE 1=1 -- ROUTINE_DEFINITI..
[mariadb] CONVERT_TZ 사용 (feat. null return) https://mariadb.com/kb/en/convert_tz/ syntax CONVERT_TZ(dt,from_tz,to_tz) CONVERT_TZ()는 datetime 값 dt 를 from_tz 가 제공하는 시간대에서 to_tz 가 제공하는 시간대로 변환 하고 결과 값을 반환합니다. tz에는 '+09:00' 이나 'America/New_York' 등을 넣을 수 있다. example SELECT CONVERT_TZ('2016-01-01 12:00:00','+00:00','+10:00'); +-----------------------------------------------------+ | CONVERT_TZ('2016-01-01 12:00:00','+00:00','+10:00') | +-------..
[PostgreSQL] How to select the first observation in a category in PostgreSQL select distinct on(dataid, date_trunc('day', readtime)) * from university.gas_ert where readtime between '2014-01-01' and '2014-01-02' order by dataid, date_trunc('day', readtime) asc https://stackoverflow.com/questions/53604529/how-to-select-the-first-observation-in-a-category-in-postgresql How to select the first observation in a category in PostgreSQL My table contains different house IDs(dat..

반응형