DataBase/MySQL(21)
-
[MySQL] 행, 열 변환 작업
■ 행, 열 변환 작업 테이블의 행 데이터를 특정 기준으로 열 데이터로 변환하는 작업 ■ 예시 과일 가게에서 판매하고 있는 과일은 [수박], [사과], [오렌지] 라고 특정할때, 날짜 별로 과일들의 수량을 계산하여 통계치를 구하려고 한다. 왼쪽은 과일이 판매될때 마다 작성한 데이터이고, 오른쪽은 구하고자 하는 결과 데이터이다. ■ 작업 첫번째, 과일 가게 가계부 테이블를 생성한다. CREATE TABLE `tbl_fruit_shop` ( `pay_time` date NOT NULL COMMENT '구매 날짜', `fruit` varchar(50) NOT NULL COMMENT '과일', `cnt` int(11) NOT NULL COMMENT '수량' ) 두번째, 과일 가게 가계부 테이블를 조회했을 때 결..
2021.08.04 -
[MySQL] AUTO_INCREMENT 초기화
■ AUTO_INCREMENT 초기화 ALTER TABLE [테이블명] AUTO_INCREMENT=1; SET @COUNT = 0; UPDATE [테이블명] SET [컬럼명] = @COUNT:=@COUNT+1; ■ 예시 인덱스는 1부터 시작하며 로우가 추가됨에 따라 1씩 증가하는 컬럼으로 수정 ALTER TABLE tbl_user AUTO_INCREMENT=1; SET @COUNT = 0; UPDATE tbl_user SET user_id = @COUNT:=@COUNT+1;
2021.02.01 -
[MySQL] WITH 재귀(RECURSIVE) 쿼리 계층구조
주의 !! mysql 5.7 이하 미지원 ■ WITH RECURSIVE 문 메모리 상에 가상의 테이블을 저장 재귀 쿼리를 이용하여 실제로 테이블을 생성하거나 데이터삽입(INSERT)을 하지 않아도 가상 테이블을 생성할 수 있다. WITH RECURSIVE 테이블명 AS( SELECT 초기값 AS 컬럼별명1 UNION ALL SELECT 컬럼별명1 계산식 FROM 테이블명 WHERE 제어문 ) ■ 예시 h(컬럼)이 초기값 1 부터 제어문에 합당하는 5까지의 데이터를 갖는 가상 테이블 생성 WITH RECURSIVE CTE AS( SELECT 1 AS h UNION ALL SELECT h+1 FROM CTE WHERE h
2020.07.20 -
[MySQL] CASE 문
■ CASE 문 ※ 사용법 WHEN~THEN 절 : 컬럼명에 해당하는 데이터가 조건에 합당할경우 해당 조건에 결과를 반환한다. ELSE 절 : 상위 조건에 모두 합당하지 않을경우 ELSE 의 결과를 반환한다. CASE 컬럼명 WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 : : WHEN 조건3 THEN 결과3 ELSE 결과4 END ■ 예시 1) CASE_TEST 테이블 데이터 확인 2) TEST_COL 컬럼 CASE 문 처리 SELECT (CASE TEST_COL WHEN 'A' THEN 1 WHEN 'B' THEN 2 WHEN 'C' THEN 3 ELSE 4 END) AS TEST_COL FROM CASE_TEST; 3) 결과 확인 CASE_TEST 테이블의 TEST_COL 컬럼의 ..
2020.07.20 -
[MySQL] DATE_FORMAT 날짜데이터 형식 변환
■ DATE_FORMAT 형식 종류 형식 설명 %a 약식 요일 이름 ( Sun.. Sat) %b 약식 월 이름 ( Jan.. Dec) %c 월, 숫자 ( 0.. 12) %D 영어 접미사 달의 날 ( 0th, 1st, 2nd, 3rd, ...) %d 월의 일, 숫자 ( 00.. 31) %e 월의 일, 숫자 ( 0.. 31) %f 마이크로 초 ( 000000.. 999999) %H 시간 ( 00.. 23) %h 시간 ( 01.. 12) %I 시간 ( 01.. 12) %i 분, 숫자 ( 00.. 59) %j 년의 일 ( 001.. 366) %k 시간 ( 0.. 23) %l 시간 ( 1.. 12) %M 월 이름 ( January.. December) %m 월, 숫자 ( 00.. 12) %p AM 또는 PM %r..
2020.07.20 -
[DB] MySQL 트랜잭션(Transaction) 예시 및 정리
■ 트랜잭션 트랜잭션의 사용은 어떠한 작업에 있어서 구간을 선정하고 해당 작업에 오류나 실수를 COMMIT을 실행하기 전까지 본 DB에 영향을 주지 않는것을 의미한다. I. 자동 커밋(commit) 비활성화 설명) commit 을 실행하기 전까지의 작업을 본 서버에 영향을 주지 않는다. set autocommit = 0 II. 트랜잭션 시작 설명) start transaction 또는 begin 둘다 사용가능하며, 수정 작업 이후 rollback 을 실행하면 트랜잭션을 시작했던 작업으로 돌아오고 수정내용은 적용되지 않는다. 1) START TRANSACTION 2) BEGIN III. 수정 처리 1) 수정 전 데이터 확인 2) 수정 처리 설명) author 가 '유은정' 인 레코드의 title을 '산' ..
2020.06.10