일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Pandas
- 시각화
- MySQL
- 파이썬 시각화
- Visualization
- 블로그
- tensorflow
- 티스토리
- 독후감
- Blog
- python visualization
- 딥러닝
- 한빛미디어
- Google Analytics
- SQL
- 텐서플로
- 서평
- Linux
- 월간결산
- 파이썬
- MATLAB
- 통계학
- Python
- 한빛미디어서평단
- 리눅스
- 서평단
- Ga
- matplotlib
- Tistory
- 매틀랩
- Today
- Total
목록SQL (44)
pbj0812의 코딩 일기
0. 목표 - MySQL 이벤트를 통한 데이터 삭제 / 삽입 1. Flow Chart - 프로시저 / 이벤트를 통하여 주기적으로 데이터를 삭제하고 채움 2. 실습 1) 테이블 생성 CREATE TABLE pbj_db.sp_test ( datetime datetime ) ENGINE = INNODB; 2) 프로시저 생성 DELIMITER $$ CREATE PROCEDURE pbj_db.what_time_is_it_now() BEGIN # 지우기 DELETE FROM pbj_db.sp_test; # 넣기 INSERT INTO pbj_db.sp_test(datetime) ( SELECT NOW() ); END $$ DELIMITER ; 3) 프로시저 테스트(실행) CALL pbj_db.what_time_is_..
0. 목표 - PRECEDING 을 통한 증감비교 1. 실습 1) 테이블 생성 CREATE TABLE sql_test.company ( company varchar(12), year int, sale int ); 2) 데이터 삽입 INSERT INTO sql_test.company(company, year, sale) VALUES ('A', 2010, 100); INSERT INTO sql_test.company(company, year, sale) VALUES ('A', 2011, 90); INSERT INTO sql_test.company(company, year, sale) VALUES ('A', 2012, 110); INSERT INTO sql_test.company(company, year, s..
0. 목표 - CASE / UNION 실행 계획 비교 1. 실습 1) 테이블 생성 CREATE TABLE sql_test.union_case ( MakeYear datetime, price1 int, price2 int2 ); 2) 데이터 삽입 INSERT INTO sql_test.union_case(MakeYear, price1, price2) VALUES('2010-01-01', 100, 0); INSERT INTO sql_test.union_case(MakeYear, price1, price2) VALUES('2010-01-01', 100, 0); INSERT INTO sql_test.union_case(MakeYear, price1, price2) VALUES('2010-01-01', 100, 0..
0. 목표 - Python 의 Pandas 를 이용하여 SQL 스럽게 데이터 전처리 하기 1. 실습 1) SELECT (1) 필드 하나 df = pd.DataFrame({'a' : [1, 2, 3, 4, 1], 'b' : [2, 3, 4, 5, 6], 'c' : [2, 4, 6, 8, 6]}) df['a'] (2) 필드 여러개 df[['a', 'b']] (3) 행 인덱스로 접근 df.loc[0] 2) WHERE - a 가 3 이상 df[df['a'] >= 3] - a 가 3 이상이고 b 가 5 미만 a = ((df['a'] >= 3) & (df['b'] < 5)) df.loc[a] 3) CASE def case(x): if x < 2: return '2 미만' elif x < 4: return '4 미만..
0. 목표 - Mac에 PostgreSQL 설치 + DBeaver 연동 1. PostgreSQL 설치 1) 설치하기 brew install postgresql 2) 실행 brew services start postgresql 3) 로그인 * 기존 방법에는 psql postgres 라고 하면 진행이 된다고 하나... 비밀번호 에러(링크) 등등... 으로 stackoverflow 를 뒤지다가... 마땅한 방법이 없어서, 컴퓨터를 재시작하니 아래와 같이 다른 에러가 발생... 을 하여 아래처럼 postgres 로 유저 변경을 하여 로그인 su - postgres 4) 유저 생성 CREATE ROLE hellopsql LOGIN CREATEDB PASSWORD 'hello'; 5) 데이터베이스 생성 CREATE..
0. 목표 - MySQL 에서 FULL JOIN 1. 실습 1) 테이블 생성 - like CREATE TABLE sql_test.like ( ID INT, LikeDate datetime ); - buy CREATE TABLE sql_test.buy ( ID INT, BuyDate datetime ); 2) 데이터 삽입 INSERT INTO sql_test.like(ID, LikeDate) VALUES(1, '2021-01-01'); INSERT INTO sql_test.like(ID, LikeDate) VALUES(1, '2021-01-02'); INSERT INTO sql_test.like(ID, LikeDate) VALUES(2, '2021-01-03'); INSERT INTO sql_test.li..
0. 목표 - MySQL 조회 결과를 csv 파일로 만들기 1. 실습 1) 테이블 생성 CREATE TABLE Number_test ( Id INT, PhoneNumber VARCHAR(30) ); 2) 데이터 적재 INSERT INTO Number_test(Id, PhoneNumber) VALUES(1, '012-123-1234'); INSERT INTO Number_test(Id, PhoneNumber) VALUES(2, '012-1234-1234'); INSERT INTO Number_test(Id, PhoneNumber) VALUES(3, '0121231234'); INSERT INTO Number_test(Id, PhoneNumber) VALUES(4, '01212341234'); 3) 확인 S..
0. 목표 - LAG 함수를 이용하여 전일대비 금일의 증가량 계산 1. 실습 1) 테이블 생성 SELECT DATE, category, Price, IFNULL(LAG(Price, 1) OVER (PARTITION BY Category ORDER BY DATE), 0) AS Price2 FROM lag_test ORDER BY DATE 2) 데이터 삽입 INSERT INTO lag_test(DATE, Category, Price) VALUES('2020-10-01', 'a', 100); INSERT INTO lag_test(DATE, Category, Price) VALUES('2020-10-02', 'a', 200); INSERT INTO lag_test(DATE, Category, Price) VAL..
0. 목표 - not in을 통한 제거와 left join 이후 where 를 통한 제거간의 연산 시간 비교 실험 1. 실습 1) 데이터 생성 - df_a.csv : 10만 - df_b.csv : 1만 import pandas as pd a = [i for i in range(100000)] df_a = pd.DataFrame({'a': a}) df_a.to_csv("./df_a.csv") b = [i for i in range(10000)] df_b = pd.DataFrame({'a': b}) df_b.to_csv("./df_b.csv") 2) 테이블 생성 - Table Data Import Wizard를 통한 테이블 생성 및 삽입 - index 칼럼을 날리고 a만 가져옴 3) 데이터 확인 SELECT..
0. 목표 - MySQL 내 lock 실습 1. 실습 1) 테이블 생성 - InnoDB로 생성 CREATE TABLE pbj_db.lock_test ( ID INT PRIMARY KEY, Name VARCHAR(30) ) engine=InnoDB; 2) 데이터 삽입 INSERT INTO pbj_db.lock_test(ID, Name) VALUES(1, 'a'); INSERT INTO pbj_db.lock_test(ID, Name) VALUES(2, 'b'); INSERT INTO pbj_db.lock_test(ID, Name) VALUES(3, 'c'); 3) 트랜잭션 실행 START TRANSACTION; 4) lock 걸어주기 - ID 가 1인 행을 잠그기 SELECT * FROM pbj_db.loc..