본문 바로가기
728x90

Database22

[Programming][MySQL] 테이블 만들기(CREATE DATABASE/ CREATE TABLE/ INSERT INTO/ DELETE FROM) 지금까지는 원래 있던 데이터들을 CSV 형태의 파일로 불러와서 테이블을 만들었다. 이 페이지에서는 직접 데이터 베이스를 만들고 테이블을 만드는 작업을 해보기로 한다. 테이블을 만들기 위해서는 먼저, SCHEMAS에 해당하는 데이터 베이스를 만들어야 한다. 사람들이 맛집에 대한 정보를 입력한 데이터 베이스를 만든다고 하자. (미쉐린 가이드와 같이!) CREATE DATABASE CREATE DATABASE food_guide; 데이터 베이스를 만들기 위해서는 CREATE DATABASE 예약어를 사용해야 한다. 위와 같이 작성하고 실행 버튼을 누른 뒤, SCHEMAS를 새로고침 하면 왼쪽에 [food_guide] SCHEMA가 생성된 것을 볼 수 있다. 만약 SCHEMAS에 중복되는 이름이 있는 것을 방지.. 2021. 8. 2.
[Programming][MySQL] 서브쿼리 (feat. KOSPI50 종목) 본 페이지에서 사용하는 테이블에 대한 설명의 아래 JOIN 활용하기 링크에서 확인:) 2021.07.27 - [Programming/MySQL] - [Programming][MySQL] JOIN 활용하기(feat. KOSPI50 종목) [Programming][MySQL] JOIN 활용하기(feat. KOSPI50 종목) 데이터 설명 JOIN 함수를 사용하기 위해 price, analysis, information 세 테이블을 임의로 만들었다. price 테이블 INVESTING.COM에서 출력한 KOSPI50 종목(2021.07.26 기준)의 가격 데이터로 id, 종목번호(ticke.. lydia-ds.tistory.com 서브 쿼리는 쿼리 문안에 다른 쿼리들이 포함되어 있는 것이다. SELECT 안의.. 2021. 7. 28.
[Programming][MySQL] 다양한 JOIN 함수 (feat. KOSPI50 종목) 본 페이지에서 사용하는 테이블에 대한 설명의 아래 JOIN 활용하기 링크에서 확인:) 2021.07.27 - [Programming/MySQL] - [Programming][MySQL] JOIN 활용하기(feat. KOSPI50 종목) [Programming][MySQL] JOIN 활용하기(feat. KOSPI50 종목) 데이터 설명 JOIN 함수를 사용하기 위해 price, analysis, information 세 테이블을 임의로 만들었다. price 테이블 INVESTING.COM에서 출력한 KOSPI50 종목(2021.07.26 기준)의 가격 데이터로 id, 종목번호(ticke.. lydia-ds.tistory.com NATURAL JOIN SELECT p.ticker, p.stock, p.clo.. 2021. 7. 27.
[Programming][MySQL] JOIN 활용하기(feat. KOSPI50 종목) 데이터 설명 JOIN 함수를 사용하기 위해 price, analysis, information 세 테이블을 임의로 만들었다. price 테이블 INVESTING.COM에서 출력한 KOSPI50 종목(2021.07.26 기준)의 가격 데이터로 id, 종목번호(ticker), 종목 이름(stock), 종가(close), 고가(high), 저가(low), 변동(fluctuation), 거래량(volume)으로 구성된 열(Column)과 50개의 행(Row)으로 되어있다. analysis 테이블 INVESTING.COM에서 출력한 KOSPI50 종목(2021.07.26 기준)의 기술 분석 데이터로 id, 종목번호(ticker), 종목 이름(stock), 시간당(time), 일 간(day), 주 간(week), .. 2021. 7. 27.
[Programming][MySQL] 문자열 가공하기(Feat. 카카오 주가 데이터) 다양한 함수를 통해 문자열을 원하는 대로 가공할 수 있다. SUBSTR / SUBSTRING -- SUBSTR SELECT month, substr(month, 1, 3) AS Mon FROM kakao GROUP BY Mon; -- SUBSTRING SELECT month, substring(month, 1, 3) AS Mon FROM kakao GROUP BY Mon; SUBSTR 함수로 문자열의 원하는 부분만 출력할 수 있다. SUBSTR(출력할 열, 시작, 끝)의 형식으로 작성한다. 월을 영어로 기재할 때, 앞의 3글자만 작성하는 경우도 많으므로 month 열(Column)에서 첫 번째부터 세 번째 글자만 출력했다. SUBSTR / SUBSTING 모두 가능하다! 양쪽 결과 모두 동일하게 출력되었.. 2021. 7. 26.
[Programming][MySQL] IF/ CASE 조건 함수(Feat. 카카오 주가 데이터) IF SELECT date, fluctuation, IF(fluctuation LIKE '\-%', '하락', '상승') AS '구분' FROM kakao; IF는 조건을 만드는 함수이다. IF(조건식, 참, 거짓)의 형태로 작성한다. 변동률(fluctuation)에 따라 상승한 주(week)인지 하락한 주(week)인지 구분하고자 -가 붙은 경우 '하락', 거짓일 경우 '상승'으로 조건을 설정했다. 결과적으로, 마이너스(-) 일 때 하락과 그렇지 않을 때 '상승'으로 잘 구분되고 있다. CASE SELECT month, CASE WHEN month IN ('January', 'February', 'March') THEN '1 분기' WHEN month IN ('April', 'May', 'June') .. 2021. 7. 26.
[Programming][MySQL] NULL 값 다루기(Feat. 카카오 주가 데이터) NULL이란? NULL은 0 값이 아니다. 어떠한 숫자가 아닌 값이 없다, 값이 존재하지 않는다는 의미이다. NULL + 1 도 NULL이고, NULL * 100도 NULL이다. 즉, NULL에 어떠한 연산을 해도 NULL 값이 나온다. (연산 불가) NULL 값을 다루는 표현들을 해보기 위해 기존에 작성하던 kakao 데이터에서 NULL 값들을 임의로 가공했다. 1. NULL 값 조회하기 -- NULL 값 조회 SELECT * FROM kakao_null WHERE month IS NULL; -- NULL이 아닌 값 조회 SELECT * FROM kakao_null WHERE month IS NOT NULL; IS NULL은 NULL 값이 있는 열(Column)을 조회하라는 의미이다. month에 NU.. 2021. 7. 25.
[Programming][MySQL] 연산을 할 수 있는 다양한 함수(Feat. 카카오 주가 데이터) 집계 함수 (Aggregate Function) -- 개수 집계 함수(COUNT) SELECT COUNT(*) FROM kakao; -- 총 합 집계 함수(SUM) SELECT SUM(vloume) FROM kakao; COUNT는 개수를 세는 집계 함수이다. * 을 사용하여 전체 개수를 산출하는 쿼리를 입력한 결과 52개로 개수가 출력되었다. SUM은 합을 계산하는 집계 함수로, 1년 동안 전체 거래량의 합을 출력했다. -- 평균 집계 함수(AVG) SELECT AVG(close) FROM kakao; -- 표준편차 집계 함수(STD) SELECT STD(close) FROM kakao; AVG는 평균을 구하는 집계 함수이다. 종가(close)의 평균을 구한 결과 지난 1년 동안 카카오 주가의 평균은 .. 2021. 7. 25.
[Programming][MySQL] ORDER BY / GROUP BY / LIMIT(Feat. 카카오 주가 데이터) ORDER BY ORDER BY는 정렬을 해주는 예약어이다. WHERE 다음에 사용해주며, 오름차순(ASC) / 내림차순(DESC)으로 수행할 수 있다. 왼쪽과 같이 오름차순(ASC)을 설정하면 종가(Close)가 작은 값부터 산출되고, 오른쪽과 같이 내림차순(DESC)으로 설정하면 종가(Close)가 큰 값부터 정렬되어 산출된다. GROUP BY GROUP BY는 원하는 열들이나 조건들에 맞게 그룹을 지어주는 예약어이다. SELECT month FROM kakao GROUP BY month; -- 그룹별 평균 계산 SELECT month, AVG(close) FROM kakao GROUP BY month; 왼쪽과 같이 month를 GROUP BY 함수로 지정하면 각 그룹별로 묶인 상태로 출력된다. 이에.. 2021. 7. 24.
[Programming][MySQL] DATE (날짜/시간) 함수(Feat. 카카오 주가 데이터) 연/ 월/ 일 데이터 추출 연도(YEAR), 월(MONTH), 일(DAY) 함수를 이용하여 데이터를 가공할 수 있다. -- 연도(YEAR) 함수 SELECT * FROM kakao WHERE YEAR(date) = 2021; -- 월(MONTH)함수 SELECT * FROM kakao WHERE MONTH(date) = 5; -- 일(DAY) 함수 SELECT * FROM kakao WHERE DAY(date) BETWEEN 25 AND 31; 오늘 날짜/ 시간 구하기 오늘 날짜를 알고 싶을 때는 CURDATE(), 지금 시간을 구하고 싶을 때는 CURTIME()을 사용하면 된다. -- 오늘 날짜 SELECT CURDATE() -- 지금 시각 SELECT CURTIME() 월 말일 구하기 LAST_DAY.. 2021. 7. 24.
반응형