목록mysql (43)
개발은 처음이라 개발새발
프로시저는 SQL Server에 저장되는 하나의 작업 단위로, 미리 정의된 SQL 문의 집합입니다. 데이터베이스에서 자주 사용되는 쿼리들을 하나의 함수처럼 실행할 수 있게 해줍니다.프로시저의 장점재사용성: 동일한 쿼리를 여러 번 작성할 필요 없이 저장된 프로시저를 호출하여 사용성능: 최초 실행 시 최적화된 실행 계획을 캐시하여 재사용유지보수: 프로시저 수정 시 이를 사용하는 모든 애플리케이션에 자동 반영보안: 테이블에 직접 접근하지 않고 프로시저를 통해 접근하도록 제한 가능프로시저 기본 구조CREATE PROCEDURE 프로시저_이름 @파라미터1 데이터타입, @파라미터2 데이터타입ASBEGIN SET NOCOUNT ON; -- SQL 문장들 SET NOCOUNT OFF;END주..
2024.02.20 - [mysql] - [MySQL] MySQL Installer를 활용해 버전 관리하기 [MySQL] MySQL Installer를 활용해 버전 관리하기 https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Installer Note: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL data-so-hard.tistory.com 지난 번에 MySQL Install..
https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Installer Note: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL Configurator, a tool that helps configure MySQL Server. dev.mysql.com MySQL 버전 관리를 할때 MySQL Installer를 사용하면 편하게 버전 관리를 할 수 있습니다. 위에 링크를 통해 My..
-- ROW_NUMBER() : 중복 없는 순위 (고유) -- RANK() : 동점일 때 중복 순위(공동 등수) -- + 공동 순위자가 있을 때 그 수만큼 -- 건너뛰고 다음 등수를 매김 -- DENSE_RANK() : 동점일 때 중복 순위(공동 등수) --+ 순위를 연속으로 매김 SQL상에서 순위를 매기는 방법은 ROW_NUMBER() / RANK() / DENSE_RANK() 세가지가 있다. 이 함수들을 사용할 때 함께 붙어오는 것이 있는데 OVER()이다. OVER() 안에는 ORDER BY를 통해 조회시 표출 되는 조건을 붙일 수 있고 PARTITION BY를 통해 순위를 구분하는 또 하나의 조건을 설정할 수 있다. WITH TB AS ( SELECT 'A' AS NAME, 'class1' AS ..
SELECT * REPLACE('대체할 값'AS'컬럼명') SQL에서도 불러올 값을 간단하게 혹은 금액 같은 경우 원화에 맞게 환산해 대체할 수 있는 함수가 있습니다. REPLACE()함수를 활용하면 됩니다. 예제는 아래와 같습니다. -- REPLACE()함수 예제 SELECT * REPLACE(price * 10000 AS price) FROM `olist.olist_order_items`
SELECT * EXCEPT('제외할 컬럼') SQL에서 필요 없는 컬럼을 빼고 불러오고 싶은 경우, 간단한 방법은 필요한 컬럼을 모두 적는 것이지만 필요한 컬럼이 굉장히 많고 필요 없는 컬럼이 적을 경우 EXCEPT 함수를 사용하는 게 현명하다. --EXCEPT() 함수 예제 SELECT * EXCEPT(shipping_limit_date, freight_value) FROM `olist.olist_order_items`
DATE_TRUNC('날짜', '남기는 부분') DATETIME_TRUNC( '날짜', '남기는 부분') TIMESTAMP_TRUNC( '날짜', '남기는 부분') ※ 추출할 부분 ※ YEAR : 연도 (결과: 해당 연도의 첫날) MONTH : 월 (결과: 해당 월의 첫날) DAY : 일 (결과: 해당 날짜의 0시 0분) WEEK : 주(기본 일요일 시작) (결과: 해당 주차의 첫 날(일)) WEEK(MONDAY) : 주(월요일 시작) (결과: 해당 주차의 첫 날(월)) QUARTER : 분기 (결과: 해당 분기의 첫 날) HOUR : 시 MINUTE : 분 SECOND : 초 -- 원하는 정보까지만 추출하는 DATE/DATETIME/TIMESTAMP_TRUNC SELECT order_purchase_t..
** EXTRACT('추출할 부분' FROM '날짜 컬럼') 날짜에서 일부분만 추출하고 싶을 때 SQL에서는 EXTRACT 함수를 사용한다. ※ 추출할 부분 ※ YEAR : 연도 MONTH : 월 DAY : 일 DAYOFWEEK : 요일(0: 월요일 ~ 6: 토요일) WEEK : 주(기본 일요일 시작) WEEK(MONDAY) : 주(월요일 시작) QUARTER : 분기 HOUR : 시 MINUTE : 분 SECOND : 초 -- 필요한 값만 추출하는 EXTRACT SELECT order_purchase_timestamp, EXTRACT(YEAR FROM order_purchase_timestamp) AS YEAR, EXTRACT(QUARTER FROM order_purchase_timestamp) AS ..
SELECT DATE(2016, 12, 25) AS date_ymd, DATE(DATETIME '2016-12-25 23:59:59') AS date_dt, DATE(TIMESTAMP '2016-12-25 05:30:00+07', 'Asia/Seoul') AS date_tstz; SELECT DATETIME(2008, 12, 25, 05, 30, 00) AS datetime_ymdhms, DATETIME(TIMESTAMP '2008-12-25 05:30:00+00', 'Asia/Seoul') AS datetime_tstz DATE(): 연도/ 월/ 일만 표출 DATETIME(): 연도/월/일 시:분:초까지 표출 TIMESTAMP: DATETIME과 동일하게 표출되지만 읽는 곳의 지역에 따라 상대적인 시간..
이번 시간은 MySQL의 윈도우함수를 정리해보려고 합니다. 윈도우함수의 특징은 GROUP BY처럼 데이터를 그룹화하여 집계하거나 연산해주는 기능입니다. 다만 GROUP BY는 GROUP BY에 지정해주는 것을 토대로 해당 결과물만 보여주는 반면 윈도우함수는 기존 데이터에 값을 추가하여 나타내주는 게 특징입니다. 윈도우함수의 구조 함수(컬럼) OVER (PARTITION BY 컬럼 ORDER BY 컬럼) 윈도우함수에 들어가는 함수는 다양한 것들이 있는 이부분은 아래에 설명을 해보겠습니다. 괄호 안에 있는 PATITION BY는 GROUP BY 와 비슷한 것이라고 생각하면 됩니다. 즉, PARTITION BY에는 기준이되는 컬럼을 넣는다고 보시면 됩니다. ORDER BY는 당연히 순서를 지정하는 것이겠지요...