본문 바로가기

분류 전체보기131

프로그래머스 데이터분석 데브코스 4-3 4-2 에는 SQL의 주력 함수들을 배웠고 4-3에는 SQL에서의 Data type을 배웠다. 숫자 C와 같이 bit, tiny int, small int, int ( interger), big int, float, double 등이 있었다. 차지하는 메모리도 거의 유사하다. SQL에는 숫자 타입에 Bool 타입이 들어가 있었다. 말 그대로 True, False가 레코드에 들어가는 것이 아닌 tinyint(1)을 지정하여 1은 True, 0은 False 이런식으로 해서 사용한다고 한다. boolean 타입을 지원하는 DB도 있지만 지원하지 않는 DB도 존재하기에 쿼리 간 호환성을 높이기 위해서 tinyint(1)으로 boolean 타입을 사용한다. 그리고 boolean 타입을 지원하는 mysql 같은 경.. 2024. 3. 6.
Sql 이진 데이터 이진 데이터. 이진법으로 저장한 데이터. 이게 무슨 소리인가... 어떤 느낌인지 감이 오지않아 여러가지 조사해 보았다. GPT의 도움을 받았는데 단순히 사람이 봤을 때 '문자' 가 아닌 데이터들을 모두 이진 데이터로 저장하는 것 같다. 0, 1로 저장하는 이유는 NLP나 이미지 관련 머신러닝 모델을 만들 때 원 핫 인코딩 과정이 들어가는 것과 같다고 봤다. 어떻게 보면 매우 똑똑하지만 반대로 0과 1 바라기인 컴퓨터에게 이미지 파일을 그대로 넘겨주기엔 효율도 좋지 않고 그 파일을 온전히 제대로 이해했는지도 알 수 없다. 이 문제를 해결하기 위해 원 핫 인코딩 과정이 NLP, 이미지 처리에서 빠지지 않는다고 생각한다. DB저장도 마찬가지로 비디오 파일, 오디오 파일, 이미지 파일을 mp4, mp3, png.. 2024. 3. 6.
Json 간단 정리 Json 은 단순 확장자명이다. 프로그래밍 언어, 문법이 아님. python의 dict, list 와 매우 유사함. 실제로 json 모듈을 임포트 해서 json 파일을 불러오기도 쉽고 dict 객체를 json 파일로 내보내기도 쉽다. SQL에서도 사용가능하다. 대신 SQL에서는 python 처럼 dict, list 같은 객체가 아니라 json key-value 쌍, 배열을 사용한다. 자바스크립트용 파일이 아닌 그냥 가독성 좋고 가벼운 데이터셋의 확장자명이 json이다. ========================= J son 하니까 뭔가 등번호 7번 SON 같다. 2024. 3. 6.
Mysql 8.0 Workbench로 로컬 테스트 환경 구축 프로그래머스 데이터분석 데브코스 수강 진행중에 웹으로 쿼리 몇개 실험해보려고 했다. 테이블 만들기, 웹 UI, 접근성 등이 너무 불편했다. 여러가지 시도해보기에는 적합한 환경이 아닌 것 같아서 컴퓨터를 혹사시키기로 했다. https://dev.mysql.com/downloads/installer/ 이곳에서 로컬 환경에 맞게 패키지 파일을 다운로드 하고 설치를 진행하니 금방금방 진행되었다. 일단은 초심자이니 추천해 주는 대로 모든것을 설치했다. DB 설치 과정에서 컴퓨터 이름이 한글로 되어있다면 로그파일 만드는 과정에서 오류가 나는 듯 하다. 만약 패키지로 진행한다면 2번쨰, Type and Networking 과정으로 돌아가서 Show Advanced and Logging Options를 체크하고 진행한.. 2024. 3. 5.
SQL Join Join JOIN 이라는 벽. 생각보다 많이 어려운 연산자였다. 왜냐하면 보통 이런 문법에 JOIN 부분만 때에따라 다른 JOIN을 사용하는 것 같은데, FROM 뒤에 JOIN이 쓰이는것과 정체모를 Y와 같은! 컬럼 이름이 나오는것 때문이었다. 여러가지 찾아보고 쿼리를 작성하면서 깨달았다. join을 사용하는 이유가 서로 다른 테이블을 활용하기 위해서 라는것을... 서로 다른 두 테이블을 사용하려는 것이기 때문에 내가 처음 이해한 이런 느낌의 쿼리문이 아니었던 것이다. 다시한번 정석 join 쿼리문을 보면 select * from x 으로 x테이블을 조회하고, join y 구문으로 y 테이블 조회 후, 뒤에 붙는 on 조건문을 소화해서 출력한다. 이렇게 다시한번 살펴보니 python으로 예시를 들면 인자.. 2024. 3. 5.
프로그래머스 데이터분석 데브코스 4-2 Join, Union, With, Sub query, Datetime, Case when... 많은것을 배웠다. 다른 포스트에 적었듯이 SQL, DB를 접했던게 python으로 테이블, 필드 하나 통으로 긁어와서 pandas로 데이터를 조작해와서인지 저런 함수들의 존재조차 몰랐다. as 사용도 매우 매우 매우 매우매우 어색하다. 자주 사용하는 함수가 어떤 인자들을 필요로 하는지도 알아봐야 할 것 같다. 가장 큰 문제는 SQL 문법 자체가 적응이 생각보다 더 안된다. python이 괜히 더욱 그리워지는 밤이다... 강의 수강, 실습 과정에서 웹으로 해보다가 접근성도 떨어지고 UI도 좀 답답해서 로컬에 Mysql 설치 할까 말까 하다가 설치해서 이것저것 해보니 이해가 훨씬 빠르게 되었다. 진작 설치 할걸~ .. 2024. 3. 5.
sql NULL 처리하기 입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요. 문제 카테고리 상 isnull을 사용했어야 할 것 같은데 sql 미숙련 이슈로 coalesce로 대체했다. Name 컬럼에서 Null이 발견되면 No name으로 치환시키기 위해 Coalesce 사용했다. isnull로 해결하는 방법 아시는 분은 댓글로 공유 부탁드립니다. SELECT ANIMAL_TYPE, coalesce(Name, Null, 'No name'), SEX_UPON_INTAKE from ANIMAL_INS 2024. 3. 4.
sql 이름에 el이 들어가는 동물 찾기 보호소에 돌아가신 할머니가 기르던 개를 찾는 사람이 찾아왔습니다. 이 사람이 말하길 할머니가 기르던 개는 이름에 'el'이 들어간다고 합니다. 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 이름 순으로 조회해주세요. 단, 이름의 대소문자는 구분하지 않습니다. 할머니가 기르던 개 를 찾기 위해 ANIMAL_TYPE = 'Dog' 를 이름에 EL이 들어가는 이름을 찾기 위해 like '%EL%' 을 사용했다. 대소문자를 구분하지 않는다고 하여 select ANIMAL_ID, upper(NAME)을 해봤는데 실패가 뜨고 NAME으로 진행하니 통과했다. 이유는 잘 모르겠다... db별로 like 함수를 쓸 때 대소문자를 고려 .. 2024. 3. 4.
sql 동명 동물 수 찾기 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요. group by 에 대해 잘 몰라서 조금 헤맸다. 이름이 없는 동물, 결측치를 날리기 위해 is not null을 사용했다. 유니크한 값들로 조회하기 위해 group by를 사용하고 having으로 이들을 합친 후 count 하여 한번만 나온 이름들을 날리기 위해 >1 을 했다. group by를 사용하면 정렬까지 함께 해준다고는 하는데 DB마다 다를것이고 디폴트값이 다를수도 있을 것 같아 order by까지 사용했다. SELECT NAME, COUNT(NAME) from ANIMAL_INS where.. 2024. 3. 4.