원래 계획대로라면 작년 ADsP취득 직후, 8월에 바로 따고싶었지만, 개인적인 사유로 시험장에 가지 못해서... 올해 3월에서야 결국 자격증을 취득하였습니다! 시험명: 제44회 SQL 개발자(SQLD) 접수일: 2022. 02. 14(월) ~ 2022. 02. 18(금) / 1주 시험일: 2022. 03. 12(토) 성적공고일: 2022. 04. 08(금) 준비기간: 약 2주 비전공자이긴 하지만, 사실상 개발자로 취직 후에는 SQL을 많이 접해서 아마 다른분들보다는 여건이 좋았던것같습니다. 다만 업무에서는 보통 MySQL을 사용했으나 시험 문법은 대부분 오라클 SQL Developer를 사용하기때문에 약간의 유의가 필요합니다. 1. 시험 접수 데이터자격검정 홈페이지 데이터자격시험 데이터분석 전문가 가이..
최근에 진행중인 프로젝트에서, upsert를 활용중에 이상한 문제를 직면했습니다 개략적인 프로세스는 위처럼 2종류의 크롤러가 각각 테이블 A, B에 데이터를 밀어넣는데, 이 데이터는 중복될 수도 있고 시간에 따라 업데이트가 됩니다. 이러한 구조를 위해 DB에서 upsert 쿼리를 사용하였는데, 쿼리는 아래와 같습니다. INSERT INTO table_C (some_columns) SELECT some_columns FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY unique_key ORDER BY column DESC) t, c.* from table_A c ) a where a.t
default: 사용자가 값을 명확하게 주지 않으면, 지정된 default 값으로 입력 -> null을 밀어넣으면 들어간다. not null: 사용자가 뭐라 하건, null은 무조건 입력 불가능 -> null을 밀어넣으면 에러 발생 INSERT INTO table_name (columns) VALUES (values); 처음에는 위와 같이 입력하는 SQL에서 자동으로 default 값이 채워지는 것을 보고 막연하게 '아, null은 default로 채워지는구나' 라고 생각했습니다. 그런데, 이번에 크롤러와 관련된 조금 규모가 큰 프로젝트를 진행하면서 수많은 null을 처리하면서 위 두 가지 개념이 비슷해보이지만 다른 개념이라는 것을 배웠습니다. 프로젝트중에 null을 처리하긴 해야겠지만, 크롤러를 쓰다보..