피벗 : 한 열에 포함된 여러 값을 출력하고, 이를 여러 열로 변환하여 테이블 반환 식을 회전하고 필요하면 집계까지 수행하는 것.
USE sqldb;
CREATE TABLE pivotTest
( uName CHAR(3),
season CHAR(2),
amount INT );
INSERT INTO pivotTest VALUES
('김범수','겨울',10), ('윤종신','여름',15) ;
SELECT * FROM pivoitTest;
SELECT uName,
SUM(IF(season='봄',amount,0)) AS '봄',
SUM(IF(season='여름',amount,0)) AS '여름',
SUM(IF(season='가을',amount,0)) AS '가을',
SUM(IF(season='겨울',amount,0)) AS '겨울',
SUM(amount) AS '합계' FROM pivotTest GROUP BY u Name;
JSON데이터 : 현대의 웹가 모바일 응용 프로그램 등과 데이터를 교환하기 위한 개방형 표준 포맷.
USE sqldb;
SELECT JSON_OBJECT('name',name,'height',height) AS 'JSON 값'
FROM usertbl
WHERE height >= 180;
SET @json='{"usertbl" :
[
{"name":"임재범","height":182},
{"name":"이승기","height":182},
{"name":"성시경","height":186}
]
}';
SELECT JSON_VALID(@json) AS JSON_VALID;
SELECT JSON_SEARCH(@json, 'one','성시경') AS JSON_EXTRACT; -- 첫번째로 나오는 성시경을 찾아라, one과 all이 있음
SELECT JSON_EXTRACT(@json,'$.usertbl[2].name') AS JSON_EXTRACT;
SELECT JSON_INSERT(@json, '$usertbl[0].mDate','2009-09-09') AS JSON_INSERT;
SELECT JSON_REPLACE(@json,'$.usertbl[0].name', '홍길동') AS JSON_REPLACE; -- 0번째 name을 바꿈
SELECT JSON_REMOVE(@json,'$.usertbl[0]') AS JSON_REMOVE;