Data

    Unhandled exception: 'ascii' codec can't decode byte 0xeb in position 8: ordinal not in range(128) 에러

    MySQL DB에 데이터를 입력하는 중 제목과 같은 에러가 계속 발생했다. 구글신을 서치서치 해 본 결과 데이터 내 한글이 들어가있으면 안되는거 같다.. (왜죠?) 1. csv파일의 컬럼명이 DB 컬럼명과 일치해야된다. 2. csv 파일을 json으로 바꿔줘야 된다. convert 귀찮아서 파일을 엑셀로 바꿨다가 csv로 바꿨다가 텍스트 편집기에 넣어 csv로 저장했다가 다 시도했는데 안되서 결국엔 convert 해줬는데 제일 간단했다.;; 파일 convert > https://www.convertcsv.com/csv-to-json.htm CSV To JSON Converter www.convertcsv.com 이곳에 들어가서 csv 파일을 json으로 바꿔주기만 하믄 된다. json으로 변경되었을 때 ..

    [MySQL] JOIN

    [MySQL] JOIN

    JOIN : DB 내에 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블로 표현 1. JOIN (INNER JOIN) SELECT 컬럼 FROM 기준테이블명 별칭 JOIN 참조테이블명 별칭 ON 조건 ON 절의 조건을 만족하는 데이터만 가져옴, WHERE 절에서 사용할 수 있는 모든 조건 사용가능 2. LEFT JOIN SELECT * FROM 기준테이블 LEFT JOIN 참조테이블 ON 조건 기준 테이블을 기준으로 참조 테이블을 조합. ON 절의 조건을 만족하지 않은 경우 : 기준테이블의 값은 모두 가져오지만 참조테이블의 필드 값은 NULL로 표시 3. RIGHT JOIN SELECT * FROM 기준테이블 RIGHT JOIN 참조테이블 ON 조건 참조 테이블을 기준으로 기준 테이블을 조합 ON ..

    [MySQL] GROUP BY , HAVING, ROLLUP

    [MySQL] GROUP BY , HAVING, ROLLUP

    1. GROUP BY 그룹으로 묶어줌 집계함수를 함께 사용 AVG(): 평균 MIN(): 최소값 MAX(): 최대값 COUNT(): 행의 개수 등 효율적인 데이터 그룹화 AS를 사용하여 그룹화 된 컬럼명을 변경할 수 있음 2. HAVING WHERE과 비슷한 개념으로 조건 제한 집계 함수에 대해서 조건을 걸 때 반드시 GROUP BY 절 다음에 나와야 함 3. ROLLUP 총합 또는 중간합계가 필요할 경우 각 나라의 도시들의 인구 합을 합쳐서 중간에 보여줌

    [MySQL] ORDER BY, DISTINCT, LIMIT

    1. ORDER BY 결과가 출력되는 순서를 정해준다. 기본값은 오름차순(ASC), 생략가능 내림차순으로 정렬하고 싶을 때 컬럼명 뒤에 DESC 넣어주면 된다. SELECT * FROM city ORDER BY Population DESC 1-1) 혼용 사용가능 SELECT * FROM city ORDER BY CountryCode ASC, Population DESC 이 경우 CountryCode를 오름차순으로 정렬 하면서 값이 같은 경우 Population 값을 내림차순으로 정렬. 2. DISTINCT 중복 된 값일 경우 한 개만 보여준다. SELECT DISTINCT CountryCode FROM city; 3. LIMIT 출력 개수를 제한해준다. 상위 N개만 출력해줌 서버의 전반적인 성능을 안좋게..

    [MySQL] Sub Query , ANY , ALL

    [MySQL] Sub Query , ANY , ALL

    1. 서브쿼리 쿼리문 안에 또 쿼리문이 들어가 있는 것 서브 쿼리의 결과 값이 둘 이상이면 에러가 난다. SELECT * FROM city WHERE CountryCode =( SELECT CountryCode FROM city WHERE Name = 'New York'); 서브쿼리 결과값은 USA가 나오고 다시 이 값을 통해 USA의 city 값을 추출 할 수 있다. 2. ANY (SOME) 서브쿼리의 결과값이 여러개일 경우 한 개만 만족해도 가능하다. SELECT * FROM city WHERE Population > ANY ( SELECT Population FROM city WHERE District = 'New York'); 서브쿼리의 값 결과값 3. ALL 서브쿼리의 여러 개의 결과값을 모두 ..

    [MySQL] BETWEEN, IN, LIKE

    [MySQL] BETWEEN, IN, LIKE

    1. BETWEEN 숫자와 같은 연속적인 데이터에서 사용한다. -> 인구가 50만에서 80만 사이에 있는 도시테이블 안에 있는 데이터를 가져와라 SELECT * FROM 테이블명 WHERE 컬럼명 BETWEEN 숫자 AND 숫자 SELECT * FROM city WHERE Population BETWEEN 500000 AND 800000 2. IN 연속적이지 않은 데이터의 조건에서 사용한다. -> 서울, 뉴욕, 도쿄라는 이름을 가진 도시 데이터를 모두 가져와라 SELECT * FROM 테이블명 WHERE 컬럼명 IN(값,값...) SELECT * FROM city WHERE Name IN('Seoul', 'New York', 'Tokyo') 3. LIKE 문자열의 내용을 검색할 수 있다. % : 검색하려..